transloadit 3.0.2 → 4.0.0-2
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 +9 -12
- package/README.md +175 -129
- package/dist/ApiError.d.ts +20 -0
- package/dist/ApiError.d.ts.map +1 -0
- package/dist/ApiError.js +35 -0
- package/dist/ApiError.js.map +1 -0
- package/dist/InconsistentResponseError.d.ts +4 -0
- package/dist/InconsistentResponseError.d.ts.map +1 -0
- package/dist/InconsistentResponseError.js +7 -0
- package/dist/InconsistentResponseError.js.map +1 -0
- package/dist/PaginationStream.d.ts +14 -0
- package/dist/PaginationStream.d.ts.map +1 -0
- package/dist/PaginationStream.js +39 -0
- package/dist/PaginationStream.js.map +1 -0
- package/dist/PollingTimeoutError.d.ts +5 -0
- package/dist/PollingTimeoutError.d.ts.map +1 -0
- package/dist/PollingTimeoutError.js +8 -0
- package/dist/PollingTimeoutError.js.map +1 -0
- package/dist/Transloadit.d.ts +227 -0
- package/dist/Transloadit.d.ts.map +1 -0
- package/dist/Transloadit.js +628 -0
- package/dist/Transloadit.js.map +1 -0
- package/dist/alphalib/types/assemblyStatus.d.ts +6208 -0
- package/dist/alphalib/types/assemblyStatus.d.ts.map +1 -0
- package/dist/alphalib/types/assemblyStatus.js +285 -0
- package/dist/alphalib/types/assemblyStatus.js.map +1 -0
- package/dist/alphalib/types/robots/_index.d.ts +56966 -0
- package/dist/alphalib/types/robots/_index.d.ts.map +1 -0
- package/dist/alphalib/types/robots/_index.js +347 -0
- package/dist/alphalib/types/robots/_index.js.map +1 -0
- package/dist/alphalib/types/robots/_instructions-primitives.d.ts +2157 -0
- package/dist/alphalib/types/robots/_instructions-primitives.d.ts.map +1 -0
- package/dist/alphalib/types/robots/_instructions-primitives.js +655 -0
- package/dist/alphalib/types/robots/_instructions-primitives.js.map +1 -0
- package/dist/alphalib/types/robots/audio-artwork.d.ts +628 -0
- package/dist/alphalib/types/robots/audio-artwork.d.ts.map +1 -0
- package/dist/alphalib/types/robots/audio-artwork.js +55 -0
- package/dist/alphalib/types/robots/audio-artwork.js.map +1 -0
- package/dist/alphalib/types/robots/audio-concat.d.ts +632 -0
- package/dist/alphalib/types/robots/audio-concat.d.ts.map +1 -0
- package/dist/alphalib/types/robots/audio-concat.js +66 -0
- package/dist/alphalib/types/robots/audio-concat.js.map +1 -0
- package/dist/alphalib/types/robots/audio-encode.d.ts +629 -0
- package/dist/alphalib/types/robots/audio-encode.d.ts.map +1 -0
- package/dist/alphalib/types/robots/audio-encode.js +55 -0
- package/dist/alphalib/types/robots/audio-encode.js.map +1 -0
- package/dist/alphalib/types/robots/audio-loop.d.ts +631 -0
- package/dist/alphalib/types/robots/audio-loop.d.ts.map +1 -0
- package/dist/alphalib/types/robots/audio-loop.js +54 -0
- package/dist/alphalib/types/robots/audio-loop.js.map +1 -0
- package/dist/alphalib/types/robots/audio-merge.d.ts +637 -0
- package/dist/alphalib/types/robots/audio-merge.d.ts.map +1 -0
- package/dist/alphalib/types/robots/audio-merge.js +65 -0
- package/dist/alphalib/types/robots/audio-merge.js.map +1 -0
- package/dist/alphalib/types/robots/audio-waveform.d.ts +642 -0
- package/dist/alphalib/types/robots/audio-waveform.d.ts.map +1 -0
- package/dist/alphalib/types/robots/audio-waveform.js +80 -0
- package/dist/alphalib/types/robots/audio-waveform.js.map +1 -0
- package/dist/alphalib/types/robots/azure-import.d.ts +46 -0
- package/dist/alphalib/types/robots/azure-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/azure-import.js +58 -0
- package/dist/alphalib/types/robots/azure-import.js.map +1 -0
- package/dist/alphalib/types/robots/azure-store.d.ts +129 -0
- package/dist/alphalib/types/robots/azure-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/azure-store.js +73 -0
- package/dist/alphalib/types/robots/azure-store.js.map +1 -0
- package/dist/alphalib/types/robots/backblaze-import.d.ts +49 -0
- package/dist/alphalib/types/robots/backblaze-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/backblaze-import.js +66 -0
- package/dist/alphalib/types/robots/backblaze-import.js.map +1 -0
- package/dist/alphalib/types/robots/backblaze-store.d.ts +111 -0
- package/dist/alphalib/types/robots/backblaze-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/backblaze-store.js +58 -0
- package/dist/alphalib/types/robots/backblaze-store.js.map +1 -0
- package/dist/alphalib/types/robots/cloudfiles-import.d.ts +55 -0
- package/dist/alphalib/types/robots/cloudfiles-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/cloudfiles-import.js +65 -0
- package/dist/alphalib/types/robots/cloudfiles-import.js.map +1 -0
- package/dist/alphalib/types/robots/cloudfiles-store.d.ts +114 -0
- package/dist/alphalib/types/robots/cloudfiles-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/cloudfiles-store.js +56 -0
- package/dist/alphalib/types/robots/cloudfiles-store.js.map +1 -0
- package/dist/alphalib/types/robots/cloudflare-import.d.ts +52 -0
- package/dist/alphalib/types/robots/cloudflare-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/cloudflare-import.js +68 -0
- package/dist/alphalib/types/robots/cloudflare-import.js.map +1 -0
- package/dist/alphalib/types/robots/cloudflare-store.d.ts +117 -0
- package/dist/alphalib/types/robots/cloudflare-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/cloudflare-store.js +57 -0
- package/dist/alphalib/types/robots/cloudflare-store.js.map +1 -0
- package/dist/alphalib/types/robots/digitalocean-import.d.ts +52 -0
- package/dist/alphalib/types/robots/digitalocean-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/digitalocean-import.js +65 -0
- package/dist/alphalib/types/robots/digitalocean-import.js.map +1 -0
- package/dist/alphalib/types/robots/digitalocean-store.d.ts +123 -0
- package/dist/alphalib/types/robots/digitalocean-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/digitalocean-store.js +62 -0
- package/dist/alphalib/types/robots/digitalocean-store.js.map +1 -0
- package/dist/alphalib/types/robots/document-autorotate.d.ts +91 -0
- package/dist/alphalib/types/robots/document-autorotate.d.ts.map +1 -0
- package/dist/alphalib/types/robots/document-autorotate.js +31 -0
- package/dist/alphalib/types/robots/document-autorotate.js.map +1 -0
- package/dist/alphalib/types/robots/document-convert.d.ts +118 -0
- package/dist/alphalib/types/robots/document-convert.d.ts.map +1 -0
- package/dist/alphalib/types/robots/document-convert.js +182 -0
- package/dist/alphalib/types/robots/document-convert.js.map +1 -0
- package/dist/alphalib/types/robots/document-merge.d.ts +97 -0
- package/dist/alphalib/types/robots/document-merge.d.ts.map +1 -0
- package/dist/alphalib/types/robots/document-merge.js +66 -0
- package/dist/alphalib/types/robots/document-merge.js.map +1 -0
- package/dist/alphalib/types/robots/document-ocr.d.ts +100 -0
- package/dist/alphalib/types/robots/document-ocr.d.ts.map +1 -0
- package/dist/alphalib/types/robots/document-ocr.js +65 -0
- package/dist/alphalib/types/robots/document-ocr.js.map +1 -0
- package/dist/alphalib/types/robots/document-split.d.ts +94 -0
- package/dist/alphalib/types/robots/document-split.d.ts.map +1 -0
- package/dist/alphalib/types/robots/document-split.js +34 -0
- package/dist/alphalib/types/robots/document-split.js.map +1 -0
- package/dist/alphalib/types/robots/document-thumbs.d.ts +134 -0
- package/dist/alphalib/types/robots/document-thumbs.d.ts.map +1 -0
- package/dist/alphalib/types/robots/document-thumbs.js +111 -0
- package/dist/alphalib/types/robots/document-thumbs.js.map +1 -0
- package/dist/alphalib/types/robots/dropbox-import.d.ts +43 -0
- package/dist/alphalib/types/robots/dropbox-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/dropbox-import.js +52 -0
- package/dist/alphalib/types/robots/dropbox-import.js.map +1 -0
- package/dist/alphalib/types/robots/dropbox-store.d.ts +114 -0
- package/dist/alphalib/types/robots/dropbox-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/dropbox-store.js +49 -0
- package/dist/alphalib/types/robots/dropbox-store.js.map +1 -0
- package/dist/alphalib/types/robots/edgly-deliver.d.ts +19 -0
- package/dist/alphalib/types/robots/edgly-deliver.d.ts.map +1 -0
- package/dist/alphalib/types/robots/edgly-deliver.js +31 -0
- package/dist/alphalib/types/robots/edgly-deliver.js.map +1 -0
- package/dist/alphalib/types/robots/file-compress.d.ts +106 -0
- package/dist/alphalib/types/robots/file-compress.d.ts.map +1 -0
- package/dist/alphalib/types/robots/file-compress.js +102 -0
- package/dist/alphalib/types/robots/file-compress.js.map +1 -0
- package/dist/alphalib/types/robots/file-decompress.d.ts +94 -0
- package/dist/alphalib/types/robots/file-decompress.d.ts.map +1 -0
- package/dist/alphalib/types/robots/file-decompress.js +81 -0
- package/dist/alphalib/types/robots/file-decompress.js.map +1 -0
- package/dist/alphalib/types/robots/file-filter.d.ts +107 -0
- package/dist/alphalib/types/robots/file-filter.d.ts.map +1 -0
- package/dist/alphalib/types/robots/file-filter.js +108 -0
- package/dist/alphalib/types/robots/file-filter.js.map +1 -0
- package/dist/alphalib/types/robots/file-hash.d.ts +94 -0
- package/dist/alphalib/types/robots/file-hash.d.ts.map +1 -0
- package/dist/alphalib/types/robots/file-hash.js +49 -0
- package/dist/alphalib/types/robots/file-hash.js.map +1 -0
- package/dist/alphalib/types/robots/file-preview.d.ts +393 -0
- package/dist/alphalib/types/robots/file-preview.d.ts.map +1 -0
- package/dist/alphalib/types/robots/file-preview.js +155 -0
- package/dist/alphalib/types/robots/file-preview.js.map +1 -0
- package/dist/alphalib/types/robots/file-read.d.ts +91 -0
- package/dist/alphalib/types/robots/file-read.d.ts.map +1 -0
- package/dist/alphalib/types/robots/file-read.js +34 -0
- package/dist/alphalib/types/robots/file-read.js.map +1 -0
- package/dist/alphalib/types/robots/file-serve.d.ts +95 -0
- package/dist/alphalib/types/robots/file-serve.d.ts.map +1 -0
- package/dist/alphalib/types/robots/file-serve.js +56 -0
- package/dist/alphalib/types/robots/file-serve.js.map +1 -0
- package/dist/alphalib/types/robots/file-verify.d.ts +100 -0
- package/dist/alphalib/types/robots/file-verify.d.ts.map +1 -0
- package/dist/alphalib/types/robots/file-verify.js +52 -0
- package/dist/alphalib/types/robots/file-verify.js.map +1 -0
- package/dist/alphalib/types/robots/file-virusscan.d.ts +97 -0
- package/dist/alphalib/types/robots/file-virusscan.d.ts.map +1 -0
- package/dist/alphalib/types/robots/file-virusscan.js +55 -0
- package/dist/alphalib/types/robots/file-virusscan.js.map +1 -0
- package/dist/alphalib/types/robots/file-watermark.d.ts +92 -0
- package/dist/alphalib/types/robots/file-watermark.d.ts.map +1 -0
- package/dist/alphalib/types/robots/file-watermark.js +13 -0
- package/dist/alphalib/types/robots/file-watermark.js.map +1 -0
- package/dist/alphalib/types/robots/ftp-import.d.ts +46 -0
- package/dist/alphalib/types/robots/ftp-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/ftp-import.js +47 -0
- package/dist/alphalib/types/robots/ftp-import.js.map +1 -0
- package/dist/alphalib/types/robots/ftp-store.d.ts +120 -0
- package/dist/alphalib/types/robots/ftp-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/ftp-store.js +57 -0
- package/dist/alphalib/types/robots/ftp-store.js.map +1 -0
- package/dist/alphalib/types/robots/google-import.d.ts +40 -0
- package/dist/alphalib/types/robots/google-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/google-import.js +65 -0
- package/dist/alphalib/types/robots/google-import.js.map +1 -0
- package/dist/alphalib/types/robots/google-store.d.ts +113 -0
- package/dist/alphalib/types/robots/google-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/google-store.js +86 -0
- package/dist/alphalib/types/robots/google-store.js.map +1 -0
- package/dist/alphalib/types/robots/html-convert.d.ts +115 -0
- package/dist/alphalib/types/robots/html-convert.d.ts.map +1 -0
- package/dist/alphalib/types/robots/html-convert.js +81 -0
- package/dist/alphalib/types/robots/html-convert.js.map +1 -0
- package/dist/alphalib/types/robots/http-import.d.ts +42 -0
- package/dist/alphalib/types/robots/http-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/http-import.js +76 -0
- package/dist/alphalib/types/robots/http-import.js.map +1 -0
- package/dist/alphalib/types/robots/image-describe.d.ts +103 -0
- package/dist/alphalib/types/robots/image-describe.d.ts.map +1 -0
- package/dist/alphalib/types/robots/image-describe.js +66 -0
- package/dist/alphalib/types/robots/image-describe.js.map +1 -0
- package/dist/alphalib/types/robots/image-facedetect.d.ts +109 -0
- package/dist/alphalib/types/robots/image-facedetect.d.ts.map +1 -0
- package/dist/alphalib/types/robots/image-facedetect.js +125 -0
- package/dist/alphalib/types/robots/image-facedetect.js.map +1 -0
- package/dist/alphalib/types/robots/image-generate.d.ts +229 -0
- package/dist/alphalib/types/robots/image-generate.d.ts.map +1 -0
- package/dist/alphalib/types/robots/image-generate.js +27 -0
- package/dist/alphalib/types/robots/image-generate.js.map +1 -0
- package/dist/alphalib/types/robots/image-merge.d.ts +109 -0
- package/dist/alphalib/types/robots/image-merge.d.ts.map +1 -0
- package/dist/alphalib/types/robots/image-merge.js +74 -0
- package/dist/alphalib/types/robots/image-merge.js.map +1 -0
- package/dist/alphalib/types/robots/image-ocr.d.ts +100 -0
- package/dist/alphalib/types/robots/image-ocr.d.ts.map +1 -0
- package/dist/alphalib/types/robots/image-ocr.js +64 -0
- package/dist/alphalib/types/robots/image-ocr.js.map +1 -0
- package/dist/alphalib/types/robots/image-optimize.d.ts +103 -0
- package/dist/alphalib/types/robots/image-optimize.d.ts.map +1 -0
- package/dist/alphalib/types/robots/image-optimize.js +60 -0
- package/dist/alphalib/types/robots/image-optimize.js.map +1 -0
- package/dist/alphalib/types/robots/image-remove-background.d.ts +98 -0
- package/dist/alphalib/types/robots/image-remove-background.d.ts.map +1 -0
- package/dist/alphalib/types/robots/image-remove-background.js +21 -0
- package/dist/alphalib/types/robots/image-remove-background.js.map +1 -0
- package/dist/alphalib/types/robots/image-resize.d.ts +696 -0
- package/dist/alphalib/types/robots/image-resize.d.ts.map +1 -0
- package/dist/alphalib/types/robots/image-resize.js +364 -0
- package/dist/alphalib/types/robots/image-resize.js.map +1 -0
- package/dist/alphalib/types/robots/media-playlist.d.ts +115 -0
- package/dist/alphalib/types/robots/media-playlist.d.ts.map +1 -0
- package/dist/alphalib/types/robots/media-playlist.js +56 -0
- package/dist/alphalib/types/robots/media-playlist.js.map +1 -0
- package/dist/alphalib/types/robots/meta-write.d.ts +623 -0
- package/dist/alphalib/types/robots/meta-write.d.ts.map +1 -0
- package/dist/alphalib/types/robots/meta-write.js +53 -0
- package/dist/alphalib/types/robots/meta-write.js.map +1 -0
- package/dist/alphalib/types/robots/minio-import.d.ts +52 -0
- package/dist/alphalib/types/robots/minio-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/minio-import.js +68 -0
- package/dist/alphalib/types/robots/minio-import.js.map +1 -0
- package/dist/alphalib/types/robots/minio-store.d.ts +120 -0
- package/dist/alphalib/types/robots/minio-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/minio-store.js +61 -0
- package/dist/alphalib/types/robots/minio-store.js.map +1 -0
- package/dist/alphalib/types/robots/progress-simulate.d.ts +29 -0
- package/dist/alphalib/types/robots/progress-simulate.d.ts.map +1 -0
- package/dist/alphalib/types/robots/progress-simulate.js +15 -0
- package/dist/alphalib/types/robots/progress-simulate.js.map +1 -0
- package/dist/alphalib/types/robots/s3-import.d.ts +52 -0
- package/dist/alphalib/types/robots/s3-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/s3-import.js +104 -0
- package/dist/alphalib/types/robots/s3-import.js.map +1 -0
- package/dist/alphalib/types/robots/s3-store.d.ts +135 -0
- package/dist/alphalib/types/robots/s3-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/s3-store.js +118 -0
- package/dist/alphalib/types/robots/s3-store.js.map +1 -0
- package/dist/alphalib/types/robots/script-run.d.ts +94 -0
- package/dist/alphalib/types/robots/script-run.d.ts.map +1 -0
- package/dist/alphalib/types/robots/script-run.js +79 -0
- package/dist/alphalib/types/robots/script-run.js.map +1 -0
- package/dist/alphalib/types/robots/sftp-import.d.ts +43 -0
- package/dist/alphalib/types/robots/sftp-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/sftp-import.js +45 -0
- package/dist/alphalib/types/robots/sftp-import.js.map +1 -0
- package/dist/alphalib/types/robots/sftp-store.d.ts +120 -0
- package/dist/alphalib/types/robots/sftp-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/sftp-store.js +58 -0
- package/dist/alphalib/types/robots/sftp-store.js.map +1 -0
- package/dist/alphalib/types/robots/speech-transcribe.d.ts +210 -0
- package/dist/alphalib/types/robots/speech-transcribe.d.ts.map +1 -0
- package/dist/alphalib/types/robots/speech-transcribe.js +80 -0
- package/dist/alphalib/types/robots/speech-transcribe.js.map +1 -0
- package/dist/alphalib/types/robots/supabase-import.d.ts +52 -0
- package/dist/alphalib/types/robots/supabase-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/supabase-import.js +70 -0
- package/dist/alphalib/types/robots/supabase-import.js.map +1 -0
- package/dist/alphalib/types/robots/supabase-store.d.ts +117 -0
- package/dist/alphalib/types/robots/supabase-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/supabase-store.js +54 -0
- package/dist/alphalib/types/robots/supabase-store.js.map +1 -0
- package/dist/alphalib/types/robots/swift-import.d.ts +52 -0
- package/dist/alphalib/types/robots/swift-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/swift-import.js +68 -0
- package/dist/alphalib/types/robots/swift-import.js.map +1 -0
- package/dist/alphalib/types/robots/swift-store.d.ts +120 -0
- package/dist/alphalib/types/robots/swift-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/swift-store.js +58 -0
- package/dist/alphalib/types/robots/swift-store.js.map +1 -0
- package/dist/alphalib/types/robots/text-speak.d.ts +106 -0
- package/dist/alphalib/types/robots/text-speak.d.ts.map +1 -0
- package/dist/alphalib/types/robots/text-speak.js +97 -0
- package/dist/alphalib/types/robots/text-speak.js.map +1 -0
- package/dist/alphalib/types/robots/text-translate.d.ts +100 -0
- package/dist/alphalib/types/robots/text-translate.d.ts.map +1 -0
- package/dist/alphalib/types/robots/text-translate.js +196 -0
- package/dist/alphalib/types/robots/text-translate.js.map +1 -0
- package/dist/alphalib/types/robots/tigris-import.d.ts +52 -0
- package/dist/alphalib/types/robots/tigris-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/tigris-import.js +68 -0
- package/dist/alphalib/types/robots/tigris-import.js.map +1 -0
- package/dist/alphalib/types/robots/tigris-store.d.ts +120 -0
- package/dist/alphalib/types/robots/tigris-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/tigris-store.js +61 -0
- package/dist/alphalib/types/robots/tigris-store.js.map +1 -0
- package/dist/alphalib/types/robots/tlcdn-deliver.d.ts +19 -0
- package/dist/alphalib/types/robots/tlcdn-deliver.d.ts.map +1 -0
- package/dist/alphalib/types/robots/tlcdn-deliver.js +31 -0
- package/dist/alphalib/types/robots/tlcdn-deliver.js.map +1 -0
- package/dist/alphalib/types/robots/tus-store.d.ts +110 -0
- package/dist/alphalib/types/robots/tus-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/tus-store.js +74 -0
- package/dist/alphalib/types/robots/tus-store.js.map +1 -0
- package/dist/alphalib/types/robots/upload-handle.d.ts +92 -0
- package/dist/alphalib/types/robots/upload-handle.d.ts.map +1 -0
- package/dist/alphalib/types/robots/upload-handle.js +54 -0
- package/dist/alphalib/types/robots/upload-handle.js.map +1 -0
- package/dist/alphalib/types/robots/video-adaptive.d.ts +640 -0
- package/dist/alphalib/types/robots/video-adaptive.d.ts.map +1 -0
- package/dist/alphalib/types/robots/video-adaptive.js +119 -0
- package/dist/alphalib/types/robots/video-adaptive.js.map +1 -0
- package/dist/alphalib/types/robots/video-concat.d.ts +634 -0
- package/dist/alphalib/types/robots/video-concat.d.ts.map +1 -0
- package/dist/alphalib/types/robots/video-concat.js +65 -0
- package/dist/alphalib/types/robots/video-concat.js.map +1 -0
- package/dist/alphalib/types/robots/video-encode.d.ts +1439 -0
- package/dist/alphalib/types/robots/video-encode.d.ts.map +1 -0
- package/dist/alphalib/types/robots/video-encode.js +157 -0
- package/dist/alphalib/types/robots/video-encode.js.map +1 -0
- package/dist/alphalib/types/robots/video-merge.d.ts +655 -0
- package/dist/alphalib/types/robots/video-merge.d.ts.map +1 -0
- package/dist/alphalib/types/robots/video-merge.js +64 -0
- package/dist/alphalib/types/robots/video-merge.js.map +1 -0
- package/dist/alphalib/types/robots/video-subtitle.d.ts +649 -0
- package/dist/alphalib/types/robots/video-subtitle.d.ts.map +1 -0
- package/dist/alphalib/types/robots/video-subtitle.js +77 -0
- package/dist/alphalib/types/robots/video-subtitle.js.map +1 -0
- package/dist/alphalib/types/robots/video-thumbs.d.ts +642 -0
- package/dist/alphalib/types/robots/video-thumbs.d.ts.map +1 -0
- package/dist/alphalib/types/robots/video-thumbs.js +79 -0
- package/dist/alphalib/types/robots/video-thumbs.js.map +1 -0
- package/dist/alphalib/types/robots/vimeo-store.d.ts +116 -0
- package/dist/alphalib/types/robots/vimeo-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/vimeo-store.js +81 -0
- package/dist/alphalib/types/robots/vimeo-store.js.map +1 -0
- package/dist/alphalib/types/robots/wasabi-import.d.ts +53 -0
- package/dist/alphalib/types/robots/wasabi-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/wasabi-import.js +72 -0
- package/dist/alphalib/types/robots/wasabi-import.js.map +1 -0
- package/dist/alphalib/types/robots/wasabi-store.d.ts +120 -0
- package/dist/alphalib/types/robots/wasabi-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/wasabi-store.js +59 -0
- package/dist/alphalib/types/robots/wasabi-store.js.map +1 -0
- package/dist/alphalib/types/robots/youtube-store.d.ts +110 -0
- package/dist/alphalib/types/robots/youtube-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/youtube-store.js +105 -0
- package/dist/alphalib/types/robots/youtube-store.js.map +1 -0
- package/dist/alphalib/types/stackVersions.d.ts +13 -0
- package/dist/alphalib/types/stackVersions.d.ts.map +1 -0
- package/dist/alphalib/types/stackVersions.js +16 -0
- package/dist/alphalib/types/stackVersions.js.map +1 -0
- package/dist/alphalib/types/template.d.ts +77150 -0
- package/dist/alphalib/types/template.d.ts.map +1 -0
- package/dist/alphalib/types/template.js +49 -0
- package/dist/alphalib/types/template.js.map +1 -0
- package/dist/alphalib/zodParseWithContext.d.ts +18 -0
- package/dist/alphalib/zodParseWithContext.d.ts.map +1 -0
- package/dist/alphalib/zodParseWithContext.js +123 -0
- package/dist/alphalib/zodParseWithContext.js.map +1 -0
- package/dist/apiTypes.d.ts +127 -0
- package/dist/apiTypes.d.ts.map +1 -0
- package/dist/apiTypes.js +3 -0
- package/dist/apiTypes.js.map +1 -0
- package/dist/tus.d.ts +17 -0
- package/dist/tus.d.ts.map +1 -0
- package/dist/tus.js +88 -0
- package/dist/tus.js.map +1 -0
- package/package.json +58 -39
- package/src/ApiError.ts +44 -0
- package/src/InconsistentResponseError.ts +3 -0
- package/src/PaginationStream.ts +55 -0
- package/src/PollingTimeoutError.ts +5 -0
- package/src/Transloadit.ts +826 -0
- package/src/alphalib/types/assemblyStatus.ts +300 -0
- package/src/alphalib/types/robots/_index.ts +437 -0
- package/src/alphalib/types/robots/_instructions-primitives.ts +835 -0
- package/src/alphalib/types/robots/audio-artwork.ts +57 -0
- package/src/alphalib/types/robots/audio-concat.ts +74 -0
- package/src/alphalib/types/robots/audio-encode.ts +63 -0
- package/src/alphalib/types/robots/audio-loop.ts +62 -0
- package/src/alphalib/types/robots/audio-merge.ts +73 -0
- package/src/alphalib/types/robots/audio-waveform.ts +83 -0
- package/src/alphalib/types/robots/azure-import.ts +69 -0
- package/src/alphalib/types/robots/azure-store.ts +76 -0
- package/src/alphalib/types/robots/backblaze-import.ts +81 -0
- package/src/alphalib/types/robots/backblaze-store.ts +63 -0
- package/src/alphalib/types/robots/cloudfiles-import.ts +80 -0
- package/src/alphalib/types/robots/cloudfiles-store.ts +63 -0
- package/src/alphalib/types/robots/cloudflare-import.ts +84 -0
- package/src/alphalib/types/robots/cloudflare-store.ts +64 -0
- package/src/alphalib/types/robots/digitalocean-import.ts +81 -0
- package/src/alphalib/types/robots/digitalocean-store.ts +69 -0
- package/src/alphalib/types/robots/document-autorotate.ts +36 -0
- package/src/alphalib/types/robots/document-convert.ts +186 -0
- package/src/alphalib/types/robots/document-merge.ts +68 -0
- package/src/alphalib/types/robots/document-ocr.ts +72 -0
- package/src/alphalib/types/robots/document-split.ts +38 -0
- package/src/alphalib/types/robots/document-thumbs.ts +119 -0
- package/src/alphalib/types/robots/dropbox-import.ts +58 -0
- package/src/alphalib/types/robots/dropbox-store.ts +52 -0
- package/src/alphalib/types/robots/edgly-deliver.ts +32 -0
- package/src/alphalib/types/robots/file-compress.ts +104 -0
- package/src/alphalib/types/robots/file-decompress.ts +86 -0
- package/src/alphalib/types/robots/file-filter.ts +115 -0
- package/src/alphalib/types/robots/file-hash.ts +51 -0
- package/src/alphalib/types/robots/file-preview.ts +174 -0
- package/src/alphalib/types/robots/file-read.ts +36 -0
- package/src/alphalib/types/robots/file-serve.ts +60 -0
- package/src/alphalib/types/robots/file-verify.ts +55 -0
- package/src/alphalib/types/robots/file-virusscan.ts +60 -0
- package/src/alphalib/types/robots/file-watermark.ts +13 -0
- package/src/alphalib/types/robots/ftp-import.ts +52 -0
- package/src/alphalib/types/robots/ftp-store.ts +61 -0
- package/src/alphalib/types/robots/google-import.ts +77 -0
- package/src/alphalib/types/robots/google-store.ts +89 -0
- package/src/alphalib/types/robots/html-convert.ts +83 -0
- package/src/alphalib/types/robots/http-import.ts +79 -0
- package/src/alphalib/types/robots/image-describe.ts +74 -0
- package/src/alphalib/types/robots/image-facedetect.ts +131 -0
- package/src/alphalib/types/robots/image-generate.ts +32 -0
- package/src/alphalib/types/robots/image-merge.ts +81 -0
- package/src/alphalib/types/robots/image-ocr.ts +71 -0
- package/src/alphalib/types/robots/image-optimize.ts +61 -0
- package/src/alphalib/types/robots/image-remove-background.ts +23 -0
- package/src/alphalib/types/robots/image-resize.ts +401 -0
- package/src/alphalib/types/robots/media-playlist.ts +58 -0
- package/src/alphalib/types/robots/meta-write.ts +55 -0
- package/src/alphalib/types/robots/minio-import.ts +80 -0
- package/src/alphalib/types/robots/minio-store.ts +64 -0
- package/src/alphalib/types/robots/progress-simulate.ts +16 -0
- package/src/alphalib/types/robots/s3-import.ts +116 -0
- package/src/alphalib/types/robots/s3-store.ts +121 -0
- package/src/alphalib/types/robots/script-run.ts +81 -0
- package/src/alphalib/types/robots/sftp-import.ts +50 -0
- package/src/alphalib/types/robots/sftp-store.ts +61 -0
- package/src/alphalib/types/robots/speech-transcribe.ts +96 -0
- package/src/alphalib/types/robots/supabase-import.ts +84 -0
- package/src/alphalib/types/robots/supabase-store.ts +59 -0
- package/src/alphalib/types/robots/swift-import.ts +80 -0
- package/src/alphalib/types/robots/swift-store.ts +61 -0
- package/src/alphalib/types/robots/text-speak.ts +100 -0
- package/src/alphalib/types/robots/text-translate.ts +199 -0
- package/src/alphalib/types/robots/tigris-import.ts +80 -0
- package/src/alphalib/types/robots/tigris-store.ts +64 -0
- package/src/alphalib/types/robots/tlcdn-deliver.ts +32 -0
- package/src/alphalib/types/robots/tus-store.ts +77 -0
- package/src/alphalib/types/robots/upload-handle.ts +58 -0
- package/src/alphalib/types/robots/video-adaptive.ts +123 -0
- package/src/alphalib/types/robots/video-concat.ts +68 -0
- package/src/alphalib/types/robots/video-encode.ts +182 -0
- package/src/alphalib/types/robots/video-merge.ts +72 -0
- package/src/alphalib/types/robots/video-subtitle.ts +86 -0
- package/src/alphalib/types/robots/video-thumbs.ts +88 -0
- package/src/alphalib/types/robots/vimeo-store.ts +84 -0
- package/src/alphalib/types/robots/wasabi-import.ts +84 -0
- package/src/alphalib/types/robots/wasabi-store.ts +62 -0
- package/src/alphalib/types/robots/youtube-store.ts +108 -0
- package/src/alphalib/types/stackVersions.ts +12 -0
- package/src/alphalib/types/template.ts +71 -0
- package/src/alphalib/zodParseWithContext.ts +151 -0
- package/src/apiTypes.ts +165 -0
- package/src/tus.ts +123 -0
- package/index.js +0 -1
- package/src/PaginationStream.js +0 -39
- package/src/Transloadit.js +0 -701
- package/types/index.d.ts +0 -217
|
@@ -0,0 +1,628 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.Transloadit = exports.ApiError = exports.InconsistentResponseError = exports.TimeoutError = exports.MaxRedirectsError = exports.HTTPError = exports.UploadError = exports.ParseError = exports.ReadError = exports.RequestError = void 0;
|
|
40
|
+
const crypto_1 = require("crypto");
|
|
41
|
+
const got_1 = __importDefault(require("got"));
|
|
42
|
+
const form_data_1 = __importDefault(require("form-data"));
|
|
43
|
+
const fs_1 = require("fs");
|
|
44
|
+
const promises_1 = require("fs/promises");
|
|
45
|
+
const debug_1 = __importDefault(require("debug"));
|
|
46
|
+
const into_stream_1 = __importDefault(require("into-stream"));
|
|
47
|
+
const is_stream_1 = __importDefault(require("is-stream"));
|
|
48
|
+
const assert = __importStar(require("assert"));
|
|
49
|
+
const p_map_1 = __importDefault(require("p-map"));
|
|
50
|
+
const InconsistentResponseError_1 = __importDefault(require("./InconsistentResponseError"));
|
|
51
|
+
exports.InconsistentResponseError = InconsistentResponseError_1.default;
|
|
52
|
+
const PaginationStream_1 = __importDefault(require("./PaginationStream"));
|
|
53
|
+
const PollingTimeoutError_1 = __importDefault(require("./PollingTimeoutError"));
|
|
54
|
+
const ApiError_1 = require("./ApiError");
|
|
55
|
+
Object.defineProperty(exports, "ApiError", { enumerable: true, get: function () { return ApiError_1.ApiError; } });
|
|
56
|
+
const package_json_1 = require("../package.json");
|
|
57
|
+
const tus_1 = require("./tus");
|
|
58
|
+
// See https://github.com/sindresorhus/got/tree/v11.8.6?tab=readme-ov-file#errors
|
|
59
|
+
// Expose relevant errors
|
|
60
|
+
var got_2 = require("got");
|
|
61
|
+
Object.defineProperty(exports, "RequestError", { enumerable: true, get: function () { return got_2.RequestError; } });
|
|
62
|
+
Object.defineProperty(exports, "ReadError", { enumerable: true, get: function () { return got_2.ReadError; } });
|
|
63
|
+
Object.defineProperty(exports, "ParseError", { enumerable: true, get: function () { return got_2.ParseError; } });
|
|
64
|
+
Object.defineProperty(exports, "UploadError", { enumerable: true, get: function () { return got_2.UploadError; } });
|
|
65
|
+
Object.defineProperty(exports, "HTTPError", { enumerable: true, get: function () { return got_2.HTTPError; } });
|
|
66
|
+
Object.defineProperty(exports, "MaxRedirectsError", { enumerable: true, get: function () { return got_2.MaxRedirectsError; } });
|
|
67
|
+
Object.defineProperty(exports, "TimeoutError", { enumerable: true, get: function () { return got_2.TimeoutError; } });
|
|
68
|
+
const log = (0, debug_1.default)('transloadit');
|
|
69
|
+
const logWarn = (0, debug_1.default)('transloadit:warn');
|
|
70
|
+
// Not sure if this is still a problem with the API, but throw a special error type so the user can retry if needed
|
|
71
|
+
function checkAssemblyUrls(result) {
|
|
72
|
+
if (result.assembly_url == null || result.assembly_ssl_url == null) {
|
|
73
|
+
throw new InconsistentResponseError_1.default('Server returned an incomplete assembly response (no URL)');
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
function getHrTimeMs() {
|
|
77
|
+
return Number(process.hrtime.bigint() / 1000000n);
|
|
78
|
+
}
|
|
79
|
+
function checkResult(result) {
|
|
80
|
+
// In case server returned a successful HTTP status code, but an `error` in the JSON object
|
|
81
|
+
// This happens sometimes, for example when createAssembly with an invalid file (IMPORT_FILE_ERROR)
|
|
82
|
+
if (typeof result === 'object' &&
|
|
83
|
+
result !== null &&
|
|
84
|
+
'error' in result &&
|
|
85
|
+
typeof result.error === 'string') {
|
|
86
|
+
throw new ApiError_1.ApiError({ body: result }); // in this case there is no `cause` because we don't have an HTTPError
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
class Transloadit {
|
|
90
|
+
_authKey;
|
|
91
|
+
_authSecret;
|
|
92
|
+
_endpoint;
|
|
93
|
+
_maxRetries;
|
|
94
|
+
_defaultTimeout;
|
|
95
|
+
_gotRetry;
|
|
96
|
+
_lastUsedAssemblyUrl = '';
|
|
97
|
+
constructor(opts) {
|
|
98
|
+
if (opts?.authKey == null) {
|
|
99
|
+
throw new Error('Please provide an authKey');
|
|
100
|
+
}
|
|
101
|
+
if (opts.authSecret == null) {
|
|
102
|
+
throw new Error('Please provide an authSecret');
|
|
103
|
+
}
|
|
104
|
+
if (opts.endpoint && opts.endpoint.endsWith('/')) {
|
|
105
|
+
throw new Error('Trailing slash in endpoint is not allowed');
|
|
106
|
+
}
|
|
107
|
+
this._authKey = opts.authKey;
|
|
108
|
+
this._authSecret = opts.authSecret;
|
|
109
|
+
this._endpoint = opts.endpoint || 'https://api2.transloadit.com';
|
|
110
|
+
this._maxRetries = opts.maxRetries != null ? opts.maxRetries : 5;
|
|
111
|
+
this._defaultTimeout = opts.timeout != null ? opts.timeout : 60000;
|
|
112
|
+
// Passed on to got https://github.com/sindresorhus/got/blob/main/documentation/7-retry.md
|
|
113
|
+
this._gotRetry = opts.gotRetry != null ? opts.gotRetry : 0;
|
|
114
|
+
}
|
|
115
|
+
getLastUsedAssemblyUrl() {
|
|
116
|
+
return this._lastUsedAssemblyUrl;
|
|
117
|
+
}
|
|
118
|
+
setDefaultTimeout(timeout) {
|
|
119
|
+
this._defaultTimeout = timeout;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Create an Assembly
|
|
123
|
+
*
|
|
124
|
+
* @param opts assembly options
|
|
125
|
+
*/
|
|
126
|
+
createAssembly(opts = {}) {
|
|
127
|
+
const { params = {}, waitForCompletion = false, chunkSize: requestedChunkSize = Infinity, uploadConcurrency = 10, timeout = 24 * 60 * 60 * 1000, // 1 day
|
|
128
|
+
onUploadProgress = () => { }, onAssemblyProgress = () => { }, files = {}, uploads = {}, assemblyId, } = opts;
|
|
129
|
+
// Keep track of how long the request took
|
|
130
|
+
const startTimeMs = getHrTimeMs();
|
|
131
|
+
// Undocumented feature to allow specifying a custom assembly id from the client
|
|
132
|
+
// Not recommended for general use due to security. E.g if the user doesn't provide a cryptographically
|
|
133
|
+
// secure ID, then anyone could access the assembly.
|
|
134
|
+
let effectiveAssemblyId;
|
|
135
|
+
if (assemblyId != null) {
|
|
136
|
+
effectiveAssemblyId = assemblyId;
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
effectiveAssemblyId = (0, crypto_1.randomUUID)().replace(/-/g, '');
|
|
140
|
+
}
|
|
141
|
+
const urlSuffix = `/assemblies/${effectiveAssemblyId}`;
|
|
142
|
+
// We want to be able to return the promise immediately with custom data
|
|
143
|
+
const promise = (async () => {
|
|
144
|
+
this._lastUsedAssemblyUrl = `${this._endpoint}${urlSuffix}`;
|
|
145
|
+
await (0, p_map_1.default)(Object.entries(files),
|
|
146
|
+
// eslint-disable-next-line no-bitwise
|
|
147
|
+
async ([, path]) => (0, promises_1.access)(path, fs_1.constants.F_OK | fs_1.constants.R_OK), { concurrency: 5 });
|
|
148
|
+
// Convert uploads to streams
|
|
149
|
+
const streamsMap = Object.fromEntries(Object.entries(uploads).map(([label, value]) => {
|
|
150
|
+
const isReadable = is_stream_1.default.readable(value);
|
|
151
|
+
if (!isReadable && (0, is_stream_1.default)(value)) {
|
|
152
|
+
// https://github.com/transloadit/node-sdk/issues/92
|
|
153
|
+
throw new Error(`Upload named "${label}" is not a Readable stream`);
|
|
154
|
+
}
|
|
155
|
+
return [label, is_stream_1.default.readable(value) ? value : (0, into_stream_1.default)(value)];
|
|
156
|
+
}));
|
|
157
|
+
// Wrap in object structure (so we can store whether it's a pathless stream or not)
|
|
158
|
+
const allStreamsMap = Object.fromEntries(Object.entries(streamsMap).map(([label, stream]) => [label, { stream }]));
|
|
159
|
+
// Create streams from files too
|
|
160
|
+
for (const [label, path] of Object.entries(files)) {
|
|
161
|
+
const stream = (0, fs_1.createReadStream)(path);
|
|
162
|
+
allStreamsMap[label] = { stream, path }; // File streams have path
|
|
163
|
+
}
|
|
164
|
+
const allStreams = Object.values(allStreamsMap);
|
|
165
|
+
// Pause all streams
|
|
166
|
+
allStreams.forEach(({ stream }) => stream.pause());
|
|
167
|
+
// If any stream emits error, we want to handle this and exit with error
|
|
168
|
+
const streamErrorPromise = new Promise((resolve, reject) => {
|
|
169
|
+
allStreams.forEach(({ stream }) => stream.on('error', reject));
|
|
170
|
+
});
|
|
171
|
+
const createAssemblyAndUpload = async () => {
|
|
172
|
+
const result = await this._remoteJson({
|
|
173
|
+
urlSuffix,
|
|
174
|
+
method: 'post',
|
|
175
|
+
timeout,
|
|
176
|
+
params,
|
|
177
|
+
fields: {
|
|
178
|
+
tus_num_expected_upload_files: allStreams.length,
|
|
179
|
+
},
|
|
180
|
+
});
|
|
181
|
+
checkResult(result);
|
|
182
|
+
if (Object.keys(allStreamsMap).length > 0) {
|
|
183
|
+
await (0, tus_1.sendTusRequest)({
|
|
184
|
+
streamsMap: allStreamsMap,
|
|
185
|
+
assembly: result,
|
|
186
|
+
onProgress: onUploadProgress,
|
|
187
|
+
requestedChunkSize,
|
|
188
|
+
uploadConcurrency,
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
if (!waitForCompletion)
|
|
192
|
+
return result;
|
|
193
|
+
const awaitResult = await this.awaitAssemblyCompletion(result.assembly_id, {
|
|
194
|
+
timeout,
|
|
195
|
+
onAssemblyProgress,
|
|
196
|
+
startTimeMs,
|
|
197
|
+
});
|
|
198
|
+
checkResult(awaitResult);
|
|
199
|
+
return awaitResult;
|
|
200
|
+
};
|
|
201
|
+
return Promise.race([createAssemblyAndUpload(), streamErrorPromise]);
|
|
202
|
+
})();
|
|
203
|
+
// This allows the user to use or log the assemblyId even before it has been created for easier debugging
|
|
204
|
+
return Object.assign(promise, { assemblyId: effectiveAssemblyId });
|
|
205
|
+
}
|
|
206
|
+
async awaitAssemblyCompletion(assemblyId, { onAssemblyProgress = () => { }, timeout, startTimeMs = getHrTimeMs(), interval = 1000, } = {}) {
|
|
207
|
+
assert.ok(assemblyId);
|
|
208
|
+
// eslint-disable-next-line no-constant-condition
|
|
209
|
+
while (true) {
|
|
210
|
+
const result = await this.getAssembly(assemblyId);
|
|
211
|
+
if (result.ok !== 'ASSEMBLY_UPLOADING' &&
|
|
212
|
+
result.ok !== 'ASSEMBLY_EXECUTING' &&
|
|
213
|
+
result.ok !== 'ASSEMBLY_REPLAYING') {
|
|
214
|
+
return result; // Done!
|
|
215
|
+
}
|
|
216
|
+
try {
|
|
217
|
+
onAssemblyProgress(result);
|
|
218
|
+
}
|
|
219
|
+
catch (err) {
|
|
220
|
+
log('Caught onAssemblyProgress error', err);
|
|
221
|
+
}
|
|
222
|
+
const nowMs = getHrTimeMs();
|
|
223
|
+
if (timeout != null && nowMs - startTimeMs >= timeout) {
|
|
224
|
+
throw new PollingTimeoutError_1.default('Polling timed out');
|
|
225
|
+
}
|
|
226
|
+
await new Promise((resolve) => setTimeout(resolve, interval));
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Cancel the assembly
|
|
231
|
+
*
|
|
232
|
+
* @param assemblyId assembly ID
|
|
233
|
+
* @returns after the assembly is deleted
|
|
234
|
+
*/
|
|
235
|
+
async cancelAssembly(assemblyId) {
|
|
236
|
+
// You may wonder why do we need to call getAssembly first:
|
|
237
|
+
// If we use the default base URL (instead of the one returned in assembly_url_ssl),
|
|
238
|
+
// the delete call will hang in certain cases
|
|
239
|
+
// See test "should stop the assembly from reaching completion"
|
|
240
|
+
const { assembly_ssl_url: url } = await this.getAssembly(assemblyId);
|
|
241
|
+
return this._remoteJson({
|
|
242
|
+
url,
|
|
243
|
+
// urlSuffix: `/assemblies/${assemblyId}`, // Cannot simply do this, see above
|
|
244
|
+
method: 'delete',
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Replay an Assembly
|
|
249
|
+
*
|
|
250
|
+
* @param assemblyId of the assembly to replay
|
|
251
|
+
* @param optional params
|
|
252
|
+
* @returns after the replay is started
|
|
253
|
+
*/
|
|
254
|
+
async replayAssembly(assemblyId, params = {}) {
|
|
255
|
+
const result = await this._remoteJson({
|
|
256
|
+
urlSuffix: `/assemblies/${assemblyId}/replay`,
|
|
257
|
+
method: 'post',
|
|
258
|
+
...(Object.keys(params).length > 0 && { params }),
|
|
259
|
+
});
|
|
260
|
+
checkResult(result);
|
|
261
|
+
return result;
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Replay an Assembly notification
|
|
265
|
+
*
|
|
266
|
+
* @param assemblyId of the assembly whose notification to replay
|
|
267
|
+
* @param optional params
|
|
268
|
+
* @returns after the replay is started
|
|
269
|
+
*/
|
|
270
|
+
async replayAssemblyNotification(assemblyId, params = {}) {
|
|
271
|
+
return this._remoteJson({
|
|
272
|
+
urlSuffix: `/assembly_notifications/${assemblyId}/replay`,
|
|
273
|
+
method: 'post',
|
|
274
|
+
...(Object.keys(params).length > 0 && { params }),
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* List all assemblies
|
|
279
|
+
*
|
|
280
|
+
* @param params optional request options
|
|
281
|
+
* @returns list of Assemblies
|
|
282
|
+
*/
|
|
283
|
+
async listAssemblies(params) {
|
|
284
|
+
return this._remoteJson({
|
|
285
|
+
urlSuffix: '/assemblies',
|
|
286
|
+
method: 'get',
|
|
287
|
+
params: params || {},
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
streamAssemblies(params) {
|
|
291
|
+
return new PaginationStream_1.default(async (page) => this.listAssemblies({ ...params, page }));
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Get an Assembly
|
|
295
|
+
*
|
|
296
|
+
* @param assemblyId the Assembly Id
|
|
297
|
+
* @returns the retrieved Assembly
|
|
298
|
+
*/
|
|
299
|
+
async getAssembly(assemblyId) {
|
|
300
|
+
const result = await this._remoteJson({
|
|
301
|
+
urlSuffix: `/assemblies/${assemblyId}`,
|
|
302
|
+
});
|
|
303
|
+
checkAssemblyUrls(result);
|
|
304
|
+
return result;
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Create a Credential
|
|
308
|
+
*
|
|
309
|
+
* @param params optional request options
|
|
310
|
+
* @returns when the Credential is created
|
|
311
|
+
*/
|
|
312
|
+
async createTemplateCredential(params) {
|
|
313
|
+
return this._remoteJson({
|
|
314
|
+
urlSuffix: '/template_credentials',
|
|
315
|
+
method: 'post',
|
|
316
|
+
params: params || {},
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* Edit a Credential
|
|
321
|
+
*
|
|
322
|
+
* @param credentialId the Credential ID
|
|
323
|
+
* @param params optional request options
|
|
324
|
+
* @returns when the Credential is edited
|
|
325
|
+
*/
|
|
326
|
+
async editTemplateCredential(credentialId, params) {
|
|
327
|
+
return this._remoteJson({
|
|
328
|
+
urlSuffix: `/template_credentials/${credentialId}`,
|
|
329
|
+
method: 'put',
|
|
330
|
+
params: params || {},
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Delete a Credential
|
|
335
|
+
*
|
|
336
|
+
* @param credentialId the Credential ID
|
|
337
|
+
* @returns when the Credential is deleted
|
|
338
|
+
*/
|
|
339
|
+
async deleteTemplateCredential(credentialId) {
|
|
340
|
+
return this._remoteJson({
|
|
341
|
+
urlSuffix: `/template_credentials/${credentialId}`,
|
|
342
|
+
method: 'delete',
|
|
343
|
+
});
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Get a Credential
|
|
347
|
+
*
|
|
348
|
+
* @param credentialId the Credential ID
|
|
349
|
+
* @returns when the Credential is retrieved
|
|
350
|
+
*/
|
|
351
|
+
async getTemplateCredential(credentialId) {
|
|
352
|
+
return this._remoteJson({
|
|
353
|
+
urlSuffix: `/template_credentials/${credentialId}`,
|
|
354
|
+
method: 'get',
|
|
355
|
+
});
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* List all TemplateCredentials
|
|
359
|
+
*
|
|
360
|
+
* @param params optional request options
|
|
361
|
+
* @returns the list of templates
|
|
362
|
+
*/
|
|
363
|
+
async listTemplateCredentials(params) {
|
|
364
|
+
return this._remoteJson({
|
|
365
|
+
urlSuffix: '/template_credentials',
|
|
366
|
+
method: 'get',
|
|
367
|
+
params: params || {},
|
|
368
|
+
});
|
|
369
|
+
}
|
|
370
|
+
streamTemplateCredentials(params) {
|
|
371
|
+
return new PaginationStream_1.default(async (page) => ({
|
|
372
|
+
items: (await this.listTemplateCredentials({ ...params, page })).credentials,
|
|
373
|
+
}));
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* Create an Assembly Template
|
|
377
|
+
*
|
|
378
|
+
* @param params optional request options
|
|
379
|
+
* @returns when the template is created
|
|
380
|
+
*/
|
|
381
|
+
async createTemplate(params) {
|
|
382
|
+
return this._remoteJson({
|
|
383
|
+
urlSuffix: '/templates',
|
|
384
|
+
method: 'post',
|
|
385
|
+
params: params || {},
|
|
386
|
+
});
|
|
387
|
+
}
|
|
388
|
+
/**
|
|
389
|
+
* Edit an Assembly Template
|
|
390
|
+
*
|
|
391
|
+
* @param templateId the template ID
|
|
392
|
+
* @param params optional request options
|
|
393
|
+
* @returns when the template is edited
|
|
394
|
+
*/
|
|
395
|
+
async editTemplate(templateId, params) {
|
|
396
|
+
return this._remoteJson({
|
|
397
|
+
urlSuffix: `/templates/${templateId}`,
|
|
398
|
+
method: 'put',
|
|
399
|
+
params: params || {},
|
|
400
|
+
});
|
|
401
|
+
}
|
|
402
|
+
/**
|
|
403
|
+
* Delete an Assembly Template
|
|
404
|
+
*
|
|
405
|
+
* @param templateId the template ID
|
|
406
|
+
* @returns when the template is deleted
|
|
407
|
+
*/
|
|
408
|
+
async deleteTemplate(templateId) {
|
|
409
|
+
return this._remoteJson({
|
|
410
|
+
urlSuffix: `/templates/${templateId}`,
|
|
411
|
+
method: 'delete',
|
|
412
|
+
});
|
|
413
|
+
}
|
|
414
|
+
/**
|
|
415
|
+
* Get an Assembly Template
|
|
416
|
+
*
|
|
417
|
+
* @param templateId the template ID
|
|
418
|
+
* @returns when the template is retrieved
|
|
419
|
+
*/
|
|
420
|
+
async getTemplate(templateId) {
|
|
421
|
+
return this._remoteJson({
|
|
422
|
+
urlSuffix: `/templates/${templateId}`,
|
|
423
|
+
method: 'get',
|
|
424
|
+
});
|
|
425
|
+
}
|
|
426
|
+
/**
|
|
427
|
+
* List all Assembly Templates
|
|
428
|
+
*
|
|
429
|
+
* @param params optional request options
|
|
430
|
+
* @returns the list of templates
|
|
431
|
+
*/
|
|
432
|
+
async listTemplates(params) {
|
|
433
|
+
return this._remoteJson({
|
|
434
|
+
urlSuffix: '/templates',
|
|
435
|
+
method: 'get',
|
|
436
|
+
params: params || {},
|
|
437
|
+
});
|
|
438
|
+
}
|
|
439
|
+
streamTemplates(params) {
|
|
440
|
+
return new PaginationStream_1.default(async (page) => this.listTemplates({ ...params, page }));
|
|
441
|
+
}
|
|
442
|
+
/**
|
|
443
|
+
* Get account Billing details for a specific month
|
|
444
|
+
*
|
|
445
|
+
* @param month the date for the required billing in the format yyyy-mm
|
|
446
|
+
* @returns with billing data
|
|
447
|
+
* @see https://transloadit.com/docs/api/bill-date-get/
|
|
448
|
+
*/
|
|
449
|
+
async getBill(month) {
|
|
450
|
+
assert.ok(month, 'month is required');
|
|
451
|
+
return this._remoteJson({
|
|
452
|
+
urlSuffix: `/bill/${month}`,
|
|
453
|
+
method: 'get',
|
|
454
|
+
});
|
|
455
|
+
}
|
|
456
|
+
calcSignature(params) {
|
|
457
|
+
const jsonParams = this._prepareParams(params);
|
|
458
|
+
const signature = this._calcSignature(jsonParams);
|
|
459
|
+
return { signature, params: jsonParams };
|
|
460
|
+
}
|
|
461
|
+
/**
|
|
462
|
+
* Construct a signed Smart CDN URL. See https://transloadit.com/docs/topics/signature-authentication/#smart-cdn.
|
|
463
|
+
*/
|
|
464
|
+
getSignedSmartCDNUrl(opts) {
|
|
465
|
+
if (opts.workspace == null || opts.workspace === '')
|
|
466
|
+
throw new TypeError('workspace is required');
|
|
467
|
+
if (opts.template == null || opts.template === '')
|
|
468
|
+
throw new TypeError('template is required');
|
|
469
|
+
if (opts.input == null)
|
|
470
|
+
throw new TypeError('input is required'); // `input` can be an empty string.
|
|
471
|
+
const workspaceSlug = encodeURIComponent(opts.workspace);
|
|
472
|
+
const templateSlug = encodeURIComponent(opts.template);
|
|
473
|
+
const inputField = encodeURIComponent(opts.input);
|
|
474
|
+
const expiresAt = opts.expiresAt || Date.now() + 60 * 60 * 1000; // 1 hour
|
|
475
|
+
const queryParams = new URLSearchParams();
|
|
476
|
+
for (const [key, value] of Object.entries(opts.urlParams || {})) {
|
|
477
|
+
if (Array.isArray(value)) {
|
|
478
|
+
for (const val of value) {
|
|
479
|
+
queryParams.append(key, `${val}`);
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
else {
|
|
483
|
+
queryParams.append(key, `${value}`);
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
queryParams.set('auth_key', this._authKey);
|
|
487
|
+
queryParams.set('exp', `${expiresAt}`);
|
|
488
|
+
// The signature changes depending on the order of the query parameters. We therefore sort them on the client-
|
|
489
|
+
// and server-side to ensure that we do not get mismatching signatures if a proxy changes the order of query
|
|
490
|
+
// parameters or implementations handle query parameters ordering differently.
|
|
491
|
+
queryParams.sort();
|
|
492
|
+
const stringToSign = `${workspaceSlug}/${templateSlug}/${inputField}?${queryParams}`;
|
|
493
|
+
const algorithm = 'sha256';
|
|
494
|
+
const signature = (0, crypto_1.createHmac)(algorithm, this._authSecret).update(stringToSign).digest('hex');
|
|
495
|
+
queryParams.set('sig', `sha256:${signature}`);
|
|
496
|
+
const signedUrl = `https://${workspaceSlug}.tlcdn.com/${templateSlug}/${inputField}?${queryParams}`;
|
|
497
|
+
return signedUrl;
|
|
498
|
+
}
|
|
499
|
+
_calcSignature(toSign, algorithm = 'sha384') {
|
|
500
|
+
return `${algorithm}:${(0, crypto_1.createHmac)(algorithm, this._authSecret)
|
|
501
|
+
.update(Buffer.from(toSign, 'utf-8'))
|
|
502
|
+
.digest('hex')}`;
|
|
503
|
+
}
|
|
504
|
+
// Sets the multipart/form-data for POST, PUT and DELETE requests, including
|
|
505
|
+
// the streams, the signed params, and any additional fields.
|
|
506
|
+
_appendForm(form, params, fields) {
|
|
507
|
+
const sigData = this.calcSignature(params);
|
|
508
|
+
const jsonParams = sigData.params;
|
|
509
|
+
const { signature } = sigData;
|
|
510
|
+
form.append('params', jsonParams);
|
|
511
|
+
if (fields != null) {
|
|
512
|
+
for (const [key, val] of Object.entries(fields)) {
|
|
513
|
+
form.append(key, val);
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
form.append('signature', signature);
|
|
517
|
+
}
|
|
518
|
+
// Implements HTTP GET query params, handling the case where the url already
|
|
519
|
+
// has params.
|
|
520
|
+
_appendParamsToUrl(url, params) {
|
|
521
|
+
const { signature, params: jsonParams } = this.calcSignature(params);
|
|
522
|
+
const prefix = url.indexOf('?') === -1 ? '?' : '&';
|
|
523
|
+
return `${url}${prefix}signature=${signature}¶ms=${encodeURIComponent(jsonParams)}`;
|
|
524
|
+
}
|
|
525
|
+
// Responsible for including auth parameters in all requests
|
|
526
|
+
_prepareParams(paramsIn) {
|
|
527
|
+
let params = paramsIn;
|
|
528
|
+
if (params == null) {
|
|
529
|
+
params = {};
|
|
530
|
+
}
|
|
531
|
+
if (params['auth'] == null) {
|
|
532
|
+
params['auth'] = {};
|
|
533
|
+
}
|
|
534
|
+
if (params['auth'].key == null) {
|
|
535
|
+
params['auth'].key = this._authKey;
|
|
536
|
+
}
|
|
537
|
+
if (params['auth'].expires == null) {
|
|
538
|
+
params['auth'].expires = this._getExpiresDate();
|
|
539
|
+
}
|
|
540
|
+
return JSON.stringify(params);
|
|
541
|
+
}
|
|
542
|
+
// We want to mock this method
|
|
543
|
+
// eslint-disable-next-line class-methods-use-this
|
|
544
|
+
_getExpiresDate() {
|
|
545
|
+
const expiresDate = new Date();
|
|
546
|
+
expiresDate.setDate(expiresDate.getDate() + 1);
|
|
547
|
+
return expiresDate.toISOString();
|
|
548
|
+
}
|
|
549
|
+
// Responsible for making API calls. Automatically sends streams with any POST,
|
|
550
|
+
// PUT or DELETE requests. Automatically adds signature parameters to all
|
|
551
|
+
// requests. Also automatically parses the JSON response.
|
|
552
|
+
async _remoteJson(opts) {
|
|
553
|
+
const { urlSuffix, url: urlInput, timeout = this._defaultTimeout, method = 'get', params = {}, fields, headers, } = opts;
|
|
554
|
+
// Allow providing either a `urlSuffix` or a full `url`
|
|
555
|
+
if (!urlSuffix && !urlInput)
|
|
556
|
+
throw new Error('No URL provided');
|
|
557
|
+
let url = urlInput || `${this._endpoint}${urlSuffix}`;
|
|
558
|
+
if (method === 'get') {
|
|
559
|
+
url = this._appendParamsToUrl(url, params);
|
|
560
|
+
}
|
|
561
|
+
log('Sending request', method, url);
|
|
562
|
+
// todo use got.retry instead because we are no longer using FormData (which is a stream and can only be used once)
|
|
563
|
+
// https://github.com/sindresorhus/got/issues/1282
|
|
564
|
+
for (let retryCount = 0;; retryCount++) {
|
|
565
|
+
let form;
|
|
566
|
+
if (method === 'post' || method === 'put' || method === 'delete') {
|
|
567
|
+
form = new form_data_1.default();
|
|
568
|
+
this._appendForm(form, params, fields);
|
|
569
|
+
}
|
|
570
|
+
const requestOpts = {
|
|
571
|
+
retry: this._gotRetry,
|
|
572
|
+
body: form,
|
|
573
|
+
timeout,
|
|
574
|
+
headers: {
|
|
575
|
+
'Transloadit-Client': `node-sdk:${package_json_1.version}`,
|
|
576
|
+
'User-Agent': undefined, // Remove got's user-agent
|
|
577
|
+
...headers,
|
|
578
|
+
},
|
|
579
|
+
responseType: 'json',
|
|
580
|
+
};
|
|
581
|
+
try {
|
|
582
|
+
const request = got_1.default[method](url, requestOpts);
|
|
583
|
+
const { body } = await request;
|
|
584
|
+
// console.log(body)
|
|
585
|
+
return body;
|
|
586
|
+
}
|
|
587
|
+
catch (err) {
|
|
588
|
+
if (!(err instanceof got_1.default.RequestError))
|
|
589
|
+
throw err;
|
|
590
|
+
if (err instanceof got_1.default.HTTPError) {
|
|
591
|
+
const { statusCode, body } = err.response;
|
|
592
|
+
logWarn('HTTP error', statusCode, body);
|
|
593
|
+
// check whether we should retry
|
|
594
|
+
// https://transloadit.com/blog/2012/04/introducing-rate-limiting/
|
|
595
|
+
if (typeof body === 'object' &&
|
|
596
|
+
body != null &&
|
|
597
|
+
'error' in body &&
|
|
598
|
+
'info' in body &&
|
|
599
|
+
typeof body.info === 'object' &&
|
|
600
|
+
body.info != null &&
|
|
601
|
+
'retryIn' in body.info &&
|
|
602
|
+
typeof body.info.retryIn === 'number' &&
|
|
603
|
+
Boolean(body.info.retryIn) &&
|
|
604
|
+
retryCount < this._maxRetries && // 413 taken from https://transloadit.com/blog/2012/04/introducing-rate-limiting/
|
|
605
|
+
// todo can 413 be removed?
|
|
606
|
+
((statusCode === 413 && body.error === 'RATE_LIMIT_REACHED') || statusCode === 429)) {
|
|
607
|
+
const { retryIn: retryInSec } = body.info;
|
|
608
|
+
logWarn(`Rate limit reached, retrying request in approximately ${retryInSec} seconds.`);
|
|
609
|
+
const retryInMs = 1000 * (retryInSec * (1 + 0.1 * Math.random()));
|
|
610
|
+
await new Promise((resolve) => setTimeout(resolve, retryInMs));
|
|
611
|
+
// Retry
|
|
612
|
+
}
|
|
613
|
+
else {
|
|
614
|
+
throw new ApiError_1.ApiError({
|
|
615
|
+
cause: err,
|
|
616
|
+
body: err.response?.body,
|
|
617
|
+
}); // todo don't assert type
|
|
618
|
+
}
|
|
619
|
+
}
|
|
620
|
+
else {
|
|
621
|
+
throw err;
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
exports.Transloadit = Transloadit;
|
|
628
|
+
//# sourceMappingURL=Transloadit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Transloadit.js","sourceRoot":"","sources":["../src/Transloadit.ts"],"names":[],"mappings":"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"}
|