@visulima/storage 1.0.0-alpha.8 → 1.0.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/CHANGELOG.md +578 -0
- package/LICENSE.md +237 -568
- package/README.md +82 -466
- package/dist/adapter/nuxt/module.d.ts +41 -34
- package/dist/adapter/nuxt/module.js +1 -93
- package/dist/adapter/nuxt/package.json +0 -6
- package/dist/ai/ai-sdk/index.d.ts +113 -0
- package/dist/ai/ai-sdk/index.js +1 -0
- package/dist/ai/claude/index.d.ts +177 -0
- package/dist/ai/claude/index.js +1 -0
- package/dist/ai/openai/index.d.ts +205 -0
- package/dist/ai/openai/index.js +1 -0
- package/dist/ai/tanstack/index.d.ts +115 -0
- package/dist/ai/tanstack/index.js +1 -0
- package/dist/handler/http/fetch/index.d.ts +303 -4
- package/dist/handler/http/fetch/index.js +1 -4
- package/dist/handler/http/hono/index.d.ts +73 -64
- package/dist/handler/http/hono/index.js +1 -65
- package/dist/handler/http/nextjs/index.d.ts +66 -58
- package/dist/handler/http/nextjs/index.js +1 -37
- package/dist/handler/http/node/index.d.ts +368 -4
- package/dist/handler/http/node/index.js +1 -8
- package/dist/handler/http/solid-start/index.d.ts +66 -57
- package/dist/handler/http/solid-start/index.js +1 -44
- package/dist/index.d.ts +106 -17
- package/dist/index.js +1 -13
- package/dist/openapi/index.d.ts +24 -5
- package/dist/openapi/index.js +1 -5
- package/dist/packem_shared/AbstractBaseStorage-Ba7cLu-t.js +1 -0
- package/dist/packem_shared/AwsLightFile-CpZrubaV.js +1 -0
- package/dist/packem_shared/AwsLightMetaStorage-DPqJ9LTr.js +1 -0
- package/dist/packem_shared/AwsLightStorage-DTBVxHXO.js +1 -0
- package/dist/packem_shared/AzureFile-DFSaVe25.js +1 -0
- package/dist/packem_shared/AzureSMetaStorage-ByzM6Aix.js +1 -0
- package/dist/packem_shared/AzureStorage-BFsD4qbF.js +1 -0
- package/dist/packem_shared/BaseTransformer-Buw5lX_3.js +1 -0
- package/dist/packem_shared/BoxFile-CseIoPW1.js +1 -0
- package/dist/packem_shared/BoxMetaStorage-DFwhEI9C.js +1 -0
- package/dist/packem_shared/BoxStorage-B_t-OVzf.js +1 -0
- package/dist/packem_shared/BunS3File-BcYmsz1n.js +1 -0
- package/dist/packem_shared/BunS3MetaStorage-DFwhEI9C.js +1 -0
- package/dist/packem_shared/BunS3Storage-CB_pZWlV.js +1 -0
- package/dist/packem_shared/BunnyFile-BgEOlcYI.js +1 -0
- package/dist/packem_shared/BunnyMetaStorage-DFwhEI9C.js +1 -0
- package/dist/packem_shared/BunnyStorage-CILSK4_Z.js +1 -0
- package/dist/packem_shared/CloudinaryFile-Bo5B-vM1.js +1 -0
- package/dist/packem_shared/CloudinaryMetaStorage-D_vNzewL.js +1 -0
- package/dist/packem_shared/CloudinaryStorage-DiCbdAi_.js +1 -0
- package/dist/packem_shared/DiskStorage-Kp5t3vnF.js +1 -0
- package/dist/packem_shared/DiskStorageWithChecksum-Bh6w-Iu8.js +1 -0
- package/dist/packem_shared/DropboxFile-BFb7eOzy.js +1 -0
- package/dist/packem_shared/DropboxMetaStorage-DFwhEI9C.js +1 -0
- package/dist/packem_shared/DropboxStorage-H8bd8hEz.js +1 -0
- package/dist/packem_shared/ERRORS-BIBxE2oR.js +1 -0
- package/dist/packem_shared/File-W8aOo15X.js +1 -0
- package/dist/packem_shared/Files-BA3mpDwz.js +1 -0
- package/dist/packem_shared/FirebaseFile-BLaBxa2A.js +1 -0
- package/dist/packem_shared/FirebaseMetaStorage-D_vNzewL.js +1 -0
- package/dist/packem_shared/FirebaseStorage-Dgk4XyMr.js +2 -0
- package/dist/packem_shared/FtpFile-ClWDYnt2.js +1 -0
- package/dist/packem_shared/FtpMetaStorage-DFwhEI9C.js +1 -0
- package/dist/packem_shared/FtpStorage-g_DjiR-C.js +1 -0
- package/dist/packem_shared/GCSConfig-BQ0OpVhe.js +1 -0
- package/dist/packem_shared/GCSFile-Cero7qZN.js +1 -0
- package/dist/packem_shared/GCSMetaStorage-3fLTlRd4.js +1 -0
- package/dist/packem_shared/GCStorage-DUfwVFd3.js +1 -0
- package/dist/packem_shared/GoogleDriveFile-DHpLhzg9.js +1 -0
- package/dist/packem_shared/GoogleDriveMetaStorage-DqkgoE46.js +1 -0
- package/dist/packem_shared/GoogleDriveStorage-D0-5egHE.js +1 -0
- package/dist/packem_shared/LocalMetaStorage-Bp5mVc76.js +1 -0
- package/dist/packem_shared/MediaTransformer-D2kUsklW.js +1 -0
- package/dist/packem_shared/MemoryMetaStorage-Ksgh9pe7.js +1 -0
- package/dist/packem_shared/MemoryStorage-DzSTdlAq.js +1 -0
- package/dist/packem_shared/MetaStorage-DPEUyWgN.js +1 -0
- package/dist/packem_shared/Metadata-B7CcBueg.js +1 -0
- package/dist/packem_shared/Multipart-Btj2mo9r.js +1 -0
- package/dist/packem_shared/Multipart-C4GpuHMU.js +1 -0
- package/dist/packem_shared/NetlifyBlobFile-DoFhkzaH.js +1 -0
- package/dist/packem_shared/NetlifyBlobMetaStorage-D_vNzewL.js +1 -0
- package/dist/packem_shared/NetlifyBlobStorage-DZdCmOVW.js +1 -0
- package/dist/packem_shared/NoOpMetrics-BLo6u4NY.js +1 -0
- package/dist/packem_shared/OneDriveFile-CNNJYI43.js +1 -0
- package/dist/packem_shared/OneDriveMetaStorage-DqkgoE46.js +1 -0
- package/dist/packem_shared/OneDriveStorage-CvJetV7_.js +1 -0
- package/dist/packem_shared/OpenTelemetryMetrics-DJDQsNKp.js +1 -0
- package/dist/packem_shared/PocketBaseFile-DpJpxl3e.js +1 -0
- package/dist/packem_shared/PocketBaseMetaStorage-CpvDRnSu.js +1 -0
- package/dist/packem_shared/PocketBaseStorage-BPil-koe.js +1 -0
- package/dist/packem_shared/Rest-BehVaxbl.js +1 -0
- package/dist/packem_shared/Rest-ymPCZkKR.js +1 -0
- package/dist/packem_shared/S3File-CpZrubaV.js +1 -0
- package/dist/packem_shared/S3MetaStorage-CMonflzp.js +1 -0
- package/dist/packem_shared/S3Storage-wslqssvr.js +1 -0
- package/dist/packem_shared/SftpFile-ClWDYnt2.js +1 -0
- package/dist/packem_shared/SftpMetaStorage-DFwhEI9C.js +1 -0
- package/dist/packem_shared/SftpStorage-BVbMtS2b.js +1 -0
- package/dist/packem_shared/SharePointFile-Blz9FS4h.js +1 -0
- package/dist/packem_shared/SharePointMetaStorage-DFwhEI9C.js +1 -0
- package/dist/packem_shared/SharePointStorage-DWjvR5oZ.js +1 -0
- package/dist/packem_shared/SupabaseFile-Bo5B-vM1.js +1 -0
- package/dist/packem_shared/SupabaseMetaStorage-DqkgoE46.js +1 -0
- package/dist/packem_shared/SupabaseStorage-BiKmYKb6.js +1 -0
- package/dist/packem_shared/TUS_RESUMABLE-CyTSRvPU.js +1 -0
- package/dist/packem_shared/Tus-BgbON_wQ.js +1 -0
- package/dist/packem_shared/Tus-v6jzkaIO.js +1 -0
- package/dist/packem_shared/UploadControl-DZJhI9Wh.js +1 -0
- package/dist/packem_shared/UploadThingFile-BTFMpcIA.js +1 -0
- package/dist/packem_shared/UploadThingMetaStorage-D_vNzewL.js +1 -0
- package/dist/packem_shared/UploadThingStorage-jrEnANC5.js +1 -0
- package/dist/packem_shared/ValidationError-3B06DFyE.js +1 -0
- package/dist/packem_shared/VercelBlobFile-CVQwKlZk.js +1 -0
- package/dist/packem_shared/VercelBlobMetaStorage-DFwhEI9C.js +1 -0
- package/dist/packem_shared/VercelBlobStorage-Y-cDgH30.js +1 -0
- package/dist/packem_shared/_commonjsHelpers-CWAkuNXM.js +1 -0
- package/dist/packem_shared/agentsCopyFile-Dl5iffdH.js +1 -0
- package/dist/packem_shared/akamai-DthkaFul.js +1 -0
- package/dist/packem_shared/alibaba-BEi25O1g.js +1 -0
- package/dist/packem_shared/approval-fVHwBp7u.js +1 -0
- package/dist/packem_shared/approval.d-CMAYH9GF.d.ts +75 -0
- package/dist/packem_shared/aws-light-meta-storage-DGrn72VJ.js +4 -0
- package/dist/packem_shared/azure-meta-storage-ClbEsfI4.js +1 -0
- package/dist/packem_shared/backblaze-m1N5NZ9q.js +1 -0
- package/dist/packem_shared/base-handler-core-EeV8gZck.js +1 -0
- package/dist/packem_shared/base-handler-fetch-CHzsgb7C.js +1 -0
- package/dist/packem_shared/base-handler-node-BjpW8pGi.js +1 -0
- package/dist/packem_shared/cache-Cw3QjoVN.js +1 -0
- package/dist/packem_shared/claudeCopyFile-BX9O4ORk.js +1 -0
- package/dist/packem_shared/cloudflare-CdUTErlo.js +1 -0
- package/dist/packem_shared/copyFile-49FtxXcm.js +1 -0
- package/dist/packem_shared/copyFile-BUPezT_c.js +1 -0
- package/dist/packem_shared/createResponsesFileTools-6Tvt2PNr.js +1 -0
- package/dist/packem_shared/createRetryWrapper-CxgiV_hH.js +1 -0
- package/dist/packem_shared/detect-file-type-BA7UBLKA.js +1 -0
- package/dist/packem_shared/digitalOcean-B2uB6pgz.js +1 -0
- package/dist/packem_shared/disk-storage-DIn-VnCh.js +1 -0
- package/dist/packem_shared/disk-storage-with-checksum.d-B-VGEsfl.d.ts +156 -0
- package/dist/packem_shared/executors-BDzMjc4y.js +1 -0
- package/dist/packem_shared/executors.d-BZP2rWo3.d.ts +69 -0
- package/dist/packem_shared/exoscale-BDa1Gjth.js +1 -0
- package/dist/packem_shared/filebase-CsFYJIwB.js +1 -0
- package/dist/packem_shared/files.d-CH0iLBNC.d.ts +655 -0
- package/dist/packem_shared/gcs-meta-storage-Dy37wCjI.js +1 -0
- package/dist/packem_shared/get-file-status-y3wTtDQs.js +1 -0
- package/dist/packem_shared/getFormatFromContentType-DCTTPQHm.js +1 -0
- package/dist/packem_shared/has-content-50BsqrWw.js +1 -0
- package/dist/packem_shared/headers-BAiAKekR.js +26 -0
- package/dist/packem_shared/hetzner-BGGFiRGD.js +1 -0
- package/dist/packem_shared/ibmCos-j-3TfJ5p.js +1 -0
- package/dist/packem_shared/idriveE2-C6pQ5pQ0.js +1 -0
- package/dist/packem_shared/index-nZWCQrSe.js +5 -0
- package/dist/packem_shared/internal-D_cZIFwI.js +1 -0
- package/dist/packem_shared/is-expired-CBEk6XBi.js +1 -0
- package/dist/packem_shared/local-meta-storage-C2T92TYb.js +11 -0
- package/dist/packem_shared/local-meta-storage.d-D9PBfkn6.d.ts +21 -0
- package/dist/packem_shared/media-transformer.d-Quf4ai47.d.ts +331 -0
- package/dist/packem_shared/memory-storage.d-4EU1cMt1.d.ts +101 -0
- package/dist/packem_shared/minio-NKquuBfS.js +1 -0
- package/dist/packem_shared/multipart-base-BOzY19lb.js +1 -0
- package/dist/packem_shared/oauth-refresh-EdGzlcOZ.js +1 -0
- package/dist/packem_shared/oracleCloud-DslqNpn6.js +1 -0
- package/dist/packem_shared/ovhCloud-CMHE6uLV.js +1 -0
- package/dist/packem_shared/part-match-D-9dGX42.js +1 -0
- package/dist/packem_shared/path-0oTTdkvl-BVg7lYf5.js +1 -0
- package/dist/packem_shared/posix-dirname-CfpH5wZi.js +1 -0
- package/dist/packem_shared/response-builder-CbSA8qPa.js +1 -0
- package/dist/packem_shared/rest-base-CynUg0mH.js +1 -0
- package/dist/packem_shared/restOpenApiSpec-Csv513qf.js +1 -0
- package/dist/packem_shared/s3-base-storage-DXZYN24h.js +1 -0
- package/dist/packem_shared/s3-base-storage.d-BQgP5B-t.d.ts +287 -0
- package/dist/packem_shared/scaleway-U1In3v70.js +1 -0
- package/dist/packem_shared/sharedErrorSchemaObject-YN65aAKj.js +1 -0
- package/dist/packem_shared/storage-Cyy73Y6r.js +1 -0
- package/dist/packem_shared/storage.d-CEM1upWM.d.ts +1176 -0
- package/dist/packem_shared/storj-Cb59q9kF.js +1 -0
- package/dist/packem_shared/sync-DhR3536K.js +1 -0
- package/dist/packem_shared/tencent-Q1y2GENc.js +1 -0
- package/dist/packem_shared/tigris-BELKoyyp.js +1 -0
- package/dist/packem_shared/transformOpenApiSpec-CIEAgpBD.js +1 -0
- package/dist/packem_shared/tus-base.d-DLzKE54M.d.ts +106 -0
- package/dist/packem_shared/tusOpenApiSpec-D96B03t5.js +1 -0
- package/dist/packem_shared/types.d-Bon9GVVe.d.ts +104 -0
- package/dist/packem_shared/types.d-CggTCgXr.d.ts +49 -0
- package/dist/packem_shared/types.d-CrUWY4On.d.ts +720 -0
- package/dist/packem_shared/update-size-DuNuLyxj.js +1 -0
- package/dist/packem_shared/vultr-B491cQ4e.js +1 -0
- package/dist/packem_shared/waitForStorage-ByQmG4xF.js +1 -0
- package/dist/packem_shared/wasabi-DFrwIoab.js +1 -0
- package/dist/packem_shared/xhrOpenApiSpec-DQR4h6M8.js +1 -0
- package/dist/packem_shared/yandex-CwzHuEKP.js +1 -0
- package/dist/storage/aws/clients/index.d.ts +612 -6
- package/dist/storage/aws/clients/index.js +1 -6
- package/dist/storage/aws/index.d.ts +332 -4
- package/dist/storage/aws/index.js +1 -3
- package/dist/storage/aws-light/index.d.ts +259 -4
- package/dist/storage/aws-light/index.js +1 -3
- package/dist/storage/azure/index.d.ts +236 -4
- package/dist/storage/azure/index.js +1 -3
- package/dist/storage/box/index.d.ts +189 -0
- package/dist/storage/box/index.js +1 -0
- package/dist/storage/bun-s3/index.d.ts +200 -0
- package/dist/storage/bun-s3/index.js +1 -0
- package/dist/storage/bunny/index.d.ts +119 -0
- package/dist/storage/bunny/index.js +1 -0
- package/dist/storage/cloudinary/index.d.ts +121 -0
- package/dist/storage/cloudinary/index.js +1 -0
- package/dist/storage/dropbox/index.d.ts +132 -0
- package/dist/storage/dropbox/index.js +1 -0
- package/dist/storage/firebase/index.d.ts +192 -0
- package/dist/storage/firebase/index.js +1 -0
- package/dist/storage/ftp/index.d.ts +91 -0
- package/dist/storage/ftp/index.js +1 -0
- package/dist/storage/gcs/index.d.ts +195 -5
- package/dist/storage/gcs/index.js +1 -4
- package/dist/storage/google-drive/index.d.ts +148 -0
- package/dist/storage/google-drive/index.js +1 -0
- package/dist/storage/local/index.d.ts +7 -4
- package/dist/storage/local/index.js +1 -3
- package/dist/storage/memory/index.d.ts +6 -0
- package/dist/storage/memory/index.js +1 -0
- package/dist/storage/netlify-blob/index.d.ts +147 -4
- package/dist/storage/netlify-blob/index.js +1 -3
- package/dist/storage/onedrive/index.d.ts +103 -0
- package/dist/storage/onedrive/index.js +1 -0
- package/dist/storage/pocketbase/index.d.ts +172 -0
- package/dist/storage/pocketbase/index.js +1 -0
- package/dist/storage/sftp/index.d.ts +92 -0
- package/dist/storage/sftp/index.js +1 -0
- package/dist/storage/sharepoint/index.d.ts +180 -0
- package/dist/storage/sharepoint/index.js +1 -0
- package/dist/storage/supabase/index.d.ts +115 -0
- package/dist/storage/supabase/index.js +1 -0
- package/dist/storage/uploadthing/index.d.ts +95 -0
- package/dist/storage/uploadthing/index.js +1 -0
- package/dist/storage/vercel-blob/index.d.ts +189 -4
- package/dist/storage/vercel-blob/index.js +1 -3
- package/dist/transformer/audio-transformer.d.ts +127 -125
- package/dist/transformer/audio-transformer.js +1 -278
- package/dist/transformer/image-transformer.d.ts +573 -568
- package/dist/transformer/image-transformer.js +1 -1100
- package/dist/transformer/index.d.ts +62 -5
- package/dist/transformer/index.js +1 -4
- package/dist/transformer/video-transformer.d.ts +144 -142
- package/dist/transformer/video-transformer.js +1 -310
- package/package.json +202 -50
- package/dist/handler/base/base-handler-core.d.ts +0 -91
- package/dist/handler/base/base-handler-fetch.d.ts +0 -76
- package/dist/handler/base/base-handler-node.d.ts +0 -137
- package/dist/handler/multipart/multipart-base.d.ts +0 -84
- package/dist/handler/multipart/multipart-fetch.d.ts +0 -64
- package/dist/handler/multipart/multipart.d.ts +0 -49
- package/dist/handler/rest/rest-base.d.ts +0 -106
- package/dist/handler/rest/rest-fetch.d.ts +0 -88
- package/dist/handler/rest/rest.d.ts +0 -93
- package/dist/handler/tus/tus-base.d.ts +0 -152
- package/dist/handler/tus/tus-fetch.d.ts +0 -72
- package/dist/handler/tus/tus.d.ts +0 -78
- package/dist/handler/types.d.ts +0 -53
- package/dist/handler/utils/request-parser.d.ts +0 -72
- package/dist/handler/utils/response-builder.d.ts +0 -83
- package/dist/handler/utils/storage-utils.d.ts +0 -10
- package/dist/handler/utils/stream-utils.d.ts +0 -29
- package/dist/handler/utils/upload-handlers.d.ts +0 -76
- package/dist/metrics/index.d.ts +0 -2
- package/dist/metrics/no-op-metrics.d.ts +0 -15
- package/dist/metrics/opentelemetry-metrics.d.ts +0 -55
- package/dist/openapi/rest.d.ts +0 -7
- package/dist/openapi/shared.d.ts +0 -13
- package/dist/openapi/transform.d.ts +0 -3
- package/dist/openapi/tus.d.ts +0 -7
- package/dist/openapi/xhr.d.ts +0 -7
- package/dist/packem_shared/AwsLightFile-tTneXZgG.js +0 -11
- package/dist/packem_shared/AwsLightMetaStorage-BWSOtVaN.js +0 -4
- package/dist/packem_shared/AwsLightStorage-Blv-GP4v.js +0 -133
- package/dist/packem_shared/AzureFile-CesgFzps.js +0 -8
- package/dist/packem_shared/AzureSMetaStorage-CFs-OYJT.js +0 -88
- package/dist/packem_shared/AzureStorage-B0v048hG.js +0 -357
- package/dist/packem_shared/BaseTransformer-C2gLib6v.js +0 -82
- package/dist/packem_shared/DiskStorage-BlltBst6.js +0 -12
- package/dist/packem_shared/DiskStorageWithChecksum-BJTmMklc.js +0 -238
- package/dist/packem_shared/ERRORS-D0apMqnc.js +0 -97
- package/dist/packem_shared/File-Bb3P23dr.js +0 -69
- package/dist/packem_shared/GCSConfig-vPP22kN6.js +0 -11
- package/dist/packem_shared/GCSFile-BIEunhAN.js +0 -8
- package/dist/packem_shared/GCSMetaStorage-BYhwecZl.js +0 -7
- package/dist/packem_shared/GCStorage-BmnoK7Rz.js +0 -406
- package/dist/packem_shared/LocalMetaStorage-CZHhKkMd.js +0 -7
- package/dist/packem_shared/MediaTransformer-D6658DL1.js +0 -1197
- package/dist/packem_shared/MetaStorage-pECeFOad.js +0 -46
- package/dist/packem_shared/Metadata-DRLXeJ0F.js +0 -89
- package/dist/packem_shared/Multipart-5Xpy7WhY.js +0 -163
- package/dist/packem_shared/Multipart-C-iU9LXj.js +0 -128
- package/dist/packem_shared/NetlifyBlobFile-CXzyjqrD.js +0 -14
- package/dist/packem_shared/NetlifyBlobMetaStorage-DxZ5aDvD.js +0 -9
- package/dist/packem_shared/NetlifyBlobStorage-CLPtjHqd.js +0 -376
- package/dist/packem_shared/NoOpMetrics-DhAk5rXc.js +0 -10
- package/dist/packem_shared/OpenTelemetryMetrics-BnxhqIaH.js +0 -67
- package/dist/packem_shared/Rest-DO7OslCs.js +0 -267
- package/dist/packem_shared/Rest-DTaszQ6n.js +0 -228
- package/dist/packem_shared/S3File-DZiyk9Qt.js +0 -11
- package/dist/packem_shared/S3MetaStorage-Dz9aDabA.js +0 -76
- package/dist/packem_shared/S3Storage-DHmTk-hU.js +0 -316
- package/dist/packem_shared/TUS_RESUMABLE-BfguFdM1.js +0 -434
- package/dist/packem_shared/Tus-BQItPVAC.js +0 -200
- package/dist/packem_shared/Tus-BibjweWH.js +0 -195
- package/dist/packem_shared/ValidationError-BfF1aE4h.js +0 -26
- package/dist/packem_shared/VercelBlobFile-BCg4aTEq.js +0 -18
- package/dist/packem_shared/VercelBlobMetaStorage-Bd9F-VFm.js +0 -9
- package/dist/packem_shared/VercelBlobStorage-DD9LMOS6.js +0 -261
- package/dist/packem_shared/_commonjsHelpers-B85MJLTf.js +0 -5
- package/dist/packem_shared/aws-light-meta-storage-DKJBgbR6.js +0 -446
- package/dist/packem_shared/backblaze-BlMnIcBC.js +0 -20
- package/dist/packem_shared/base-handler-core-DLEVHemv.js +0 -303
- package/dist/packem_shared/base-handler-fetch-A7V0N6AJ.js +0 -291
- package/dist/packem_shared/base-handler-node-Dx7ce3sU.js +0 -730
- package/dist/packem_shared/cache-B88MXQ_2.js +0 -18
- package/dist/packem_shared/cloudflare-Bi1q8wXE.js +0 -21
- package/dist/packem_shared/defaultCloudStorageFileNameValidation-DUuacjWv.js +0 -11
- package/dist/packem_shared/digitalOcean-CWQRJM3L.js +0 -21
- package/dist/packem_shared/disk-storage-Bh2wy3YW.js +0 -810
- package/dist/packem_shared/gcs-meta-storage-DqNjM7DP.js +0 -158
- package/dist/packem_shared/has-content-CY66ehMK.js +0 -3
- package/dist/packem_shared/headers-C9DasoT1.js +0 -1318
- package/dist/packem_shared/is-expired-CTThU1q5.js +0 -8
- package/dist/packem_shared/isRetryableError-Dycp7127.js +0 -82
- package/dist/packem_shared/isValidMediaType-BeDgiObq.js +0 -35
- package/dist/packem_shared/local-meta-storage-By-3SNBI.js +0 -649
- package/dist/packem_shared/minio-C2YBZQOw.js +0 -22
- package/dist/packem_shared/multipart-base-BY0rhkw5.js +0 -102
- package/dist/packem_shared/part-match-BMNqHDYD.js +0 -96
- package/dist/packem_shared/path-CR6YkPXX-7R1-9CMk.js +0 -161
- package/dist/packem_shared/response-builder-BtnRiBUI.js +0 -45
- package/dist/packem_shared/rest-base-Bt9Np3M8.js +0 -457
- package/dist/packem_shared/restOpenApiSpec-D1JC_Jto.js +0 -800
- package/dist/packem_shared/s3-base-storage-C1DIHTYY.js +0 -510
- package/dist/packem_shared/sharedGet-Cpo7QUyu.js +0 -1019
- package/dist/packem_shared/storage-C6NSXb8h.js +0 -1175
- package/dist/packem_shared/tigris-Hac8TKnX.js +0 -21
- package/dist/packem_shared/transformOpenApiSpec-DWM5WtnN.js +0 -975
- package/dist/packem_shared/tusOpenApiSpec-mBZkl7he.js +0 -740
- package/dist/packem_shared/update-size-CCGm6i1J.js +0 -8
- package/dist/packem_shared/validator-BeX_lJet.js +0 -78
- package/dist/packem_shared/waitForStorage-Cscw85sx.js +0 -18
- package/dist/packem_shared/wasabi-DIyflHSd.js +0 -21
- package/dist/packem_shared/xhrOpenApiSpec-B1V5Dxrj.js +0 -264
- package/dist/storage/aws/clients/backblaze.d.ts +0 -12
- package/dist/storage/aws/clients/cloudflare.d.ts +0 -13
- package/dist/storage/aws/clients/digital-ocean.d.ts +0 -12
- package/dist/storage/aws/clients/minio.d.ts +0 -13
- package/dist/storage/aws/clients/tigris.d.ts +0 -12
- package/dist/storage/aws/clients/types.d.ts +0 -95
- package/dist/storage/aws/clients/wasabi.d.ts +0 -12
- package/dist/storage/aws/s3-base-storage.d.ts +0 -248
- package/dist/storage/aws/s3-client-adapter.d.ts +0 -110
- package/dist/storage/aws/s3-file.d.ts +0 -10
- package/dist/storage/aws/s3-meta-storage.d.ts +0 -15
- package/dist/storage/aws/s3-storage.d.ts +0 -70
- package/dist/storage/aws/types.d.ts +0 -119
- package/dist/storage/aws-light/aws-light-api-adapter.d.ts +0 -130
- package/dist/storage/aws-light/aws-light-file.d.ts +0 -10
- package/dist/storage/aws-light/aws-light-meta-storage.d.ts +0 -19
- package/dist/storage/aws-light/aws-light-storage.d.ts +0 -65
- package/dist/storage/aws-light/types.d.ts +0 -37
- package/dist/storage/azure/azure-file.d.ts +0 -6
- package/dist/storage/azure/azure-meta-storage.d.ts +0 -15
- package/dist/storage/azure/azure-storage.d.ts +0 -69
- package/dist/storage/azure/types.d.ts +0 -62
- package/dist/storage/gcs/fetch-error.d.ts +0 -11
- package/dist/storage/gcs/gcs-config.d.ts +0 -2
- package/dist/storage/gcs/gcs-file.d.ts +0 -6
- package/dist/storage/gcs/gcs-meta-storage.d.ts +0 -27
- package/dist/storage/gcs/gcs-storage.d.ts +0 -91
- package/dist/storage/gcs/types.d.ts +0 -55
- package/dist/storage/gcs/utils.d.ts +0 -7
- package/dist/storage/local/disk-storage-with-checksum.d.ts +0 -15
- package/dist/storage/local/disk-storage.d.ts +0 -135
- package/dist/storage/local/local-meta-storage.d.ts +0 -32
- package/dist/storage/meta-storage.d.ts +0 -30
- package/dist/storage/netlify-blob/netlify-blob-file.d.ts +0 -12
- package/dist/storage/netlify-blob/netlify-blob-meta-storage.d.ts +0 -7
- package/dist/storage/netlify-blob/netlify-blob-storage.d.ts +0 -93
- package/dist/storage/netlify-blob/types.d.ts +0 -30
- package/dist/storage/storage.d.ts +0 -353
- package/dist/storage/types.d.ts +0 -221
- package/dist/storage/utils/file/file.d.ts +0 -25
- package/dist/storage/utils/file/get-file-status.d.ts +0 -9
- package/dist/storage/utils/file/has-content.d.ts +0 -9
- package/dist/storage/utils/file/index.d.ts +0 -10
- package/dist/storage/utils/file/is-expired.d.ts +0 -8
- package/dist/storage/utils/file/metadata.d.ts +0 -18
- package/dist/storage/utils/file/part-match.d.ts +0 -11
- package/dist/storage/utils/file/types.d.ts +0 -37
- package/dist/storage/utils/file/update-metadata.d.ts +0 -10
- package/dist/storage/utils/file/update-size.d.ts +0 -10
- package/dist/storage/vercel-blob/types.d.ts +0 -32
- package/dist/storage/vercel-blob/vercel-blob-file.d.ts +0 -16
- package/dist/storage/vercel-blob/vercel-blob-meta-storage.d.ts +0 -7
- package/dist/storage/vercel-blob/vercel-blob-storage.d.ts +0 -76
- package/dist/transformer/base-transformer.d.ts +0 -63
- package/dist/transformer/media-transformer.d.ts +0 -332
- package/dist/transformer/types.d.ts +0 -652
- package/dist/transformer/utils.d.ts +0 -33
- package/dist/transformer/validation-error.d.ts +0 -23
- package/dist/utils/cache.d.ts +0 -32
- package/dist/utils/chunked-upload.d.ts +0 -65
- package/dist/utils/detect-file-type.d.ts +0 -28
- package/dist/utils/errors.d.ts +0 -74
- package/dist/utils/file-path-url-matcher.d.ts +0 -18
- package/dist/utils/headers.d.ts +0 -111
- package/dist/utils/http.d.ts +0 -92
- package/dist/utils/locker.d.ts +0 -26
- package/dist/utils/pipes/stream-checksum.d.ts +0 -47
- package/dist/utils/pipes/stream-length.d.ts +0 -22
- package/dist/utils/primitives/get-last-one.d.ts +0 -3
- package/dist/utils/primitives/is-record.d.ts +0 -2
- package/dist/utils/primitives/map-values.d.ts +0 -9
- package/dist/utils/primitives/pick.d.ts +0 -2
- package/dist/utils/primitives/to-milliseconds.d.ts +0 -12
- package/dist/utils/primitives/to-seconds.d.ts +0 -12
- package/dist/utils/range-checksum.d.ts +0 -33
- package/dist/utils/range-hasher.d.ts +0 -46
- package/dist/utils/retry.d.ts +0 -64
- package/dist/utils/types.d.ts +0 -108
- package/dist/utils/validation-error.d.ts +0 -22
- package/dist/utils/validator.d.ts +0 -36
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import type { UploadFile } from "../../storage/utils/index.d.ts";
|
|
2
|
-
import BaseHandlerFetch from "../base/base-handler-fetch.d.ts";
|
|
3
|
-
import type { Handlers, ResponseFile, ResponseList, UploadOptions } from "../types.d.ts";
|
|
4
|
-
/**
|
|
5
|
-
* REST API handler for direct binary file uploads (Web API Fetch version).
|
|
6
|
-
*
|
|
7
|
-
* This handler provides a clean REST interface for file operations using Web API Request/Response:
|
|
8
|
-
* - POST: Create a new file with raw binary data or initialize chunked upload
|
|
9
|
-
* - PUT: Create or update a file (requires ID in URL)
|
|
10
|
-
* - PATCH: Upload chunks for chunked uploads (requires ID in URL)
|
|
11
|
-
* - GET: Retrieve a file or list files
|
|
12
|
-
* - DELETE: Delete a file (single) or multiple files (via ?ids=id1,id2 or JSON body)
|
|
13
|
-
* - HEAD: Get file metadata and upload progress
|
|
14
|
-
* - OPTIONS: CORS preflight
|
|
15
|
-
* @example
|
|
16
|
-
* ```ts
|
|
17
|
-
* const rest = new RestFetch({
|
|
18
|
-
* storage,
|
|
19
|
-
* });
|
|
20
|
-
*
|
|
21
|
-
* // Use with Hono, Cloudflare Workers, etc.
|
|
22
|
-
* app.all('/files/*', async (c) => {
|
|
23
|
-
* return rest.fetch(c.req.raw);
|
|
24
|
-
* });
|
|
25
|
-
* ```
|
|
26
|
-
*/
|
|
27
|
-
declare class RestFetch<TFile extends UploadFile> extends BaseHandlerFetch<TFile> {
|
|
28
|
-
/**
|
|
29
|
-
* Limiting enabled http method handler
|
|
30
|
-
*/
|
|
31
|
-
static readonly methods: Handlers[];
|
|
32
|
-
private readonly restBase;
|
|
33
|
-
constructor(options: UploadOptions<TFile>);
|
|
34
|
-
/**
|
|
35
|
-
* Compose and register HTTP method handlers.
|
|
36
|
-
*/
|
|
37
|
-
protected compose(): void;
|
|
38
|
-
/**
|
|
39
|
-
* Creates a new file via POST request with raw binary data.
|
|
40
|
-
* Supports both full file uploads and chunked upload initialization.
|
|
41
|
-
* @param request Web API Request with file data.
|
|
42
|
-
* @returns Promise resolving to ResponseFile with upload result.
|
|
43
|
-
*/
|
|
44
|
-
post(request: Request): Promise<ResponseFile<TFile>>;
|
|
45
|
-
/**
|
|
46
|
-
* Create or update a file via PUT request.
|
|
47
|
-
* Requires file ID in the URL path.
|
|
48
|
-
* @param request Web API Request with file ID and data
|
|
49
|
-
* @returns Promise resolving to ResponseFile with upload result
|
|
50
|
-
*/
|
|
51
|
-
put(request: Request): Promise<ResponseFile<TFile>>;
|
|
52
|
-
/**
|
|
53
|
-
* Delete an uploaded file or multiple files.
|
|
54
|
-
* Supports single file (ID in URL) or batch delete (via ?ids=id1,id2 or JSON body).
|
|
55
|
-
* @param request Web API Request with file ID(s)
|
|
56
|
-
* @returns Promise resolving to ResponseFile (single) or ResponseList (batch) with deletion result
|
|
57
|
-
*/
|
|
58
|
-
delete(request: Request): Promise<ResponseFile<TFile> | ResponseList<TFile>>;
|
|
59
|
-
/**
|
|
60
|
-
* Uploads a chunk via PATCH request for chunked uploads.
|
|
61
|
-
* Headers required: X-Chunk-Offset (byte offset), Content-Length (chunk size).
|
|
62
|
-
* Optional: X-Chunk-Checksum (SHA256 checksum for validation).
|
|
63
|
-
* @param request Web API Request with chunk data.
|
|
64
|
-
* @returns Promise resolving to ResponseFile with upload progress.
|
|
65
|
-
*/
|
|
66
|
-
patch(request: Request): Promise<ResponseFile<TFile>>;
|
|
67
|
-
/**
|
|
68
|
-
* Get file metadata via HEAD request.
|
|
69
|
-
* For chunked uploads, also returns upload progress information.
|
|
70
|
-
* @param request Web API Request with file ID
|
|
71
|
-
* @returns Promise resolving to ResponseFile with metadata headers
|
|
72
|
-
*/
|
|
73
|
-
head(request: Request): Promise<ResponseFile<TFile>>;
|
|
74
|
-
/**
|
|
75
|
-
* Handle OPTIONS requests with REST API capabilities.
|
|
76
|
-
* @param _request Web API Request
|
|
77
|
-
* @returns Promise resolving to ResponseFile with CORS headers
|
|
78
|
-
*/
|
|
79
|
-
options(_request: Request): Promise<ResponseFile<TFile>>;
|
|
80
|
-
/**
|
|
81
|
-
* Retrieves a file or list of files based on the request path.
|
|
82
|
-
* Delegates to BaseHandlerFetch.fetch() method.
|
|
83
|
-
* @param _request Web API Request
|
|
84
|
-
* @returns Promise resolving to Web API Response
|
|
85
|
-
*/
|
|
86
|
-
get(_request: Request): Promise<ResponseFile<TFile> | ResponseList<TFile>>;
|
|
87
|
-
}
|
|
88
|
-
export default RestFetch;
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import type { IncomingMessage, ServerResponse } from "node:http";
|
|
2
|
-
import type { UploadFile } from "../../storage/utils/index.d.ts";
|
|
3
|
-
import BaseHandlerNode from "../base/base-handler-node.d.ts";
|
|
4
|
-
import type { Handlers, ResponseFile, ResponseList, UploadOptions } from "../types.d.ts";
|
|
5
|
-
/**
|
|
6
|
-
* REST API handler for direct binary file uploads (Node.js version).
|
|
7
|
-
*
|
|
8
|
-
* This handler provides a clean REST interface for file operations:
|
|
9
|
-
* - POST: Create a new file with raw binary data or initialize chunked upload
|
|
10
|
-
* - PUT: Create or update a file (requires ID in URL)
|
|
11
|
-
* - PATCH: Upload chunks for chunked uploads (requires ID in URL)
|
|
12
|
-
* - GET: Retrieve a file or list files
|
|
13
|
-
* - DELETE: Delete a file (single) or multiple files (via ?ids=id1,id2 or JSON body)
|
|
14
|
-
* - HEAD: Get file metadata and upload progress
|
|
15
|
-
* - OPTIONS: CORS preflight
|
|
16
|
-
* @example
|
|
17
|
-
* ```ts
|
|
18
|
-
* const rest = new Rest({
|
|
19
|
-
* storage,
|
|
20
|
-
* });
|
|
21
|
-
*
|
|
22
|
-
* app.use('/files', rest.handle);
|
|
23
|
-
* ```
|
|
24
|
-
*/
|
|
25
|
-
declare class Rest<TFile extends UploadFile, NodeRequest extends IncomingMessage = IncomingMessage, NodeResponse extends ServerResponse = ServerResponse> extends BaseHandlerNode<TFile, NodeRequest, NodeResponse> {
|
|
26
|
-
/**
|
|
27
|
-
* Limiting enabled http method handler
|
|
28
|
-
*/
|
|
29
|
-
static readonly methods: Handlers[];
|
|
30
|
-
private readonly restBase;
|
|
31
|
-
constructor(options: UploadOptions<TFile>);
|
|
32
|
-
/**
|
|
33
|
-
* Compose and register HTTP method handlers.
|
|
34
|
-
*/
|
|
35
|
-
protected compose(): void;
|
|
36
|
-
/**
|
|
37
|
-
* Build file URL from request and file data.
|
|
38
|
-
* @param requestUrl Request URL string
|
|
39
|
-
* @param file File object containing ID and content type
|
|
40
|
-
* @returns Constructed file URL with extension based on content type
|
|
41
|
-
*/
|
|
42
|
-
protected buildFileUrlForRest(requestUrl: string, file: TFile): string;
|
|
43
|
-
/**
|
|
44
|
-
* Creates a new file via POST request with raw binary data.
|
|
45
|
-
* Supports both full file uploads and chunked upload initialization.
|
|
46
|
-
* @param request Node.js IncomingMessage with file data.
|
|
47
|
-
* @returns Promise resolving to ResponseFile with upload result.
|
|
48
|
-
*/
|
|
49
|
-
post(request: NodeRequest): Promise<ResponseFile<TFile>>;
|
|
50
|
-
/**
|
|
51
|
-
* Create or update a file via PUT request.
|
|
52
|
-
* Requires file ID in the URL path.
|
|
53
|
-
* @param request Node.js IncomingMessage with file ID and data
|
|
54
|
-
* @returns Promise resolving to ResponseFile with upload result
|
|
55
|
-
*/
|
|
56
|
-
put(request: NodeRequest): Promise<ResponseFile<TFile>>;
|
|
57
|
-
/**
|
|
58
|
-
* Delete an uploaded file or multiple files.
|
|
59
|
-
* Supports single file (ID in URL) or batch delete (via ?ids=id1,id2 or JSON body).
|
|
60
|
-
* @param request Node.js IncomingMessage with file ID(s)
|
|
61
|
-
* @returns Promise resolving to ResponseFile (single) or ResponseList (batch) with deletion result
|
|
62
|
-
*/
|
|
63
|
-
delete(request: NodeRequest): Promise<ResponseFile<TFile> | ResponseList<TFile>>;
|
|
64
|
-
/**
|
|
65
|
-
* Uploads a chunk via PATCH request for chunked uploads.
|
|
66
|
-
* Headers required: X-Chunk-Offset (byte offset), Content-Length (chunk size).
|
|
67
|
-
* Optional: X-Chunk-Checksum (SHA256 checksum for validation).
|
|
68
|
-
* @param request Node.js IncomingMessage with chunk data.
|
|
69
|
-
* @returns Promise resolving to ResponseFile with upload progress.
|
|
70
|
-
*/
|
|
71
|
-
patch(request: NodeRequest): Promise<ResponseFile<TFile>>;
|
|
72
|
-
/**
|
|
73
|
-
* Get file metadata via HEAD request.
|
|
74
|
-
* For chunked uploads, also returns upload progress information.
|
|
75
|
-
* @param request Node.js IncomingMessage with file ID
|
|
76
|
-
* @returns Promise resolving to ResponseFile with metadata headers
|
|
77
|
-
*/
|
|
78
|
-
head(request: NodeRequest): Promise<ResponseFile<TFile>>;
|
|
79
|
-
/**
|
|
80
|
-
* Handle OPTIONS requests with REST API capabilities.
|
|
81
|
-
* @returns Promise resolving to ResponseFile with CORS headers
|
|
82
|
-
*/
|
|
83
|
-
options(): Promise<ResponseFile<TFile>>;
|
|
84
|
-
/**
|
|
85
|
-
* Retrieves a file or list of files based on the request path.
|
|
86
|
-
* Delegates to BaseHandlerNode.get() method.
|
|
87
|
-
* @param request Node.js IncomingMessage with optional originalUrl.
|
|
88
|
-
* @param response Node.js ServerResponse.
|
|
89
|
-
* @returns Promise resolving to a single file, paginated list, or array of files.
|
|
90
|
-
*/
|
|
91
|
-
get(request: NodeRequest, response: NodeResponse): Promise<ResponseFile<TFile> | ResponseList<TFile>>;
|
|
92
|
-
}
|
|
93
|
-
export default Rest;
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
import type { Checksum, FileInit, UploadFile } from "../../storage/utils/index.d.ts";
|
|
2
|
-
import { Metadata } from "../../storage/utils/index.d.ts";
|
|
3
|
-
import type { Headers } from "../../utils/types.d.ts";
|
|
4
|
-
import type { ResponseFile } from "../types.d.ts";
|
|
5
|
-
/**
|
|
6
|
-
* Parse TUS protocol metadata string into object.
|
|
7
|
-
* @param encoded Base64-encoded metadata string (optional, defaults to empty string)
|
|
8
|
-
* @returns Parsed metadata object with decoded values
|
|
9
|
-
*/
|
|
10
|
-
export declare const parseMetadata: (encoded?: string) => Metadata;
|
|
11
|
-
/**
|
|
12
|
-
* Serialize metadata object to TUS protocol format.
|
|
13
|
-
* @param object Metadata object to serialize
|
|
14
|
-
* @returns Base64-encoded metadata string in TUS format
|
|
15
|
-
*/
|
|
16
|
-
export declare const serializeMetadata: (object: Metadata | Record<string, unknown> | undefined) => string;
|
|
17
|
-
/**
|
|
18
|
-
* Base class containing shared TUS protocol business logic.
|
|
19
|
-
* Platform-agnostic - contains no Node.js or Web API specific code.
|
|
20
|
-
* @template TFile The file type used by this handler.
|
|
21
|
-
*/
|
|
22
|
-
export declare abstract class TusBase<TFile extends UploadFile> {
|
|
23
|
-
/**
|
|
24
|
-
* Storage instance for file operations.
|
|
25
|
-
*/
|
|
26
|
-
protected get storage(): {
|
|
27
|
-
checkIfExpired: (file: TFile) => Promise<void>;
|
|
28
|
-
checksumTypes: string[];
|
|
29
|
-
config: {
|
|
30
|
-
useRelativeLocation?: boolean;
|
|
31
|
-
};
|
|
32
|
-
create: (config: FileInit) => Promise<TFile>;
|
|
33
|
-
delete: (options: {
|
|
34
|
-
id: string;
|
|
35
|
-
}) => Promise<TFile>;
|
|
36
|
-
getMeta: (id: string) => Promise<TFile>;
|
|
37
|
-
getStream?: (options: {
|
|
38
|
-
id: string;
|
|
39
|
-
}) => Promise<{
|
|
40
|
-
size?: number;
|
|
41
|
-
stream: unknown;
|
|
42
|
-
}>;
|
|
43
|
-
maxUploadSize: number;
|
|
44
|
-
tusExtension: string[];
|
|
45
|
-
update: (options: {
|
|
46
|
-
id: string;
|
|
47
|
-
}, updates: {
|
|
48
|
-
id?: string;
|
|
49
|
-
metadata?: Record<string, unknown>;
|
|
50
|
-
size?: number;
|
|
51
|
-
}) => Promise<TFile>;
|
|
52
|
-
write: (options: {
|
|
53
|
-
body: unknown;
|
|
54
|
-
checksum?: string;
|
|
55
|
-
checksumAlgorithm?: string;
|
|
56
|
-
contentLength: number;
|
|
57
|
-
id: string;
|
|
58
|
-
start: number;
|
|
59
|
-
}) => Promise<TFile>;
|
|
60
|
-
};
|
|
61
|
-
/**
|
|
62
|
-
* Whether to disable termination for finished uploads.
|
|
63
|
-
* Must be implemented by subclasses via getter.
|
|
64
|
-
*/
|
|
65
|
-
protected abstract get disableTerminationForFinishedUploads(): boolean;
|
|
66
|
-
/**
|
|
67
|
-
* Build file URL from request URL and file data.
|
|
68
|
-
* @param _requestUrl Request URL string
|
|
69
|
-
* @param _file File object containing ID
|
|
70
|
-
* @returns Constructed file URL for TUS protocol
|
|
71
|
-
*/
|
|
72
|
-
protected buildFileUrl(_requestUrl: string, _file: TFile): string;
|
|
73
|
-
/**
|
|
74
|
-
* Handle OPTIONS request with TUS protocol capabilities.
|
|
75
|
-
* @param methods Array of supported HTTP methods
|
|
76
|
-
* @returns ResponseFile with TUS headers
|
|
77
|
-
*/
|
|
78
|
-
handleOptions(methods: string[]): ResponseFile<TFile>;
|
|
79
|
-
/**
|
|
80
|
-
* Handle TUS POST (create upload).
|
|
81
|
-
* @param uploadLength Upload length header value
|
|
82
|
-
* @param uploadDeferLength Upload defer length header value
|
|
83
|
-
* @param uploadConcat Upload concat header value
|
|
84
|
-
* @param metadataHeader Upload metadata header value
|
|
85
|
-
* @param requestUrl Request URL for Location header
|
|
86
|
-
* @param bodyStream Request body stream (for creation-with-upload)
|
|
87
|
-
* @param contentLength Content length (for creation-with-upload)
|
|
88
|
-
* @param contentType Content type (for creation-with-upload)
|
|
89
|
-
* @returns Promise resolving to ResponseFile with upload result
|
|
90
|
-
*/
|
|
91
|
-
handlePost(uploadLength: string | undefined, uploadDeferLength: string | undefined, uploadConcat: string | undefined, metadataHeader: string | undefined, requestUrl: string, bodyStream: unknown, contentLength: number, contentType: string): Promise<ResponseFile<TFile>>;
|
|
92
|
-
/**
|
|
93
|
-
* Handle TUS PATCH (write chunk).
|
|
94
|
-
* @param id File ID from URL
|
|
95
|
-
* @param uploadOffset Upload offset header value
|
|
96
|
-
* @param uploadLength Optional upload length header value (for defer-length)
|
|
97
|
-
* @param metadataHeader Optional upload metadata header value
|
|
98
|
-
* @param checksum Optional checksum
|
|
99
|
-
* @param checksumAlgorithm Optional checksum algorithm
|
|
100
|
-
* @param requestUrl Request URL for Location header
|
|
101
|
-
* @param bodyStream Request body stream
|
|
102
|
-
* @param contentLength Content length
|
|
103
|
-
* @returns Promise resolving to ResponseFile with upload progress
|
|
104
|
-
*/
|
|
105
|
-
handlePatch(id: string, uploadOffset: number, uploadLength: string | undefined, metadataHeader: string | undefined, checksum: string | undefined, checksumAlgorithm: string | undefined, _requestUrl: string, bodyStream: unknown, contentLength: number): Promise<ResponseFile<TFile>>;
|
|
106
|
-
/**
|
|
107
|
-
* Handle TUS HEAD (get upload status).
|
|
108
|
-
* @param id File ID from URL
|
|
109
|
-
* @returns Promise resolving to ResponseFile with upload status headers
|
|
110
|
-
*/
|
|
111
|
-
handleHead(id: string): Promise<ResponseFile<TFile>>;
|
|
112
|
-
/**
|
|
113
|
-
* Handle TUS GET (get upload metadata).
|
|
114
|
-
* @param id File ID from URL
|
|
115
|
-
* @returns Promise resolving to ResponseFile with file metadata as JSON
|
|
116
|
-
*/
|
|
117
|
-
handleGet(id: string): Promise<ResponseFile<TFile>>;
|
|
118
|
-
/**
|
|
119
|
-
* Handle TUS DELETE (terminate upload).
|
|
120
|
-
* @param id File ID from URL
|
|
121
|
-
* @returns Promise resolving to ResponseFile with deletion confirmation
|
|
122
|
-
*/
|
|
123
|
-
handleDelete(id: string): Promise<ResponseFile<TFile>>;
|
|
124
|
-
/**
|
|
125
|
-
* Build TUS protocol headers including required Tus-Resumable and optional Upload-Expires.
|
|
126
|
-
* @param file Upload file object with metadata
|
|
127
|
-
* @param headers Additional headers to include
|
|
128
|
-
* @returns Headers object with TUS protocol headers
|
|
129
|
-
*/
|
|
130
|
-
protected buildHeaders(file: UploadFile, headers?: Headers): Headers;
|
|
131
|
-
/**
|
|
132
|
-
* Extract checksum algorithm and value from Upload-Checksum header.
|
|
133
|
-
* @param checksumHeader Upload-Checksum header value
|
|
134
|
-
* @returns Object containing checksum algorithm and value
|
|
135
|
-
*/
|
|
136
|
-
extractChecksum(checksumHeader: string | undefined): Checksum;
|
|
137
|
-
/**
|
|
138
|
-
* Validate Tus-Resumable header value.
|
|
139
|
-
* @param tusResumable Tus-Resumable header value
|
|
140
|
-
* @throws {Error} 412 if version doesn't match or header is missing
|
|
141
|
-
*/
|
|
142
|
-
validateTusResumableHeader(tusResumable: string | undefined): void;
|
|
143
|
-
/**
|
|
144
|
-
* Concatenate partial uploads into a final upload.
|
|
145
|
-
* @param finalFile Final file that will contain concatenated content
|
|
146
|
-
* @param partialFiles Array of partial upload files to concatenate
|
|
147
|
-
* @returns Promise resolving when concatenation is complete
|
|
148
|
-
*/
|
|
149
|
-
protected concatenateFiles(finalFile: TFile, partialFiles: TFile[]): Promise<void>;
|
|
150
|
-
}
|
|
151
|
-
export declare const TUS_RESUMABLE: string;
|
|
152
|
-
export declare const TUS_VERSION: string;
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import type { UploadFile } from "../../storage/utils/index.d.ts";
|
|
2
|
-
import BaseHandlerFetch from "../base/base-handler-fetch.d.ts";
|
|
3
|
-
import type { Handlers, ResponseFile, UploadOptions } from "../types.d.ts";
|
|
4
|
-
export { TUS_RESUMABLE, TUS_VERSION } from "./tus-base.d.ts";
|
|
5
|
-
/**
|
|
6
|
-
* TUS resumable upload protocol handler (Web API Fetch version).
|
|
7
|
-
*
|
|
8
|
-
* [tus resumable upload protocol](https://github.com/tus/tus-resumable-upload-protocol/blob/master/protocol.md)
|
|
9
|
-
* @example
|
|
10
|
-
* ```ts
|
|
11
|
-
* const tus = new TusFetch({storage});
|
|
12
|
-
*
|
|
13
|
-
* // Use with Hono, Cloudflare Workers, etc.
|
|
14
|
-
* app.all('/files/*', async (c) => {
|
|
15
|
-
* return tus.fetch(c.req.raw);
|
|
16
|
-
* });
|
|
17
|
-
* ```
|
|
18
|
-
*/
|
|
19
|
-
export declare class Tus<TFile extends UploadFile> extends BaseHandlerFetch<TFile> {
|
|
20
|
-
/**
|
|
21
|
-
* Limiting enabled http method handler
|
|
22
|
-
*/
|
|
23
|
-
static readonly methods: Handlers[];
|
|
24
|
-
private readonly tusBase;
|
|
25
|
-
constructor(options: UploadOptions<TFile>);
|
|
26
|
-
/**
|
|
27
|
-
* Handle OPTIONS requests with TUS protocol capabilities.
|
|
28
|
-
* @returns Promise resolving to ResponseFile with TUS headers
|
|
29
|
-
*/
|
|
30
|
-
options(): Promise<ResponseFile<TFile>>;
|
|
31
|
-
/**
|
|
32
|
-
* Creates a new TUS upload and optionally starts uploading data.
|
|
33
|
-
* @param request Web API Request with TUS headers.
|
|
34
|
-
* @returns Promise resolving to ResponseFile with upload location and offset.
|
|
35
|
-
*/
|
|
36
|
-
post(request: Request): Promise<ResponseFile<TFile>>;
|
|
37
|
-
/**
|
|
38
|
-
* Write a chunk of data to an existing TUS upload.
|
|
39
|
-
* @param request Web API Request with chunk data and TUS headers
|
|
40
|
-
* @returns Promise resolving to ResponseFile with updated offset
|
|
41
|
-
*/
|
|
42
|
-
patch(request: Request): Promise<ResponseFile<TFile>>;
|
|
43
|
-
/**
|
|
44
|
-
* Get current upload offset and metadata for TUS resumable uploads.
|
|
45
|
-
* @param request Web API Request with upload ID
|
|
46
|
-
* @returns Promise resolving to ResponseFile with upload-offset and metadata headers
|
|
47
|
-
*/
|
|
48
|
-
head(request: Request): Promise<ResponseFile<TFile>>;
|
|
49
|
-
/**
|
|
50
|
-
* Get TUS upload metadata and current status.
|
|
51
|
-
* @param request Web API Request with upload ID
|
|
52
|
-
* @returns Promise resolving to ResponseFile with file metadata as JSON
|
|
53
|
-
*/
|
|
54
|
-
get(request: Request): Promise<ResponseFile<TFile>>;
|
|
55
|
-
/**
|
|
56
|
-
* Delete a TUS upload and its associated data.
|
|
57
|
-
* @param request Web API Request with upload ID
|
|
58
|
-
* @returns Promise resolving to ResponseFile with deletion confirmation
|
|
59
|
-
*/
|
|
60
|
-
delete(request: Request): Promise<ResponseFile<TFile>>;
|
|
61
|
-
/**
|
|
62
|
-
* Compose and register HTTP method handlers.
|
|
63
|
-
*/
|
|
64
|
-
protected compose(): void;
|
|
65
|
-
/**
|
|
66
|
-
* Build file URL for TUS uploads (without file extension).
|
|
67
|
-
* @param requestUrl Request URL string
|
|
68
|
-
* @param file File object containing ID
|
|
69
|
-
* @returns Constructed file URL for TUS protocol
|
|
70
|
-
*/
|
|
71
|
-
protected buildFileUrlForTus(requestUrl: string, file: TFile): string;
|
|
72
|
-
}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import type { IncomingMessage, ServerResponse } from "node:http";
|
|
2
|
-
import type { UploadFile } from "../../storage/utils/index.d.ts";
|
|
3
|
-
import type { UploadResponse } from "../../utils/types.d.ts";
|
|
4
|
-
import BaseHandlerNode from "../base/base-handler-node.d.ts";
|
|
5
|
-
import type { Handlers, ResponseFile, UploadOptions } from "../types.d.ts";
|
|
6
|
-
export { TUS_RESUMABLE, TUS_VERSION } from "./tus-base.d.ts";
|
|
7
|
-
/**
|
|
8
|
-
* TUS resumable upload protocol handler (Node.js version).
|
|
9
|
-
*
|
|
10
|
-
* [tus resumable upload protocol](https://github.com/tus/tus-resumable-upload-protocol/blob/master/protocol.md)
|
|
11
|
-
* @example
|
|
12
|
-
* ```ts
|
|
13
|
-
* const tus = new Tus({storage});
|
|
14
|
-
*
|
|
15
|
-
* app.all('/files', tus.handle);
|
|
16
|
-
* ```
|
|
17
|
-
*/
|
|
18
|
-
export declare class Tus<TFile extends UploadFile, NodeRequest extends IncomingMessage = IncomingMessage, NodeResponse extends ServerResponse = ServerResponse> extends BaseHandlerNode<TFile, NodeRequest, NodeResponse> {
|
|
19
|
-
/**
|
|
20
|
-
* Limiting enabled http method handler
|
|
21
|
-
*/
|
|
22
|
-
static readonly methods: Handlers[];
|
|
23
|
-
disableTerminationForFinishedUploads: boolean;
|
|
24
|
-
private readonly tusBase;
|
|
25
|
-
constructor(options: UploadOptions<TFile>);
|
|
26
|
-
/**
|
|
27
|
-
* Handle OPTIONS requests with TUS protocol capabilities.
|
|
28
|
-
* @returns Promise resolving to ResponseFile with TUS headers
|
|
29
|
-
*/
|
|
30
|
-
options(): Promise<ResponseFile<TFile>>;
|
|
31
|
-
/**
|
|
32
|
-
* Creates a new TUS upload and optionally starts uploading data.
|
|
33
|
-
* @param request Node.js IncomingMessage with TUS headers.
|
|
34
|
-
* @returns Promise resolving to ResponseFile with upload location and offset.
|
|
35
|
-
*/
|
|
36
|
-
post(request: NodeRequest): Promise<ResponseFile<TFile>>;
|
|
37
|
-
/**
|
|
38
|
-
* Write a chunk of data to an existing TUS upload.
|
|
39
|
-
* @param request Node.js IncomingMessage with chunk data and TUS headers
|
|
40
|
-
* @returns Promise resolving to ResponseFile with updated offset
|
|
41
|
-
*/
|
|
42
|
-
patch(request: NodeRequest): Promise<ResponseFile<TFile>>;
|
|
43
|
-
/**
|
|
44
|
-
* Get current upload offset and metadata for TUS resumable uploads.
|
|
45
|
-
* @param request Node.js IncomingMessage with upload ID
|
|
46
|
-
* @returns Promise resolving to ResponseFile with upload-offset and metadata headers
|
|
47
|
-
*/
|
|
48
|
-
head(request: NodeRequest): Promise<ResponseFile<TFile>>;
|
|
49
|
-
/**
|
|
50
|
-
* Get TUS upload metadata and current status.
|
|
51
|
-
* @param request Node.js IncomingMessage with upload ID
|
|
52
|
-
* @returns Promise resolving to ResponseFile with file metadata as JSON
|
|
53
|
-
*/
|
|
54
|
-
get(request: NodeRequest): Promise<ResponseFile<TFile>>;
|
|
55
|
-
/**
|
|
56
|
-
* Delete a TUS upload and its associated data.
|
|
57
|
-
* @param request Node.js IncomingMessage with upload ID
|
|
58
|
-
* @returns Promise resolving to ResponseFile with deletion confirmation
|
|
59
|
-
*/
|
|
60
|
-
delete(request: NodeRequest): Promise<ResponseFile<TFile>>;
|
|
61
|
-
/**
|
|
62
|
-
* Send TUS protocol response with required headers.
|
|
63
|
-
* @param response Node.js ServerResponse to send response to
|
|
64
|
-
* @param uploadResponse Response data with body, headers, and status code
|
|
65
|
-
*/
|
|
66
|
-
send(response: NodeResponse, { body, headers, statusCode }: UploadResponse): void;
|
|
67
|
-
/**
|
|
68
|
-
* Compose and register HTTP method handlers.
|
|
69
|
-
*/
|
|
70
|
-
protected compose(): void;
|
|
71
|
-
/**
|
|
72
|
-
* Build file URL for TUS uploads (without file extension).
|
|
73
|
-
* @param requestUrl Request URL string
|
|
74
|
-
* @param file File object containing ID
|
|
75
|
-
* @returns Constructed file URL for TUS protocol
|
|
76
|
-
*/
|
|
77
|
-
protected buildFileUrlForTus(requestUrl: string, file: TFile): string;
|
|
78
|
-
}
|
package/dist/handler/types.d.ts
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import type { EventEmitter } from "node:events";
|
|
2
|
-
import type { IncomingMessage } from "node:http";
|
|
3
|
-
import type { Readable } from "node:stream";
|
|
4
|
-
import type { PaginationResult } from "@visulima/pagination";
|
|
5
|
-
import type { BaseStorage } from "../storage/storage.d.ts";
|
|
6
|
-
import type { UploadEventType, UploadFile } from "../storage/utils/index.d.ts";
|
|
7
|
-
import type MediaTransformer from "../transformer/media-transformer.d.ts";
|
|
8
|
-
import type { UploadError } from "../utils/errors.d.ts";
|
|
9
|
-
type WebRequest = globalThis.Request;
|
|
10
|
-
type WebResponse = globalThis.Response;
|
|
11
|
-
interface BaseResponse {
|
|
12
|
-
headers: Record<string, number | string>;
|
|
13
|
-
statusCode: number;
|
|
14
|
-
}
|
|
15
|
-
export interface StreamingResponse extends BaseResponse {
|
|
16
|
-
/** Total size of the stream (for Content-Length header) */
|
|
17
|
-
size?: number;
|
|
18
|
-
/** Stream of data to send */
|
|
19
|
-
stream: Readable;
|
|
20
|
-
}
|
|
21
|
-
export interface RequestEvent {
|
|
22
|
-
request: Pick<IncomingMessage, "headers" | "method" | "url">;
|
|
23
|
-
}
|
|
24
|
-
export type AsyncHandler<Request, Response> = (request: Request, response: Response) => Promise<void | ResponseFile<UploadFile> | ResponseList<UploadFile> | StreamingResponse>;
|
|
25
|
-
export type Handlers = "delete" | "download" | "get" | "head" | "options" | "patch" | "post" | "put";
|
|
26
|
-
export type MethodHandler<Request, Response> = {
|
|
27
|
-
[h in Handlers]?: AsyncHandler<Request, Response>;
|
|
28
|
-
};
|
|
29
|
-
export type UploadEvent<TFile extends UploadFile> = RequestEvent & TFile;
|
|
30
|
-
export type UploadErrorEvent = RequestEvent & UploadError;
|
|
31
|
-
export type ResponseFile<TFile extends UploadFile> = BaseResponse & TFile & {
|
|
32
|
-
/** Optional stream for streaming responses instead of content buffer */
|
|
33
|
-
stream?: Readable;
|
|
34
|
-
};
|
|
35
|
-
export type ResponseList<TFile extends UploadFile> = BaseResponse & {
|
|
36
|
-
data: PaginationResult<TFile> | TFile[];
|
|
37
|
-
};
|
|
38
|
-
export interface BaseHandler<TFile extends UploadFile> extends EventEmitter {
|
|
39
|
-
emit: ((event: "error", error: UploadErrorEvent) => boolean) & ((event: UploadEventType, payload: UploadEvent<TFile>) => boolean);
|
|
40
|
-
fetch: (request: WebRequest) => Promise<WebResponse>;
|
|
41
|
-
off: ((event: "error", listener: (error: UploadErrorEvent) => void) => this) & ((event: UploadEventType, listener: (payload: UploadEvent<TFile>) => void) => this);
|
|
42
|
-
on: ((event: "error", listener: (error: UploadErrorEvent) => void) => this) & ((event: UploadEventType, listener: (payload: UploadEvent<TFile>) => void) => this);
|
|
43
|
-
}
|
|
44
|
-
export interface UploadOptions<TFile extends UploadFile> {
|
|
45
|
-
disableTerminationForFinishedUploads?: boolean;
|
|
46
|
-
/** Maximum file size for multipart parser (default: min(storage.maxUploadSize, 1GB)) */
|
|
47
|
-
maxFileSize?: number;
|
|
48
|
-
/** Maximum header size for multipart parser (default: 64KB) */
|
|
49
|
-
maxHeaderSize?: number;
|
|
50
|
-
mediaTransformer?: MediaTransformer;
|
|
51
|
-
storage: BaseStorage<TFile>;
|
|
52
|
-
}
|
|
53
|
-
export {};
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import type { IncomingMessage } from "node:http";
|
|
2
|
-
import type { FileInit } from "../../storage/utils/index.d.ts";
|
|
3
|
-
/**
|
|
4
|
-
* Parses metadata from X-File-Metadata header.
|
|
5
|
-
* @param request The HTTP request
|
|
6
|
-
* @param existingMetadata Existing metadata to merge with (optional)
|
|
7
|
-
* @returns Parsed metadata object
|
|
8
|
-
*/
|
|
9
|
-
export declare const parseMetadata: (request: IncomingMessage, existingMetadata?: Record<string, unknown>) => Record<string, unknown>;
|
|
10
|
-
/**
|
|
11
|
-
* Parses filename from Content-Disposition header value string.
|
|
12
|
-
* Uses a safer parsing approach to avoid ReDoS vulnerabilities.
|
|
13
|
-
* @param contentDisposition The Content-Disposition header value
|
|
14
|
-
* @returns Filename if found, undefined otherwise
|
|
15
|
-
*/
|
|
16
|
-
export declare const parseContentDispositionValue: (contentDisposition: string | null | undefined) => string | undefined;
|
|
17
|
-
/**
|
|
18
|
-
* Parses filename from Content-Disposition header.
|
|
19
|
-
* Uses a safer parsing approach to avoid ReDoS vulnerabilities.
|
|
20
|
-
* @param request The HTTP request
|
|
21
|
-
* @returns Filename if found, undefined otherwise
|
|
22
|
-
*/
|
|
23
|
-
export declare const parseContentDisposition: (request: IncomingMessage) => string | undefined;
|
|
24
|
-
/**
|
|
25
|
-
* Parses chunked upload headers (X-Chunk-Offset, X-Total-Size, etc.).
|
|
26
|
-
* @param request The HTTP request
|
|
27
|
-
* @returns Object with chunk offset, total size, and chunked upload flag
|
|
28
|
-
*/
|
|
29
|
-
export declare const parseChunkHeaders: (request: IncomingMessage) => {
|
|
30
|
-
chunkOffset?: number;
|
|
31
|
-
isChunkedUpload: boolean;
|
|
32
|
-
totalSize?: number;
|
|
33
|
-
};
|
|
34
|
-
/**
|
|
35
|
-
* Validates that a request has a body.
|
|
36
|
-
* @param request The HTTP request
|
|
37
|
-
* @param allowEmptyForChunked Whether to allow empty body for chunked uploads
|
|
38
|
-
* @throws {HttpError} If body is required but missing
|
|
39
|
-
*/
|
|
40
|
-
export declare const validateRequestBody: (request: IncomingMessage, allowEmptyForChunked?: boolean) => void;
|
|
41
|
-
/**
|
|
42
|
-
* Validates Content-Length header.
|
|
43
|
-
* @param request The HTTP request
|
|
44
|
-
* @param allowZeroForChunked Whether to allow zero length for chunked uploads
|
|
45
|
-
* @param maxSize Maximum allowed size
|
|
46
|
-
* @returns Parsed content length
|
|
47
|
-
* @throws {HttpError} If Content-Length is invalid or exceeds max size
|
|
48
|
-
*/
|
|
49
|
-
export declare const validateContentLength: (request: IncomingMessage, allowZeroForChunked?: boolean, maxSize?: number) => number;
|
|
50
|
-
/**
|
|
51
|
-
* Extracts file initialization config from request headers.
|
|
52
|
-
* @param request The HTTP request
|
|
53
|
-
* @param contentLength The content length (already validated)
|
|
54
|
-
* @param contentType The content type (default: application/octet-stream)
|
|
55
|
-
* @returns FileInit configuration object
|
|
56
|
-
*/
|
|
57
|
-
export declare const extractFileInit: (request: IncomingMessage, contentLength: number, contentType?: string) => FileInit;
|
|
58
|
-
/**
|
|
59
|
-
* Validates chunk offset and size for chunked uploads.
|
|
60
|
-
* @param chunkOffset The chunk offset
|
|
61
|
-
* @param contentLength The chunk content length
|
|
62
|
-
* @param totalSize The total file size
|
|
63
|
-
* @throws {HttpError} If validation fails
|
|
64
|
-
*/
|
|
65
|
-
export declare const validateChunk: (chunkOffset: number, contentLength: number, totalSize: number) => void;
|
|
66
|
-
/**
|
|
67
|
-
* Gets content type from request headers with fallback.
|
|
68
|
-
* @param request The HTTP request
|
|
69
|
-
* @param fallback Default content type if not found (default: application/octet-stream)
|
|
70
|
-
* @returns Content type string
|
|
71
|
-
*/
|
|
72
|
-
export declare const getContentType: (request: IncomingMessage, fallback?: string) => string;
|