export type Mk20AggregateType = 0 | 1; export type Mk20FormatAggregate = {sub?: Array | undefined, type?: Mk20AggregateType | undefined}; export type Mk20FormatCar = Record; export type Mk20FormatBytes = Record; export type Mk20PieceDataFormat = {aggregate?: Mk20FormatAggregate | undefined, car?: Mk20FormatCar | undefined, raw?: Mk20FormatBytes | undefined}; export type Mk20DataSourceAggregate = {pieces?: Array | undefined}; export type HttpHeader = {[key: string]: Array}; export type Mk20HttpUrl = {fallback?: boolean | undefined, headers?: HttpHeader | undefined, priority?: number | undefined, url?: string | undefined}; export type Mk20DataSourceHTTP = {urls?: Array | undefined}; export type Mk20DataSourceHttpPut = Record; export type Mk20DataSourceOffline = Record; export type Mk20DataSource = {format?: Mk20PieceDataFormat | undefined, piece_cid?: {[key: string]: string} | undefined, source_aggregate?: Mk20DataSourceAggregate | undefined, source_http?: Mk20DataSourceHTTP | undefined, source_http_put?: Mk20DataSourceHttpPut | undefined, source_offline?: Mk20DataSourceOffline | undefined}; export type GithubComFilecoinProjectGoStateTypesBuiltinV16VerifregAllocationId = 0; export type AddressAddress = Record; export type Mk20DDOV1 = {allocation_id?: GithubComFilecoinProjectGoStateTypesBuiltinV16VerifregAllocationId | undefined, duration?: number | undefined, market_address?: string | undefined, market_deal_id?: number | undefined, notification_address?: AddressAddress | undefined, notification_payload?: Array | undefined, provider?: AddressAddress | undefined, start_epoch?: number | undefined}; export type Mk20PDPV1 = {add_piece?: boolean | undefined, create_data_set?: boolean | undefined, data_set_id?: number | undefined, delete_data_set?: boolean | undefined, delete_piece?: boolean | undefined, extra_data?: Array | undefined, piece_ids?: Array | undefined, record_keeper?: string | undefined}; export type Mk20RetrievalV1 = {announce_payload?: boolean | undefined, announce_piece?: boolean | undefined, indexing?: boolean | undefined}; export type Mk20Products = {ddo_v1?: Mk20DDOV1 | undefined, pdp_v1?: Mk20PDPV1 | undefined, retrieval_v1?: Mk20RetrievalV1 | undefined}; export type Mk20Deal = {client?: string | undefined, data?: Mk20DataSource | undefined, identifier?: unknown | undefined, products?: Mk20Products | undefined}; export type CreateApiUploadIdArgs = {id: string, body: Mk20Deal}; export type CreateApiUploadIdOptions = {baseUrl: string, CurioAuth?: string | undefined, fetch?: typeof fetch | undefined}; /** * Finalizes the serial upload process * * POST /upload/{id} */ export const createApiUploadId = async (args: CreateApiUploadIdArgs, options: CreateApiUploadIdOptions) => { const {baseUrl, fetch: fetchFn = fetch, CurioAuth} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "*/*") if (CurioAuth !== undefined) headers.set("Authorization", CurioAuth) const url = `${baseUrl.replace(/\/+$/, '')}/upload/${encodeURIComponent(String(args.id))}${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return res.blob() };