@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
|
@@ -0,0 +1,720 @@
|
|
|
1
|
+
import { C as Cache, F as File, g as FileReturn, B as BaseStorage } from "./storage.d-CEM1upWM.js";
|
|
2
|
+
import { Readable } from 'node:stream';
|
|
3
|
+
/**
|
|
4
|
+
* Base transformer configuration with common properties
|
|
5
|
+
*/
|
|
6
|
+
interface BaseTransformerConfig {
|
|
7
|
+
/** Cache instance to use for caching */
|
|
8
|
+
cache?: Cache;
|
|
9
|
+
/** Cache TTL in seconds */
|
|
10
|
+
cacheTtl?: number;
|
|
11
|
+
/** Logger instance */
|
|
12
|
+
logger?: Console;
|
|
13
|
+
/** Maximum number of cached items */
|
|
14
|
+
maxCacheSize?: number;
|
|
15
|
+
/** Supported input formats */
|
|
16
|
+
supportedFormats?: string[] | undefined;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Abstract base class for all media transformers.
|
|
20
|
+
*
|
|
21
|
+
* Provides a common interface and shared functionality for image, video, and audio transformers.
|
|
22
|
+
* All transformers must implement the abstract methods defined here.
|
|
23
|
+
*/
|
|
24
|
+
declare abstract class BaseTransformer<Config extends BaseTransformerConfig, CacheValue extends object, TFile extends File = File, TFileReturn extends FileReturn = FileReturn> {
|
|
25
|
+
protected readonly storage: BaseStorage<TFile, TFileReturn>;
|
|
26
|
+
protected config: Config;
|
|
27
|
+
protected logger?: Console;
|
|
28
|
+
protected cache?: Cache<string, CacheValue>;
|
|
29
|
+
/**
|
|
30
|
+
* Creates a new BaseTransformer instance with common functionality.
|
|
31
|
+
* @param storage The storage backend for retrieving and storing files.
|
|
32
|
+
* @param config Configuration options for the transformer.
|
|
33
|
+
* @param logger Optional logger instance for logging operations.
|
|
34
|
+
* @protected
|
|
35
|
+
*/
|
|
36
|
+
protected constructor(storage: BaseStorage<TFile, TFileReturn>, config: Config, logger?: Console);
|
|
37
|
+
/**
|
|
38
|
+
* Transforms a file with the given steps.
|
|
39
|
+
* @param fileId Unique identifier of the file to transform.
|
|
40
|
+
* @param steps Array of transformation steps to apply.
|
|
41
|
+
* @returns Promise resolving to transformation result.
|
|
42
|
+
*/
|
|
43
|
+
abstract transform(fileId: string, steps: any[]): Promise<any>;
|
|
44
|
+
/**
|
|
45
|
+
* Streams transform of a file with the given steps (for large files).
|
|
46
|
+
* @param fileId Unique identifier of the file to transform.
|
|
47
|
+
* @param steps Array of transformation steps to apply.
|
|
48
|
+
* @returns Promise resolving to streaming result with headers, size, and stream.
|
|
49
|
+
*/
|
|
50
|
+
transformStream?(fileId: string, steps: any[]): Promise<{
|
|
51
|
+
headers?: Record<string, string>;
|
|
52
|
+
size?: number;
|
|
53
|
+
stream: Readable;
|
|
54
|
+
}>;
|
|
55
|
+
/**
|
|
56
|
+
* Clears cache for a specific file or all files.
|
|
57
|
+
*
|
|
58
|
+
* Cache keys are `${fileId}:${stepsHash}` (see `generateCacheKey` in subclasses),
|
|
59
|
+
* so per-file invalidation must iterate keys to find every transform of `fileId`.
|
|
60
|
+
* Falls back to a full `clear()` when the underlying cache doesn't expose `keys()`.
|
|
61
|
+
* @param fileId Optional file identifier to clear cache for specific file.
|
|
62
|
+
*/
|
|
63
|
+
clearCache(fileId?: string): void;
|
|
64
|
+
/**
|
|
65
|
+
* Gets cache statistics.
|
|
66
|
+
* @returns Cache statistics including max size and current size.
|
|
67
|
+
*/
|
|
68
|
+
getCacheStats(): {
|
|
69
|
+
maxSize: number;
|
|
70
|
+
size: number;
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Gets content type from transformation result based on format.
|
|
74
|
+
* @param result Transformation result object containing format information.
|
|
75
|
+
* @returns Content type string (MIME type).
|
|
76
|
+
*/
|
|
77
|
+
protected getContentTypeFromResult(result: any): string;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Supported image formats for transformation
|
|
81
|
+
*/
|
|
82
|
+
type ImageFormat = "jpeg" | "png" | "webp" | "avif" | "tiff" | "gif";
|
|
83
|
+
/**
|
|
84
|
+
* Image transformation options
|
|
85
|
+
*/
|
|
86
|
+
interface TransformOptions {
|
|
87
|
+
/** Quality of alpha layer for WebP (0-100) */
|
|
88
|
+
alphaQuality?: number;
|
|
89
|
+
/** Compression level for PNG (0-9) */
|
|
90
|
+
compressionLevel?: number;
|
|
91
|
+
/** GIF delay(s) between animation frames (in milliseconds) */
|
|
92
|
+
delay?: number;
|
|
93
|
+
/** Effort for AVIF encoding (0-10) */
|
|
94
|
+
effort?: number;
|
|
95
|
+
/** Output format */
|
|
96
|
+
format?: ImageFormat;
|
|
97
|
+
/** GIF number of animation iterations, use 0 for infinite */
|
|
98
|
+
loop?: number;
|
|
99
|
+
/** Whether to use lossless compression for WebP */
|
|
100
|
+
lossless?: boolean;
|
|
101
|
+
/** Whether to use progressive encoding for JPEG */
|
|
102
|
+
progressive?: boolean;
|
|
103
|
+
/** Quality for JPEG/WebP images (1-100) */
|
|
104
|
+
quality?: number;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Sharpen transformation options
|
|
108
|
+
*/
|
|
109
|
+
interface SharpenOptions extends TransformOptions {
|
|
110
|
+
/** M1 for sharpen formula */
|
|
111
|
+
m1?: number;
|
|
112
|
+
/** M2 for sharpen formula */
|
|
113
|
+
m2?: number;
|
|
114
|
+
/** Sigma for Gaussian blur */
|
|
115
|
+
sigma?: number;
|
|
116
|
+
/** X1 for sharpen formula */
|
|
117
|
+
x1?: number;
|
|
118
|
+
/** Y2 for sharpen formula */
|
|
119
|
+
y2?: number;
|
|
120
|
+
/** Y3 for sharpen formula */
|
|
121
|
+
y3?: number;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Blur transformation options
|
|
125
|
+
*/
|
|
126
|
+
interface BlurOptions extends TransformOptions {
|
|
127
|
+
/** M1 for blur formula */
|
|
128
|
+
m1?: number;
|
|
129
|
+
/** M2 for blur formula */
|
|
130
|
+
m2?: number;
|
|
131
|
+
/** Sigma for Gaussian blur */
|
|
132
|
+
sigma?: number;
|
|
133
|
+
/** X1 for blur formula */
|
|
134
|
+
x1?: number;
|
|
135
|
+
/** Y2 for blur formula */
|
|
136
|
+
y2?: number;
|
|
137
|
+
/** Y3 for blur formula */
|
|
138
|
+
y3?: number;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Median transformation options
|
|
142
|
+
*/
|
|
143
|
+
interface MedianOptions extends TransformOptions {
|
|
144
|
+
/** Size of the median filter */
|
|
145
|
+
size?: number;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* CLAHE (Contrast Limited Adaptive Histogram Equalization) options
|
|
149
|
+
*/
|
|
150
|
+
interface CLAHEOptions extends TransformOptions {
|
|
151
|
+
/** Height of the tile grid */
|
|
152
|
+
height?: number;
|
|
153
|
+
/** Maximum slope value for contrast limiting */
|
|
154
|
+
maxSlope?: number;
|
|
155
|
+
/** Width of the tile grid */
|
|
156
|
+
width?: number;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Convolve transformation options
|
|
160
|
+
*/
|
|
161
|
+
interface ConvolveOptions extends TransformOptions {
|
|
162
|
+
/** Height of the kernel in pixels */
|
|
163
|
+
height?: number;
|
|
164
|
+
/** Kernel values as flat array */
|
|
165
|
+
kernel?: number[];
|
|
166
|
+
/** Offset value */
|
|
167
|
+
offset?: number;
|
|
168
|
+
/** Scale factor */
|
|
169
|
+
scale?: number;
|
|
170
|
+
/** Width of the kernel in pixels */
|
|
171
|
+
width?: number;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Threshold transformation options
|
|
175
|
+
*/
|
|
176
|
+
interface ThresholdOptions extends TransformOptions {
|
|
177
|
+
/** Alternative spelling for greyscale */
|
|
178
|
+
grayscale?: boolean;
|
|
179
|
+
/** Convert to greyscale */
|
|
180
|
+
greyscale?: boolean;
|
|
181
|
+
/** Threshold value (0-255) */
|
|
182
|
+
threshold?: number;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Boolean operation options
|
|
186
|
+
*/
|
|
187
|
+
interface BooleanOptions extends TransformOptions {
|
|
188
|
+
/** Operand image buffer or path */
|
|
189
|
+
operand: Buffer | string;
|
|
190
|
+
/** Boolean operation: and, or, eor */
|
|
191
|
+
operator: "and" | "or" | "eor";
|
|
192
|
+
/** Raw operand options */
|
|
193
|
+
raw?: {
|
|
194
|
+
channels: number;
|
|
195
|
+
height: number;
|
|
196
|
+
width: number;
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Linear transformation options
|
|
201
|
+
*/
|
|
202
|
+
interface LinearOptions extends TransformOptions {
|
|
203
|
+
/** Multiplier values (per channel or single value) */
|
|
204
|
+
a?: number | number[];
|
|
205
|
+
/** Offset values (per channel or single value) */
|
|
206
|
+
b?: number | number[];
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Recombine transformation options
|
|
210
|
+
*/
|
|
211
|
+
interface RecombineOptions extends TransformOptions {
|
|
212
|
+
/** 3x3 or 4x4 recombination matrix */
|
|
213
|
+
matrix: number[][];
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Modulate transformation options
|
|
217
|
+
*/
|
|
218
|
+
interface ModulateOptions extends TransformOptions {
|
|
219
|
+
/** Brightness multiplier */
|
|
220
|
+
brightness?: number;
|
|
221
|
+
/** Hue rotation in degrees */
|
|
222
|
+
hue?: number;
|
|
223
|
+
/** Lightness adjustment */
|
|
224
|
+
lightness?: number;
|
|
225
|
+
/** Saturation multiplier */
|
|
226
|
+
saturation?: number;
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Tint transformation options
|
|
230
|
+
*/
|
|
231
|
+
interface TintOptions extends TransformOptions {
|
|
232
|
+
/** RGB tint values */
|
|
233
|
+
rgb: [number, number, number] | string;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Greyscale transformation options
|
|
237
|
+
*/
|
|
238
|
+
interface GreyscaleOptions extends TransformOptions {
|
|
239
|
+
/** Alternative spelling */
|
|
240
|
+
grayscale?: boolean;
|
|
241
|
+
/** Convert to greyscale */
|
|
242
|
+
greyscale?: boolean;
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Colourspace transformation options
|
|
246
|
+
*/
|
|
247
|
+
interface ColourspaceOptions extends TransformOptions {
|
|
248
|
+
/** Target colourspace */
|
|
249
|
+
colourspace: "srgb" | "rgb" | "cmyk" | "lab" | "b-w";
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Channel extraction options
|
|
253
|
+
*/
|
|
254
|
+
interface ExtractChannelOptions extends TransformOptions {
|
|
255
|
+
/** Channel to extract (0-3 for RGBA) */
|
|
256
|
+
channel: number;
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Options for joining multiple images as color channels into a single image.
|
|
260
|
+
*/
|
|
261
|
+
interface JoinChannelOptions extends TransformOptions {
|
|
262
|
+
/** Images to join as channels */
|
|
263
|
+
images: (Buffer | string)[];
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Options for performing boolean operations on image bands.
|
|
267
|
+
*/
|
|
268
|
+
interface BandboolOptions extends TransformOptions {
|
|
269
|
+
/** Boolean operation: and, or, eor */
|
|
270
|
+
operator: "and" | "or" | "eor";
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Options for applying affine transformations (rotation, scaling, shearing, translation) to images.
|
|
274
|
+
*/
|
|
275
|
+
interface AffineOptions extends TransformOptions {
|
|
276
|
+
/** Background color for areas outside the transformed image */
|
|
277
|
+
background?: string;
|
|
278
|
+
/** Interpolation method */
|
|
279
|
+
interpolation?: "nearest" | "bilinear" | "bicubic" | "nohalo" | "lbb" | "vsqbs";
|
|
280
|
+
/** 2x3 transformation matrix */
|
|
281
|
+
matrix: [number, number, number, number, number, number];
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Options for applying morphological dilation operation to images.
|
|
285
|
+
*/
|
|
286
|
+
interface DilateOptions extends TransformOptions {
|
|
287
|
+
/** Kernel size for dilation */
|
|
288
|
+
kernelSize?: number;
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Options for applying morphological erosion operation to images.
|
|
292
|
+
*/
|
|
293
|
+
interface ErodeOptions extends TransformOptions {
|
|
294
|
+
/** Kernel size for erosion */
|
|
295
|
+
kernelSize?: number;
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Options for setting the colourspace used for internal processing pipeline operations.
|
|
299
|
+
*/
|
|
300
|
+
interface PipelineColourspaceOptions extends TransformOptions {
|
|
301
|
+
/** Colourspace for internal operations */
|
|
302
|
+
colourspace: "rgb" | "srgb" | "cmyk" | "lab" | "b-w";
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Options for converting images to a target colourspace.
|
|
306
|
+
*/
|
|
307
|
+
interface ToColourspaceOptions extends TransformOptions {
|
|
308
|
+
/** Target colourspace */
|
|
309
|
+
colourspace: "srgb" | "rgb" | "cmyk" | "lab" | "b-w";
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Remove alpha channel options
|
|
313
|
+
*/
|
|
314
|
+
interface RemoveAlphaOptions extends TransformOptions {
|
|
315
|
+
/** Background color to composite over alpha channel */
|
|
316
|
+
background?: string;
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Ensure alpha channel options
|
|
320
|
+
*/
|
|
321
|
+
interface EnsureAlphaOptions extends TransformOptions {
|
|
322
|
+
/** Alpha channel value to add */
|
|
323
|
+
alpha?: number;
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Resize transformation options
|
|
327
|
+
*/
|
|
328
|
+
interface ResizeOptions extends TransformOptions {
|
|
329
|
+
/** Background color for fill fit */
|
|
330
|
+
background?: string;
|
|
331
|
+
/** Whether to skip enlargement during initial load */
|
|
332
|
+
fastShrinkOnLoad?: boolean;
|
|
333
|
+
/** Resize fit mode */
|
|
334
|
+
fit?: "cover" | "contain" | "fill" | "inside" | "outside";
|
|
335
|
+
/** Height in pixels */
|
|
336
|
+
height?: number;
|
|
337
|
+
/** Resize kernel */
|
|
338
|
+
kernel?: "nearest" | "cubic" | "mitchell" | "lanczos2" | "lanczos3";
|
|
339
|
+
/** Position for cover/contain fits */
|
|
340
|
+
position?: string | number;
|
|
341
|
+
/** Width in pixels */
|
|
342
|
+
width?: number;
|
|
343
|
+
/** Whether to avoid enlarging images smaller than specified dimensions */
|
|
344
|
+
withoutEnlargement?: boolean;
|
|
345
|
+
/** Whether to avoid reducing images larger than specified dimensions */
|
|
346
|
+
withoutReduction?: boolean;
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* Crop transformation options
|
|
350
|
+
*/
|
|
351
|
+
interface CropOptions extends TransformOptions {
|
|
352
|
+
/** Crop area height */
|
|
353
|
+
height: number;
|
|
354
|
+
/** Crop area left offset */
|
|
355
|
+
left: number;
|
|
356
|
+
/** Crop area top offset */
|
|
357
|
+
top: number;
|
|
358
|
+
/** Crop area width */
|
|
359
|
+
width: number;
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Rotate transformation options
|
|
363
|
+
*/
|
|
364
|
+
interface RotateOptions extends TransformOptions {
|
|
365
|
+
/** Rotation angle in degrees. Note: angles other than 90°, 180°, and 270° require interpolation and may affect image quality */
|
|
366
|
+
angle: number;
|
|
367
|
+
/** Background color for rotation */
|
|
368
|
+
background?: string;
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* Transformation pipeline step
|
|
372
|
+
*/
|
|
373
|
+
interface TransformationStep {
|
|
374
|
+
options: TransformOptions | ResizeOptions | CropOptions | RotateOptions | SharpenOptions | BlurOptions | MedianOptions | CLAHEOptions | ConvolveOptions | ThresholdOptions | BooleanOptions | LinearOptions | RecombineOptions | ModulateOptions | TintOptions | GreyscaleOptions | ColourspaceOptions | ExtractChannelOptions | JoinChannelOptions | BandboolOptions | AffineOptions | DilateOptions | ErodeOptions | PipelineColourspaceOptions | ToColourspaceOptions | RemoveAlphaOptions | EnsureAlphaOptions;
|
|
375
|
+
type: "resize" | "crop" | "rotate" | "format" | "quality" | "sharpen" | "blur" | "median" | "clahe" | "convolve" | "threshold" | "boolean" | "linear" | "recombine" | "modulate" | "tint" | "greyscale" | "colourspace" | "extractChannel" | "joinChannel" | "bandbool" | "autoOrient" | "flip" | "flop" | "affine" | "dilate" | "erode" | "pipelineColourspace" | "toColourspace" | "removeAlpha" | "ensureAlpha" | "flatten" | "unflatten" | "gamma" | "negate" | "normalise" | "normalize";
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* Generic transformation pipeline step (for any media type)
|
|
379
|
+
*/
|
|
380
|
+
interface MediaTransformationStep {
|
|
381
|
+
options: TransformOptions | ResizeOptions | CropOptions | RotateOptions | SharpenOptions | BlurOptions | MedianOptions | CLAHEOptions | ConvolveOptions | ThresholdOptions | BooleanOptions | LinearOptions | RecombineOptions | ModulateOptions | TintOptions | GreyscaleOptions | ColourspaceOptions | ExtractChannelOptions | JoinChannelOptions | BandboolOptions | VideoTransformOptions | VideoResizeOptions | VideoCropOptions | VideoRotateOptions | AudioTransformOptions | AudioChannelMixOptions | AudioResampleOptions;
|
|
382
|
+
type: "resize" | "crop" | "rotate" | "format" | "quality" | "sharpen" | "blur" | "median" | "clahe" | "convolve" | "threshold" | "boolean" | "linear" | "recombine" | "modulate" | "tint" | "greyscale" | "colourspace" | "extractChannel" | "joinChannel" | "bandbool" | "autoOrient" | "flip" | "flop" | "affine" | "dilate" | "erode" | "flatten" | "unflatten" | "gamma" | "negate" | "normalise" | "normalize" | "codec" | "bitrate" | "frameRate" | "resample" | "channels";
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* Video transformation options
|
|
386
|
+
*/
|
|
387
|
+
interface VideoTransformOptions extends TransformOptions {
|
|
388
|
+
/** Video bitrate */
|
|
389
|
+
bitrate?: number;
|
|
390
|
+
/** Video codec */
|
|
391
|
+
codec?: "avc" | "hevc" | "vp8" | "vp9" | "av1";
|
|
392
|
+
/** Frame rate in Hz */
|
|
393
|
+
frameRate?: number;
|
|
394
|
+
/** Key frame interval in seconds */
|
|
395
|
+
keyFrameInterval?: number;
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* Audio transformation options
|
|
399
|
+
*/
|
|
400
|
+
interface AudioTransformOptions extends TransformOptions {
|
|
401
|
+
/** Audio bitrate */
|
|
402
|
+
bitrate?: number;
|
|
403
|
+
/** Audio codec */
|
|
404
|
+
codec?: "aac" | "opus" | "mp3" | "vorbis" | "flac";
|
|
405
|
+
/** Number of channels */
|
|
406
|
+
numberOfChannels?: number;
|
|
407
|
+
/** Sample rate in Hz */
|
|
408
|
+
sampleRate?: number;
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* Video resize transformation options
|
|
412
|
+
*/
|
|
413
|
+
interface VideoResizeOptions extends VideoTransformOptions {
|
|
414
|
+
/** Resize fit mode */
|
|
415
|
+
fit?: "cover" | "contain" | "fill" | "inside" | "outside";
|
|
416
|
+
/** Height in pixels */
|
|
417
|
+
height?: number;
|
|
418
|
+
/** Position for cover/contain fits */
|
|
419
|
+
position?: string | number;
|
|
420
|
+
/** Width in pixels */
|
|
421
|
+
width?: number;
|
|
422
|
+
/** Whether to avoid enlarging videos smaller than specified dimensions */
|
|
423
|
+
withoutEnlargement?: boolean;
|
|
424
|
+
/** Whether to avoid reducing videos larger than specified dimensions */
|
|
425
|
+
withoutReduction?: boolean;
|
|
426
|
+
}
|
|
427
|
+
/**
|
|
428
|
+
* Video crop transformation options
|
|
429
|
+
*/
|
|
430
|
+
interface VideoCropOptions extends VideoTransformOptions {
|
|
431
|
+
/** Crop area height */
|
|
432
|
+
height: number;
|
|
433
|
+
/** Crop area left offset */
|
|
434
|
+
left: number;
|
|
435
|
+
/** Crop area top offset */
|
|
436
|
+
top: number;
|
|
437
|
+
/** Crop area width */
|
|
438
|
+
width: number;
|
|
439
|
+
}
|
|
440
|
+
/**
|
|
441
|
+
* Video rotate transformation options
|
|
442
|
+
*/
|
|
443
|
+
interface VideoRotateOptions extends VideoTransformOptions {
|
|
444
|
+
/** Rotation angle in degrees. Note: angles other than 90°, 180°, and 270° require interpolation and may affect video quality */
|
|
445
|
+
angle: number;
|
|
446
|
+
/** Background color for rotation */
|
|
447
|
+
background?: string;
|
|
448
|
+
}
|
|
449
|
+
/**
|
|
450
|
+
* Audio channel mix transformation options
|
|
451
|
+
*/
|
|
452
|
+
interface AudioChannelMixOptions extends AudioTransformOptions {
|
|
453
|
+
/** Number of output channels */
|
|
454
|
+
numberOfChannels: number;
|
|
455
|
+
}
|
|
456
|
+
/**
|
|
457
|
+
* Audio resample transformation options
|
|
458
|
+
*/
|
|
459
|
+
interface AudioResampleOptions extends AudioTransformOptions {
|
|
460
|
+
/** Output sample rate in Hz */
|
|
461
|
+
sampleRate: number;
|
|
462
|
+
}
|
|
463
|
+
/**
|
|
464
|
+
* Video transformation pipeline step
|
|
465
|
+
*/
|
|
466
|
+
interface VideoTransformationStep {
|
|
467
|
+
options: VideoTransformOptions | VideoResizeOptions | VideoCropOptions | VideoRotateOptions;
|
|
468
|
+
type: "resize" | "crop" | "rotate" | "format" | "codec" | "bitrate" | "frameRate";
|
|
469
|
+
}
|
|
470
|
+
/**
|
|
471
|
+
* Audio transformation pipeline step
|
|
472
|
+
*/
|
|
473
|
+
interface AudioTransformationStep {
|
|
474
|
+
options: AudioTransformOptions | AudioChannelMixOptions | AudioResampleOptions;
|
|
475
|
+
type: "resample" | "channels" | "format" | "codec" | "bitrate";
|
|
476
|
+
}
|
|
477
|
+
/**
|
|
478
|
+
* Image transformation result
|
|
479
|
+
*/
|
|
480
|
+
interface TransformResult<TFileReturn extends FileReturn = FileReturn> {
|
|
481
|
+
/** Transformed image buffer */
|
|
482
|
+
buffer: Buffer;
|
|
483
|
+
/** Image format */
|
|
484
|
+
format: string;
|
|
485
|
+
/** Image height in pixels */
|
|
486
|
+
height: number;
|
|
487
|
+
/** Original file information */
|
|
488
|
+
originalFile: TFileReturn;
|
|
489
|
+
/** Image size in bytes */
|
|
490
|
+
size: number;
|
|
491
|
+
/** Image width in pixels */
|
|
492
|
+
width: number;
|
|
493
|
+
}
|
|
494
|
+
/**
|
|
495
|
+
* Video transformation result
|
|
496
|
+
*/
|
|
497
|
+
interface VideoTransformResult<TFileReturn extends FileReturn = FileReturn> extends TransformResult<TFileReturn> {
|
|
498
|
+
/** Video bitrate */
|
|
499
|
+
bitrate?: number;
|
|
500
|
+
/** Video duration in seconds */
|
|
501
|
+
duration: number;
|
|
502
|
+
}
|
|
503
|
+
/**
|
|
504
|
+
* Audio transformation result
|
|
505
|
+
*/
|
|
506
|
+
interface AudioTransformResult<TFileReturn extends FileReturn = FileReturn> extends Omit<TransformResult<TFileReturn>, "width" | "height"> {
|
|
507
|
+
/** Audio bitrate */
|
|
508
|
+
bitrate?: number;
|
|
509
|
+
/** Audio duration in seconds */
|
|
510
|
+
duration: number;
|
|
511
|
+
/** Number of channels */
|
|
512
|
+
numberOfChannels: number;
|
|
513
|
+
/** Sample rate in Hz */
|
|
514
|
+
sampleRate: number;
|
|
515
|
+
}
|
|
516
|
+
/**
|
|
517
|
+
* Media transformer configuration (unified config for all transformers)
|
|
518
|
+
*/
|
|
519
|
+
interface MediaTransformerConfig<TFile extends File = File, TFileReturn extends FileReturn = FileReturn> {
|
|
520
|
+
/** Default audio bitrate */
|
|
521
|
+
audioBitrate?: number;
|
|
522
|
+
/** Default audio codec */
|
|
523
|
+
audioCodec?: "aac" | "opus" | "mp3" | "vorbis" | "flac";
|
|
524
|
+
/** Audio transformer class (optional, enables audio transformations) */
|
|
525
|
+
AudioTransformer?: new (storage: BaseStorage<TFile, TFileReturn>, config: AudioTransformerConfig) => BaseTransformer<AudioTransformerConfig, AudioTransformResult<TFileReturn>, TFile, TFileReturn>;
|
|
526
|
+
/** Cache instance to use for caching */
|
|
527
|
+
cache?: Cache;
|
|
528
|
+
/** Cache TTL in seconds */
|
|
529
|
+
cacheTtl?: number;
|
|
530
|
+
/** Image transformer class (optional, enables image transformations) */
|
|
531
|
+
ImageTransformer?: new (storage: BaseStorage<TFile, TFileReturn>, config: ImageTransformerConfig) => BaseTransformer<ImageTransformerConfig, TransformResult<TFileReturn>, TFile, TFileReturn>;
|
|
532
|
+
/** Logger instance */
|
|
533
|
+
logger?: Console;
|
|
534
|
+
/** Maximum audio size to process (in bytes) */
|
|
535
|
+
maxAudioSize?: number;
|
|
536
|
+
/** Maximum image size to process (in bytes) */
|
|
537
|
+
maxImageSize?: number;
|
|
538
|
+
/** Maximum video size to process (in bytes) */
|
|
539
|
+
maxVideoSize?: number;
|
|
540
|
+
/** Save transformed files to storage for reuse */
|
|
541
|
+
saveTransformedFiles?: boolean;
|
|
542
|
+
/** Supported audio input formats */
|
|
543
|
+
supportedAudioFormats?: string[];
|
|
544
|
+
/** Supported image input formats */
|
|
545
|
+
supportedImageFormats?: string[];
|
|
546
|
+
/** Supported video input formats */
|
|
547
|
+
supportedVideoFormats?: string[];
|
|
548
|
+
/** Default video bitrate */
|
|
549
|
+
videoBitrate?: number;
|
|
550
|
+
/** Default video codec */
|
|
551
|
+
videoCodec?: "avc" | "hevc" | "vp8" | "vp9" | "av1";
|
|
552
|
+
/** Video transformer class (optional, enables video transformations) */
|
|
553
|
+
VideoTransformer?: new (storage: BaseStorage<TFile, TFileReturn>, config: VideoTransformerConfig) => BaseTransformer<VideoTransformerConfig, VideoTransformResult<TFileReturn>, TFile, TFileReturn>;
|
|
554
|
+
}
|
|
555
|
+
/**
|
|
556
|
+
* Unified media transformation result
|
|
557
|
+
*/
|
|
558
|
+
interface MediaTransformResult<TFileReturn extends FileReturn = FileReturn> {
|
|
559
|
+
/** Video-specific properties */
|
|
560
|
+
bitrate?: number;
|
|
561
|
+
/** Transformed media buffer */
|
|
562
|
+
buffer: Buffer;
|
|
563
|
+
/** Video/Audio-specific properties */
|
|
564
|
+
duration?: number;
|
|
565
|
+
/** Media format */
|
|
566
|
+
format: string;
|
|
567
|
+
/** Image/Video-specific properties */
|
|
568
|
+
height?: number;
|
|
569
|
+
/** Media type */
|
|
570
|
+
mediaType: "image" | "video" | "audio";
|
|
571
|
+
/** Audio-specific properties */
|
|
572
|
+
numberOfChannels?: number;
|
|
573
|
+
/** Original file information */
|
|
574
|
+
originalFile: TFileReturn;
|
|
575
|
+
/** Audio-specific properties */
|
|
576
|
+
sampleRate?: number;
|
|
577
|
+
/** Media size in bytes */
|
|
578
|
+
size: number;
|
|
579
|
+
/** Image-specific properties */
|
|
580
|
+
width?: number;
|
|
581
|
+
}
|
|
582
|
+
/**
|
|
583
|
+
* Query parameters for media transformation
|
|
584
|
+
*/
|
|
585
|
+
interface MediaTransformQuery {
|
|
586
|
+
/** Apply affine transformation */
|
|
587
|
+
affine?: boolean;
|
|
588
|
+
/** Rotation angle in degrees. Note: angles other than 90°, 180°, and 270° require interpolation and may affect media quality */
|
|
589
|
+
angle?: number;
|
|
590
|
+
/** Background color for rotation */
|
|
591
|
+
background?: string;
|
|
592
|
+
/** Video bitrate in bits per second */
|
|
593
|
+
bitrate?: number;
|
|
594
|
+
/** Apply blur effect */
|
|
595
|
+
blur?: boolean;
|
|
596
|
+
/** Brightness multiplier for modulation */
|
|
597
|
+
brightness?: number;
|
|
598
|
+
/** Apply CLAHE (Contrast Limited Adaptive Histogram Equalization) */
|
|
599
|
+
clahe?: boolean;
|
|
600
|
+
/** Video codec */
|
|
601
|
+
codec?: "avc" | "hevc" | "vp8" | "vp9" | "av1" | "aac" | "opus" | "mp3" | "vorbis" | "flac";
|
|
602
|
+
/** Crop area height */
|
|
603
|
+
cropHeight?: number;
|
|
604
|
+
/** Crop area width */
|
|
605
|
+
cropWidth?: number;
|
|
606
|
+
/** Apply dilation */
|
|
607
|
+
dilate?: boolean;
|
|
608
|
+
/** Ensure alpha channel */
|
|
609
|
+
ensureAlpha?: boolean;
|
|
610
|
+
/** Apply erosion */
|
|
611
|
+
erode?: boolean;
|
|
612
|
+
/** Fast shrink on load */
|
|
613
|
+
fastShrinkOnLoad?: boolean;
|
|
614
|
+
/** Resize fit mode */
|
|
615
|
+
fit?: "cover" | "contain" | "fill" | "inside" | "outside";
|
|
616
|
+
/** Flatten alpha channel */
|
|
617
|
+
flatten?: boolean;
|
|
618
|
+
/** Flip image vertically */
|
|
619
|
+
flip?: boolean;
|
|
620
|
+
/** Flop image horizontally */
|
|
621
|
+
flop?: boolean;
|
|
622
|
+
/** Output format */
|
|
623
|
+
format?: string;
|
|
624
|
+
/** Frame rate in Hz */
|
|
625
|
+
frameRate?: number;
|
|
626
|
+
/** Apply gamma correction */
|
|
627
|
+
gamma?: boolean;
|
|
628
|
+
/** Convert to greyscale */
|
|
629
|
+
greyscale?: boolean;
|
|
630
|
+
/** Height in pixels */
|
|
631
|
+
height?: number;
|
|
632
|
+
/** Hue rotation in degrees for modulation */
|
|
633
|
+
hue?: number;
|
|
634
|
+
/** Resize kernel */
|
|
635
|
+
kernel?: string;
|
|
636
|
+
/** Key frame interval in seconds */
|
|
637
|
+
keyFrameInterval?: number;
|
|
638
|
+
/** Crop area left offset */
|
|
639
|
+
left?: number;
|
|
640
|
+
/** Lightness adjustment for modulation */
|
|
641
|
+
lightness?: number;
|
|
642
|
+
/** Apply median filter with specified size */
|
|
643
|
+
median?: number;
|
|
644
|
+
/** Apply modulation effects */
|
|
645
|
+
modulate?: boolean;
|
|
646
|
+
/** Negate (invert) the image */
|
|
647
|
+
negate?: boolean;
|
|
648
|
+
/** Normalise the image */
|
|
649
|
+
normalise?: boolean;
|
|
650
|
+
/** Number of channels */
|
|
651
|
+
numberOfChannels?: number;
|
|
652
|
+
/** Set pipeline colourspace */
|
|
653
|
+
pipelineColourspace?: boolean;
|
|
654
|
+
/** Position for cover/contain fits */
|
|
655
|
+
position?: string | number;
|
|
656
|
+
/** Quality (0-100 for images, bitrate for video/audio) */
|
|
657
|
+
quality?: number;
|
|
658
|
+
/** Remove alpha channel */
|
|
659
|
+
removeAlpha?: boolean;
|
|
660
|
+
/** Sample rate in Hz */
|
|
661
|
+
sampleRate?: number;
|
|
662
|
+
/** Saturation multiplier for modulation */
|
|
663
|
+
saturation?: number;
|
|
664
|
+
/** Apply sharpening */
|
|
665
|
+
sharpen?: boolean;
|
|
666
|
+
/** Apply thresholding with specified value */
|
|
667
|
+
threshold?: number;
|
|
668
|
+
/** Apply tinting */
|
|
669
|
+
tint?: boolean;
|
|
670
|
+
/** Convert to colourspace */
|
|
671
|
+
toColourspace?: boolean;
|
|
672
|
+
/** Crop area top offset */
|
|
673
|
+
top?: number;
|
|
674
|
+
/** Unflatten alpha channel */
|
|
675
|
+
unflatten?: boolean;
|
|
676
|
+
/** Width in pixels */
|
|
677
|
+
width?: number;
|
|
678
|
+
/** Whether to avoid enlarging smaller images */
|
|
679
|
+
withoutEnlargement?: boolean;
|
|
680
|
+
/** Whether to avoid reducing larger images */
|
|
681
|
+
withoutReduction?: boolean;
|
|
682
|
+
}
|
|
683
|
+
/**
|
|
684
|
+
* Image transformer configuration
|
|
685
|
+
*/
|
|
686
|
+
interface ImageTransformerConfig extends BaseTransformerConfig {
|
|
687
|
+
/** Sharp `failOn` setting controlling which libvips warnings abort decoding. Defaults to `"warning"`. */
|
|
688
|
+
failOn?: "error" | "none" | "truncated" | "warning";
|
|
689
|
+
/** Maximum total pixels (width * height) Sharp will decode. Defaults to 268435456 (16k x 16k). */
|
|
690
|
+
limitInputPixels?: false | number;
|
|
691
|
+
/** Reject images taller than this many pixels (post-decode metadata check). */
|
|
692
|
+
maxImageHeight?: number;
|
|
693
|
+
/** Maximum image size to process (in bytes) */
|
|
694
|
+
maxImageSize?: number;
|
|
695
|
+
/** Reject images wider than this many pixels (post-decode metadata check). */
|
|
696
|
+
maxImageWidth?: number;
|
|
697
|
+
}
|
|
698
|
+
/**
|
|
699
|
+
* Video transformer configuration
|
|
700
|
+
*/
|
|
701
|
+
interface VideoTransformerConfig extends BaseTransformerConfig {
|
|
702
|
+
/** Default video bitrate */
|
|
703
|
+
defaultBitrate?: number;
|
|
704
|
+
/** Default video codec */
|
|
705
|
+
defaultCodec?: "avc" | "hevc" | "vp8" | "vp9" | "av1";
|
|
706
|
+
/** Maximum video size to process (in bytes) */
|
|
707
|
+
maxVideoSize?: number;
|
|
708
|
+
}
|
|
709
|
+
/**
|
|
710
|
+
* Audio transformer configuration
|
|
711
|
+
*/
|
|
712
|
+
interface AudioTransformerConfig extends BaseTransformerConfig {
|
|
713
|
+
/** Default audio bitrate */
|
|
714
|
+
defaultBitrate?: number;
|
|
715
|
+
/** Default audio codec */
|
|
716
|
+
defaultCodec?: "aac" | "opus" | "mp3" | "vorbis" | "flac";
|
|
717
|
+
/** Maximum audio size to process (in bytes) */
|
|
718
|
+
maxAudioSize?: number;
|
|
719
|
+
}
|
|
720
|
+
export { AudioTransformerConfig as A, BaseTransformer as B, CropOptions as C, DilateOptions as D, ExtractChannelOptions as E, VideoTransformResult as F, GreyscaleOptions as G, VideoResizeOptions as H, ImageTransformerConfig as I, JoinChannelOptions as J, VideoCropOptions as K, LinearOptions as L, MediaTransformerConfig as M, VideoRotateOptions as N, VideoTransformOptions as O, PipelineColourspaceOptions as P, VideoTransformationStep as Q, ResizeOptions as R, SharpenOptions as S, TransformResult as T, MediaTransformQuery as U, VideoTransformerConfig as V, MediaTransformationStep as W, MediaTransformResult as a, AudioTransformResult as b, AudioResampleOptions as c, AudioChannelMixOptions as d, AudioTransformOptions as e, AudioTransformationStep as f, RotateOptions as g, ImageFormat as h, TransformOptions as i, BlurOptions as j, MedianOptions as k, CLAHEOptions as l, ConvolveOptions as m, ThresholdOptions as n, BooleanOptions as o, RecombineOptions as p, ModulateOptions as q, TintOptions as r, ColourspaceOptions as s, BandboolOptions as t, AffineOptions as u, ErodeOptions as v, ToColourspaceOptions as w, RemoveAlphaOptions as x, EnsureAlphaOptions as y, TransformationStep as z };
|