@unisource/sdk 0.4.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +78 -2
- package/dist/index.mjs +67 -2
- package/package.json +1 -1
- package/src/client.ts +39 -0
- package/src/index.ts +22 -0
- package/src/releases.ts +78 -0
package/dist/index.d.mts
CHANGED
|
@@ -873,6 +873,75 @@ declare const releaseUploadFailResponseSchema: z.ZodObject<{
|
|
|
873
873
|
status: z.ZodLiteral<"failed">;
|
|
874
874
|
}, z.core.$strip>;
|
|
875
875
|
type ReleaseUploadFailResponse = z.infer<typeof releaseUploadFailResponseSchema>;
|
|
876
|
+
declare const releaseMultipartCreateRequestSchema: z.ZodObject<{
|
|
877
|
+
name: z.ZodString;
|
|
878
|
+
filename: z.ZodString;
|
|
879
|
+
mime_type: z.ZodOptional<z.ZodString>;
|
|
880
|
+
tags: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
|
|
881
|
+
notes: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
882
|
+
force_update: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
883
|
+
}, z.core.$strip>;
|
|
884
|
+
type ReleaseMultipartCreateRequest = z.input<typeof releaseMultipartCreateRequestSchema>;
|
|
885
|
+
declare const releaseMultipartCreateResponseSchema: z.ZodObject<{
|
|
886
|
+
upload_id: z.ZodString;
|
|
887
|
+
r2_upload_id: z.ZodString;
|
|
888
|
+
key: z.ZodString;
|
|
889
|
+
bucket: z.ZodString;
|
|
890
|
+
expires_at: z.ZodNumber;
|
|
891
|
+
}, z.core.$strip>;
|
|
892
|
+
type ReleaseMultipartCreateResponse = z.infer<typeof releaseMultipartCreateResponseSchema>;
|
|
893
|
+
declare const releaseMultipartSignPartQuerySchema: z.ZodObject<{
|
|
894
|
+
upload_id: z.ZodString;
|
|
895
|
+
part_number: z.ZodCoercedNumber<unknown>;
|
|
896
|
+
}, z.core.$strip>;
|
|
897
|
+
type ReleaseMultipartSignPartQuery = z.input<typeof releaseMultipartSignPartQuerySchema>;
|
|
898
|
+
declare const releaseMultipartSignPartResponseSchema: z.ZodObject<{
|
|
899
|
+
url: z.ZodString;
|
|
900
|
+
expires_at: z.ZodNumber;
|
|
901
|
+
}, z.core.$strip>;
|
|
902
|
+
type ReleaseMultipartSignPartResponse = z.infer<typeof releaseMultipartSignPartResponseSchema>;
|
|
903
|
+
declare const releaseMultipartListPartsQuerySchema: z.ZodObject<{
|
|
904
|
+
upload_id: z.ZodString;
|
|
905
|
+
}, z.core.$strip>;
|
|
906
|
+
type ReleaseMultipartListPartsQuery = z.input<typeof releaseMultipartListPartsQuerySchema>;
|
|
907
|
+
declare const releaseMultipartPartSchema: z.ZodObject<{
|
|
908
|
+
PartNumber: z.ZodNumber;
|
|
909
|
+
ETag: z.ZodString;
|
|
910
|
+
Size: z.ZodNumber;
|
|
911
|
+
}, z.core.$strip>;
|
|
912
|
+
type ReleaseMultipartPart = z.infer<typeof releaseMultipartPartSchema>;
|
|
913
|
+
declare const releaseMultipartListPartsResponseSchema: z.ZodObject<{
|
|
914
|
+
parts: z.ZodArray<z.ZodObject<{
|
|
915
|
+
PartNumber: z.ZodNumber;
|
|
916
|
+
ETag: z.ZodString;
|
|
917
|
+
Size: z.ZodNumber;
|
|
918
|
+
}, z.core.$strip>>;
|
|
919
|
+
}, z.core.$strip>;
|
|
920
|
+
type ReleaseMultipartListPartsResponse = z.infer<typeof releaseMultipartListPartsResponseSchema>;
|
|
921
|
+
declare const releaseMultipartCompleteRequestSchema: z.ZodObject<{
|
|
922
|
+
upload_id: z.ZodString;
|
|
923
|
+
parts: z.ZodArray<z.ZodObject<{
|
|
924
|
+
PartNumber: z.ZodNumber;
|
|
925
|
+
ETag: z.ZodString;
|
|
926
|
+
}, z.core.$strip>>;
|
|
927
|
+
}, z.core.$strip>;
|
|
928
|
+
type ReleaseMultipartCompleteRequest = z.input<typeof releaseMultipartCompleteRequestSchema>;
|
|
929
|
+
declare const releaseMultipartCompleteResponseSchema: z.ZodObject<{
|
|
930
|
+
success: z.ZodLiteral<true>;
|
|
931
|
+
release_id: z.ZodString;
|
|
932
|
+
status: z.ZodLiteral<"completed">;
|
|
933
|
+
}, z.core.$strip>;
|
|
934
|
+
type ReleaseMultipartCompleteResponse = z.infer<typeof releaseMultipartCompleteResponseSchema>;
|
|
935
|
+
declare const releaseMultipartAbortRequestSchema: z.ZodObject<{
|
|
936
|
+
upload_id: z.ZodString;
|
|
937
|
+
}, z.core.$strip>;
|
|
938
|
+
type ReleaseMultipartAbortRequest = z.input<typeof releaseMultipartAbortRequestSchema>;
|
|
939
|
+
declare const releaseMultipartAbortResponseSchema: z.ZodObject<{
|
|
940
|
+
success: z.ZodLiteral<true>;
|
|
941
|
+
release_id: z.ZodString;
|
|
942
|
+
status: z.ZodLiteral<"failed">;
|
|
943
|
+
}, z.core.$strip>;
|
|
944
|
+
type ReleaseMultipartAbortResponse = z.infer<typeof releaseMultipartAbortResponseSchema>;
|
|
876
945
|
declare const releasesListQuerySchema: z.ZodObject<{
|
|
877
946
|
limit: z.ZodOptional<z.ZodNumber>;
|
|
878
947
|
cursor: z.ZodOptional<z.ZodString>;
|
|
@@ -1209,7 +1278,14 @@ declare class UnisourceClient {
|
|
|
1209
1278
|
upload: {
|
|
1210
1279
|
/** Initiate a release upload — returns a presigned PUT URL */init: (body: ReleaseUploadInitRequest, signal?: AbortSignal) => Promise<ReleaseUploadInitResponse>; /** Confirm that a release object was successfully uploaded */
|
|
1211
1280
|
complete: (body: ReleaseUploadCompleteRequest, signal?: AbortSignal) => Promise<ReleaseUploadCompleteResponse>; /** Mark a release upload as failed */
|
|
1212
|
-
fail: (releaseId: string, signal?: AbortSignal) => Promise<ReleaseUploadFailResponse>;
|
|
1281
|
+
fail: (releaseId: string, signal?: AbortSignal) => Promise<ReleaseUploadFailResponse>; /** Multipart upload helpers — direct browser → R2 via S3 presigned URLs */
|
|
1282
|
+
multipart: {
|
|
1283
|
+
/** Create a multipart release upload — returns the R2 UploadId + storage key */create: (body: ReleaseMultipartCreateRequest, signal?: AbortSignal) => Promise<ReleaseMultipartCreateResponse>; /** Short-lived presigned PUT URL for a single part */
|
|
1284
|
+
signPart: (uploadId: string, partNumber: number, signal?: AbortSignal) => Promise<ReleaseMultipartSignPartResponse>; /** List parts already uploaded — feeds Golden Retriever's resume logic */
|
|
1285
|
+
listParts: (uploadId: string, signal?: AbortSignal) => Promise<ReleaseMultipartListPartsResponse>; /** Finalize the multipart upload — backend reads object size from R2 (no client size). */
|
|
1286
|
+
complete: (body: ReleaseMultipartCompleteRequest, signal?: AbortSignal) => Promise<ReleaseMultipartCompleteResponse>; /** Abort an in-flight multipart upload and mark the release as failed */
|
|
1287
|
+
abort: (uploadId: string, signal?: AbortSignal) => Promise<ReleaseMultipartAbortResponse>;
|
|
1288
|
+
};
|
|
1213
1289
|
}; /** List releases for the configured service */
|
|
1214
1290
|
list: (query?: ReleasesListQuery, signal?: AbortSignal) => Promise<ReleasesListResponse>; /** Get a single release */
|
|
1215
1291
|
get: (releaseId: string, signal?: AbortSignal) => Promise<ReleaseDTO>; /** Get the latest completed release */
|
|
@@ -1275,4 +1351,4 @@ declare class UnisourceClient {
|
|
|
1275
1351
|
};
|
|
1276
1352
|
}
|
|
1277
1353
|
//#endregion
|
|
1278
|
-
export { type AdminServiceSettingsRequest, type AdminServiceSettingsResponse, type AdminServiceUpdateRequest, type AdminServiceUpdateResponse, type AdminUser, type AdminUserListResponse, type AdminUserPasswordResetRequest, type AdminUserPasswordResetResponse, type AdminUserRoleUpdateRequest, type AdminUserStorageLimitUpdateRequest, type AdminUserUpdateRequest, type AdminUserUpdateResponse, type ApiError, type AuditEvent, type AuditEventAction, type AuditLogListQuery, type AuditLogListResponse, FILES_DEFAULT_LIMIT, FILES_MAX_LIMIT, type FileDeleteResponse, type FileDownloadUrlResponse, type FileMoveRequest, type FileRecord, type FileRecordDetailResponse, type FileRecordsListQuery, type FileRecordsListResponse, type FileRestoreResponse, type FileUpdateRequest, type FileUpdateResponse, type Folder, type FolderCreateRequest, type FolderCreateResponse, type FolderDeleteResponse, type FolderDetailResponse, type FolderListQuery, type FolderListResponse, type FolderRestoreResponse, type FolderUpdateRequest, type FolderUpdateResponse, MainStorageDeleteResponse, MainStorageDetailResponse, MainStorageFile, MainStorageListQuery, MainStorageListResponse, MainStorageRenameRequest, MainStorageRenameResponse, MainStorageRestoreResponse, type MultipartAbortRequest, type MultipartAbortResponse, type MultipartCompleteRequest, type MultipartCompleteResponse, type MultipartCreateRequest, type MultipartCreateResponse, type MultipartListPartsQuery, type MultipartListPartsResponse, type MultipartPart, type MultipartSignPartQuery, type MultipartSignPartResponse, type PublicFileAccessResponse, type PublicFileLockedResponse, type ReleaseDTO, type ReleaseDeleteResponse, type ReleaseSyncManifest, type ReleaseSyncRequest, type ReleaseSyncResponse, type ReleaseSyncResult, type ReleaseUpdateRequest, type ReleaseUploadCompleteRequest, type ReleaseUploadCompleteResponse, type ReleaseUploadFailResponse, type ReleaseUploadInitRequest, type ReleaseUploadInitResponse, type ReleasesListQuery, type ReleasesListResponse, type Service, type ServiceDetailResponse, type ServiceUsageResponse, type ShareLink, type ShareLinkCreateRequest, type ShareLinkCreateResponse, type ShareLinkDeleteResponse, type ShareLinkDetailResponse, type ShareLinkListResponse, type ShareLinkUpdateRequest, type ShareLinkUpdateResponse, type SharesCreateRequest, UnisourceClient, type UnisourceClientConfig, UnisourceError, UnisourceNetworkError, type UploadAppwriteInitRequest, type UploadAppwriteInitResponse, type UploadCompleteResponse, type UploadDestination, type UploadFailResponse, type UploadLifecycleRequest, type UploadR2InitRequest, type UploadR2InitResponse, type UploadRecord, type UploadRecordDetailResponse, type UploadStatus, type UploadType, type UploadsListResponse, adminServiceSettingsRequestSchema, adminServiceSettingsResponseSchema, adminServiceUpdateRequestSchema, adminServiceUpdateResponseSchema, adminUserListResponseSchema, adminUserPasswordResetRequestSchema, adminUserPasswordResetResponseSchema, adminUserRoleUpdateRequestSchema, adminUserSchema, adminUserStorageLimitUpdateRequestSchema, adminUserUpdateRequestSchema, adminUserUpdateResponseSchema, apiErrorSchema, auditEventActionSchema, auditEventSchema, auditLogListQuerySchema, auditLogListResponseSchema, fileDeleteResponseSchema, fileDownloadUrlResponseSchema, fileMoveRequestSchema, fileRecordDetailResponseSchema, fileRecordSchema, fileRecordsListQuerySchema, fileRecordsListResponseSchema, fileRestoreResponseSchema, fileUpdateRequestSchema, fileUpdateResponseSchema, folderCreateRequestSchema, folderCreateResponseSchema, folderDeleteResponseSchema, folderDetailResponseSchema, folderListQuerySchema, folderListResponseSchema, folderRestoreResponseSchema, folderSchema, folderUpdateRequestSchema, folderUpdateResponseSchema, getPublicFileInfo, mainStorageDeleteResponseSchema, mainStorageDetailResponseSchema, mainStorageFileSchema, mainStorageListQuerySchema, mainStorageListResponseSchema, mainStorageRenameRequestSchema, mainStorageRenameResponseSchema, mainStorageRestoreResponseSchema, multipartAbortRequestSchema, multipartAbortResponseSchema, multipartCompleteRequestSchema, multipartCompleteResponseSchema, multipartCreateRequestSchema, multipartCreateResponseSchema, multipartListPartsQuerySchema, multipartListPartsResponseSchema, multipartPartSchema, multipartSignPartQuerySchema, multipartSignPartResponseSchema, nonEmptyString, positiveInt, publicFileAccessResponseSchema, publicFileLockedResponseSchema, releaseDTOSchema, releaseDeleteResponseSchema, releaseSyncManifestSchema, releaseSyncRequestSchema, releaseSyncResponseSchema, releaseSyncResultSchema, releaseUpdateRequestSchema, releaseUploadCompleteRequestSchema, releaseUploadCompleteResponseSchema, releaseUploadFailResponseSchema, releaseUploadInitRequestSchema, releaseUploadInitResponseSchema, releasesListQuerySchema, releasesListResponseSchema, serviceDetailResponseSchema, serviceSchema, serviceUsageResponseSchema, shareLinkCreateRequestSchema, shareLinkCreateResponseSchema, shareLinkDeleteResponseSchema, shareLinkDetailResponseSchema, shareLinkListResponseSchema, shareLinkSchema, shareLinkUpdateRequestSchema, shareLinkUpdateResponseSchema, sharesCreateRequestSchema, unixTimestamp, unlockPublicFile, uploadAppwriteInitRequestSchema, uploadAppwriteInitResponseSchema, uploadCompleteResponseSchema, uploadDestinationSchema, uploadFailResponseSchema, uploadLifecycleRequestSchema, uploadR2InitRequestSchema, uploadR2InitResponseSchema, uploadRecordDetailResponseSchema, uploadRecordSchema, uploadStatusSchema, uploadTypeSchema, uploadsListResponseSchema };
|
|
1354
|
+
export { type AdminServiceSettingsRequest, type AdminServiceSettingsResponse, type AdminServiceUpdateRequest, type AdminServiceUpdateResponse, type AdminUser, type AdminUserListResponse, type AdminUserPasswordResetRequest, type AdminUserPasswordResetResponse, type AdminUserRoleUpdateRequest, type AdminUserStorageLimitUpdateRequest, type AdminUserUpdateRequest, type AdminUserUpdateResponse, type ApiError, type AuditEvent, type AuditEventAction, type AuditLogListQuery, type AuditLogListResponse, FILES_DEFAULT_LIMIT, FILES_MAX_LIMIT, type FileDeleteResponse, type FileDownloadUrlResponse, type FileMoveRequest, type FileRecord, type FileRecordDetailResponse, type FileRecordsListQuery, type FileRecordsListResponse, type FileRestoreResponse, type FileUpdateRequest, type FileUpdateResponse, type Folder, type FolderCreateRequest, type FolderCreateResponse, type FolderDeleteResponse, type FolderDetailResponse, type FolderListQuery, type FolderListResponse, type FolderRestoreResponse, type FolderUpdateRequest, type FolderUpdateResponse, MainStorageDeleteResponse, MainStorageDetailResponse, MainStorageFile, MainStorageListQuery, MainStorageListResponse, MainStorageRenameRequest, MainStorageRenameResponse, MainStorageRestoreResponse, type MultipartAbortRequest, type MultipartAbortResponse, type MultipartCompleteRequest, type MultipartCompleteResponse, type MultipartCreateRequest, type MultipartCreateResponse, type MultipartListPartsQuery, type MultipartListPartsResponse, type MultipartPart, type MultipartSignPartQuery, type MultipartSignPartResponse, type PublicFileAccessResponse, type PublicFileLockedResponse, type ReleaseDTO, type ReleaseDeleteResponse, type ReleaseMultipartAbortRequest, type ReleaseMultipartAbortResponse, type ReleaseMultipartCompleteRequest, type ReleaseMultipartCompleteResponse, type ReleaseMultipartCreateRequest, type ReleaseMultipartCreateResponse, type ReleaseMultipartListPartsQuery, type ReleaseMultipartListPartsResponse, type ReleaseMultipartPart, type ReleaseMultipartSignPartQuery, type ReleaseMultipartSignPartResponse, type ReleaseSyncManifest, type ReleaseSyncRequest, type ReleaseSyncResponse, type ReleaseSyncResult, type ReleaseUpdateRequest, type ReleaseUploadCompleteRequest, type ReleaseUploadCompleteResponse, type ReleaseUploadFailResponse, type ReleaseUploadInitRequest, type ReleaseUploadInitResponse, type ReleasesListQuery, type ReleasesListResponse, type Service, type ServiceDetailResponse, type ServiceUsageResponse, type ShareLink, type ShareLinkCreateRequest, type ShareLinkCreateResponse, type ShareLinkDeleteResponse, type ShareLinkDetailResponse, type ShareLinkListResponse, type ShareLinkUpdateRequest, type ShareLinkUpdateResponse, type SharesCreateRequest, UnisourceClient, type UnisourceClientConfig, UnisourceError, UnisourceNetworkError, type UploadAppwriteInitRequest, type UploadAppwriteInitResponse, type UploadCompleteResponse, type UploadDestination, type UploadFailResponse, type UploadLifecycleRequest, type UploadR2InitRequest, type UploadR2InitResponse, type UploadRecord, type UploadRecordDetailResponse, type UploadStatus, type UploadType, type UploadsListResponse, adminServiceSettingsRequestSchema, adminServiceSettingsResponseSchema, adminServiceUpdateRequestSchema, adminServiceUpdateResponseSchema, adminUserListResponseSchema, adminUserPasswordResetRequestSchema, adminUserPasswordResetResponseSchema, adminUserRoleUpdateRequestSchema, adminUserSchema, adminUserStorageLimitUpdateRequestSchema, adminUserUpdateRequestSchema, adminUserUpdateResponseSchema, apiErrorSchema, auditEventActionSchema, auditEventSchema, auditLogListQuerySchema, auditLogListResponseSchema, fileDeleteResponseSchema, fileDownloadUrlResponseSchema, fileMoveRequestSchema, fileRecordDetailResponseSchema, fileRecordSchema, fileRecordsListQuerySchema, fileRecordsListResponseSchema, fileRestoreResponseSchema, fileUpdateRequestSchema, fileUpdateResponseSchema, folderCreateRequestSchema, folderCreateResponseSchema, folderDeleteResponseSchema, folderDetailResponseSchema, folderListQuerySchema, folderListResponseSchema, folderRestoreResponseSchema, folderSchema, folderUpdateRequestSchema, folderUpdateResponseSchema, getPublicFileInfo, mainStorageDeleteResponseSchema, mainStorageDetailResponseSchema, mainStorageFileSchema, mainStorageListQuerySchema, mainStorageListResponseSchema, mainStorageRenameRequestSchema, mainStorageRenameResponseSchema, mainStorageRestoreResponseSchema, multipartAbortRequestSchema, multipartAbortResponseSchema, multipartCompleteRequestSchema, multipartCompleteResponseSchema, multipartCreateRequestSchema, multipartCreateResponseSchema, multipartListPartsQuerySchema, multipartListPartsResponseSchema, multipartPartSchema, multipartSignPartQuerySchema, multipartSignPartResponseSchema, nonEmptyString, positiveInt, publicFileAccessResponseSchema, publicFileLockedResponseSchema, releaseDTOSchema, releaseDeleteResponseSchema, releaseMultipartAbortRequestSchema, releaseMultipartAbortResponseSchema, releaseMultipartCompleteRequestSchema, releaseMultipartCompleteResponseSchema, releaseMultipartCreateRequestSchema, releaseMultipartCreateResponseSchema, releaseMultipartListPartsQuerySchema, releaseMultipartListPartsResponseSchema, releaseMultipartPartSchema, releaseMultipartSignPartQuerySchema, releaseMultipartSignPartResponseSchema, releaseSyncManifestSchema, releaseSyncRequestSchema, releaseSyncResponseSchema, releaseSyncResultSchema, releaseUpdateRequestSchema, releaseUploadCompleteRequestSchema, releaseUploadCompleteResponseSchema, releaseUploadFailResponseSchema, releaseUploadInitRequestSchema, releaseUploadInitResponseSchema, releasesListQuerySchema, releasesListResponseSchema, serviceDetailResponseSchema, serviceSchema, serviceUsageResponseSchema, shareLinkCreateRequestSchema, shareLinkCreateResponseSchema, shareLinkDeleteResponseSchema, shareLinkDetailResponseSchema, shareLinkListResponseSchema, shareLinkSchema, shareLinkUpdateRequestSchema, shareLinkUpdateResponseSchema, sharesCreateRequestSchema, unixTimestamp, unlockPublicFile, uploadAppwriteInitRequestSchema, uploadAppwriteInitResponseSchema, uploadCompleteResponseSchema, uploadDestinationSchema, uploadFailResponseSchema, uploadLifecycleRequestSchema, uploadR2InitRequestSchema, uploadR2InitResponseSchema, uploadRecordDetailResponseSchema, uploadRecordSchema, uploadStatusSchema, uploadTypeSchema, uploadsListResponseSchema };
|
package/dist/index.mjs
CHANGED
|
@@ -409,6 +409,46 @@ const releaseUploadFailResponseSchema = z.object({
|
|
|
409
409
|
release_id: nonEmptyString,
|
|
410
410
|
status: z.literal("failed")
|
|
411
411
|
});
|
|
412
|
+
const releaseMultipartCreateRequestSchema = z.object({
|
|
413
|
+
name: releaseNameSchema,
|
|
414
|
+
filename: releaseFilenameSchema,
|
|
415
|
+
mime_type: nonEmptyString.optional(),
|
|
416
|
+
tags: releaseTagsSchema.optional().default([]),
|
|
417
|
+
notes: releaseNotesSchema,
|
|
418
|
+
force_update: z.boolean().optional().default(false)
|
|
419
|
+
});
|
|
420
|
+
const releaseMultipartCreateResponseSchema = z.object({
|
|
421
|
+
upload_id: nonEmptyString,
|
|
422
|
+
r2_upload_id: nonEmptyString,
|
|
423
|
+
key: nonEmptyString,
|
|
424
|
+
bucket: nonEmptyString,
|
|
425
|
+
expires_at: positiveInt
|
|
426
|
+
});
|
|
427
|
+
const releaseMultipartSignPartQuerySchema = z.object({
|
|
428
|
+
upload_id: releaseIdSchema,
|
|
429
|
+
part_number: z.coerce.number().int().min(1).max(1e4)
|
|
430
|
+
});
|
|
431
|
+
const releaseMultipartSignPartResponseSchema = z.object({
|
|
432
|
+
url: z.string().url(),
|
|
433
|
+
expires_at: positiveInt
|
|
434
|
+
});
|
|
435
|
+
const releaseMultipartListPartsQuerySchema = z.object({ upload_id: releaseIdSchema });
|
|
436
|
+
const releaseMultipartPartSchema = z.object({
|
|
437
|
+
PartNumber: z.number().int().min(1).max(1e4),
|
|
438
|
+
ETag: nonEmptyString,
|
|
439
|
+
Size: z.number().int().nonnegative()
|
|
440
|
+
});
|
|
441
|
+
const releaseMultipartListPartsResponseSchema = z.object({ parts: z.array(releaseMultipartPartSchema) });
|
|
442
|
+
const releaseMultipartCompleteRequestSchema = z.object({
|
|
443
|
+
upload_id: releaseIdSchema,
|
|
444
|
+
parts: z.array(z.object({
|
|
445
|
+
PartNumber: z.number().int().min(1).max(1e4),
|
|
446
|
+
ETag: nonEmptyString
|
|
447
|
+
})).min(1)
|
|
448
|
+
});
|
|
449
|
+
const releaseMultipartCompleteResponseSchema = releaseUploadCompleteResponseSchema;
|
|
450
|
+
const releaseMultipartAbortRequestSchema = z.object({ upload_id: releaseIdSchema });
|
|
451
|
+
const releaseMultipartAbortResponseSchema = releaseUploadFailResponseSchema;
|
|
412
452
|
const releasesListQuerySchema = z.object({
|
|
413
453
|
limit: z.number().int().positive().max(100).optional(),
|
|
414
454
|
cursor: nonEmptyString.optional()
|
|
@@ -738,7 +778,32 @@ var UnisourceClient = class {
|
|
|
738
778
|
fail: (releaseId, signal) => apiRequest(this.config, "POST", "/releases/upload/fail", {
|
|
739
779
|
body: { release_id: releaseId },
|
|
740
780
|
signal
|
|
741
|
-
})
|
|
781
|
+
}),
|
|
782
|
+
multipart: {
|
|
783
|
+
create: (body, signal) => apiRequest(this.config, "POST", "/releases/upload/multipart/create", {
|
|
784
|
+
body,
|
|
785
|
+
signal
|
|
786
|
+
}),
|
|
787
|
+
signPart: (uploadId, partNumber, signal) => apiRequest(this.config, "GET", "/releases/upload/multipart/sign-part", {
|
|
788
|
+
query: {
|
|
789
|
+
upload_id: uploadId,
|
|
790
|
+
part_number: partNumber
|
|
791
|
+
},
|
|
792
|
+
signal
|
|
793
|
+
}),
|
|
794
|
+
listParts: (uploadId, signal) => apiRequest(this.config, "GET", "/releases/upload/multipart/list-parts", {
|
|
795
|
+
query: { upload_id: uploadId },
|
|
796
|
+
signal
|
|
797
|
+
}),
|
|
798
|
+
complete: (body, signal) => apiRequest(this.config, "POST", "/releases/upload/multipart/complete", {
|
|
799
|
+
body,
|
|
800
|
+
signal
|
|
801
|
+
}),
|
|
802
|
+
abort: (uploadId, signal) => apiRequest(this.config, "DELETE", "/releases/upload/multipart/abort", {
|
|
803
|
+
body: { upload_id: uploadId },
|
|
804
|
+
signal
|
|
805
|
+
})
|
|
806
|
+
}
|
|
742
807
|
},
|
|
743
808
|
list: (query, signal) => apiRequest(this.config, "GET", "/releases", {
|
|
744
809
|
query,
|
|
@@ -846,4 +911,4 @@ var UnisourceClient = class {
|
|
|
846
911
|
};
|
|
847
912
|
};
|
|
848
913
|
//#endregion
|
|
849
|
-
export { FILES_DEFAULT_LIMIT, FILES_MAX_LIMIT, UnisourceClient, UnisourceError, UnisourceNetworkError, adminServiceSettingsRequestSchema, adminServiceSettingsResponseSchema, adminServiceUpdateRequestSchema, adminServiceUpdateResponseSchema, adminUserListResponseSchema, adminUserPasswordResetRequestSchema, adminUserPasswordResetResponseSchema, adminUserRoleUpdateRequestSchema, adminUserSchema, adminUserStorageLimitUpdateRequestSchema, adminUserUpdateRequestSchema, adminUserUpdateResponseSchema, apiErrorSchema, auditEventActionSchema, auditEventSchema, auditLogListQuerySchema, auditLogListResponseSchema, fileDeleteResponseSchema, fileDownloadUrlResponseSchema, fileMoveRequestSchema, fileRecordDetailResponseSchema, fileRecordSchema, fileRecordsListQuerySchema, fileRecordsListResponseSchema, fileRestoreResponseSchema, fileUpdateRequestSchema, fileUpdateResponseSchema, folderCreateRequestSchema, folderCreateResponseSchema, folderDeleteResponseSchema, folderDetailResponseSchema, folderListQuerySchema, folderListResponseSchema, folderRestoreResponseSchema, folderSchema, folderUpdateRequestSchema, folderUpdateResponseSchema, getPublicFileInfo, mainStorageDeleteResponseSchema, mainStorageDetailResponseSchema, mainStorageFileSchema, mainStorageListQuerySchema, mainStorageListResponseSchema, mainStorageRenameRequestSchema, mainStorageRenameResponseSchema, mainStorageRestoreResponseSchema, multipartAbortRequestSchema, multipartAbortResponseSchema, multipartCompleteRequestSchema, multipartCompleteResponseSchema, multipartCreateRequestSchema, multipartCreateResponseSchema, multipartListPartsQuerySchema, multipartListPartsResponseSchema, multipartPartSchema, multipartSignPartQuerySchema, multipartSignPartResponseSchema, nonEmptyString, positiveInt, publicFileAccessResponseSchema, publicFileLockedResponseSchema, releaseDTOSchema, releaseDeleteResponseSchema, releaseSyncManifestSchema, releaseSyncRequestSchema, releaseSyncResponseSchema, releaseSyncResultSchema, releaseUpdateRequestSchema, releaseUploadCompleteRequestSchema, releaseUploadCompleteResponseSchema, releaseUploadFailResponseSchema, releaseUploadInitRequestSchema, releaseUploadInitResponseSchema, releasesListQuerySchema, releasesListResponseSchema, serviceDetailResponseSchema, serviceSchema, serviceUsageResponseSchema, shareLinkCreateRequestSchema, shareLinkCreateResponseSchema, shareLinkDeleteResponseSchema, shareLinkDetailResponseSchema, shareLinkListResponseSchema, shareLinkSchema, shareLinkUpdateRequestSchema, shareLinkUpdateResponseSchema, sharesCreateRequestSchema, unixTimestamp, unlockPublicFile, uploadAppwriteInitRequestSchema, uploadAppwriteInitResponseSchema, uploadCompleteResponseSchema, uploadDestinationSchema, uploadFailResponseSchema, uploadLifecycleRequestSchema, uploadR2InitRequestSchema, uploadR2InitResponseSchema, uploadRecordDetailResponseSchema, uploadRecordSchema, uploadStatusSchema, uploadTypeSchema, uploadsListResponseSchema };
|
|
914
|
+
export { FILES_DEFAULT_LIMIT, FILES_MAX_LIMIT, UnisourceClient, UnisourceError, UnisourceNetworkError, adminServiceSettingsRequestSchema, adminServiceSettingsResponseSchema, adminServiceUpdateRequestSchema, adminServiceUpdateResponseSchema, adminUserListResponseSchema, adminUserPasswordResetRequestSchema, adminUserPasswordResetResponseSchema, adminUserRoleUpdateRequestSchema, adminUserSchema, adminUserStorageLimitUpdateRequestSchema, adminUserUpdateRequestSchema, adminUserUpdateResponseSchema, apiErrorSchema, auditEventActionSchema, auditEventSchema, auditLogListQuerySchema, auditLogListResponseSchema, fileDeleteResponseSchema, fileDownloadUrlResponseSchema, fileMoveRequestSchema, fileRecordDetailResponseSchema, fileRecordSchema, fileRecordsListQuerySchema, fileRecordsListResponseSchema, fileRestoreResponseSchema, fileUpdateRequestSchema, fileUpdateResponseSchema, folderCreateRequestSchema, folderCreateResponseSchema, folderDeleteResponseSchema, folderDetailResponseSchema, folderListQuerySchema, folderListResponseSchema, folderRestoreResponseSchema, folderSchema, folderUpdateRequestSchema, folderUpdateResponseSchema, getPublicFileInfo, mainStorageDeleteResponseSchema, mainStorageDetailResponseSchema, mainStorageFileSchema, mainStorageListQuerySchema, mainStorageListResponseSchema, mainStorageRenameRequestSchema, mainStorageRenameResponseSchema, mainStorageRestoreResponseSchema, multipartAbortRequestSchema, multipartAbortResponseSchema, multipartCompleteRequestSchema, multipartCompleteResponseSchema, multipartCreateRequestSchema, multipartCreateResponseSchema, multipartListPartsQuerySchema, multipartListPartsResponseSchema, multipartPartSchema, multipartSignPartQuerySchema, multipartSignPartResponseSchema, nonEmptyString, positiveInt, publicFileAccessResponseSchema, publicFileLockedResponseSchema, releaseDTOSchema, releaseDeleteResponseSchema, releaseMultipartAbortRequestSchema, releaseMultipartAbortResponseSchema, releaseMultipartCompleteRequestSchema, releaseMultipartCompleteResponseSchema, releaseMultipartCreateRequestSchema, releaseMultipartCreateResponseSchema, releaseMultipartListPartsQuerySchema, releaseMultipartListPartsResponseSchema, releaseMultipartPartSchema, releaseMultipartSignPartQuerySchema, releaseMultipartSignPartResponseSchema, releaseSyncManifestSchema, releaseSyncRequestSchema, releaseSyncResponseSchema, releaseSyncResultSchema, releaseUpdateRequestSchema, releaseUploadCompleteRequestSchema, releaseUploadCompleteResponseSchema, releaseUploadFailResponseSchema, releaseUploadInitRequestSchema, releaseUploadInitResponseSchema, releasesListQuerySchema, releasesListResponseSchema, serviceDetailResponseSchema, serviceSchema, serviceUsageResponseSchema, shareLinkCreateRequestSchema, shareLinkCreateResponseSchema, shareLinkDeleteResponseSchema, shareLinkDetailResponseSchema, shareLinkListResponseSchema, shareLinkSchema, shareLinkUpdateRequestSchema, shareLinkUpdateResponseSchema, sharesCreateRequestSchema, unixTimestamp, unlockPublicFile, uploadAppwriteInitRequestSchema, uploadAppwriteInitResponseSchema, uploadCompleteResponseSchema, uploadDestinationSchema, uploadFailResponseSchema, uploadLifecycleRequestSchema, uploadR2InitRequestSchema, uploadR2InitResponseSchema, uploadRecordDetailResponseSchema, uploadRecordSchema, uploadStatusSchema, uploadTypeSchema, uploadsListResponseSchema };
|
package/package.json
CHANGED
package/src/client.ts
CHANGED
|
@@ -90,6 +90,13 @@ import type {
|
|
|
90
90
|
ReleaseDeleteResponse,
|
|
91
91
|
ReleaseSyncRequest,
|
|
92
92
|
ReleaseSyncResponse,
|
|
93
|
+
ReleaseMultipartCreateRequest,
|
|
94
|
+
ReleaseMultipartCreateResponse,
|
|
95
|
+
ReleaseMultipartSignPartResponse,
|
|
96
|
+
ReleaseMultipartListPartsResponse,
|
|
97
|
+
ReleaseMultipartCompleteRequest,
|
|
98
|
+
ReleaseMultipartCompleteResponse,
|
|
99
|
+
ReleaseMultipartAbortResponse,
|
|
93
100
|
} from './releases';
|
|
94
101
|
|
|
95
102
|
// ─── SDK Error classes ────────────────────────────────────────────────────────
|
|
@@ -412,6 +419,38 @@ export class UnisourceClient {
|
|
|
412
419
|
/** Mark a release upload as failed */
|
|
413
420
|
fail: (releaseId: string, signal?: AbortSignal): Promise<ReleaseUploadFailResponse> =>
|
|
414
421
|
apiRequest(this.config, 'POST', '/releases/upload/fail', { body: { release_id: releaseId }, signal }),
|
|
422
|
+
|
|
423
|
+
/** Multipart upload helpers — direct browser → R2 via S3 presigned URLs */
|
|
424
|
+
multipart: {
|
|
425
|
+
/** Create a multipart release upload — returns the R2 UploadId + storage key */
|
|
426
|
+
create: (body: ReleaseMultipartCreateRequest, signal?: AbortSignal): Promise<ReleaseMultipartCreateResponse> =>
|
|
427
|
+
apiRequest(this.config, 'POST', '/releases/upload/multipart/create', { body, signal }),
|
|
428
|
+
|
|
429
|
+
/** Short-lived presigned PUT URL for a single part */
|
|
430
|
+
signPart: (uploadId: string, partNumber: number, signal?: AbortSignal): Promise<ReleaseMultipartSignPartResponse> =>
|
|
431
|
+
apiRequest(this.config, 'GET', '/releases/upload/multipart/sign-part', {
|
|
432
|
+
query: { upload_id: uploadId, part_number: partNumber },
|
|
433
|
+
signal,
|
|
434
|
+
}),
|
|
435
|
+
|
|
436
|
+
/** List parts already uploaded — feeds Golden Retriever's resume logic */
|
|
437
|
+
listParts: (uploadId: string, signal?: AbortSignal): Promise<ReleaseMultipartListPartsResponse> =>
|
|
438
|
+
apiRequest(this.config, 'GET', '/releases/upload/multipart/list-parts', {
|
|
439
|
+
query: { upload_id: uploadId },
|
|
440
|
+
signal,
|
|
441
|
+
}),
|
|
442
|
+
|
|
443
|
+
/** Finalize the multipart upload — backend reads object size from R2 (no client size). */
|
|
444
|
+
complete: (body: ReleaseMultipartCompleteRequest, signal?: AbortSignal): Promise<ReleaseMultipartCompleteResponse> =>
|
|
445
|
+
apiRequest(this.config, 'POST', '/releases/upload/multipart/complete', { body, signal }),
|
|
446
|
+
|
|
447
|
+
/** Abort an in-flight multipart upload and mark the release as failed */
|
|
448
|
+
abort: (uploadId: string, signal?: AbortSignal): Promise<ReleaseMultipartAbortResponse> =>
|
|
449
|
+
apiRequest(this.config, 'DELETE', '/releases/upload/multipart/abort', {
|
|
450
|
+
body: { upload_id: uploadId },
|
|
451
|
+
signal,
|
|
452
|
+
}),
|
|
453
|
+
},
|
|
415
454
|
},
|
|
416
455
|
|
|
417
456
|
/** List releases for the configured service */
|
package/src/index.ts
CHANGED
|
@@ -177,6 +177,17 @@ export {
|
|
|
177
177
|
releaseSyncRequestSchema,
|
|
178
178
|
releaseSyncResultSchema,
|
|
179
179
|
releaseSyncResponseSchema,
|
|
180
|
+
releaseMultipartCreateRequestSchema,
|
|
181
|
+
releaseMultipartCreateResponseSchema,
|
|
182
|
+
releaseMultipartSignPartQuerySchema,
|
|
183
|
+
releaseMultipartSignPartResponseSchema,
|
|
184
|
+
releaseMultipartListPartsQuerySchema,
|
|
185
|
+
releaseMultipartListPartsResponseSchema,
|
|
186
|
+
releaseMultipartPartSchema,
|
|
187
|
+
releaseMultipartCompleteRequestSchema,
|
|
188
|
+
releaseMultipartCompleteResponseSchema,
|
|
189
|
+
releaseMultipartAbortRequestSchema,
|
|
190
|
+
releaseMultipartAbortResponseSchema,
|
|
180
191
|
} from './releases';
|
|
181
192
|
export type {
|
|
182
193
|
ReleaseDTO,
|
|
@@ -193,6 +204,17 @@ export type {
|
|
|
193
204
|
ReleaseSyncRequest,
|
|
194
205
|
ReleaseSyncResult,
|
|
195
206
|
ReleaseSyncResponse,
|
|
207
|
+
ReleaseMultipartCreateRequest,
|
|
208
|
+
ReleaseMultipartCreateResponse,
|
|
209
|
+
ReleaseMultipartSignPartQuery,
|
|
210
|
+
ReleaseMultipartSignPartResponse,
|
|
211
|
+
ReleaseMultipartListPartsQuery,
|
|
212
|
+
ReleaseMultipartListPartsResponse,
|
|
213
|
+
ReleaseMultipartPart,
|
|
214
|
+
ReleaseMultipartCompleteRequest,
|
|
215
|
+
ReleaseMultipartCompleteResponse,
|
|
216
|
+
ReleaseMultipartAbortRequest,
|
|
217
|
+
ReleaseMultipartAbortResponse,
|
|
196
218
|
} from './releases';
|
|
197
219
|
|
|
198
220
|
// ─── Share Links ─────────────────────────────────────────────────────────────
|
package/src/releases.ts
CHANGED
|
@@ -64,6 +64,84 @@ export const releaseUploadFailResponseSchema = z.object({
|
|
|
64
64
|
});
|
|
65
65
|
export type ReleaseUploadFailResponse = z.infer<typeof releaseUploadFailResponseSchema>;
|
|
66
66
|
|
|
67
|
+
// ─── Multipart Upload Lifecycle ──────────────────────────────────────────────
|
|
68
|
+
|
|
69
|
+
export const releaseMultipartCreateRequestSchema = z.object({
|
|
70
|
+
name: releaseNameSchema,
|
|
71
|
+
filename: releaseFilenameSchema,
|
|
72
|
+
/** Defaults server-side to `application/octet-stream` when omitted. */
|
|
73
|
+
mime_type: nonEmptyString.optional(),
|
|
74
|
+
tags: releaseTagsSchema.optional().default([]),
|
|
75
|
+
notes: releaseNotesSchema,
|
|
76
|
+
force_update: z.boolean().optional().default(false),
|
|
77
|
+
});
|
|
78
|
+
export type ReleaseMultipartCreateRequest = z.input<typeof releaseMultipartCreateRequestSchema>;
|
|
79
|
+
|
|
80
|
+
export const releaseMultipartCreateResponseSchema = z.object({
|
|
81
|
+
/** UniSource release id — the same id is used for sign/list/complete/abort. */
|
|
82
|
+
upload_id: nonEmptyString,
|
|
83
|
+
/** S3 (R2) multipart UploadId returned by CreateMultipartUpload. */
|
|
84
|
+
r2_upload_id: nonEmptyString,
|
|
85
|
+
/** R2 object key the parts are being uploaded against. */
|
|
86
|
+
key: nonEmptyString,
|
|
87
|
+
bucket: nonEmptyString,
|
|
88
|
+
expires_at: positiveInt,
|
|
89
|
+
});
|
|
90
|
+
export type ReleaseMultipartCreateResponse = z.infer<typeof releaseMultipartCreateResponseSchema>;
|
|
91
|
+
|
|
92
|
+
export const releaseMultipartSignPartQuerySchema = z.object({
|
|
93
|
+
upload_id: releaseIdSchema,
|
|
94
|
+
part_number: z.coerce.number().int().min(1).max(10_000),
|
|
95
|
+
});
|
|
96
|
+
export type ReleaseMultipartSignPartQuery = z.input<typeof releaseMultipartSignPartQuerySchema>;
|
|
97
|
+
|
|
98
|
+
export const releaseMultipartSignPartResponseSchema = z.object({
|
|
99
|
+
url: z.string().url(),
|
|
100
|
+
expires_at: positiveInt,
|
|
101
|
+
});
|
|
102
|
+
export type ReleaseMultipartSignPartResponse = z.infer<typeof releaseMultipartSignPartResponseSchema>;
|
|
103
|
+
|
|
104
|
+
export const releaseMultipartListPartsQuerySchema = z.object({
|
|
105
|
+
upload_id: releaseIdSchema,
|
|
106
|
+
});
|
|
107
|
+
export type ReleaseMultipartListPartsQuery = z.input<typeof releaseMultipartListPartsQuerySchema>;
|
|
108
|
+
|
|
109
|
+
export const releaseMultipartPartSchema = z.object({
|
|
110
|
+
PartNumber: z.number().int().min(1).max(10_000),
|
|
111
|
+
ETag: nonEmptyString,
|
|
112
|
+
Size: z.number().int().nonnegative(),
|
|
113
|
+
});
|
|
114
|
+
export type ReleaseMultipartPart = z.infer<typeof releaseMultipartPartSchema>;
|
|
115
|
+
|
|
116
|
+
export const releaseMultipartListPartsResponseSchema = z.object({
|
|
117
|
+
parts: z.array(releaseMultipartPartSchema),
|
|
118
|
+
});
|
|
119
|
+
export type ReleaseMultipartListPartsResponse = z.infer<typeof releaseMultipartListPartsResponseSchema>;
|
|
120
|
+
|
|
121
|
+
export const releaseMultipartCompleteRequestSchema = z.object({
|
|
122
|
+
upload_id: releaseIdSchema,
|
|
123
|
+
parts: z
|
|
124
|
+
.array(
|
|
125
|
+
z.object({
|
|
126
|
+
PartNumber: z.number().int().min(1).max(10_000),
|
|
127
|
+
ETag: nonEmptyString,
|
|
128
|
+
})
|
|
129
|
+
)
|
|
130
|
+
.min(1),
|
|
131
|
+
});
|
|
132
|
+
export type ReleaseMultipartCompleteRequest = z.input<typeof releaseMultipartCompleteRequestSchema>;
|
|
133
|
+
|
|
134
|
+
export const releaseMultipartCompleteResponseSchema = releaseUploadCompleteResponseSchema;
|
|
135
|
+
export type ReleaseMultipartCompleteResponse = z.infer<typeof releaseMultipartCompleteResponseSchema>;
|
|
136
|
+
|
|
137
|
+
export const releaseMultipartAbortRequestSchema = z.object({
|
|
138
|
+
upload_id: releaseIdSchema,
|
|
139
|
+
});
|
|
140
|
+
export type ReleaseMultipartAbortRequest = z.input<typeof releaseMultipartAbortRequestSchema>;
|
|
141
|
+
|
|
142
|
+
export const releaseMultipartAbortResponseSchema = releaseUploadFailResponseSchema;
|
|
143
|
+
export type ReleaseMultipartAbortResponse = z.infer<typeof releaseMultipartAbortResponseSchema>;
|
|
144
|
+
|
|
67
145
|
// ─── List ───────────────────────────────────────────────────────────────────
|
|
68
146
|
|
|
69
147
|
export const releasesListQuerySchema = z.object({
|