@visulima/storage 1.0.0-alpha.9 → 1.0.1
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 +562 -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-CiPEMcuo.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-BK-WPL0h.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-1UvDIQZd.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-BSn6Qfnf.js +1 -0
- package/dist/packem_shared/BoxStorage-DbGqBLux.js +1 -0
- package/dist/packem_shared/BunS3File-BcYmsz1n.js +1 -0
- package/dist/packem_shared/BunS3MetaStorage-BSn6Qfnf.js +1 -0
- package/dist/packem_shared/BunS3Storage-DNvimm9e.js +1 -0
- package/dist/packem_shared/BunnyFile-BgEOlcYI.js +1 -0
- package/dist/packem_shared/BunnyMetaStorage-BSn6Qfnf.js +1 -0
- package/dist/packem_shared/BunnyStorage-C7d0opLL.js +1 -0
- package/dist/packem_shared/CloudinaryFile-Bo5B-vM1.js +1 -0
- package/dist/packem_shared/CloudinaryMetaStorage-DPVnmNe5.js +1 -0
- package/dist/packem_shared/CloudinaryStorage-Dc3XA2lP.js +1 -0
- package/dist/packem_shared/DiskStorage-CI07TVNu.js +1 -0
- package/dist/packem_shared/DiskStorageWithChecksum-vFCubS6K.js +1 -0
- package/dist/packem_shared/DropboxFile-BFb7eOzy.js +1 -0
- package/dist/packem_shared/DropboxMetaStorage-BSn6Qfnf.js +1 -0
- package/dist/packem_shared/DropboxStorage-CY9Ggu3m.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-CpIcMjP0.js +1 -0
- package/dist/packem_shared/FirebaseFile-BLaBxa2A.js +1 -0
- package/dist/packem_shared/FirebaseMetaStorage-DPVnmNe5.js +1 -0
- package/dist/packem_shared/FirebaseStorage-D6O9CJXN.js +2 -0
- package/dist/packem_shared/FtpFile-ClWDYnt2.js +1 -0
- package/dist/packem_shared/FtpMetaStorage-BSn6Qfnf.js +1 -0
- package/dist/packem_shared/FtpStorage-DbEjbq8z.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-BuPA0DDW.js +1 -0
- package/dist/packem_shared/GCStorage-i9t5TQc1.js +1 -0
- package/dist/packem_shared/GoogleDriveFile-DHpLhzg9.js +1 -0
- package/dist/packem_shared/GoogleDriveMetaStorage-Cbwa1CHV.js +1 -0
- package/dist/packem_shared/GoogleDriveStorage-Bklsz7Bh.js +1 -0
- package/dist/packem_shared/LocalMetaStorage-BhicZnNl.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-9gbWd09l.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-CQjYqU--.js +1 -0
- package/dist/packem_shared/Multipart-D0ok6BBy.js +1 -0
- package/dist/packem_shared/NetlifyBlobFile-DoFhkzaH.js +1 -0
- package/dist/packem_shared/NetlifyBlobMetaStorage-DPVnmNe5.js +1 -0
- package/dist/packem_shared/NetlifyBlobStorage-CkpCCoN1.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-Cbwa1CHV.js +1 -0
- package/dist/packem_shared/OneDriveStorage-CP6MvGAa.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-DOTLwVE7.js +1 -0
- package/dist/packem_shared/PocketBaseStorage-2qhbI2PW.js +1 -0
- package/dist/packem_shared/Rest-CI_BiZPv.js +1 -0
- package/dist/packem_shared/Rest-DvfN4-kf.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-YGeNk3Tt.js +1 -0
- package/dist/packem_shared/SftpFile-ClWDYnt2.js +1 -0
- package/dist/packem_shared/SftpMetaStorage-BSn6Qfnf.js +1 -0
- package/dist/packem_shared/SftpStorage-2Hz396Xr.js +1 -0
- package/dist/packem_shared/SharePointFile-Blz9FS4h.js +1 -0
- package/dist/packem_shared/SharePointMetaStorage-BSn6Qfnf.js +1 -0
- package/dist/packem_shared/SharePointStorage-CrX2Pk6C.js +1 -0
- package/dist/packem_shared/SupabaseFile-Bo5B-vM1.js +1 -0
- package/dist/packem_shared/SupabaseMetaStorage-Cbwa1CHV.js +1 -0
- package/dist/packem_shared/SupabaseStorage-Dc_DBX29.js +1 -0
- package/dist/packem_shared/TUS_RESUMABLE-CyTSRvPU.js +1 -0
- package/dist/packem_shared/Tus-BBVt2ky3.js +1 -0
- package/dist/packem_shared/Tus-BlBZykIL.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-DPVnmNe5.js +1 -0
- package/dist/packem_shared/UploadThingStorage-BChykYSe.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-BSn6Qfnf.js +1 -0
- package/dist/packem_shared/VercelBlobStorage-CsRyPfw3.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-D-9Ku1h-.js +1 -0
- package/dist/packem_shared/base-handler-fetch-CfkNakv8.js +1 -0
- package/dist/packem_shared/base-handler-node-BF1v1qDa.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-CsQcYW3s.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-B1RrMqH3.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-iuJnu90B.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-DvWvbDbh.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-e0reNDE_.js +1 -0
- package/dist/packem_shared/restOpenApiSpec-Csv513qf.js +1 -0
- package/dist/packem_shared/s3-base-storage-BoTyhuzO.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-0j5nCAUp.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 +218 -67
- 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-Ck5yGQsq.js +0 -12
- package/dist/packem_shared/DiskStorageWithChecksum-BRl-V5x2.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-CHZKMe7N.js +0 -7
- package/dist/packem_shared/GCStorage-C-gAuP0j.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-CRV21AUU.js +0 -128
- package/dist/packem_shared/Multipart-D2ryPMjD.js +0 -163
- 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-DcxBMBjU.js +0 -228
- package/dist/packem_shared/Rest-DjwU3puo.js +0 -267
- 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-Dtfsffnj.js +0 -434
- package/dist/packem_shared/Tus-DFVlZHaX.js +0 -200
- package/dist/packem_shared/Tus-DaN0FmOy.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-BqLXS_qQ.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-BoAqTyz7.js +0 -303
- package/dist/packem_shared/base-handler-fetch-D4u2xits.js +0 -291
- package/dist/packem_shared/base-handler-node-DGzcHHAy.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-CD47QI30.js +0 -810
- package/dist/packem_shared/gcs-meta-storage-CJ8Uts_d.js +0 -158
- package/dist/packem_shared/has-content-CY66ehMK.js +0 -3
- package/dist/packem_shared/headers-YLRp1dLo.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-C994naBi.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-D9URIFkc.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,137 +0,0 @@
|
|
|
1
|
-
import type { IncomingMessage, ServerResponse } from "node:http";
|
|
2
|
-
import type { Readable } from "node:stream";
|
|
3
|
-
import type { UploadFile } from "../../storage/utils/index.d.ts";
|
|
4
|
-
import type { UploadResponse } from "../../utils/types.d.ts";
|
|
5
|
-
import type { AsyncHandler, Handlers, MethodHandler, ResponseFile, ResponseList, UploadOptions } from "../types.d.ts";
|
|
6
|
-
import BaseHandlerCore from "./base-handler-core.d.ts";
|
|
7
|
-
/**
|
|
8
|
-
* Base handler for Node.js platform (IncomingMessage/ServerResponse).
|
|
9
|
-
* Extends BaseHandlerCore with Node.js-specific request/response handling.
|
|
10
|
-
* @template TFile The file type used by this handler.
|
|
11
|
-
* @template NodeRequest The Node.js request type.
|
|
12
|
-
* @template NodeResponse The Node.js response type.
|
|
13
|
-
*/
|
|
14
|
-
declare abstract class BaseHandlerNode<TFile extends UploadFile, NodeRequest extends IncomingMessage = IncomingMessage, NodeResponse extends ServerResponse = ServerResponse> extends BaseHandlerCore<TFile> implements MethodHandler<NodeRequest, NodeResponse> {
|
|
15
|
-
/**
|
|
16
|
-
* Limiting enabled HTTP method handler.
|
|
17
|
-
*/
|
|
18
|
-
static readonly methods: Handlers[];
|
|
19
|
-
/**
|
|
20
|
-
* Map of registered HTTP method handlers.
|
|
21
|
-
*/
|
|
22
|
-
protected registeredHandlers: Map<string, AsyncHandler<NodeRequest, NodeResponse>>;
|
|
23
|
-
constructor(options: UploadOptions<TFile>);
|
|
24
|
-
/**
|
|
25
|
-
* Gets the registered handlers map.
|
|
26
|
-
* @returns Map of registered handlers.
|
|
27
|
-
*/
|
|
28
|
-
get handlers(): Map<string, AsyncHandler<NodeRequest, NodeResponse>>;
|
|
29
|
-
/**
|
|
30
|
-
* Handles HTTP request (alias for upload method).
|
|
31
|
-
* @param request Node.js IncomingMessage.
|
|
32
|
-
* @param response Node.js ServerResponse.
|
|
33
|
-
*/
|
|
34
|
-
handle: (request: NodeRequest, response: NodeResponse) => Promise<void>;
|
|
35
|
-
/**
|
|
36
|
-
* Main upload handler that processes HTTP requests and routes them to appropriate method handlers.
|
|
37
|
-
* @param request Node.js IncomingMessage.
|
|
38
|
-
* @param response Node.js ServerResponse.
|
|
39
|
-
* @param next Optional Express-style next function for middleware compatibility.
|
|
40
|
-
* @throws {UploadError} When storage is not ready or method is not allowed.
|
|
41
|
-
*/
|
|
42
|
-
upload: (request: NodeRequest, response: NodeResponse, next?: () => void) => Promise<void>;
|
|
43
|
-
/**
|
|
44
|
-
* Compose and register HTTP method handlers.
|
|
45
|
-
* Subclasses should override this to register their specific handlers.
|
|
46
|
-
*/
|
|
47
|
-
protected abstract compose(): void;
|
|
48
|
-
/**
|
|
49
|
-
* Sends an HTTP response with the provided body, headers, and status code.
|
|
50
|
-
* @param response Node.js ServerResponse to send data to.
|
|
51
|
-
* @param body Response body, headers, and status code.
|
|
52
|
-
*/
|
|
53
|
-
send(response: NodeResponse, { body, headers, statusCode }: UploadResponse): void;
|
|
54
|
-
/**
|
|
55
|
-
* Sends an error response to the client with appropriate status code and message.
|
|
56
|
-
* @param response Node.js ServerResponse to send error to.
|
|
57
|
-
* @param error Error object to convert to HTTP error response.
|
|
58
|
-
*/
|
|
59
|
-
sendError(response: NodeResponse, error: Error): Promise<void>;
|
|
60
|
-
/**
|
|
61
|
-
* Sends streaming response to client with proper backpressure handling and range request support.
|
|
62
|
-
* @param response Node.js ServerResponse to stream data to.
|
|
63
|
-
* @param stream Readable stream containing the file data.
|
|
64
|
-
* @param options Streaming options including headers, range, size, and status code.
|
|
65
|
-
*/
|
|
66
|
-
sendStream(response: NodeResponse, stream: Readable, { headers, range, size, statusCode, }: {
|
|
67
|
-
headers?: Record<string, string | number>;
|
|
68
|
-
range?: {
|
|
69
|
-
end: number;
|
|
70
|
-
start: number;
|
|
71
|
-
};
|
|
72
|
-
size?: number;
|
|
73
|
-
statusCode?: number;
|
|
74
|
-
}): void;
|
|
75
|
-
/**
|
|
76
|
-
* Finish upload by sending final response to client with completed file data.
|
|
77
|
-
* @param _request HTTP request (unused parameter)
|
|
78
|
-
* @param response HTTP response object to send final response to
|
|
79
|
-
* @param uploadResponse Final upload response data containing body, headers, and status code
|
|
80
|
-
*/
|
|
81
|
-
protected finish(_request: NodeRequest, response: NodeResponse, uploadResponse: UploadResponse | ResponseFile<TFile>): void;
|
|
82
|
-
/**
|
|
83
|
-
* Build file URL from request and file data.
|
|
84
|
-
* @param request HTTP request with optional originalUrl property
|
|
85
|
-
* @param file File object containing ID and content type
|
|
86
|
-
* @returns Constructed file URL with extension based on content type
|
|
87
|
-
*/
|
|
88
|
-
protected buildFileUrl(request: NodeRequest & {
|
|
89
|
-
originalUrl?: string;
|
|
90
|
-
}, file: TFile): string;
|
|
91
|
-
/**
|
|
92
|
-
* Negotiates content type based on Accept header and supported formats.
|
|
93
|
-
* @param request HTTP request object containing Accept header.
|
|
94
|
-
* @param supportedTypes Array of supported MIME types to match against.
|
|
95
|
-
* @returns Best matching content type or undefined if no match found.
|
|
96
|
-
*/
|
|
97
|
-
negotiateContentType(request: NodeRequest, supportedTypes: string[]): string | undefined;
|
|
98
|
-
/**
|
|
99
|
-
* Default OPTIONS handler.
|
|
100
|
-
* @param _request HTTP request (unused)
|
|
101
|
-
* @param _response HTTP response (unused)
|
|
102
|
-
* @returns Promise resolving to ResponseFile with CORS headers
|
|
103
|
-
*/
|
|
104
|
-
options(_request: NodeRequest, _response: NodeResponse): Promise<ResponseFile<TFile>>;
|
|
105
|
-
/**
|
|
106
|
-
* Retrieves a file or list of files based on the request path.
|
|
107
|
-
* @param request Node.js IncomingMessage with optional originalUrl.
|
|
108
|
-
* @param response Node.js ServerResponse.
|
|
109
|
-
* @returns Promise resolving to a single file, paginated list, or array of files.
|
|
110
|
-
* @throws {UploadError} When file is not found or storage error occurs.
|
|
111
|
-
*/
|
|
112
|
-
get(request: NodeRequest & {
|
|
113
|
-
originalUrl?: string;
|
|
114
|
-
}, _response: NodeResponse): Promise<ResponseFile<TFile> | ResponseList<TFile>>;
|
|
115
|
-
/**
|
|
116
|
-
* Returns a list of uploaded files with optional pagination support.
|
|
117
|
-
* @param request Node.js IncomingMessage containing query parameters for pagination.
|
|
118
|
-
* @param _response Node.js ServerResponse (unused).
|
|
119
|
-
* @returns Promise resolving to a paginated or complete list of uploaded files.
|
|
120
|
-
*/
|
|
121
|
-
list(request: NodeRequest, _response: NodeResponse): Promise<ResponseList<TFile>>;
|
|
122
|
-
/**
|
|
123
|
-
* Streams download of a file with resumable support using HTTP range requests.
|
|
124
|
-
* @param request Node.js IncomingMessage with optional originalUrl and range header.
|
|
125
|
-
* @param response Node.js ServerResponse to stream the file to.
|
|
126
|
-
* @throws {HttpError} When file is not found or streaming is not supported.
|
|
127
|
-
*/
|
|
128
|
-
download(request: NodeRequest & {
|
|
129
|
-
originalUrl?: string;
|
|
130
|
-
}, response: NodeResponse): Promise<void>;
|
|
131
|
-
/**
|
|
132
|
-
* Check if error is related to undefined ID or path and throw appropriate HTTP error.
|
|
133
|
-
* @param error Error object to check
|
|
134
|
-
*/
|
|
135
|
-
protected checkForUndefinedIdOrPath(error: unknown): void;
|
|
136
|
-
}
|
|
137
|
-
export default BaseHandlerNode;
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import type { FileInit, UploadFile } from "../../storage/utils/index.d.ts";
|
|
2
|
-
import type { ResponseFile } from "../types.d.ts";
|
|
3
|
-
/**
|
|
4
|
-
* Base class containing shared Multipart business logic.
|
|
5
|
-
* Platform-agnostic - contains no Node.js or Web API specific code.
|
|
6
|
-
* @template TFile The file type used by this handler.
|
|
7
|
-
*/
|
|
8
|
-
declare abstract class MultipartBase<TFile extends UploadFile> {
|
|
9
|
-
/**
|
|
10
|
-
* Handle multipart POST (upload file).
|
|
11
|
-
* @param filePart File part from multipart parser
|
|
12
|
-
* @param filePart.bytes File bytes data
|
|
13
|
-
* @param filePart.filename Original filename
|
|
14
|
-
* @param filePart.mediaType Content type
|
|
15
|
-
* @param filePart.size File size in bytes
|
|
16
|
-
* @param metadataParts All parts from multipart parser (for extracting metadata)
|
|
17
|
-
* @param requestUrl Request URL for Location header
|
|
18
|
-
* @returns Promise resolving to ResponseFile with upload result
|
|
19
|
-
*/
|
|
20
|
-
handlePost(filePart: {
|
|
21
|
-
bytes: unknown;
|
|
22
|
-
filename?: string;
|
|
23
|
-
mediaType?: string;
|
|
24
|
-
size: number;
|
|
25
|
-
}, metadataParts: {
|
|
26
|
-
isFile: boolean;
|
|
27
|
-
name?: string;
|
|
28
|
-
text?: string;
|
|
29
|
-
}[], requestUrl: string): Promise<ResponseFile<TFile>>;
|
|
30
|
-
/**
|
|
31
|
-
* Handle DELETE (delete file).
|
|
32
|
-
* @param id File ID from URL
|
|
33
|
-
* @returns Promise resolving to ResponseFile with deletion result
|
|
34
|
-
*/
|
|
35
|
-
handleDelete(id: string): Promise<ResponseFile<TFile>>;
|
|
36
|
-
/**
|
|
37
|
-
* Storage instance for file operations.
|
|
38
|
-
*/
|
|
39
|
-
protected get storage(): {
|
|
40
|
-
create: (config: FileInit) => Promise<TFile>;
|
|
41
|
-
delete: (options: {
|
|
42
|
-
id: string;
|
|
43
|
-
}) => Promise<TFile>;
|
|
44
|
-
maxUploadSize: number;
|
|
45
|
-
update: (options: {
|
|
46
|
-
id: string;
|
|
47
|
-
}, updates: {
|
|
48
|
-
metadata?: Record<string, unknown>;
|
|
49
|
-
}) => Promise<TFile>;
|
|
50
|
-
write: (options: {
|
|
51
|
-
body: unknown;
|
|
52
|
-
contentLength: number;
|
|
53
|
-
id: string;
|
|
54
|
-
start: number;
|
|
55
|
-
}) => Promise<TFile>;
|
|
56
|
-
};
|
|
57
|
-
/**
|
|
58
|
-
* Maximum file size allowed for multipart uploads
|
|
59
|
-
*/
|
|
60
|
-
protected abstract get maxFileSize(): number;
|
|
61
|
-
/**
|
|
62
|
-
* Maximum header size allowed for multipart parser
|
|
63
|
-
*/
|
|
64
|
-
protected abstract get maxHeaderSize(): number;
|
|
65
|
-
/**
|
|
66
|
-
* Build file URL from request URL and file data.
|
|
67
|
-
* @param _requestUrl Request URL string
|
|
68
|
-
* @param _file File object containing ID and content type
|
|
69
|
-
* @returns Constructed file URL with extension based on content type
|
|
70
|
-
*/
|
|
71
|
-
protected buildFileUrl(_requestUrl: string, _file: TFile): string;
|
|
72
|
-
/**
|
|
73
|
-
* Create a stream from bytes data.
|
|
74
|
-
* @param bytes Bytes data (Uint8Array, Buffer, or other)
|
|
75
|
-
* @returns Stream object
|
|
76
|
-
*/
|
|
77
|
-
protected abstract createStreamFromBytes(bytes: unknown): unknown;
|
|
78
|
-
/**
|
|
79
|
-
* Create an empty stream for signaling completion.
|
|
80
|
-
* @returns Empty stream object
|
|
81
|
-
*/
|
|
82
|
-
protected abstract createEmptyStream(): unknown;
|
|
83
|
-
}
|
|
84
|
-
export default MultipartBase;
|
|
@@ -1,64 +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
|
-
/**
|
|
5
|
-
* Multipart/form-data upload handler (Web API Fetch version).
|
|
6
|
-
* @example
|
|
7
|
-
* ```ts
|
|
8
|
-
* const multipart = new MultipartFetch({
|
|
9
|
-
* storage,
|
|
10
|
-
* maxFileSize: 100 * 1024 * 1024, // 100MB
|
|
11
|
-
* });
|
|
12
|
-
*
|
|
13
|
-
* // Use with Hono, Cloudflare Workers, etc.
|
|
14
|
-
* app.all('/files/*', async (c) => {
|
|
15
|
-
* return multipart.fetch(c.req.raw);
|
|
16
|
-
* });
|
|
17
|
-
* ```
|
|
18
|
-
*/
|
|
19
|
-
declare class Multipart<TFile extends UploadFile> extends BaseHandlerFetch<TFile> {
|
|
20
|
-
/**
|
|
21
|
-
* Limiting enabled http method handler
|
|
22
|
-
*/
|
|
23
|
-
static readonly methods: Handlers[];
|
|
24
|
-
private readonly multipartBase;
|
|
25
|
-
/**
|
|
26
|
-
* Maximum file size allowed for multipart uploads
|
|
27
|
-
*/
|
|
28
|
-
private maxFileSize;
|
|
29
|
-
/**
|
|
30
|
-
* Maximum header size allowed for multipart parser
|
|
31
|
-
*/
|
|
32
|
-
private maxHeaderSize;
|
|
33
|
-
constructor(options: UploadOptions<TFile>);
|
|
34
|
-
/**
|
|
35
|
-
* Handles multipart/form-data POST requests for file uploads.
|
|
36
|
-
* @param request Web API Request containing multipart data.
|
|
37
|
-
* @returns Promise resolving to ResponseFile with upload result.
|
|
38
|
-
*/
|
|
39
|
-
post(request: Request): Promise<ResponseFile<TFile>>;
|
|
40
|
-
/**
|
|
41
|
-
* Delete an uploaded file.
|
|
42
|
-
* @param request Web API Request with file ID
|
|
43
|
-
* @returns Promise resolving to ResponseFile with deletion result
|
|
44
|
-
*/
|
|
45
|
-
delete(request: Request): Promise<ResponseFile<TFile>>;
|
|
46
|
-
/**
|
|
47
|
-
* Handle OPTIONS requests with CORS headers.
|
|
48
|
-
* @param _request Web API Request (unused)
|
|
49
|
-
* @returns Promise resolving to ResponseFile with CORS headers
|
|
50
|
-
*/
|
|
51
|
-
options(_request: Request): Promise<ResponseFile<TFile>>;
|
|
52
|
-
/**
|
|
53
|
-
* Retrieves a file or list of files based on the request path.
|
|
54
|
-
* Delegates to BaseHandlerFetch.fetch() method.
|
|
55
|
-
* @param _request Web API Request
|
|
56
|
-
* @returns Promise resolving to Web API Response
|
|
57
|
-
*/
|
|
58
|
-
get(_request: Request): Promise<ResponseFile<TFile>>;
|
|
59
|
-
/**
|
|
60
|
-
* Compose and register HTTP method handlers.
|
|
61
|
-
*/
|
|
62
|
-
protected compose(): void;
|
|
63
|
-
}
|
|
64
|
-
export default Multipart;
|
|
@@ -1,49 +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, UploadOptions } from "../types.d.ts";
|
|
5
|
-
/**
|
|
6
|
-
* Multipart/form-data upload handler (Node.js version).
|
|
7
|
-
* @example
|
|
8
|
-
* ```ts
|
|
9
|
-
* const multipart = new Multipart({
|
|
10
|
-
* storage,
|
|
11
|
-
* maxFileSize: 100 * 1024 * 1024, // 100MB
|
|
12
|
-
* });
|
|
13
|
-
*
|
|
14
|
-
* app.use('/files', multipart.handle);
|
|
15
|
-
* ```
|
|
16
|
-
*/
|
|
17
|
-
declare class Multipart<TFile extends UploadFile, NodeRequest extends IncomingMessage = IncomingMessage, NodeResponse extends ServerResponse = ServerResponse> extends BaseHandlerNode<TFile, NodeRequest, NodeResponse> {
|
|
18
|
-
/**
|
|
19
|
-
* Limiting enabled http method handler
|
|
20
|
-
*/
|
|
21
|
-
static readonly methods: Handlers[];
|
|
22
|
-
private readonly multipartBase;
|
|
23
|
-
/**
|
|
24
|
-
* Maximum file size allowed for multipart uploads
|
|
25
|
-
*/
|
|
26
|
-
private maxFileSize;
|
|
27
|
-
/**
|
|
28
|
-
* Maximum header size allowed for multipart parser
|
|
29
|
-
*/
|
|
30
|
-
private maxHeaderSize;
|
|
31
|
-
constructor(options: UploadOptions<TFile>);
|
|
32
|
-
/**
|
|
33
|
-
* Handles multipart/form-data POST requests for file uploads.
|
|
34
|
-
* @param request Node.js IncomingMessage containing multipart data.
|
|
35
|
-
* @returns Promise resolving to ResponseFile with upload result.
|
|
36
|
-
*/
|
|
37
|
-
post(request: NodeRequest): Promise<ResponseFile<TFile>>;
|
|
38
|
-
/**
|
|
39
|
-
* Delete an uploaded file.
|
|
40
|
-
* @param request Node.js IncomingMessage with file ID
|
|
41
|
-
* @returns Promise resolving to ResponseFile with deletion result
|
|
42
|
-
*/
|
|
43
|
-
delete(request: NodeRequest): Promise<ResponseFile<TFile>>;
|
|
44
|
-
/**
|
|
45
|
-
* Compose and register HTTP method handlers.
|
|
46
|
-
*/
|
|
47
|
-
protected compose(): void;
|
|
48
|
-
}
|
|
49
|
-
export default Multipart;
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import type { FileInit, UploadFile } from "../../storage/utils/index.d.ts";
|
|
2
|
-
import type { ResponseFile, ResponseList } from "../types.d.ts";
|
|
3
|
-
/**
|
|
4
|
-
* Base class containing shared REST API business logic.
|
|
5
|
-
* Platform-agnostic - contains no Node.js or Web API specific code.
|
|
6
|
-
* @template TFile The file type used by this handler.
|
|
7
|
-
*/
|
|
8
|
-
declare abstract class RestBase<TFile extends UploadFile> {
|
|
9
|
-
/**
|
|
10
|
-
* Handle single file deletion.
|
|
11
|
-
* @param id File ID to delete
|
|
12
|
-
* @returns Promise resolving to ResponseFile with deletion result
|
|
13
|
-
*/
|
|
14
|
-
deleteSingle(id: string): Promise<ResponseFile<TFile>>;
|
|
15
|
-
/**
|
|
16
|
-
* Handle file creation (POST).
|
|
17
|
-
* @param config File initialization config
|
|
18
|
-
* @param isChunkedUpload Whether this is a chunked upload initialization
|
|
19
|
-
* @param requestUrl Request URL for Location header
|
|
20
|
-
* @param bodyStream Request body stream (for non-chunked uploads)
|
|
21
|
-
* @param contentLength Content length (for non-chunked uploads)
|
|
22
|
-
* @returns Promise resolving to ResponseFile with upload result
|
|
23
|
-
*/
|
|
24
|
-
handlePost(config: FileInit, isChunkedUpload: boolean, requestUrl: string, bodyStream: unknown, contentLength: number): Promise<ResponseFile<TFile>>;
|
|
25
|
-
/**
|
|
26
|
-
* Handle file update or creation (PUT).
|
|
27
|
-
* @param id File ID from URL
|
|
28
|
-
* @param config File initialization config (for new files)
|
|
29
|
-
* @param requestUrl Request URL for Location header
|
|
30
|
-
* @param bodyStream Request body stream
|
|
31
|
-
* @param contentLength Content length
|
|
32
|
-
* @param metadata Optional metadata to merge (for updates)
|
|
33
|
-
* @returns Promise resolving to ResponseFile with upload result
|
|
34
|
-
*/
|
|
35
|
-
handlePut(id: string, config: FileInit, requestUrl: string, bodyStream: unknown, contentLength: number, metadata?: Record<string, unknown>): Promise<ResponseFile<TFile>>;
|
|
36
|
-
/**
|
|
37
|
-
* Handle chunked upload chunk (PATCH).
|
|
38
|
-
* @param id File ID from URL
|
|
39
|
-
* @param chunkOffset Chunk offset in bytes
|
|
40
|
-
* @param contentLength Chunk content length
|
|
41
|
-
* @param chunkChecksum Optional chunk checksum
|
|
42
|
-
* @param requestUrl Request URL for Location header
|
|
43
|
-
* @param bodyStream Request body stream
|
|
44
|
-
* @returns Promise resolving to ResponseFile with upload progress
|
|
45
|
-
*/
|
|
46
|
-
handlePatch(id: string, chunkOffset: number, contentLength: number, chunkChecksum: string | undefined, requestUrl: string, bodyStream: unknown): Promise<ResponseFile<TFile>>;
|
|
47
|
-
/**
|
|
48
|
-
* Handle file metadata retrieval (HEAD).
|
|
49
|
-
* @param id File ID from URL
|
|
50
|
-
* @returns Promise resolving to ResponseFile with metadata headers
|
|
51
|
-
*/
|
|
52
|
-
handleHead(id: string): Promise<ResponseFile<TFile>>;
|
|
53
|
-
/**
|
|
54
|
-
* Handle OPTIONS request with REST API capabilities.
|
|
55
|
-
* @param methods Array of supported HTTP methods
|
|
56
|
-
* @param maxUploadSize Maximum upload size
|
|
57
|
-
* @returns ResponseFile with CORS headers
|
|
58
|
-
*/
|
|
59
|
-
handleOptions(methods: string[], maxUploadSize: number): ResponseFile<TFile>;
|
|
60
|
-
/**
|
|
61
|
-
* Handle batch file deletion.
|
|
62
|
-
* @param ids Array of file IDs to delete
|
|
63
|
-
* @returns Promise resolving to ResponseList with deletion results
|
|
64
|
-
*/
|
|
65
|
-
deleteBatch(ids: string[]): Promise<ResponseList<TFile>>;
|
|
66
|
-
/**
|
|
67
|
-
* Storage instance for file operations.
|
|
68
|
-
*/
|
|
69
|
-
protected get storage(): {
|
|
70
|
-
create: (config: FileInit) => Promise<TFile>;
|
|
71
|
-
delete: (options: {
|
|
72
|
-
id: string;
|
|
73
|
-
}) => Promise<TFile>;
|
|
74
|
-
deleteBatch: (ids: string[]) => Promise<{
|
|
75
|
-
failed: {
|
|
76
|
-
error: string;
|
|
77
|
-
id: string;
|
|
78
|
-
}[];
|
|
79
|
-
failedCount: number;
|
|
80
|
-
successful: TFile[];
|
|
81
|
-
successfulCount: number;
|
|
82
|
-
}>;
|
|
83
|
-
getMeta: (id: string) => Promise<TFile>;
|
|
84
|
-
maxUploadSize: number;
|
|
85
|
-
update: (options: {
|
|
86
|
-
id: string;
|
|
87
|
-
}, updates: {
|
|
88
|
-
metadata?: Record<string, unknown>;
|
|
89
|
-
status?: string;
|
|
90
|
-
}) => Promise<void>;
|
|
91
|
-
write: (options: {
|
|
92
|
-
body: unknown;
|
|
93
|
-
contentLength: number;
|
|
94
|
-
id: string;
|
|
95
|
-
start: number;
|
|
96
|
-
}) => Promise<TFile>;
|
|
97
|
-
};
|
|
98
|
-
/**
|
|
99
|
-
* Build file URL from request URL and file data.
|
|
100
|
-
* @param _requestUrl Request URL string
|
|
101
|
-
* @param _file File object containing ID and content type
|
|
102
|
-
* @returns Constructed file URL with extension based on content type
|
|
103
|
-
*/
|
|
104
|
-
protected buildFileUrl(_requestUrl: string, _file: TFile): string;
|
|
105
|
-
}
|
|
106
|
-
export default RestBase;
|
|
@@ -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;
|