fix(core): Normalize binary data handling across registries and add buffer helpers
This commit is contained in:
@@ -3,6 +3,7 @@ import { BaseRegistry } from '../core/classes.baseregistry.js';
|
||||
import { RegistryStorage } from '../core/classes.registrystorage.js';
|
||||
import { AuthManager } from '../core/classes.authmanager.js';
|
||||
import type { IRequestContext, IResponse, IAuthToken } from '../core/interfaces.core.js';
|
||||
import { isBinaryData, toBuffer } from '../core/helpers.buffer.js';
|
||||
import type {
|
||||
IPypiPackageMetadata,
|
||||
IPypiFile,
|
||||
@@ -328,8 +329,9 @@ export class PypiRegistry extends BaseRegistry {
|
||||
const version = formData.version;
|
||||
// Support both: formData.content.filename (multipart parsed) and formData.filename (flat)
|
||||
const filename = formData.content?.filename || formData.filename;
|
||||
// Support both: formData.content.data (multipart parsed) and formData.content (Buffer directly)
|
||||
const fileData = (formData.content?.data || (Buffer.isBuffer(formData.content) ? formData.content : null)) as Buffer;
|
||||
// Support both: formData.content.data (multipart parsed) and formData.content (Buffer/Uint8Array directly)
|
||||
const rawContent = formData.content?.data || (isBinaryData(formData.content) ? formData.content : null);
|
||||
const fileData = rawContent ? toBuffer(rawContent) : null;
|
||||
const filetype = formData.filetype; // 'bdist_wheel' or 'sdist'
|
||||
const pyversion = formData.pyversion;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user