@transloadit/node 4.1.3
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/LICENSE +21 -0
- package/README.md +701 -0
- package/dist/ApiError.d.ts +22 -0
- package/dist/ApiError.d.ts.map +1 -0
- package/dist/ApiError.js +33 -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 +4 -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 +36 -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 +5 -0
- package/dist/PollingTimeoutError.js.map +1 -0
- package/dist/Transloadit.d.ts +250 -0
- package/dist/Transloadit.d.ts.map +1 -0
- package/dist/Transloadit.js +661 -0
- package/dist/Transloadit.js.map +1 -0
- package/dist/alphalib/lib/nativeGlobby.d.ts +14 -0
- package/dist/alphalib/lib/nativeGlobby.d.ts.map +1 -0
- package/dist/alphalib/lib/nativeGlobby.js +181 -0
- package/dist/alphalib/lib/nativeGlobby.js.map +1 -0
- package/dist/alphalib/mcache.d.ts +65 -0
- package/dist/alphalib/mcache.d.ts.map +1 -0
- package/dist/alphalib/mcache.js +135 -0
- package/dist/alphalib/mcache.js.map +1 -0
- package/dist/alphalib/tryCatch.d.ts +21 -0
- package/dist/alphalib/tryCatch.d.ts.map +1 -0
- package/dist/alphalib/tryCatch.js +17 -0
- package/dist/alphalib/tryCatch.js.map +1 -0
- package/dist/alphalib/types/assembliesGet.d.ts +62 -0
- package/dist/alphalib/types/assembliesGet.d.ts.map +1 -0
- package/dist/alphalib/types/assembliesGet.js +33 -0
- package/dist/alphalib/types/assembliesGet.js.map +1 -0
- package/dist/alphalib/types/assemblyReplay.d.ts +7858 -0
- package/dist/alphalib/types/assemblyReplay.d.ts.map +1 -0
- package/dist/alphalib/types/assemblyReplay.js +15 -0
- package/dist/alphalib/types/assemblyReplay.js.map +1 -0
- package/dist/alphalib/types/assemblyReplayNotification.d.ts +7849 -0
- package/dist/alphalib/types/assemblyReplayNotification.d.ts.map +1 -0
- package/dist/alphalib/types/assemblyReplayNotification.js +13 -0
- package/dist/alphalib/types/assemblyReplayNotification.js.map +1 -0
- package/dist/alphalib/types/assemblyStatus.d.ts +71084 -0
- package/dist/alphalib/types/assemblyStatus.d.ts.map +1 -0
- package/dist/alphalib/types/assemblyStatus.js +710 -0
- package/dist/alphalib/types/assemblyStatus.js.map +1 -0
- package/dist/alphalib/types/bill.d.ts +44 -0
- package/dist/alphalib/types/bill.d.ts.map +1 -0
- package/dist/alphalib/types/bill.js +8 -0
- package/dist/alphalib/types/bill.js.map +1 -0
- package/dist/alphalib/types/robots/_index.d.ts +76306 -0
- package/dist/alphalib/types/robots/_index.d.ts.map +1 -0
- package/dist/alphalib/types/robots/_index.js +354 -0
- package/dist/alphalib/types/robots/_index.js.map +1 -0
- package/dist/alphalib/types/robots/_instructions-primitives.d.ts +3533 -0
- package/dist/alphalib/types/robots/_instructions-primitives.d.ts.map +1 -0
- package/dist/alphalib/types/robots/_instructions-primitives.js +1491 -0
- package/dist/alphalib/types/robots/_instructions-primitives.js.map +1 -0
- package/dist/alphalib/types/robots/ai-chat.d.ts +2096 -0
- package/dist/alphalib/types/robots/ai-chat.d.ts.map +1 -0
- package/dist/alphalib/types/robots/ai-chat.js +223 -0
- package/dist/alphalib/types/robots/ai-chat.js.map +1 -0
- package/dist/alphalib/types/robots/assembly-savejson.d.ts +52 -0
- package/dist/alphalib/types/robots/assembly-savejson.d.ts.map +1 -0
- package/dist/alphalib/types/robots/assembly-savejson.js +22 -0
- package/dist/alphalib/types/robots/assembly-savejson.js.map +1 -0
- package/dist/alphalib/types/robots/audio-artwork.d.ts +2867 -0
- package/dist/alphalib/types/robots/audio-artwork.d.ts.map +1 -0
- package/dist/alphalib/types/robots/audio-artwork.js +73 -0
- package/dist/alphalib/types/robots/audio-artwork.js.map +1 -0
- package/dist/alphalib/types/robots/audio-concat.d.ts +2916 -0
- package/dist/alphalib/types/robots/audio-concat.d.ts.map +1 -0
- package/dist/alphalib/types/robots/audio-concat.js +106 -0
- package/dist/alphalib/types/robots/audio-concat.js.map +1 -0
- package/dist/alphalib/types/robots/audio-encode.d.ts +2864 -0
- package/dist/alphalib/types/robots/audio-encode.d.ts.map +1 -0
- package/dist/alphalib/types/robots/audio-encode.js +67 -0
- package/dist/alphalib/types/robots/audio-encode.js.map +1 -0
- package/dist/alphalib/types/robots/audio-loop.d.ts +2879 -0
- package/dist/alphalib/types/robots/audio-loop.d.ts.map +1 -0
- package/dist/alphalib/types/robots/audio-loop.js +67 -0
- package/dist/alphalib/types/robots/audio-loop.js.map +1 -0
- package/dist/alphalib/types/robots/audio-merge.d.ts +2931 -0
- package/dist/alphalib/types/robots/audio-merge.d.ts.map +1 -0
- package/dist/alphalib/types/robots/audio-merge.js +101 -0
- package/dist/alphalib/types/robots/audio-merge.js.map +1 -0
- package/dist/alphalib/types/robots/audio-waveform.d.ts +3131 -0
- package/dist/alphalib/types/robots/audio-waveform.d.ts.map +1 -0
- package/dist/alphalib/types/robots/audio-waveform.js +238 -0
- package/dist/alphalib/types/robots/audio-waveform.js.map +1 -0
- package/dist/alphalib/types/robots/azure-import.d.ts +210 -0
- package/dist/alphalib/types/robots/azure-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/azure-import.js +73 -0
- package/dist/alphalib/types/robots/azure-import.js.map +1 -0
- package/dist/alphalib/types/robots/azure-store.d.ts +562 -0
- package/dist/alphalib/types/robots/azure-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/azure-store.js +115 -0
- package/dist/alphalib/types/robots/azure-store.js.map +1 -0
- package/dist/alphalib/types/robots/backblaze-import.d.ts +210 -0
- package/dist/alphalib/types/robots/backblaze-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/backblaze-import.js +81 -0
- package/dist/alphalib/types/robots/backblaze-import.js.map +1 -0
- package/dist/alphalib/types/robots/backblaze-store.d.ts +478 -0
- package/dist/alphalib/types/robots/backblaze-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/backblaze-store.js +76 -0
- package/dist/alphalib/types/robots/backblaze-store.js.map +1 -0
- package/dist/alphalib/types/robots/cloudfiles-import.d.ts +234 -0
- package/dist/alphalib/types/robots/cloudfiles-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/cloudfiles-import.js +80 -0
- package/dist/alphalib/types/robots/cloudfiles-import.js.map +1 -0
- package/dist/alphalib/types/robots/cloudfiles-store.d.ts +490 -0
- package/dist/alphalib/types/robots/cloudfiles-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/cloudfiles-store.js +70 -0
- package/dist/alphalib/types/robots/cloudfiles-store.js.map +1 -0
- package/dist/alphalib/types/robots/cloudflare-import.d.ts +234 -0
- package/dist/alphalib/types/robots/cloudflare-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/cloudflare-import.js +81 -0
- package/dist/alphalib/types/robots/cloudflare-import.js.map +1 -0
- package/dist/alphalib/types/robots/cloudflare-store.d.ts +514 -0
- package/dist/alphalib/types/robots/cloudflare-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/cloudflare-store.js +86 -0
- package/dist/alphalib/types/robots/cloudflare-store.js.map +1 -0
- package/dist/alphalib/types/robots/digitalocean-import.d.ts +234 -0
- package/dist/alphalib/types/robots/digitalocean-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/digitalocean-import.js +78 -0
- package/dist/alphalib/types/robots/digitalocean-import.js.map +1 -0
- package/dist/alphalib/types/robots/digitalocean-store.d.ts +526 -0
- package/dist/alphalib/types/robots/digitalocean-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/digitalocean-store.js +91 -0
- package/dist/alphalib/types/robots/digitalocean-store.js.map +1 -0
- package/dist/alphalib/types/robots/document-autorotate.d.ts +405 -0
- package/dist/alphalib/types/robots/document-autorotate.d.ts.map +1 -0
- package/dist/alphalib/types/robots/document-autorotate.js +44 -0
- package/dist/alphalib/types/robots/document-autorotate.js.map +1 -0
- package/dist/alphalib/types/robots/document-convert.d.ts +513 -0
- package/dist/alphalib/types/robots/document-convert.d.ts.map +1 -0
- package/dist/alphalib/types/robots/document-convert.js +273 -0
- package/dist/alphalib/types/robots/document-convert.js.map +1 -0
- package/dist/alphalib/types/robots/document-merge.d.ts +429 -0
- package/dist/alphalib/types/robots/document-merge.d.ts.map +1 -0
- package/dist/alphalib/types/robots/document-merge.js +86 -0
- package/dist/alphalib/types/robots/document-merge.js.map +1 -0
- package/dist/alphalib/types/robots/document-ocr.d.ts +441 -0
- package/dist/alphalib/types/robots/document-ocr.d.ts.map +1 -0
- package/dist/alphalib/types/robots/document-ocr.js +86 -0
- package/dist/alphalib/types/robots/document-ocr.js.map +1 -0
- package/dist/alphalib/types/robots/document-split.d.ts +417 -0
- package/dist/alphalib/types/robots/document-split.d.ts.map +1 -0
- package/dist/alphalib/types/robots/document-split.js +48 -0
- package/dist/alphalib/types/robots/document-split.js.map +1 -0
- package/dist/alphalib/types/robots/document-thumbs.d.ts +592 -0
- package/dist/alphalib/types/robots/document-thumbs.d.ts.map +1 -0
- package/dist/alphalib/types/robots/document-thumbs.js +196 -0
- package/dist/alphalib/types/robots/document-thumbs.js.map +1 -0
- package/dist/alphalib/types/robots/dropbox-import.d.ts +144 -0
- package/dist/alphalib/types/robots/dropbox-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/dropbox-import.js +65 -0
- package/dist/alphalib/types/robots/dropbox-import.js.map +1 -0
- package/dist/alphalib/types/robots/dropbox-store.d.ts +449 -0
- package/dist/alphalib/types/robots/dropbox-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/dropbox-store.js +68 -0
- package/dist/alphalib/types/robots/dropbox-store.js.map +1 -0
- package/dist/alphalib/types/robots/edgly-deliver.d.ts +100 -0
- package/dist/alphalib/types/robots/edgly-deliver.d.ts.map +1 -0
- package/dist/alphalib/types/robots/edgly-deliver.js +46 -0
- package/dist/alphalib/types/robots/edgly-deliver.js.map +1 -0
- package/dist/alphalib/types/robots/file-compress.d.ts +477 -0
- package/dist/alphalib/types/robots/file-compress.d.ts.map +1 -0
- package/dist/alphalib/types/robots/file-compress.js +139 -0
- package/dist/alphalib/types/robots/file-compress.js.map +1 -0
- package/dist/alphalib/types/robots/file-decompress.d.ts +404 -0
- package/dist/alphalib/types/robots/file-decompress.d.ts.map +1 -0
- package/dist/alphalib/types/robots/file-decompress.js +94 -0
- package/dist/alphalib/types/robots/file-decompress.js.map +1 -0
- package/dist/alphalib/types/robots/file-filter.d.ts +465 -0
- package/dist/alphalib/types/robots/file-filter.d.ts.map +1 -0
- package/dist/alphalib/types/robots/file-filter.js +136 -0
- package/dist/alphalib/types/robots/file-filter.js.map +1 -0
- package/dist/alphalib/types/robots/file-hash.d.ts +417 -0
- package/dist/alphalib/types/robots/file-hash.d.ts.map +1 -0
- package/dist/alphalib/types/robots/file-hash.js +59 -0
- package/dist/alphalib/types/robots/file-hash.js.map +1 -0
- package/dist/alphalib/types/robots/file-preview.d.ts +854 -0
- package/dist/alphalib/types/robots/file-preview.d.ts.map +1 -0
- package/dist/alphalib/types/robots/file-preview.js +221 -0
- package/dist/alphalib/types/robots/file-preview.js.map +1 -0
- package/dist/alphalib/types/robots/file-read.d.ts +405 -0
- package/dist/alphalib/types/robots/file-read.d.ts.map +1 -0
- package/dist/alphalib/types/robots/file-read.js +44 -0
- package/dist/alphalib/types/robots/file-read.js.map +1 -0
- package/dist/alphalib/types/robots/file-serve.d.ts +418 -0
- package/dist/alphalib/types/robots/file-serve.d.ts.map +1 -0
- package/dist/alphalib/types/robots/file-serve.js +99 -0
- package/dist/alphalib/types/robots/file-serve.js.map +1 -0
- package/dist/alphalib/types/robots/file-verify.d.ts +441 -0
- package/dist/alphalib/types/robots/file-verify.d.ts.map +1 -0
- package/dist/alphalib/types/robots/file-verify.js +73 -0
- package/dist/alphalib/types/robots/file-verify.js.map +1 -0
- package/dist/alphalib/types/robots/file-virusscan.d.ts +435 -0
- package/dist/alphalib/types/robots/file-virusscan.d.ts.map +1 -0
- package/dist/alphalib/types/robots/file-virusscan.js +82 -0
- package/dist/alphalib/types/robots/file-virusscan.js.map +1 -0
- package/dist/alphalib/types/robots/file-watermark.d.ts +417 -0
- package/dist/alphalib/types/robots/file-watermark.d.ts.map +1 -0
- package/dist/alphalib/types/robots/file-watermark.js +28 -0
- package/dist/alphalib/types/robots/file-watermark.js.map +1 -0
- package/dist/alphalib/types/robots/ftp-import.d.ts +198 -0
- package/dist/alphalib/types/robots/ftp-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/ftp-import.js +60 -0
- package/dist/alphalib/types/robots/ftp-import.js.map +1 -0
- package/dist/alphalib/types/robots/ftp-store.d.ts +532 -0
- package/dist/alphalib/types/robots/ftp-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/ftp-store.js +91 -0
- package/dist/alphalib/types/robots/ftp-store.js.map +1 -0
- package/dist/alphalib/types/robots/google-import.d.ts +174 -0
- package/dist/alphalib/types/robots/google-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/google-import.js +77 -0
- package/dist/alphalib/types/robots/google-import.js.map +1 -0
- package/dist/alphalib/types/robots/google-store.d.ts +476 -0
- package/dist/alphalib/types/robots/google-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/google-store.js +111 -0
- package/dist/alphalib/types/robots/google-store.js.map +1 -0
- package/dist/alphalib/types/robots/html-convert.d.ts +531 -0
- package/dist/alphalib/types/robots/html-convert.d.ts.map +1 -0
- package/dist/alphalib/types/robots/html-convert.js +137 -0
- package/dist/alphalib/types/robots/html-convert.js.map +1 -0
- package/dist/alphalib/types/robots/http-import.d.ts +215 -0
- package/dist/alphalib/types/robots/http-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/http-import.js +135 -0
- package/dist/alphalib/types/robots/http-import.js.map +1 -0
- package/dist/alphalib/types/robots/image-bgremove.d.ts +453 -0
- package/dist/alphalib/types/robots/image-bgremove.d.ts.map +1 -0
- package/dist/alphalib/types/robots/image-bgremove.js +65 -0
- package/dist/alphalib/types/robots/image-bgremove.js.map +1 -0
- package/dist/alphalib/types/robots/image-describe.d.ts +453 -0
- package/dist/alphalib/types/robots/image-describe.d.ts.map +1 -0
- package/dist/alphalib/types/robots/image-describe.js +86 -0
- package/dist/alphalib/types/robots/image-describe.js.map +1 -0
- package/dist/alphalib/types/robots/image-facedetect.d.ts +477 -0
- package/dist/alphalib/types/robots/image-facedetect.d.ts.map +1 -0
- package/dist/alphalib/types/robots/image-facedetect.js +151 -0
- package/dist/alphalib/types/robots/image-facedetect.js.map +1 -0
- package/dist/alphalib/types/robots/image-generate.d.ts +522 -0
- package/dist/alphalib/types/robots/image-generate.d.ts.map +1 -0
- package/dist/alphalib/types/robots/image-generate.js +64 -0
- package/dist/alphalib/types/robots/image-generate.js.map +1 -0
- package/dist/alphalib/types/robots/image-merge.d.ts +477 -0
- package/dist/alphalib/types/robots/image-merge.d.ts.map +1 -0
- package/dist/alphalib/types/robots/image-merge.js +92 -0
- package/dist/alphalib/types/robots/image-merge.js.map +1 -0
- package/dist/alphalib/types/robots/image-ocr.d.ts +441 -0
- package/dist/alphalib/types/robots/image-ocr.d.ts.map +1 -0
- package/dist/alphalib/types/robots/image-ocr.js +79 -0
- package/dist/alphalib/types/robots/image-ocr.js.map +1 -0
- package/dist/alphalib/types/robots/image-optimize.d.ts +453 -0
- package/dist/alphalib/types/robots/image-optimize.d.ts.map +1 -0
- package/dist/alphalib/types/robots/image-optimize.js +81 -0
- package/dist/alphalib/types/robots/image-optimize.js.map +1 -0
- package/dist/alphalib/types/robots/image-resize.d.ts +1758 -0
- package/dist/alphalib/types/robots/image-resize.d.ts.map +1 -0
- package/dist/alphalib/types/robots/image-resize.js +602 -0
- package/dist/alphalib/types/robots/image-resize.js.map +1 -0
- package/dist/alphalib/types/robots/meta-read.d.ts +98 -0
- package/dist/alphalib/types/robots/meta-read.d.ts.map +1 -0
- package/dist/alphalib/types/robots/meta-read.js +24 -0
- package/dist/alphalib/types/robots/meta-read.js.map +1 -0
- package/dist/alphalib/types/robots/meta-write.d.ts +2842 -0
- package/dist/alphalib/types/robots/meta-write.d.ts.map +1 -0
- package/dist/alphalib/types/robots/meta-write.js +66 -0
- package/dist/alphalib/types/robots/meta-write.js.map +1 -0
- package/dist/alphalib/types/robots/minio-import.d.ts +234 -0
- package/dist/alphalib/types/robots/minio-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/minio-import.js +81 -0
- package/dist/alphalib/types/robots/minio-import.js.map +1 -0
- package/dist/alphalib/types/robots/minio-store.d.ts +514 -0
- package/dist/alphalib/types/robots/minio-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/minio-store.js +87 -0
- package/dist/alphalib/types/robots/minio-store.js.map +1 -0
- package/dist/alphalib/types/robots/progress-simulate.d.ts +229 -0
- package/dist/alphalib/types/robots/progress-simulate.d.ts.map +1 -0
- package/dist/alphalib/types/robots/progress-simulate.js +25 -0
- package/dist/alphalib/types/robots/progress-simulate.js.map +1 -0
- package/dist/alphalib/types/robots/s3-import.d.ts +246 -0
- package/dist/alphalib/types/robots/s3-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/s3-import.js +137 -0
- package/dist/alphalib/types/robots/s3-import.js.map +1 -0
- package/dist/alphalib/types/robots/s3-store.d.ts +593 -0
- package/dist/alphalib/types/robots/s3-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/s3-store.js +169 -0
- package/dist/alphalib/types/robots/s3-store.js.map +1 -0
- package/dist/alphalib/types/robots/script-run.d.ts +423 -0
- package/dist/alphalib/types/robots/script-run.d.ts.map +1 -0
- package/dist/alphalib/types/robots/script-run.js +95 -0
- package/dist/alphalib/types/robots/script-run.js.map +1 -0
- package/dist/alphalib/types/robots/sftp-import.d.ts +192 -0
- package/dist/alphalib/types/robots/sftp-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/sftp-import.js +62 -0
- package/dist/alphalib/types/robots/sftp-import.js.map +1 -0
- package/dist/alphalib/types/robots/sftp-store.d.ts +520 -0
- package/dist/alphalib/types/robots/sftp-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/sftp-store.js +83 -0
- package/dist/alphalib/types/robots/sftp-store.js.map +1 -0
- package/dist/alphalib/types/robots/speech-transcribe.d.ts +465 -0
- package/dist/alphalib/types/robots/speech-transcribe.d.ts.map +1 -0
- package/dist/alphalib/types/robots/speech-transcribe.js +103 -0
- package/dist/alphalib/types/robots/speech-transcribe.js.map +1 -0
- package/dist/alphalib/types/robots/supabase-import.d.ts +246 -0
- package/dist/alphalib/types/robots/supabase-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/supabase-import.js +83 -0
- package/dist/alphalib/types/robots/supabase-import.js.map +1 -0
- package/dist/alphalib/types/robots/supabase-store.d.ts +514 -0
- package/dist/alphalib/types/robots/supabase-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/supabase-store.js +77 -0
- package/dist/alphalib/types/robots/supabase-store.js.map +1 -0
- package/dist/alphalib/types/robots/swift-import.d.ts +246 -0
- package/dist/alphalib/types/robots/swift-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/swift-import.js +81 -0
- package/dist/alphalib/types/robots/swift-import.js.map +1 -0
- package/dist/alphalib/types/robots/swift-store.d.ts +526 -0
- package/dist/alphalib/types/robots/swift-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/swift-store.js +84 -0
- package/dist/alphalib/types/robots/swift-store.js.map +1 -0
- package/dist/alphalib/types/robots/text-speak.d.ts +465 -0
- package/dist/alphalib/types/robots/text-speak.d.ts.map +1 -0
- package/dist/alphalib/types/robots/text-speak.js +119 -0
- package/dist/alphalib/types/robots/text-speak.js.map +1 -0
- package/dist/alphalib/types/robots/text-translate.d.ts +441 -0
- package/dist/alphalib/types/robots/text-translate.d.ts.map +1 -0
- package/dist/alphalib/types/robots/text-translate.js +211 -0
- package/dist/alphalib/types/robots/text-translate.js.map +1 -0
- package/dist/alphalib/types/robots/tigris-import.d.ts +244 -0
- package/dist/alphalib/types/robots/tigris-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/tigris-import.js +85 -0
- package/dist/alphalib/types/robots/tigris-import.js.map +1 -0
- package/dist/alphalib/types/robots/tigris-store.d.ts +524 -0
- package/dist/alphalib/types/robots/tigris-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/tigris-store.js +91 -0
- package/dist/alphalib/types/robots/tigris-store.js.map +1 -0
- package/dist/alphalib/types/robots/tlcdn-deliver.d.ts +100 -0
- package/dist/alphalib/types/robots/tlcdn-deliver.d.ts.map +1 -0
- package/dist/alphalib/types/robots/tlcdn-deliver.js +46 -0
- package/dist/alphalib/types/robots/tlcdn-deliver.js.map +1 -0
- package/dist/alphalib/types/robots/tus-store.d.ts +477 -0
- package/dist/alphalib/types/robots/tus-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/tus-store.js +102 -0
- package/dist/alphalib/types/robots/tus-store.js.map +1 -0
- package/dist/alphalib/types/robots/upload-handle.d.ts +100 -0
- package/dist/alphalib/types/robots/upload-handle.d.ts.map +1 -0
- package/dist/alphalib/types/robots/upload-handle.js +66 -0
- package/dist/alphalib/types/robots/upload-handle.js.map +1 -0
- package/dist/alphalib/types/robots/video-adaptive.d.ts +2915 -0
- package/dist/alphalib/types/robots/video-adaptive.d.ts.map +1 -0
- package/dist/alphalib/types/robots/video-adaptive.js +144 -0
- package/dist/alphalib/types/robots/video-adaptive.js.map +1 -0
- package/dist/alphalib/types/robots/video-concat.d.ts +2891 -0
- package/dist/alphalib/types/robots/video-concat.d.ts.map +1 -0
- package/dist/alphalib/types/robots/video-concat.js +96 -0
- package/dist/alphalib/types/robots/video-concat.js.map +1 -0
- package/dist/alphalib/types/robots/video-encode.d.ts +3280 -0
- package/dist/alphalib/types/robots/video-encode.d.ts.map +1 -0
- package/dist/alphalib/types/robots/video-encode.js +107 -0
- package/dist/alphalib/types/robots/video-encode.js.map +1 -0
- package/dist/alphalib/types/robots/video-merge.d.ts +2987 -0
- package/dist/alphalib/types/robots/video-merge.d.ts.map +1 -0
- package/dist/alphalib/types/robots/video-merge.js +102 -0
- package/dist/alphalib/types/robots/video-merge.js.map +1 -0
- package/dist/alphalib/types/robots/video-ondemand.d.ts +4553 -0
- package/dist/alphalib/types/robots/video-ondemand.d.ts.map +1 -0
- package/dist/alphalib/types/robots/video-ondemand.js +112 -0
- package/dist/alphalib/types/robots/video-ondemand.js.map +1 -0
- package/dist/alphalib/types/robots/video-subtitle.d.ts +2975 -0
- package/dist/alphalib/types/robots/video-subtitle.d.ts.map +1 -0
- package/dist/alphalib/types/robots/video-subtitle.js +122 -0
- package/dist/alphalib/types/robots/video-subtitle.js.map +1 -0
- package/dist/alphalib/types/robots/video-thumbs.d.ts +2938 -0
- package/dist/alphalib/types/robots/video-thumbs.d.ts.map +1 -0
- package/dist/alphalib/types/robots/video-thumbs.js +122 -0
- package/dist/alphalib/types/robots/video-thumbs.js.map +1 -0
- package/dist/alphalib/types/robots/vimeo-import.d.ts +189 -0
- package/dist/alphalib/types/robots/vimeo-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/vimeo-import.js +92 -0
- package/dist/alphalib/types/robots/vimeo-import.js.map +1 -0
- package/dist/alphalib/types/robots/vimeo-store.d.ts +520 -0
- package/dist/alphalib/types/robots/vimeo-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/vimeo-store.js +115 -0
- package/dist/alphalib/types/robots/vimeo-store.js.map +1 -0
- package/dist/alphalib/types/robots/wasabi-import.d.ts +244 -0
- package/dist/alphalib/types/robots/wasabi-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/wasabi-import.js +85 -0
- package/dist/alphalib/types/robots/wasabi-import.js.map +1 -0
- package/dist/alphalib/types/robots/wasabi-store.d.ts +526 -0
- package/dist/alphalib/types/robots/wasabi-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/wasabi-store.js +85 -0
- package/dist/alphalib/types/robots/wasabi-store.js.map +1 -0
- package/dist/alphalib/types/robots/youtube-store.d.ts +477 -0
- package/dist/alphalib/types/robots/youtube-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/youtube-store.js +122 -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 +13 -0
- package/dist/alphalib/types/stackVersions.js.map +1 -0
- package/dist/alphalib/types/template.d.ts +131710 -0
- package/dist/alphalib/types/template.d.ts.map +1 -0
- package/dist/alphalib/types/template.js +218 -0
- package/dist/alphalib/types/template.js.map +1 -0
- package/dist/alphalib/types/templateCredential.d.ts +95 -0
- package/dist/alphalib/types/templateCredential.d.ts.map +1 -0
- package/dist/alphalib/types/templateCredential.js +57 -0
- package/dist/alphalib/types/templateCredential.js.map +1 -0
- package/dist/alphalib/zodParseWithContext.d.ts +17 -0
- package/dist/alphalib/zodParseWithContext.d.ts.map +1 -0
- package/dist/alphalib/zodParseWithContext.js +248 -0
- package/dist/alphalib/zodParseWithContext.js.map +1 -0
- package/dist/apiTypes.d.ts +112 -0
- package/dist/apiTypes.d.ts.map +1 -0
- package/dist/apiTypes.js +3 -0
- package/dist/apiTypes.js.map +1 -0
- package/dist/cli/OutputCtl.d.ts +47 -0
- package/dist/cli/OutputCtl.d.ts.map +1 -0
- package/dist/cli/OutputCtl.js +85 -0
- package/dist/cli/OutputCtl.js.map +1 -0
- package/dist/cli/commands/BaseCommand.d.ts +24 -0
- package/dist/cli/commands/BaseCommand.d.ts.map +1 -0
- package/dist/cli/commands/BaseCommand.js +52 -0
- package/dist/cli/commands/BaseCommand.js.map +1 -0
- package/dist/cli/commands/assemblies.d.ts +93 -0
- package/dist/cli/commands/assemblies.d.ts.map +1 -0
- package/dist/cli/commands/assemblies.js +1021 -0
- package/dist/cli/commands/assemblies.js.map +1 -0
- package/dist/cli/commands/auth.d.ts +28 -0
- package/dist/cli/commands/auth.d.ts.map +1 -0
- package/dist/cli/commands/auth.js +280 -0
- package/dist/cli/commands/auth.js.map +1 -0
- package/dist/cli/commands/bills.d.ts +14 -0
- package/dist/cli/commands/bills.d.ts.map +1 -0
- package/dist/cli/commands/bills.js +69 -0
- package/dist/cli/commands/bills.js.map +1 -0
- package/dist/cli/commands/index.d.ts +3 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/index.js +39 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/notifications.d.ts +9 -0
- package/dist/cli/commands/notifications.d.ts.map +1 -0
- package/dist/cli/commands/notifications.js +44 -0
- package/dist/cli/commands/notifications.js.map +1 -0
- package/dist/cli/commands/templates.d.ts +73 -0
- package/dist/cli/commands/templates.d.ts.map +1 -0
- package/dist/cli/commands/templates.js +428 -0
- package/dist/cli/commands/templates.js.map +1 -0
- package/dist/cli/helpers.d.ts +13 -0
- package/dist/cli/helpers.d.ts.map +1 -0
- package/dist/cli/helpers.js +39 -0
- package/dist/cli/helpers.js.map +1 -0
- package/dist/cli/template-last-modified.d.ts +10 -0
- package/dist/cli/template-last-modified.d.ts.map +1 -0
- package/dist/cli/template-last-modified.js +134 -0
- package/dist/cli/template-last-modified.js.map +1 -0
- package/dist/cli/types.d.ts +78 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +49 -0
- package/dist/cli/types.js.map +1 -0
- package/dist/cli.d.ts +6 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +41 -0
- package/dist/cli.js.map +1 -0
- package/dist/tus.d.ts +18 -0
- package/dist/tus.d.ts.map +1 -0
- package/dist/tus.js +122 -0
- package/dist/tus.js.map +1 -0
- package/package.json +92 -0
- package/src/ApiError.ts +49 -0
- package/src/InconsistentResponseError.ts +3 -0
- package/src/PaginationStream.ts +54 -0
- package/src/PollingTimeoutError.ts +5 -0
- package/src/Transloadit.ts +980 -0
- package/src/alphalib/lib/nativeGlobby.ts +244 -0
- package/src/alphalib/mcache.ts +184 -0
- package/src/alphalib/tryCatch.ts +30 -0
- package/src/alphalib/types/assembliesGet.ts +42 -0
- package/src/alphalib/types/assemblyReplay.ts +24 -0
- package/src/alphalib/types/assemblyReplayNotification.ts +16 -0
- package/src/alphalib/types/assemblyStatus.ts +794 -0
- package/src/alphalib/types/bill.ts +9 -0
- package/src/alphalib/types/robots/_index.ts +1201 -0
- package/src/alphalib/types/robots/_instructions-primitives.ts +1770 -0
- package/src/alphalib/types/robots/ai-chat.ts +278 -0
- package/src/alphalib/types/robots/assembly-savejson.ts +37 -0
- package/src/alphalib/types/robots/audio-artwork.ts +107 -0
- package/src/alphalib/types/robots/audio-concat.ts +142 -0
- package/src/alphalib/types/robots/audio-encode.ts +103 -0
- package/src/alphalib/types/robots/audio-loop.ts +102 -0
- package/src/alphalib/types/robots/audio-merge.ts +137 -0
- package/src/alphalib/types/robots/audio-waveform.ts +280 -0
- package/src/alphalib/types/robots/azure-import.ts +111 -0
- package/src/alphalib/types/robots/azure-store.ts +143 -0
- package/src/alphalib/types/robots/backblaze-import.ts +119 -0
- package/src/alphalib/types/robots/backblaze-store.ts +104 -0
- package/src/alphalib/types/robots/cloudfiles-import.ts +118 -0
- package/src/alphalib/types/robots/cloudfiles-store.ts +104 -0
- package/src/alphalib/types/robots/cloudflare-import.ts +121 -0
- package/src/alphalib/types/robots/cloudflare-store.ts +120 -0
- package/src/alphalib/types/robots/digitalocean-import.ts +118 -0
- package/src/alphalib/types/robots/digitalocean-store.ts +125 -0
- package/src/alphalib/types/robots/document-autorotate.ts +74 -0
- package/src/alphalib/types/robots/document-convert.ts +302 -0
- package/src/alphalib/types/robots/document-merge.ts +114 -0
- package/src/alphalib/types/robots/document-ocr.ts +120 -0
- package/src/alphalib/types/robots/document-split.ts +78 -0
- package/src/alphalib/types/robots/document-thumbs.ts +231 -0
- package/src/alphalib/types/robots/dropbox-import.ts +100 -0
- package/src/alphalib/types/robots/dropbox-store.ts +97 -0
- package/src/alphalib/types/robots/edgly-deliver.ts +73 -0
- package/src/alphalib/types/robots/file-compress.ts +167 -0
- package/src/alphalib/types/robots/file-decompress.ts +125 -0
- package/src/alphalib/types/robots/file-filter.ts +173 -0
- package/src/alphalib/types/robots/file-hash.ts +86 -0
- package/src/alphalib/types/robots/file-preview.ts +260 -0
- package/src/alphalib/types/robots/file-read.ts +71 -0
- package/src/alphalib/types/robots/file-serve.ts +128 -0
- package/src/alphalib/types/robots/file-verify.ts +102 -0
- package/src/alphalib/types/robots/file-virusscan.ts +113 -0
- package/src/alphalib/types/robots/file-watermark.ts +56 -0
- package/src/alphalib/types/robots/ftp-import.ts +95 -0
- package/src/alphalib/types/robots/ftp-store.ts +119 -0
- package/src/alphalib/types/robots/google-import.ts +115 -0
- package/src/alphalib/types/robots/google-store.ts +139 -0
- package/src/alphalib/types/robots/html-convert.ts +165 -0
- package/src/alphalib/types/robots/http-import.ts +168 -0
- package/src/alphalib/types/robots/image-bgremove.ts +95 -0
- package/src/alphalib/types/robots/image-describe.ts +121 -0
- package/src/alphalib/types/robots/image-facedetect.ts +187 -0
- package/src/alphalib/types/robots/image-generate.ts +92 -0
- package/src/alphalib/types/robots/image-merge.ts +127 -0
- package/src/alphalib/types/robots/image-ocr.ts +112 -0
- package/src/alphalib/types/robots/image-optimize.ts +114 -0
- package/src/alphalib/types/robots/image-resize.ts +653 -0
- package/src/alphalib/types/robots/meta-read.ts +44 -0
- package/src/alphalib/types/robots/meta-write.ts +93 -0
- package/src/alphalib/types/robots/minio-import.ts +120 -0
- package/src/alphalib/types/robots/minio-store.ts +115 -0
- package/src/alphalib/types/robots/progress-simulate.ts +40 -0
- package/src/alphalib/types/robots/s3-import.ts +175 -0
- package/src/alphalib/types/robots/s3-store.ts +198 -0
- package/src/alphalib/types/robots/script-run.ts +122 -0
- package/src/alphalib/types/robots/sftp-import.ts +92 -0
- package/src/alphalib/types/robots/sftp-store.ts +110 -0
- package/src/alphalib/types/robots/speech-transcribe.ts +139 -0
- package/src/alphalib/types/robots/supabase-import.ts +122 -0
- package/src/alphalib/types/robots/supabase-store.ts +105 -0
- package/src/alphalib/types/robots/swift-import.ts +120 -0
- package/src/alphalib/types/robots/swift-store.ts +112 -0
- package/src/alphalib/types/robots/text-speak.ts +152 -0
- package/src/alphalib/types/robots/text-translate.ts +245 -0
- package/src/alphalib/types/robots/tigris-import.ts +124 -0
- package/src/alphalib/types/robots/tigris-store.ts +119 -0
- package/src/alphalib/types/robots/tlcdn-deliver.ts +73 -0
- package/src/alphalib/types/robots/tus-store.ts +129 -0
- package/src/alphalib/types/robots/upload-handle.ts +95 -0
- package/src/alphalib/types/robots/video-adaptive.ts +179 -0
- package/src/alphalib/types/robots/video-concat.ts +130 -0
- package/src/alphalib/types/robots/video-encode.ts +141 -0
- package/src/alphalib/types/robots/video-merge.ts +138 -0
- package/src/alphalib/types/robots/video-ondemand.ts +161 -0
- package/src/alphalib/types/robots/video-subtitle.ts +159 -0
- package/src/alphalib/types/robots/video-thumbs.ts +158 -0
- package/src/alphalib/types/robots/vimeo-import.ts +126 -0
- package/src/alphalib/types/robots/vimeo-store.ts +143 -0
- package/src/alphalib/types/robots/wasabi-import.ts +124 -0
- package/src/alphalib/types/robots/wasabi-store.ts +113 -0
- package/src/alphalib/types/robots/youtube-store.ts +153 -0
- package/src/alphalib/types/stackVersions.ts +12 -0
- package/src/alphalib/types/template.ts +277 -0
- package/src/alphalib/types/templateCredential.ts +61 -0
- package/src/alphalib/zodParseWithContext.ts +306 -0
- package/src/apiTypes.ts +154 -0
- package/src/cli/OutputCtl.ts +115 -0
- package/src/cli/commands/BaseCommand.ts +71 -0
- package/src/cli/commands/assemblies.ts +1373 -0
- package/src/cli/commands/auth.ts +354 -0
- package/src/cli/commands/bills.ts +91 -0
- package/src/cli/commands/index.ts +65 -0
- package/src/cli/commands/notifications.ts +63 -0
- package/src/cli/commands/templates.ts +556 -0
- package/src/cli/helpers.ts +50 -0
- package/src/cli/template-last-modified.ts +156 -0
- package/src/cli/types.ts +70 -0
- package/src/cli.ts +44 -0
- package/src/tus.ts +168 -0
|
@@ -0,0 +1,556 @@
|
|
|
1
|
+
import fsp from 'node:fs/promises'
|
|
2
|
+
import path from 'node:path'
|
|
3
|
+
import { promisify } from 'node:util'
|
|
4
|
+
import { Command, Option } from 'clipanion'
|
|
5
|
+
import rreaddir from 'recursive-readdir'
|
|
6
|
+
import { z } from 'zod'
|
|
7
|
+
import { tryCatch } from '../../alphalib/tryCatch.ts'
|
|
8
|
+
import type { Steps } from '../../alphalib/types/template.ts'
|
|
9
|
+
import { stepsSchema } from '../../alphalib/types/template.ts'
|
|
10
|
+
import type { TemplateContent } from '../../apiTypes.ts'
|
|
11
|
+
import type { Transloadit } from '../../Transloadit.ts'
|
|
12
|
+
import { createReadStream, formatAPIError, streamToBuffer } from '../helpers.ts'
|
|
13
|
+
import type { IOutputCtl } from '../OutputCtl.ts'
|
|
14
|
+
import ModifiedLookup from '../template-last-modified.ts'
|
|
15
|
+
import type { TemplateFile } from '../types.ts'
|
|
16
|
+
import { ensureError, isTransloaditAPIError, TemplateFileDataSchema } from '../types.ts'
|
|
17
|
+
import { AuthenticatedCommand } from './BaseCommand.ts'
|
|
18
|
+
|
|
19
|
+
const rreaddirAsync = promisify(rreaddir)
|
|
20
|
+
|
|
21
|
+
export interface TemplateCreateOptions {
|
|
22
|
+
name: string
|
|
23
|
+
file: string
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface TemplateGetOptions {
|
|
27
|
+
templates: string[]
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export interface TemplateModifyOptions {
|
|
31
|
+
template: string
|
|
32
|
+
name?: string
|
|
33
|
+
file: string
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
interface TemplateDeleteOptions {
|
|
37
|
+
templates: string[]
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
interface TemplateListOptions {
|
|
41
|
+
before?: string
|
|
42
|
+
after?: string
|
|
43
|
+
order?: 'asc' | 'desc'
|
|
44
|
+
sort?: string
|
|
45
|
+
fields?: string[]
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export interface TemplateSyncOptions {
|
|
49
|
+
files: string[]
|
|
50
|
+
recursive?: boolean
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export async function create(
|
|
54
|
+
output: IOutputCtl,
|
|
55
|
+
client: Transloadit,
|
|
56
|
+
{ name, file }: TemplateCreateOptions,
|
|
57
|
+
): Promise<unknown> {
|
|
58
|
+
try {
|
|
59
|
+
const buf = await streamToBuffer(createReadStream(file))
|
|
60
|
+
|
|
61
|
+
const parsed: unknown = JSON.parse(buf.toString())
|
|
62
|
+
const validated = stepsSchema.safeParse(parsed)
|
|
63
|
+
if (!validated.success) {
|
|
64
|
+
throw new Error(`Invalid template steps format: ${validated.error.message}`)
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const result = await client.createTemplate({
|
|
68
|
+
name,
|
|
69
|
+
// Steps (validated) is assignable to StepsInput at runtime; cast for TS
|
|
70
|
+
template: { steps: validated.data } as TemplateContent,
|
|
71
|
+
})
|
|
72
|
+
output.print(result.id, result)
|
|
73
|
+
return result
|
|
74
|
+
} catch (err) {
|
|
75
|
+
const error = ensureError(err)
|
|
76
|
+
output.error(error.message)
|
|
77
|
+
throw err
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export async function get(
|
|
82
|
+
output: IOutputCtl,
|
|
83
|
+
client: Transloadit,
|
|
84
|
+
{ templates }: TemplateGetOptions,
|
|
85
|
+
): Promise<void> {
|
|
86
|
+
const requests = templates.map((template) => client.getTemplate(template))
|
|
87
|
+
|
|
88
|
+
const [err, results] = await tryCatch(Promise.all(requests))
|
|
89
|
+
if (err) {
|
|
90
|
+
output.error(formatAPIError(err))
|
|
91
|
+
throw err
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
for (const result of results) {
|
|
95
|
+
output.print(result, result)
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export async function modify(
|
|
100
|
+
output: IOutputCtl,
|
|
101
|
+
client: Transloadit,
|
|
102
|
+
{ template, name, file }: TemplateModifyOptions,
|
|
103
|
+
): Promise<void> {
|
|
104
|
+
try {
|
|
105
|
+
const buf = await streamToBuffer(createReadStream(file))
|
|
106
|
+
|
|
107
|
+
let steps: Steps | null = null
|
|
108
|
+
let newName = name
|
|
109
|
+
|
|
110
|
+
if (buf.length > 0) {
|
|
111
|
+
const parsed: unknown = JSON.parse(buf.toString())
|
|
112
|
+
const validated = stepsSchema.safeParse(parsed)
|
|
113
|
+
if (!validated.success) {
|
|
114
|
+
throw new Error(`Invalid template steps format: ${validated.error.message}`)
|
|
115
|
+
}
|
|
116
|
+
steps = validated.data
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
if (!name || buf.length === 0) {
|
|
120
|
+
const tpl = await client.getTemplate(template)
|
|
121
|
+
if (!name) newName = tpl.name
|
|
122
|
+
if (buf.length === 0 && tpl.content.steps) {
|
|
123
|
+
steps = tpl.content.steps
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
if (steps === null) {
|
|
128
|
+
throw new Error('No steps to update template with')
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
await client.editTemplate(template, {
|
|
132
|
+
name: newName,
|
|
133
|
+
// Steps (validated) is assignable to StepsInput at runtime; cast for TS
|
|
134
|
+
template: { steps } as TemplateContent,
|
|
135
|
+
})
|
|
136
|
+
} catch (err) {
|
|
137
|
+
output.error(formatAPIError(err))
|
|
138
|
+
throw err
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
async function deleteTemplates(
|
|
143
|
+
output: IOutputCtl,
|
|
144
|
+
client: Transloadit,
|
|
145
|
+
{ templates }: TemplateDeleteOptions,
|
|
146
|
+
): Promise<void> {
|
|
147
|
+
await Promise.all(
|
|
148
|
+
templates.map(async (template) => {
|
|
149
|
+
const [err] = await tryCatch(client.deleteTemplate(template))
|
|
150
|
+
if (err) {
|
|
151
|
+
output.error(formatAPIError(err))
|
|
152
|
+
throw err
|
|
153
|
+
}
|
|
154
|
+
}),
|
|
155
|
+
)
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// Export with `delete` alias for external consumers
|
|
159
|
+
export { deleteTemplates as delete }
|
|
160
|
+
|
|
161
|
+
const TemplateIdSchema = z.object({
|
|
162
|
+
id: z.string(),
|
|
163
|
+
})
|
|
164
|
+
|
|
165
|
+
function list(
|
|
166
|
+
output: IOutputCtl,
|
|
167
|
+
client: Transloadit,
|
|
168
|
+
{ before, after, order, sort, fields }: TemplateListOptions,
|
|
169
|
+
): void {
|
|
170
|
+
const stream = client.streamTemplates({
|
|
171
|
+
todate: before,
|
|
172
|
+
fromdate: after,
|
|
173
|
+
order,
|
|
174
|
+
sort: sort as 'id' | 'name' | 'created' | 'modified' | undefined,
|
|
175
|
+
})
|
|
176
|
+
|
|
177
|
+
stream.on('readable', () => {
|
|
178
|
+
const template: unknown = stream.read()
|
|
179
|
+
if (template == null) return
|
|
180
|
+
|
|
181
|
+
const parsed = TemplateIdSchema.safeParse(template)
|
|
182
|
+
if (!parsed.success) return
|
|
183
|
+
|
|
184
|
+
if (fields == null) {
|
|
185
|
+
output.print(parsed.data.id, template)
|
|
186
|
+
} else {
|
|
187
|
+
const templateRecord = template as Record<string, unknown>
|
|
188
|
+
output.print(fields.map((field) => templateRecord[field]).join(' '), template)
|
|
189
|
+
}
|
|
190
|
+
})
|
|
191
|
+
|
|
192
|
+
stream.on('error', (err: unknown) => {
|
|
193
|
+
output.error(formatAPIError(err))
|
|
194
|
+
})
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
export async function sync(
|
|
198
|
+
output: IOutputCtl,
|
|
199
|
+
client: Transloadit,
|
|
200
|
+
{ files, recursive }: TemplateSyncOptions,
|
|
201
|
+
): Promise<void> {
|
|
202
|
+
// Promise [String] -- all files in the directory tree
|
|
203
|
+
const relevantFilesNested = await Promise.all(
|
|
204
|
+
files.map(async (file) => {
|
|
205
|
+
const stats = await fsp.stat(file)
|
|
206
|
+
if (!stats.isDirectory()) return [file]
|
|
207
|
+
|
|
208
|
+
let children: string[]
|
|
209
|
+
if (recursive) {
|
|
210
|
+
children = (await rreaddirAsync(file)) as string[]
|
|
211
|
+
} else {
|
|
212
|
+
const list = await fsp.readdir(file)
|
|
213
|
+
children = list.map((child) => path.join(file, child))
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
if (recursive) return children
|
|
217
|
+
|
|
218
|
+
// Filter directories if not recursive
|
|
219
|
+
const filtered = await Promise.all(
|
|
220
|
+
children.map(async (child) => {
|
|
221
|
+
const childStats = await fsp.stat(child)
|
|
222
|
+
return childStats.isDirectory() ? null : child
|
|
223
|
+
}),
|
|
224
|
+
)
|
|
225
|
+
return filtered.filter((f): f is string => f !== null)
|
|
226
|
+
}),
|
|
227
|
+
)
|
|
228
|
+
const relevantFiles = relevantFilesNested.flat()
|
|
229
|
+
|
|
230
|
+
// Promise [{ file: String, data: JSON }] -- all templates
|
|
231
|
+
const maybeFiles = await Promise.all(relevantFiles.map(templateFileOrNull))
|
|
232
|
+
const templates = maybeFiles.filter((maybeFile): maybeFile is TemplateFile => maybeFile !== null)
|
|
233
|
+
|
|
234
|
+
async function templateFileOrNull(file: string): Promise<TemplateFile | null> {
|
|
235
|
+
if (path.extname(file) !== '.json') return null
|
|
236
|
+
|
|
237
|
+
try {
|
|
238
|
+
const data = await fsp.readFile(file, 'utf8')
|
|
239
|
+
const parsed: unknown = JSON.parse(data)
|
|
240
|
+
const validated = TemplateFileDataSchema.safeParse(parsed)
|
|
241
|
+
if (!validated.success) return null
|
|
242
|
+
return 'transloadit_template_id' in validated.data ? { file, data: validated.data } : null
|
|
243
|
+
} catch (e) {
|
|
244
|
+
if (e instanceof SyntaxError) return null
|
|
245
|
+
throw e
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
const modified = new ModifiedLookup(client)
|
|
250
|
+
|
|
251
|
+
const [err] = await tryCatch(
|
|
252
|
+
Promise.all(
|
|
253
|
+
templates.map(async (template) => {
|
|
254
|
+
if (!('steps' in template.data)) {
|
|
255
|
+
if (!template.data.transloadit_template_id) {
|
|
256
|
+
throw new Error(`Template file has no id and no steps: ${template.file}`)
|
|
257
|
+
}
|
|
258
|
+
return download(template)
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
if (!template.data.transloadit_template_id) return upload(template)
|
|
262
|
+
|
|
263
|
+
const stats = await fsp.stat(template.file)
|
|
264
|
+
const fileModified = stats.mtime
|
|
265
|
+
|
|
266
|
+
let templateModified: Date
|
|
267
|
+
const templateId = template.data.transloadit_template_id
|
|
268
|
+
try {
|
|
269
|
+
await client.getTemplate(templateId)
|
|
270
|
+
templateModified = await new Promise<Date>((resolve, reject) =>
|
|
271
|
+
modified.byId(templateId, (err, res) => {
|
|
272
|
+
if (err) {
|
|
273
|
+
reject(err)
|
|
274
|
+
} else if (res) {
|
|
275
|
+
resolve(res)
|
|
276
|
+
} else {
|
|
277
|
+
reject(new Error('No date returned'))
|
|
278
|
+
}
|
|
279
|
+
}),
|
|
280
|
+
)
|
|
281
|
+
} catch (err) {
|
|
282
|
+
if (isTransloaditAPIError(err)) {
|
|
283
|
+
if (err.code === 'SERVER_404' || (err.response && err.response.statusCode === 404)) {
|
|
284
|
+
throw new Error(`Template file references nonexistent template: ${template.file}`)
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
throw err
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
if (fileModified > templateModified) return upload(template)
|
|
291
|
+
return download(template)
|
|
292
|
+
}),
|
|
293
|
+
),
|
|
294
|
+
)
|
|
295
|
+
if (err) {
|
|
296
|
+
output.error(err)
|
|
297
|
+
throw err
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
async function upload(template: TemplateFile): Promise<void> {
|
|
301
|
+
const params = {
|
|
302
|
+
name: path.basename(template.file, '.json'),
|
|
303
|
+
template: { steps: template.data.steps } as TemplateContent,
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
if (!template.data.transloadit_template_id) {
|
|
307
|
+
const result = await client.createTemplate(params)
|
|
308
|
+
template.data.transloadit_template_id = result.id
|
|
309
|
+
await fsp.writeFile(template.file, JSON.stringify(template.data))
|
|
310
|
+
return
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
await client.editTemplate(template.data.transloadit_template_id, params)
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
async function download(template: TemplateFile): Promise<void> {
|
|
317
|
+
const templateId = template.data.transloadit_template_id
|
|
318
|
+
if (!templateId) {
|
|
319
|
+
throw new Error('Cannot download template without id')
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
const result = await client.getTemplate(templateId)
|
|
323
|
+
|
|
324
|
+
// Use empty object if template has no steps (undefined would be stripped by JSON.stringify)
|
|
325
|
+
template.data.steps = result.content.steps ?? {}
|
|
326
|
+
const file = path.join(path.dirname(template.file), `${result.name}.json`)
|
|
327
|
+
|
|
328
|
+
await fsp.writeFile(template.file, JSON.stringify(template.data))
|
|
329
|
+
|
|
330
|
+
if (file !== template.file) {
|
|
331
|
+
await fsp.rename(template.file, file)
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
export class TemplatesCreateCommand extends AuthenticatedCommand {
|
|
336
|
+
static override paths = [
|
|
337
|
+
['templates', 'create'],
|
|
338
|
+
['template', 'create'],
|
|
339
|
+
['t', 'create'],
|
|
340
|
+
['t', 'c'],
|
|
341
|
+
]
|
|
342
|
+
|
|
343
|
+
static override usage = Command.Usage({
|
|
344
|
+
category: 'Templates',
|
|
345
|
+
description: 'Create a new template',
|
|
346
|
+
details: `
|
|
347
|
+
Create a new template with the given name.
|
|
348
|
+
If FILE is not specified, reads from STDIN.
|
|
349
|
+
`,
|
|
350
|
+
examples: [
|
|
351
|
+
['Create template from file', 'transloadit templates create my-template steps.json'],
|
|
352
|
+
['Create template from stdin', 'cat steps.json | transloadit templates create my-template'],
|
|
353
|
+
],
|
|
354
|
+
})
|
|
355
|
+
|
|
356
|
+
name = Option.String({ required: true })
|
|
357
|
+
file = Option.String({ required: false })
|
|
358
|
+
|
|
359
|
+
protected async run(): Promise<number | undefined> {
|
|
360
|
+
await create(this.output, this.client, {
|
|
361
|
+
name: this.name,
|
|
362
|
+
file: this.file ?? '-',
|
|
363
|
+
})
|
|
364
|
+
return undefined
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
export class TemplatesGetCommand extends AuthenticatedCommand {
|
|
369
|
+
static override paths = [
|
|
370
|
+
['templates', 'get'],
|
|
371
|
+
['template', 'get'],
|
|
372
|
+
['t', 'get'],
|
|
373
|
+
['t', 'g'],
|
|
374
|
+
]
|
|
375
|
+
|
|
376
|
+
static override usage = Command.Usage({
|
|
377
|
+
category: 'Templates',
|
|
378
|
+
description: 'Retrieve the template content as JSON',
|
|
379
|
+
examples: [['Get a template', 'transloadit templates get TEMPLATE_ID']],
|
|
380
|
+
})
|
|
381
|
+
|
|
382
|
+
templateIds = Option.Rest({ required: 1 })
|
|
383
|
+
|
|
384
|
+
protected async run(): Promise<number | undefined> {
|
|
385
|
+
await get(this.output, this.client, {
|
|
386
|
+
templates: this.templateIds,
|
|
387
|
+
})
|
|
388
|
+
return undefined
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
export class TemplatesModifyCommand extends AuthenticatedCommand {
|
|
393
|
+
static override paths = [
|
|
394
|
+
['templates', 'modify'],
|
|
395
|
+
['template', 'modify'],
|
|
396
|
+
['t', 'modify'],
|
|
397
|
+
['t', 'm'],
|
|
398
|
+
['templates', 'edit'],
|
|
399
|
+
['template', 'edit'],
|
|
400
|
+
]
|
|
401
|
+
|
|
402
|
+
static override usage = Command.Usage({
|
|
403
|
+
category: 'Templates',
|
|
404
|
+
description: 'Change the JSON content of a template',
|
|
405
|
+
details: `
|
|
406
|
+
Modify an existing template.
|
|
407
|
+
If FILE is not specified, reads from STDIN.
|
|
408
|
+
`,
|
|
409
|
+
examples: [
|
|
410
|
+
['Modify template from file', 'transloadit templates modify TEMPLATE_ID steps.json'],
|
|
411
|
+
['Rename a template', 'transloadit templates modify --name new-name TEMPLATE_ID'],
|
|
412
|
+
],
|
|
413
|
+
})
|
|
414
|
+
|
|
415
|
+
newName = Option.String('--name,-n', {
|
|
416
|
+
description: 'A new name for the template',
|
|
417
|
+
})
|
|
418
|
+
|
|
419
|
+
templateId = Option.String({ required: true })
|
|
420
|
+
file = Option.String({ required: false })
|
|
421
|
+
|
|
422
|
+
protected async run(): Promise<number | undefined> {
|
|
423
|
+
await modify(this.output, this.client, {
|
|
424
|
+
template: this.templateId,
|
|
425
|
+
name: this.newName,
|
|
426
|
+
file: this.file ?? '-',
|
|
427
|
+
})
|
|
428
|
+
return undefined
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
export class TemplatesDeleteCommand extends AuthenticatedCommand {
|
|
433
|
+
static override paths = [
|
|
434
|
+
['templates', 'delete'],
|
|
435
|
+
['template', 'delete'],
|
|
436
|
+
['t', 'delete'],
|
|
437
|
+
['t', 'd'],
|
|
438
|
+
]
|
|
439
|
+
|
|
440
|
+
static override usage = Command.Usage({
|
|
441
|
+
category: 'Templates',
|
|
442
|
+
description: 'Delete templates',
|
|
443
|
+
examples: [['Delete a template', 'transloadit templates delete TEMPLATE_ID']],
|
|
444
|
+
})
|
|
445
|
+
|
|
446
|
+
templateIds = Option.Rest({ required: 1 })
|
|
447
|
+
|
|
448
|
+
protected async run(): Promise<number | undefined> {
|
|
449
|
+
await deleteTemplates(this.output, this.client, {
|
|
450
|
+
templates: this.templateIds,
|
|
451
|
+
})
|
|
452
|
+
return undefined
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
export class TemplatesListCommand extends AuthenticatedCommand {
|
|
457
|
+
static override paths = [
|
|
458
|
+
['templates', 'list'],
|
|
459
|
+
['template', 'list'],
|
|
460
|
+
['t', 'list'],
|
|
461
|
+
['t', 'l'],
|
|
462
|
+
]
|
|
463
|
+
|
|
464
|
+
static override usage = Command.Usage({
|
|
465
|
+
category: 'Templates',
|
|
466
|
+
description: 'List templates matching given criteria',
|
|
467
|
+
examples: [
|
|
468
|
+
['List all templates', 'transloadit templates list'],
|
|
469
|
+
['List templates sorted by name', 'transloadit templates list --sort name'],
|
|
470
|
+
],
|
|
471
|
+
})
|
|
472
|
+
|
|
473
|
+
after = Option.String('--after,-a', {
|
|
474
|
+
description: 'Return only templates created after specified date',
|
|
475
|
+
})
|
|
476
|
+
|
|
477
|
+
before = Option.String('--before,-b', {
|
|
478
|
+
description: 'Return only templates created before specified date',
|
|
479
|
+
})
|
|
480
|
+
|
|
481
|
+
sort = Option.String('--sort', {
|
|
482
|
+
description: 'Field to sort by (id, name, created, or modified)',
|
|
483
|
+
})
|
|
484
|
+
|
|
485
|
+
order = Option.String('--order', {
|
|
486
|
+
description: 'Sort ascending or descending (asc or desc)',
|
|
487
|
+
})
|
|
488
|
+
|
|
489
|
+
fields = Option.String('--fields', {
|
|
490
|
+
description: 'Comma-separated list of fields to return for each template',
|
|
491
|
+
})
|
|
492
|
+
|
|
493
|
+
protected async run(): Promise<number | undefined> {
|
|
494
|
+
if (this.sort && !['id', 'name', 'created', 'modified'].includes(this.sort)) {
|
|
495
|
+
this.output.error('invalid argument for --sort')
|
|
496
|
+
return 1
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
if (this.order && !['asc', 'desc'].includes(this.order)) {
|
|
500
|
+
this.output.error('invalid argument for --order')
|
|
501
|
+
return 1
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
const fieldList = this.fields ? this.fields.split(',') : undefined
|
|
505
|
+
|
|
506
|
+
await list(this.output, this.client, {
|
|
507
|
+
after: this.after,
|
|
508
|
+
before: this.before,
|
|
509
|
+
sort: this.sort,
|
|
510
|
+
order: this.order as 'asc' | 'desc' | undefined,
|
|
511
|
+
fields: fieldList,
|
|
512
|
+
})
|
|
513
|
+
return undefined
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
export class TemplatesSyncCommand extends AuthenticatedCommand {
|
|
518
|
+
static override paths = [
|
|
519
|
+
['templates', 'sync'],
|
|
520
|
+
['template', 'sync'],
|
|
521
|
+
['t', 'sync'],
|
|
522
|
+
['t', 's'],
|
|
523
|
+
]
|
|
524
|
+
|
|
525
|
+
static override usage = Command.Usage({
|
|
526
|
+
category: 'Templates',
|
|
527
|
+
description: 'Synchronize local template files with the Transloadit API',
|
|
528
|
+
details: `
|
|
529
|
+
Template files must be named *.json and have the key "transloadit_template_id"
|
|
530
|
+
and optionally "steps". If "transloadit_template_id" is an empty string, then
|
|
531
|
+
a new template will be created using the instructions in "steps". If "steps" is
|
|
532
|
+
missing then it will be filled in by the instructions of the template specified
|
|
533
|
+
by "transloadit_template_id". If both keys are present then the local template
|
|
534
|
+
file and the remote template will be synchronized to whichever was more recently
|
|
535
|
+
modified.
|
|
536
|
+
`,
|
|
537
|
+
examples: [
|
|
538
|
+
['Sync templates in a directory', 'transloadit templates sync templates/'],
|
|
539
|
+
['Sync recursively', 'transloadit templates sync --recursive templates/'],
|
|
540
|
+
],
|
|
541
|
+
})
|
|
542
|
+
|
|
543
|
+
recursive = Option.Boolean('--recursive,-r', false, {
|
|
544
|
+
description: 'Look for template files in directories recursively',
|
|
545
|
+
})
|
|
546
|
+
|
|
547
|
+
files = Option.Rest()
|
|
548
|
+
|
|
549
|
+
protected async run(): Promise<number | undefined> {
|
|
550
|
+
await sync(this.output, this.client, {
|
|
551
|
+
recursive: this.recursive,
|
|
552
|
+
files: this.files,
|
|
553
|
+
})
|
|
554
|
+
return undefined
|
|
555
|
+
}
|
|
556
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import fs from 'node:fs'
|
|
2
|
+
import type { Readable } from 'node:stream'
|
|
3
|
+
import { isAPIError } from './types.ts'
|
|
4
|
+
|
|
5
|
+
export function getEnvCredentials(): { authKey: string; authSecret: string } | null {
|
|
6
|
+
const authKey = process.env.TRANSLOADIT_KEY ?? process.env.TRANSLOADIT_AUTH_KEY
|
|
7
|
+
const authSecret = process.env.TRANSLOADIT_SECRET ?? process.env.TRANSLOADIT_AUTH_SECRET
|
|
8
|
+
|
|
9
|
+
if (!authKey || !authSecret) return null
|
|
10
|
+
|
|
11
|
+
return { authKey, authSecret }
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export function createReadStream(file: string): Readable {
|
|
15
|
+
if (file === '-') return process.stdin
|
|
16
|
+
return fs.createReadStream(file)
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export async function streamToBuffer(stream: Readable): Promise<Buffer> {
|
|
20
|
+
const chunks: Buffer[] = []
|
|
21
|
+
for await (const chunk of stream) {
|
|
22
|
+
chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk))
|
|
23
|
+
}
|
|
24
|
+
return Buffer.concat(chunks)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export function formatAPIError(err: unknown): string {
|
|
28
|
+
if (isAPIError(err)) {
|
|
29
|
+
return `${err.error}: ${err.message}`
|
|
30
|
+
}
|
|
31
|
+
if (err instanceof Error) {
|
|
32
|
+
return err.message
|
|
33
|
+
}
|
|
34
|
+
return String(err)
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// Re-export APIError type for CLI consumers relying on deep imports.
|
|
38
|
+
/** @public */
|
|
39
|
+
export type { APIError } from './types.ts'
|
|
40
|
+
|
|
41
|
+
export function zip<A, B>(listA: A[], listB: B[]): [A, B][]
|
|
42
|
+
export function zip<T>(...lists: T[][]): T[][]
|
|
43
|
+
export function zip<T>(...lists: T[][]): T[][] {
|
|
44
|
+
const length = Math.max(...lists.map((list) => list.length))
|
|
45
|
+
const result: T[][] = new Array(length)
|
|
46
|
+
for (let i = 0; i < result.length; i++) {
|
|
47
|
+
result[i] = lists.map((list) => list[i] as T)
|
|
48
|
+
}
|
|
49
|
+
return result
|
|
50
|
+
}
|