transloadit 4.7.6 → 4.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +97 -22
- package/dist/alphalib/assembly-linter.js +1 -1
- package/dist/alphalib/assembly-linter.js.map +1 -1
- package/dist/alphalib/stepParsing.js +2 -2
- package/dist/alphalib/stepParsing.js.map +1 -1
- package/dist/alphalib/types/assemblyReplay.d.ts +2 -7860
- package/dist/alphalib/types/assemblyReplay.d.ts.map +1 -1
- package/dist/alphalib/types/assemblyReplayNotification.d.ts +2 -7860
- package/dist/alphalib/types/assemblyReplayNotification.d.ts.map +1 -1
- package/dist/alphalib/types/assemblyStatus.d.ts +4807 -298
- package/dist/alphalib/types/assemblyStatus.d.ts.map +1 -1
- package/dist/alphalib/types/assemblyStatus.js +36 -1
- package/dist/alphalib/types/assemblyStatus.js.map +1 -1
- package/dist/alphalib/types/robots/_index.d.ts +903 -72620
- package/dist/alphalib/types/robots/_index.d.ts.map +1 -1
- package/dist/alphalib/types/robots/_index.js +62 -11
- package/dist/alphalib/types/robots/_index.js.map +1 -1
- package/dist/alphalib/types/robots/_instructions-primitives.d.ts +41 -10
- package/dist/alphalib/types/robots/_instructions-primitives.d.ts.map +1 -1
- package/dist/alphalib/types/robots/_instructions-primitives.js +89 -3
- package/dist/alphalib/types/robots/_instructions-primitives.js.map +1 -1
- package/dist/alphalib/types/robots/ai-chat.d.ts +33 -0
- package/dist/alphalib/types/robots/ai-chat.d.ts.map +1 -1
- package/dist/alphalib/types/robots/ai-chat.js +28 -5
- package/dist/alphalib/types/robots/ai-chat.js.map +1 -1
- package/dist/alphalib/types/robots/assembly-savejson.d.ts.map +1 -1
- package/dist/alphalib/types/robots/assembly-savejson.js +8 -0
- package/dist/alphalib/types/robots/assembly-savejson.js.map +1 -1
- package/dist/alphalib/types/robots/audio-artwork.d.ts.map +1 -1
- package/dist/alphalib/types/robots/audio-artwork.js +4 -5
- package/dist/alphalib/types/robots/audio-artwork.js.map +1 -1
- package/dist/alphalib/types/robots/audio-concat.d.ts.map +1 -1
- package/dist/alphalib/types/robots/audio-concat.js +1 -2
- package/dist/alphalib/types/robots/audio-concat.js.map +1 -1
- package/dist/alphalib/types/robots/audio-encode.d.ts.map +1 -1
- package/dist/alphalib/types/robots/audio-encode.js +1 -2
- package/dist/alphalib/types/robots/audio-encode.js.map +1 -1
- package/dist/alphalib/types/robots/audio-loop.d.ts.map +1 -1
- package/dist/alphalib/types/robots/audio-loop.js +1 -2
- package/dist/alphalib/types/robots/audio-loop.js.map +1 -1
- package/dist/alphalib/types/robots/audio-merge.d.ts.map +1 -1
- package/dist/alphalib/types/robots/audio-merge.js +1 -2
- package/dist/alphalib/types/robots/audio-merge.js.map +1 -1
- package/dist/alphalib/types/robots/audio-split.d.ts +2936 -0
- package/dist/alphalib/types/robots/audio-split.d.ts.map +1 -0
- package/dist/alphalib/types/robots/audio-split.js +88 -0
- package/dist/alphalib/types/robots/audio-split.js.map +1 -0
- package/dist/alphalib/types/robots/audio-waveform.d.ts +92 -6
- package/dist/alphalib/types/robots/audio-waveform.d.ts.map +1 -1
- package/dist/alphalib/types/robots/audio-waveform.js +72 -6
- package/dist/alphalib/types/robots/audio-waveform.js.map +1 -1
- package/dist/alphalib/types/robots/azure-import.d.ts.map +1 -1
- package/dist/alphalib/types/robots/azure-import.js +0 -1
- package/dist/alphalib/types/robots/azure-import.js.map +1 -1
- package/dist/alphalib/types/robots/azure-store.d.ts.map +1 -1
- package/dist/alphalib/types/robots/azure-store.js +0 -1
- package/dist/alphalib/types/robots/azure-store.js.map +1 -1
- package/dist/alphalib/types/robots/backblaze-import.d.ts.map +1 -1
- package/dist/alphalib/types/robots/backblaze-import.js +0 -1
- package/dist/alphalib/types/robots/backblaze-import.js.map +1 -1
- package/dist/alphalib/types/robots/backblaze-store.d.ts.map +1 -1
- package/dist/alphalib/types/robots/backblaze-store.js +0 -1
- package/dist/alphalib/types/robots/backblaze-store.js.map +1 -1
- package/dist/alphalib/types/robots/box-import.d.ts +150 -0
- package/dist/alphalib/types/robots/box-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/box-import.js +63 -0
- package/dist/alphalib/types/robots/box-import.js.map +1 -0
- package/dist/alphalib/types/robots/box-store.d.ts +455 -0
- package/dist/alphalib/types/robots/box-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/box-store.js +66 -0
- package/dist/alphalib/types/robots/box-store.js.map +1 -0
- package/dist/alphalib/types/robots/cloudfiles-import.d.ts.map +1 -1
- package/dist/alphalib/types/robots/cloudfiles-import.js +0 -1
- package/dist/alphalib/types/robots/cloudfiles-import.js.map +1 -1
- package/dist/alphalib/types/robots/cloudfiles-store.d.ts.map +1 -1
- package/dist/alphalib/types/robots/cloudfiles-store.js +0 -1
- package/dist/alphalib/types/robots/cloudfiles-store.js.map +1 -1
- package/dist/alphalib/types/robots/cloudflare-import.d.ts.map +1 -1
- package/dist/alphalib/types/robots/cloudflare-import.js +0 -1
- package/dist/alphalib/types/robots/cloudflare-import.js.map +1 -1
- package/dist/alphalib/types/robots/cloudflare-store.d.ts.map +1 -1
- package/dist/alphalib/types/robots/cloudflare-store.js +0 -1
- package/dist/alphalib/types/robots/cloudflare-store.js.map +1 -1
- package/dist/alphalib/types/robots/digitalocean-import.d.ts.map +1 -1
- package/dist/alphalib/types/robots/digitalocean-import.js +0 -1
- package/dist/alphalib/types/robots/digitalocean-import.js.map +1 -1
- package/dist/alphalib/types/robots/digitalocean-store.d.ts.map +1 -1
- package/dist/alphalib/types/robots/digitalocean-store.js +0 -1
- package/dist/alphalib/types/robots/digitalocean-store.js.map +1 -1
- package/dist/alphalib/types/robots/document-autorotate.d.ts.map +1 -1
- package/dist/alphalib/types/robots/document-autorotate.js +8 -1
- package/dist/alphalib/types/robots/document-autorotate.js.map +1 -1
- package/dist/alphalib/types/robots/document-convert.d.ts +8 -8
- package/dist/alphalib/types/robots/document-convert.d.ts.map +1 -1
- package/dist/alphalib/types/robots/document-convert.js +9 -3
- package/dist/alphalib/types/robots/document-convert.js.map +1 -1
- package/dist/alphalib/types/robots/document-merge.d.ts.map +1 -1
- package/dist/alphalib/types/robots/document-merge.js +0 -1
- package/dist/alphalib/types/robots/document-merge.js.map +1 -1
- package/dist/alphalib/types/robots/document-ocr.d.ts.map +1 -1
- package/dist/alphalib/types/robots/document-ocr.js +0 -1
- package/dist/alphalib/types/robots/document-ocr.js.map +1 -1
- package/dist/alphalib/types/robots/document-optimize.d.ts.map +1 -1
- package/dist/alphalib/types/robots/document-optimize.js +0 -1
- package/dist/alphalib/types/robots/document-optimize.js.map +1 -1
- package/dist/alphalib/types/robots/document-split.d.ts.map +1 -1
- package/dist/alphalib/types/robots/document-split.js +9 -1
- package/dist/alphalib/types/robots/document-split.js.map +1 -1
- package/dist/alphalib/types/robots/document-thumbs.d.ts +12 -0
- package/dist/alphalib/types/robots/document-thumbs.d.ts.map +1 -1
- package/dist/alphalib/types/robots/document-thumbs.js +23 -4
- package/dist/alphalib/types/robots/document-thumbs.js.map +1 -1
- package/dist/alphalib/types/robots/dropbox-import.d.ts.map +1 -1
- package/dist/alphalib/types/robots/dropbox-import.js +0 -1
- package/dist/alphalib/types/robots/dropbox-import.js.map +1 -1
- package/dist/alphalib/types/robots/dropbox-store.d.ts.map +1 -1
- package/dist/alphalib/types/robots/dropbox-store.js +0 -1
- package/dist/alphalib/types/robots/dropbox-store.js.map +1 -1
- package/dist/alphalib/types/robots/edgly-deliver.d.ts.map +1 -1
- package/dist/alphalib/types/robots/edgly-deliver.js +8 -1
- package/dist/alphalib/types/robots/edgly-deliver.js.map +1 -1
- package/dist/alphalib/types/robots/file-compress.d.ts +12 -0
- package/dist/alphalib/types/robots/file-compress.d.ts.map +1 -1
- package/dist/alphalib/types/robots/file-compress.js +8 -1
- package/dist/alphalib/types/robots/file-compress.js.map +1 -1
- package/dist/alphalib/types/robots/file-decompress.d.ts +24 -0
- package/dist/alphalib/types/robots/file-decompress.d.ts.map +1 -1
- package/dist/alphalib/types/robots/file-decompress.js +30 -5
- package/dist/alphalib/types/robots/file-decompress.js.map +1 -1
- package/dist/alphalib/types/robots/file-filter.d.ts.map +1 -1
- package/dist/alphalib/types/robots/file-filter.js +23 -6
- package/dist/alphalib/types/robots/file-filter.js.map +1 -1
- package/dist/alphalib/types/robots/file-hash.d.ts +24 -0
- package/dist/alphalib/types/robots/file-hash.d.ts.map +1 -1
- package/dist/alphalib/types/robots/file-hash.js +23 -1
- package/dist/alphalib/types/robots/file-hash.js.map +1 -1
- package/dist/alphalib/types/robots/file-preview.d.ts +12 -0
- package/dist/alphalib/types/robots/file-preview.d.ts.map +1 -1
- package/dist/alphalib/types/robots/file-preview.js +8 -1
- package/dist/alphalib/types/robots/file-preview.js.map +1 -1
- package/dist/alphalib/types/robots/file-read.d.ts.map +1 -1
- package/dist/alphalib/types/robots/file-read.js +9 -1
- package/dist/alphalib/types/robots/file-read.js.map +1 -1
- package/dist/alphalib/types/robots/file-serve.d.ts +12 -0
- package/dist/alphalib/types/robots/file-serve.d.ts.map +1 -1
- package/dist/alphalib/types/robots/file-serve.js +38 -7
- package/dist/alphalib/types/robots/file-serve.js.map +1 -1
- package/dist/alphalib/types/robots/file-verify.d.ts.map +1 -1
- package/dist/alphalib/types/robots/file-verify.js +0 -1
- package/dist/alphalib/types/robots/file-verify.js.map +1 -1
- package/dist/alphalib/types/robots/file-virusscan.d.ts.map +1 -1
- package/dist/alphalib/types/robots/file-virusscan.js +5 -4
- package/dist/alphalib/types/robots/file-virusscan.js.map +1 -1
- package/dist/alphalib/types/robots/file-watermark.d.ts.map +1 -1
- package/dist/alphalib/types/robots/file-watermark.js +10 -0
- package/dist/alphalib/types/robots/file-watermark.js.map +1 -1
- package/dist/alphalib/types/robots/ftp-import.d.ts.map +1 -1
- package/dist/alphalib/types/robots/ftp-import.js +0 -1
- package/dist/alphalib/types/robots/ftp-import.js.map +1 -1
- package/dist/alphalib/types/robots/ftp-store.d.ts.map +1 -1
- package/dist/alphalib/types/robots/ftp-store.js +0 -1
- package/dist/alphalib/types/robots/ftp-store.js.map +1 -1
- package/dist/alphalib/types/robots/google-import.d.ts.map +1 -1
- package/dist/alphalib/types/robots/google-import.js +0 -1
- package/dist/alphalib/types/robots/google-import.js.map +1 -1
- package/dist/alphalib/types/robots/google-store.d.ts.map +1 -1
- package/dist/alphalib/types/robots/google-store.js +0 -1
- package/dist/alphalib/types/robots/google-store.js.map +1 -1
- package/dist/alphalib/types/robots/html-convert.d.ts.map +1 -1
- package/dist/alphalib/types/robots/html-convert.js +0 -1
- package/dist/alphalib/types/robots/html-convert.js.map +1 -1
- package/dist/alphalib/types/robots/http-import.d.ts.map +1 -1
- package/dist/alphalib/types/robots/http-import.js +0 -1
- package/dist/alphalib/types/robots/http-import.js.map +1 -1
- package/dist/alphalib/types/robots/image-bgremove.d.ts +8 -8
- package/dist/alphalib/types/robots/image-bgremove.d.ts.map +1 -1
- package/dist/alphalib/types/robots/image-bgremove.js +4 -2
- package/dist/alphalib/types/robots/image-bgremove.js.map +1 -1
- package/dist/alphalib/types/robots/image-copyrightdetect.d.ts +465 -0
- package/dist/alphalib/types/robots/image-copyrightdetect.d.ts.map +1 -0
- package/dist/alphalib/types/robots/image-copyrightdetect.js +136 -0
- package/dist/alphalib/types/robots/image-copyrightdetect.js.map +1 -0
- package/dist/alphalib/types/robots/image-describe.d.ts.map +1 -1
- package/dist/alphalib/types/robots/image-describe.js +0 -1
- package/dist/alphalib/types/robots/image-describe.js.map +1 -1
- package/dist/alphalib/types/robots/image-enhance.d.ts +502 -0
- package/dist/alphalib/types/robots/image-enhance.d.ts.map +1 -0
- package/dist/alphalib/types/robots/image-enhance.js +146 -0
- package/dist/alphalib/types/robots/image-enhance.js.map +1 -0
- package/dist/alphalib/types/robots/image-facedetect.d.ts.map +1 -1
- package/dist/alphalib/types/robots/image-facedetect.js +0 -1
- package/dist/alphalib/types/robots/image-facedetect.js.map +1 -1
- package/dist/alphalib/types/robots/image-generate.d.ts +4 -5
- package/dist/alphalib/types/robots/image-generate.d.ts.map +1 -1
- package/dist/alphalib/types/robots/image-generate.js +62 -8
- package/dist/alphalib/types/robots/image-generate.js.map +1 -1
- package/dist/alphalib/types/robots/image-merge.d.ts +12 -12
- package/dist/alphalib/types/robots/image-merge.d.ts.map +1 -1
- package/dist/alphalib/types/robots/image-merge.js +0 -1
- package/dist/alphalib/types/robots/image-merge.js.map +1 -1
- package/dist/alphalib/types/robots/image-ocr.d.ts.map +1 -1
- package/dist/alphalib/types/robots/image-ocr.js +0 -1
- package/dist/alphalib/types/robots/image-ocr.js.map +1 -1
- package/dist/alphalib/types/robots/image-optimize.d.ts +12 -0
- package/dist/alphalib/types/robots/image-optimize.d.ts.map +1 -1
- package/dist/alphalib/types/robots/image-optimize.js +16 -3
- package/dist/alphalib/types/robots/image-optimize.js.map +1 -1
- package/dist/alphalib/types/robots/image-resize.d.ts +20 -8
- package/dist/alphalib/types/robots/image-resize.d.ts.map +1 -1
- package/dist/alphalib/types/robots/image-resize.js +37 -1
- package/dist/alphalib/types/robots/image-resize.js.map +1 -1
- package/dist/alphalib/types/robots/image-upscale.d.ts +447 -0
- package/dist/alphalib/types/robots/image-upscale.d.ts.map +1 -0
- package/dist/alphalib/types/robots/image-upscale.js +65 -0
- package/dist/alphalib/types/robots/image-upscale.js.map +1 -0
- package/dist/alphalib/types/robots/mega-import.d.ts +244 -0
- package/dist/alphalib/types/robots/mega-import.d.ts.map +1 -0
- package/dist/alphalib/types/robots/mega-import.js +84 -0
- package/dist/alphalib/types/robots/mega-import.js.map +1 -0
- package/dist/alphalib/types/robots/mega-store.d.ts +526 -0
- package/dist/alphalib/types/robots/mega-store.d.ts.map +1 -0
- package/dist/alphalib/types/robots/mega-store.js +82 -0
- package/dist/alphalib/types/robots/mega-store.js.map +1 -0
- package/dist/alphalib/types/robots/meta-read.d.ts.map +1 -1
- package/dist/alphalib/types/robots/meta-read.js +8 -0
- package/dist/alphalib/types/robots/meta-read.js.map +1 -1
- package/dist/alphalib/types/robots/meta-write.d.ts.map +1 -1
- package/dist/alphalib/types/robots/meta-write.js +0 -1
- package/dist/alphalib/types/robots/meta-write.js.map +1 -1
- package/dist/alphalib/types/robots/minio-import.d.ts.map +1 -1
- package/dist/alphalib/types/robots/minio-import.js +0 -1
- package/dist/alphalib/types/robots/minio-import.js.map +1 -1
- package/dist/alphalib/types/robots/minio-store.d.ts.map +1 -1
- package/dist/alphalib/types/robots/minio-store.js +0 -1
- package/dist/alphalib/types/robots/minio-store.js.map +1 -1
- package/dist/alphalib/types/robots/progress-simulate.d.ts.map +1 -1
- package/dist/alphalib/types/robots/progress-simulate.js +13 -0
- package/dist/alphalib/types/robots/progress-simulate.js.map +1 -1
- package/dist/alphalib/types/robots/s3-import.d.ts.map +1 -1
- package/dist/alphalib/types/robots/s3-import.js +0 -1
- package/dist/alphalib/types/robots/s3-import.js.map +1 -1
- package/dist/alphalib/types/robots/s3-store.d.ts.map +1 -1
- package/dist/alphalib/types/robots/s3-store.js +0 -1
- package/dist/alphalib/types/robots/s3-store.js.map +1 -1
- package/dist/alphalib/types/robots/script-run.d.ts.map +1 -1
- package/dist/alphalib/types/robots/script-run.js +10 -1
- package/dist/alphalib/types/robots/script-run.js.map +1 -1
- package/dist/alphalib/types/robots/sftp-import.d.ts.map +1 -1
- package/dist/alphalib/types/robots/sftp-import.js +0 -1
- package/dist/alphalib/types/robots/sftp-import.js.map +1 -1
- package/dist/alphalib/types/robots/sftp-store.d.ts.map +1 -1
- package/dist/alphalib/types/robots/sftp-store.js +0 -1
- package/dist/alphalib/types/robots/sftp-store.js.map +1 -1
- package/dist/alphalib/types/robots/speech-transcribe.d.ts.map +1 -1
- package/dist/alphalib/types/robots/speech-transcribe.js +0 -1
- package/dist/alphalib/types/robots/speech-transcribe.js.map +1 -1
- package/dist/alphalib/types/robots/supabase-import.d.ts.map +1 -1
- package/dist/alphalib/types/robots/supabase-import.js +0 -1
- package/dist/alphalib/types/robots/supabase-import.js.map +1 -1
- package/dist/alphalib/types/robots/supabase-store.d.ts.map +1 -1
- package/dist/alphalib/types/robots/supabase-store.js +0 -1
- package/dist/alphalib/types/robots/supabase-store.js.map +1 -1
- package/dist/alphalib/types/robots/swift-import.d.ts.map +1 -1
- package/dist/alphalib/types/robots/swift-import.js +0 -1
- package/dist/alphalib/types/robots/swift-import.js.map +1 -1
- package/dist/alphalib/types/robots/swift-store.d.ts.map +1 -1
- package/dist/alphalib/types/robots/swift-store.js +0 -1
- package/dist/alphalib/types/robots/swift-store.js.map +1 -1
- package/dist/alphalib/types/robots/text-speak.d.ts.map +1 -1
- package/dist/alphalib/types/robots/text-speak.js +0 -1
- package/dist/alphalib/types/robots/text-speak.js.map +1 -1
- package/dist/alphalib/types/robots/text-translate.d.ts.map +1 -1
- package/dist/alphalib/types/robots/text-translate.js +0 -1
- package/dist/alphalib/types/robots/text-translate.js.map +1 -1
- package/dist/alphalib/types/robots/tigris-import.d.ts.map +1 -1
- package/dist/alphalib/types/robots/tigris-import.js +0 -1
- package/dist/alphalib/types/robots/tigris-import.js.map +1 -1
- package/dist/alphalib/types/robots/tigris-store.d.ts.map +1 -1
- package/dist/alphalib/types/robots/tigris-store.js +0 -1
- package/dist/alphalib/types/robots/tigris-store.js.map +1 -1
- package/dist/alphalib/types/robots/tlcdn-deliver.d.ts.map +1 -1
- package/dist/alphalib/types/robots/tlcdn-deliver.js +8 -1
- package/dist/alphalib/types/robots/tlcdn-deliver.js.map +1 -1
- package/dist/alphalib/types/robots/tus-store.d.ts.map +1 -1
- package/dist/alphalib/types/robots/tus-store.js +1 -14
- package/dist/alphalib/types/robots/tus-store.js.map +1 -1
- package/dist/alphalib/types/robots/upload-handle.d.ts.map +1 -1
- package/dist/alphalib/types/robots/upload-handle.js +0 -1
- package/dist/alphalib/types/robots/upload-handle.js.map +1 -1
- package/dist/alphalib/types/robots/video-adaptive.d.ts +32 -8
- package/dist/alphalib/types/robots/video-adaptive.d.ts.map +1 -1
- package/dist/alphalib/types/robots/video-adaptive.js +22 -6
- package/dist/alphalib/types/robots/video-adaptive.js.map +1 -1
- package/dist/alphalib/types/robots/video-artwork.d.ts +2855 -0
- package/dist/alphalib/types/robots/video-artwork.d.ts.map +1 -0
- package/dist/alphalib/types/robots/video-artwork.js +66 -0
- package/dist/alphalib/types/robots/video-artwork.js.map +1 -0
- package/dist/alphalib/types/robots/video-concat.d.ts +36 -0
- package/dist/alphalib/types/robots/video-concat.d.ts.map +1 -1
- package/dist/alphalib/types/robots/video-concat.js +30 -1
- package/dist/alphalib/types/robots/video-concat.js.map +1 -1
- package/dist/alphalib/types/robots/video-encode.d.ts.map +1 -1
- package/dist/alphalib/types/robots/video-encode.js +0 -1
- package/dist/alphalib/types/robots/video-encode.js.map +1 -1
- package/dist/alphalib/types/robots/video-generate.d.ts +594 -0
- package/dist/alphalib/types/robots/video-generate.d.ts.map +1 -0
- package/dist/alphalib/types/robots/video-generate.js +90 -0
- package/dist/alphalib/types/robots/video-generate.js.map +1 -0
- package/dist/alphalib/types/robots/video-merge.d.ts +24 -0
- package/dist/alphalib/types/robots/video-merge.d.ts.map +1 -1
- package/dist/alphalib/types/robots/video-merge.js +33 -1
- package/dist/alphalib/types/robots/video-merge.js.map +1 -1
- package/dist/alphalib/types/robots/video-ondemand.d.ts.map +1 -1
- package/dist/alphalib/types/robots/video-ondemand.js +3 -4
- package/dist/alphalib/types/robots/video-ondemand.js.map +1 -1
- package/dist/alphalib/types/robots/video-split.d.ts +2939 -0
- package/dist/alphalib/types/robots/video-split.d.ts.map +1 -0
- package/dist/alphalib/types/robots/video-split.js +78 -0
- package/dist/alphalib/types/robots/video-split.js.map +1 -0
- package/dist/alphalib/types/robots/video-subtitle.d.ts +52 -4
- package/dist/alphalib/types/robots/video-subtitle.d.ts.map +1 -1
- package/dist/alphalib/types/robots/video-subtitle.js +61 -8
- package/dist/alphalib/types/robots/video-subtitle.js.map +1 -1
- package/dist/alphalib/types/robots/video-thumbs.d.ts.map +1 -1
- package/dist/alphalib/types/robots/video-thumbs.js +0 -1
- package/dist/alphalib/types/robots/video-thumbs.js.map +1 -1
- package/dist/alphalib/types/robots/vimeo-import.d.ts +4 -4
- package/dist/alphalib/types/robots/vimeo-import.d.ts.map +1 -1
- package/dist/alphalib/types/robots/vimeo-import.js +0 -1
- package/dist/alphalib/types/robots/vimeo-import.js.map +1 -1
- package/dist/alphalib/types/robots/vimeo-store.d.ts +2 -2
- package/dist/alphalib/types/robots/vimeo-store.d.ts.map +1 -1
- package/dist/alphalib/types/robots/vimeo-store.js +14 -3
- package/dist/alphalib/types/robots/vimeo-store.js.map +1 -1
- package/dist/alphalib/types/robots/wasabi-import.d.ts.map +1 -1
- package/dist/alphalib/types/robots/wasabi-import.js +0 -1
- package/dist/alphalib/types/robots/wasabi-import.js.map +1 -1
- package/dist/alphalib/types/robots/wasabi-store.d.ts.map +1 -1
- package/dist/alphalib/types/robots/wasabi-store.js +0 -1
- package/dist/alphalib/types/robots/wasabi-store.js.map +1 -1
- package/dist/alphalib/types/robots/youtube-store.d.ts.map +1 -1
- package/dist/alphalib/types/robots/youtube-store.js +4 -5
- package/dist/alphalib/types/robots/youtube-store.js.map +1 -1
- package/dist/alphalib/types/template.d.ts +41 -132175
- package/dist/alphalib/types/template.d.ts.map +1 -1
- package/dist/alphalib/types/template.js +16 -3
- package/dist/alphalib/types/template.js.map +1 -1
- package/dist/alphalib/types/templateCredential.d.ts +3 -3
- package/dist/alphalib/types/templateCredential.d.ts.map +1 -1
- package/dist/alphalib/types/templateCredential.js +1 -0
- package/dist/alphalib/types/templateCredential.js.map +1 -1
- package/dist/alphalib/zodParseWithContext.d.ts.map +1 -1
- package/dist/alphalib/zodParseWithContext.js +15 -11
- package/dist/alphalib/zodParseWithContext.js.map +1 -1
- package/dist/bearerToken.d.ts +1 -0
- package/dist/bearerToken.d.ts.map +1 -1
- package/dist/bearerToken.js +5 -3
- package/dist/bearerToken.js.map +1 -1
- package/dist/cli/commands/BaseCommand.d.ts +0 -1
- package/dist/cli/commands/BaseCommand.d.ts.map +1 -1
- package/dist/cli/commands/BaseCommand.js +7 -9
- package/dist/cli/commands/BaseCommand.js.map +1 -1
- package/dist/cli/commands/auth.d.ts.map +1 -1
- package/dist/cli/commands/auth.js +49 -29
- package/dist/cli/commands/auth.js.map +1 -1
- package/dist/cli/generateIntentDocs.d.ts +5 -1
- package/dist/cli/generateIntentDocs.d.ts.map +1 -1
- package/dist/cli/generateIntentDocs.js +27 -9
- package/dist/cli/generateIntentDocs.js.map +1 -1
- package/dist/cli/helpers.d.ts +19 -4
- package/dist/cli/helpers.d.ts.map +1 -1
- package/dist/cli/helpers.js +232 -10
- package/dist/cli/helpers.js.map +1 -1
- package/dist/cli/intentCommandSpecs.d.ts.map +1 -1
- package/dist/cli/intentCommandSpecs.js +4 -6
- package/dist/cli/intentCommandSpecs.js.map +1 -1
- package/dist/cli/intentRuntime.d.ts.map +1 -1
- package/dist/cli/intentRuntime.js +4 -4
- package/dist/cli/intentRuntime.js.map +1 -1
- package/dist/cli/semanticIntents/imageDescribe.d.ts +3 -1
- package/dist/cli/semanticIntents/imageDescribe.d.ts.map +1 -1
- package/dist/cli/semanticIntents/imageDescribe.js +1 -1
- package/dist/cli/semanticIntents/imageDescribe.js.map +1 -1
- package/dist/cli/semanticIntents/imageGenerate.d.ts +94 -0
- package/dist/cli/semanticIntents/imageGenerate.d.ts.map +1 -0
- package/dist/cli/semanticIntents/imageGenerate.js +215 -0
- package/dist/cli/semanticIntents/imageGenerate.js.map +1 -0
- package/dist/cli/semanticIntents/index.d.ts +3 -1
- package/dist/cli/semanticIntents/index.d.ts.map +1 -1
- package/dist/cli/semanticIntents/index.js +2 -0
- package/dist/cli/semanticIntents/index.js.map +1 -1
- package/dist/cli/semanticIntents/markdownPdf.js +1 -1
- package/dist/cli/semanticIntents/markdownPdf.js.map +1 -1
- package/dist/cli.d.ts +0 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +3 -2
- package/dist/cli.js.map +1 -1
- package/dist/robots.js +2 -2
- package/dist/robots.js.map +1 -1
- package/package.json +1 -1
- package/src/alphalib/assembly-linter.ts +1 -1
- package/src/alphalib/stepParsing.ts +2 -2
- package/src/alphalib/types/assemblyStatus.ts +41 -2
- package/src/alphalib/types/robots/_index.ts +211 -20
- package/src/alphalib/types/robots/_instructions-primitives.ts +93 -3
- package/src/alphalib/types/robots/ai-chat.ts +35 -5
- package/src/alphalib/types/robots/assembly-savejson.ts +8 -0
- package/src/alphalib/types/robots/audio-artwork.ts +4 -5
- package/src/alphalib/types/robots/audio-concat.ts +1 -2
- package/src/alphalib/types/robots/audio-encode.ts +1 -2
- package/src/alphalib/types/robots/audio-loop.ts +1 -2
- package/src/alphalib/types/robots/audio-merge.ts +1 -2
- package/src/alphalib/types/robots/audio-split.ts +130 -0
- package/src/alphalib/types/robots/audio-waveform.ts +90 -6
- package/src/alphalib/types/robots/azure-import.ts +0 -1
- package/src/alphalib/types/robots/azure-store.ts +0 -1
- package/src/alphalib/types/robots/backblaze-import.ts +0 -1
- package/src/alphalib/types/robots/backblaze-store.ts +0 -1
- package/src/alphalib/types/robots/box-import.ts +97 -0
- package/src/alphalib/types/robots/box-store.ts +94 -0
- package/src/alphalib/types/robots/cloudfiles-import.ts +0 -1
- package/src/alphalib/types/robots/cloudfiles-store.ts +0 -1
- package/src/alphalib/types/robots/cloudflare-import.ts +0 -1
- package/src/alphalib/types/robots/cloudflare-store.ts +0 -1
- package/src/alphalib/types/robots/digitalocean-import.ts +0 -1
- package/src/alphalib/types/robots/digitalocean-store.ts +0 -1
- package/src/alphalib/types/robots/document-autorotate.ts +8 -1
- package/src/alphalib/types/robots/document-convert.ts +10 -3
- package/src/alphalib/types/robots/document-merge.ts +0 -1
- package/src/alphalib/types/robots/document-ocr.ts +0 -1
- package/src/alphalib/types/robots/document-optimize.ts +0 -1
- package/src/alphalib/types/robots/document-split.ts +9 -1
- package/src/alphalib/types/robots/document-thumbs.ts +26 -4
- package/src/alphalib/types/robots/dropbox-import.ts +0 -1
- package/src/alphalib/types/robots/dropbox-store.ts +0 -1
- package/src/alphalib/types/robots/edgly-deliver.ts +8 -1
- package/src/alphalib/types/robots/file-compress.ts +8 -1
- package/src/alphalib/types/robots/file-decompress.ts +30 -5
- package/src/alphalib/types/robots/file-filter.ts +23 -6
- package/src/alphalib/types/robots/file-hash.ts +23 -1
- package/src/alphalib/types/robots/file-preview.ts +8 -1
- package/src/alphalib/types/robots/file-read.ts +9 -1
- package/src/alphalib/types/robots/file-serve.ts +39 -7
- package/src/alphalib/types/robots/file-verify.ts +0 -1
- package/src/alphalib/types/robots/file-virusscan.ts +6 -4
- package/src/alphalib/types/robots/file-watermark.ts +10 -0
- package/src/alphalib/types/robots/ftp-import.ts +0 -1
- package/src/alphalib/types/robots/ftp-store.ts +0 -1
- package/src/alphalib/types/robots/google-import.ts +0 -1
- package/src/alphalib/types/robots/google-store.ts +0 -1
- package/src/alphalib/types/robots/html-convert.ts +0 -1
- package/src/alphalib/types/robots/http-import.ts +0 -1
- package/src/alphalib/types/robots/image-bgremove.ts +4 -2
- package/src/alphalib/types/robots/image-copyrightdetect.ts +167 -0
- package/src/alphalib/types/robots/image-describe.ts +0 -1
- package/src/alphalib/types/robots/image-enhance.ts +185 -0
- package/src/alphalib/types/robots/image-facedetect.ts +0 -1
- package/src/alphalib/types/robots/image-generate.ts +74 -8
- package/src/alphalib/types/robots/image-merge.ts +0 -1
- package/src/alphalib/types/robots/image-ocr.ts +0 -1
- package/src/alphalib/types/robots/image-optimize.ts +16 -3
- package/src/alphalib/types/robots/image-resize.ts +37 -1
- package/src/alphalib/types/robots/image-upscale.ts +93 -0
- package/src/alphalib/types/robots/mega-import.ts +123 -0
- package/src/alphalib/types/robots/mega-store.ts +109 -0
- package/src/alphalib/types/robots/meta-read.ts +8 -0
- package/src/alphalib/types/robots/meta-write.ts +0 -1
- package/src/alphalib/types/robots/minio-import.ts +0 -1
- package/src/alphalib/types/robots/minio-store.ts +0 -1
- package/src/alphalib/types/robots/progress-simulate.ts +13 -0
- package/src/alphalib/types/robots/s3-import.ts +0 -1
- package/src/alphalib/types/robots/s3-store.ts +0 -1
- package/src/alphalib/types/robots/script-run.ts +11 -1
- package/src/alphalib/types/robots/sftp-import.ts +0 -1
- package/src/alphalib/types/robots/sftp-store.ts +0 -1
- package/src/alphalib/types/robots/speech-transcribe.ts +0 -1
- package/src/alphalib/types/robots/supabase-import.ts +0 -1
- package/src/alphalib/types/robots/supabase-store.ts +0 -1
- package/src/alphalib/types/robots/swift-import.ts +0 -1
- package/src/alphalib/types/robots/swift-store.ts +0 -1
- package/src/alphalib/types/robots/text-speak.ts +0 -1
- package/src/alphalib/types/robots/text-translate.ts +0 -1
- package/src/alphalib/types/robots/tigris-import.ts +0 -1
- package/src/alphalib/types/robots/tigris-store.ts +0 -1
- package/src/alphalib/types/robots/tlcdn-deliver.ts +8 -1
- package/src/alphalib/types/robots/tus-store.ts +1 -14
- package/src/alphalib/types/robots/upload-handle.ts +0 -1
- package/src/alphalib/types/robots/video-adaptive.ts +22 -6
- package/src/alphalib/types/robots/video-artwork.ts +100 -0
- package/src/alphalib/types/robots/video-concat.ts +30 -1
- package/src/alphalib/types/robots/video-encode.ts +0 -1
- package/src/alphalib/types/robots/video-generate.ts +120 -0
- package/src/alphalib/types/robots/video-merge.ts +33 -1
- package/src/alphalib/types/robots/video-ondemand.ts +3 -4
- package/src/alphalib/types/robots/video-split.ts +117 -0
- package/src/alphalib/types/robots/video-subtitle.ts +61 -8
- package/src/alphalib/types/robots/video-thumbs.ts +0 -1
- package/src/alphalib/types/robots/vimeo-import.ts +0 -1
- package/src/alphalib/types/robots/vimeo-store.ts +14 -3
- package/src/alphalib/types/robots/wasabi-import.ts +0 -1
- package/src/alphalib/types/robots/wasabi-store.ts +0 -1
- package/src/alphalib/types/robots/youtube-store.ts +4 -5
- package/src/alphalib/types/template.ts +47 -15
- package/src/alphalib/types/templateCredential.ts +1 -0
- package/src/alphalib/zodParseWithContext.ts +19 -12
- package/src/bearerToken.ts +14 -3
- package/src/cli/commands/BaseCommand.ts +7 -9
- package/src/cli/commands/auth.ts +66 -32
- package/src/cli/generateIntentDocs.ts +30 -9
- package/src/cli/helpers.ts +278 -13
- package/src/cli/intentCommandSpecs.ts +4 -9
- package/src/cli/intentRuntime.ts +8 -3
- package/src/cli/semanticIntents/imageDescribe.ts +4 -1
- package/src/cli/semanticIntents/imageGenerate.ts +254 -0
- package/src/cli/semanticIntents/index.ts +6 -1
- package/src/cli/semanticIntents/markdownPdf.ts +1 -1
- package/src/cli.ts +3 -2
- package/src/robots.ts +2 -2
package/src/cli/commands/auth.ts
CHANGED
|
@@ -9,7 +9,14 @@ import {
|
|
|
9
9
|
import type { OptionalAuthParams } from '../../apiTypes.ts'
|
|
10
10
|
import { mintBearerTokenWithCredentials } from '../../bearerToken.ts'
|
|
11
11
|
import { Transloadit } from '../../Transloadit.ts'
|
|
12
|
-
import {
|
|
12
|
+
import type { CliKeySecretCredentials, ResolvedCliConfig } from '../helpers.ts'
|
|
13
|
+
import {
|
|
14
|
+
buildMissingCredentialsMessage,
|
|
15
|
+
readCliInput,
|
|
16
|
+
requireCliCredentials,
|
|
17
|
+
resolveCliConfig,
|
|
18
|
+
} from '../helpers.ts'
|
|
19
|
+
import type { IOutputCtl } from '../OutputCtl.ts'
|
|
13
20
|
import { UnauthenticatedCommand } from './BaseCommand.ts'
|
|
14
21
|
|
|
15
22
|
type UrlParamPrimitive = string | number | boolean
|
|
@@ -195,14 +202,49 @@ export interface RunSmartSigOptions {
|
|
|
195
202
|
providedInput?: string
|
|
196
203
|
}
|
|
197
204
|
|
|
198
|
-
|
|
199
|
-
|
|
205
|
+
function reportStandaloneCredentialsError(error: string): null {
|
|
206
|
+
console.error(error)
|
|
207
|
+
process.exitCode = 1
|
|
208
|
+
return null
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
function getStandaloneCredentials(): CliKeySecretCredentials | null {
|
|
212
|
+
const credentialsResult = requireCliCredentials()
|
|
200
213
|
if (!credentialsResult.ok) {
|
|
201
|
-
|
|
202
|
-
|
|
214
|
+
return reportStandaloneCredentialsError(credentialsResult.error)
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
return credentialsResult.credentials
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
function getCommandCredentials(output: IOutputCtl): CliKeySecretCredentials | null {
|
|
221
|
+
const credentialsResult = requireCliCredentials()
|
|
222
|
+
if (!credentialsResult.ok) {
|
|
223
|
+
output.error(credentialsResult.error)
|
|
224
|
+
return null
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
return credentialsResult.credentials
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
function getCommandConfigWithCredentials(output: IOutputCtl): {
|
|
231
|
+
config: ResolvedCliConfig
|
|
232
|
+
credentials: CliKeySecretCredentials
|
|
233
|
+
} | null {
|
|
234
|
+
const config = resolveCliConfig()
|
|
235
|
+
if (config.credentials == null) {
|
|
236
|
+
output.error(config.loadError ?? buildMissingCredentialsMessage())
|
|
237
|
+
return null
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
return { config, credentials: config.credentials }
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
export async function runSig(options: RunSigOptions = {}): Promise<void> {
|
|
244
|
+
const credentials = getStandaloneCredentials()
|
|
245
|
+
if (credentials == null) {
|
|
203
246
|
return
|
|
204
247
|
}
|
|
205
|
-
const credentials = credentialsResult.credentials
|
|
206
248
|
|
|
207
249
|
const { content } = await readCliInput({
|
|
208
250
|
providedInput: options.providedInput,
|
|
@@ -220,13 +262,10 @@ export async function runSig(options: RunSigOptions = {}): Promise<void> {
|
|
|
220
262
|
}
|
|
221
263
|
|
|
222
264
|
export async function runSmartSig(options: RunSmartSigOptions = {}): Promise<void> {
|
|
223
|
-
const
|
|
224
|
-
if (
|
|
225
|
-
console.error(credentialsResult.error)
|
|
226
|
-
process.exitCode = 1
|
|
265
|
+
const credentials = getStandaloneCredentials()
|
|
266
|
+
if (credentials == null) {
|
|
227
267
|
return
|
|
228
268
|
}
|
|
229
|
-
const credentials = credentialsResult.credentials
|
|
230
269
|
|
|
231
270
|
const { content } = await readCliInput({
|
|
232
271
|
providedInput: options.providedInput,
|
|
@@ -260,6 +299,8 @@ export class SignatureCommand extends UnauthenticatedCommand {
|
|
|
260
299
|
details: `
|
|
261
300
|
Read params JSON from stdin and output signed payload JSON.
|
|
262
301
|
If no input is provided, generates a signature with default params.
|
|
302
|
+
Credentials are resolved from the shell environment, the current working directory .env, or
|
|
303
|
+
~/.transloadit/credentials.
|
|
263
304
|
`,
|
|
264
305
|
examples: [
|
|
265
306
|
['Generate signature', 'echo \'{"steps":{}}\' | transloadit signature'],
|
|
@@ -273,12 +314,8 @@ export class SignatureCommand extends UnauthenticatedCommand {
|
|
|
273
314
|
})
|
|
274
315
|
|
|
275
316
|
protected async run(): Promise<number | undefined> {
|
|
276
|
-
const
|
|
277
|
-
if (
|
|
278
|
-
this.output.error(credentialsResult.error)
|
|
279
|
-
return 1
|
|
280
|
-
}
|
|
281
|
-
const credentials = credentialsResult.credentials
|
|
317
|
+
const credentials = getCommandCredentials(this.output)
|
|
318
|
+
if (credentials == null) return 1
|
|
282
319
|
|
|
283
320
|
const { content } = await readCliInput({ allowStdinWhenNoPath: true })
|
|
284
321
|
const rawInput = (content ?? '').trim()
|
|
@@ -312,6 +349,8 @@ export class SmartCdnSignatureCommand extends UnauthenticatedCommand {
|
|
|
312
349
|
Read Smart CDN params JSON from stdin and output a signed URL.
|
|
313
350
|
Required fields: workspace, template, input
|
|
314
351
|
Optional fields: expire_at_ms, url_params
|
|
352
|
+
Credentials are resolved from the shell environment, the current working directory .env, or
|
|
353
|
+
~/.transloadit/credentials.
|
|
315
354
|
`,
|
|
316
355
|
examples: [
|
|
317
356
|
[
|
|
@@ -326,12 +365,8 @@ export class SmartCdnSignatureCommand extends UnauthenticatedCommand {
|
|
|
326
365
|
})
|
|
327
366
|
|
|
328
367
|
protected async run(): Promise<number | undefined> {
|
|
329
|
-
const
|
|
330
|
-
if (
|
|
331
|
-
this.output.error(credentialsResult.error)
|
|
332
|
-
return 1
|
|
333
|
-
}
|
|
334
|
-
const credentials = credentialsResult.credentials
|
|
368
|
+
const credentials = getCommandCredentials(this.output)
|
|
369
|
+
if (credentials == null) return 1
|
|
335
370
|
|
|
336
371
|
const { content } = await readCliInput({ allowStdinWhenNoPath: true })
|
|
337
372
|
const rawInput = (content ?? '').trim()
|
|
@@ -359,8 +394,9 @@ export class TokenCommand extends UnauthenticatedCommand {
|
|
|
359
394
|
category: 'Auth',
|
|
360
395
|
description: 'Mint a short-lived bearer token',
|
|
361
396
|
details: `
|
|
362
|
-
Calls POST /token using HTTP Basic Auth
|
|
363
|
-
|
|
397
|
+
Calls POST /token using HTTP Basic Auth and prints the JSON response to stdout.
|
|
398
|
+
Credentials are resolved from the shell environment, the current working directory .env, or
|
|
399
|
+
~/.transloadit/credentials.
|
|
364
400
|
`,
|
|
365
401
|
examples: [
|
|
366
402
|
['Mint an MCP token (default aud)', 'transloadit auth token'],
|
|
@@ -378,14 +414,12 @@ export class TokenCommand extends UnauthenticatedCommand {
|
|
|
378
414
|
})
|
|
379
415
|
|
|
380
416
|
protected override async run(): Promise<number | undefined> {
|
|
381
|
-
const
|
|
382
|
-
if (
|
|
383
|
-
this.output.error(credentialsResult.error)
|
|
384
|
-
return 1
|
|
385
|
-
}
|
|
417
|
+
const resolved = getCommandConfigWithCredentials(this.output)
|
|
418
|
+
if (resolved == null) return 1
|
|
386
419
|
|
|
387
|
-
const result = await mintBearerTokenWithCredentials(
|
|
388
|
-
|
|
420
|
+
const result = await mintBearerTokenWithCredentials(resolved.credentials, {
|
|
421
|
+
allowProcessEnvEndpointFallback: false,
|
|
422
|
+
endpoint: this.endpoint ?? resolved.config.credentialsEndpoint,
|
|
389
423
|
aud: this.aud,
|
|
390
424
|
scope: this.scope,
|
|
391
425
|
})
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { mkdir, readFile, writeFile } from 'node:fs/promises'
|
|
2
2
|
import { dirname } from 'node:path'
|
|
3
|
+
import { pathToFileURL } from 'node:url'
|
|
3
4
|
import {
|
|
4
5
|
getConcurrencyOptionDocumentation,
|
|
5
6
|
getDeleteAfterProcessingOptionDocumentation,
|
|
@@ -127,7 +128,14 @@ function getBackendSummary(catalogDefinition: IntentDefinition): string {
|
|
|
127
128
|
function getUsage(definition: ResolvedIntentCommandDefinition): string {
|
|
128
129
|
const parts = ['npx transloadit', ...definition.paths]
|
|
129
130
|
if (definition.runnerKind !== 'no-input') {
|
|
130
|
-
|
|
131
|
+
if (
|
|
132
|
+
'inputPolicy' in definition.intentDefinition &&
|
|
133
|
+
definition.intentDefinition.inputPolicy.kind === 'optional'
|
|
134
|
+
) {
|
|
135
|
+
parts.push('[--input', '<path|dir|url|->]')
|
|
136
|
+
} else {
|
|
137
|
+
parts.push('--input', '<path|dir|url|->')
|
|
138
|
+
}
|
|
131
139
|
}
|
|
132
140
|
parts.push('[options]')
|
|
133
141
|
return parts.join(' ')
|
|
@@ -322,7 +330,7 @@ function renderAtAGlanceTable(definitions: ResolvedIntentCommandDefinition[]): s
|
|
|
322
330
|
)
|
|
323
331
|
}
|
|
324
332
|
|
|
325
|
-
function renderIntentDocsBody({
|
|
333
|
+
export function renderIntentDocsBody({
|
|
326
334
|
definitions,
|
|
327
335
|
headingLevel,
|
|
328
336
|
}: {
|
|
@@ -334,6 +342,8 @@ function renderIntentDocsBody({
|
|
|
334
342
|
`${heading} At a glance`,
|
|
335
343
|
'',
|
|
336
344
|
'Intent commands are the fastest path to common one-off tasks from the CLI.',
|
|
345
|
+
'Authentication is resolved in this order: shell environment, the current working directory `.env`, then `~/.transloadit/credentials`.',
|
|
346
|
+
'The home credentials file uses dotenv syntax and can include `TRANSLOADIT_KEY`, `TRANSLOADIT_SECRET`, `TRANSLOADIT_ENDPOINT`, and `TRANSLOADIT_AUTH_TOKEN`.',
|
|
337
347
|
'Use `--print-urls` when you want temporary result URLs without downloading locally.',
|
|
338
348
|
'All intent commands also support the global CLI flags `--json`, `--log-level`, `--endpoint`, and `--help`.',
|
|
339
349
|
'',
|
|
@@ -359,6 +369,15 @@ function renderIntentDocsBody({
|
|
|
359
369
|
return lines.join('\n').trim()
|
|
360
370
|
}
|
|
361
371
|
|
|
372
|
+
function isEntrypoint(): boolean {
|
|
373
|
+
const entrypoint = process.argv[1]
|
|
374
|
+
if (entrypoint == null) {
|
|
375
|
+
return false
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
return import.meta.url === pathToFileURL(entrypoint).href
|
|
379
|
+
}
|
|
380
|
+
|
|
362
381
|
function replaceGeneratedBlock({
|
|
363
382
|
endMarker,
|
|
364
383
|
markdown,
|
|
@@ -410,10 +429,12 @@ async function main(): Promise<void> {
|
|
|
410
429
|
await writeFile(readmeUrl, `${nextReadme}\n`)
|
|
411
430
|
}
|
|
412
431
|
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
432
|
+
if (isEntrypoint()) {
|
|
433
|
+
main().catch((error) => {
|
|
434
|
+
if (!(error instanceof Error)) {
|
|
435
|
+
throw new Error(`Was thrown a non-error: ${String(error)}`)
|
|
436
|
+
}
|
|
437
|
+
console.error(error)
|
|
438
|
+
process.exit(1)
|
|
439
|
+
})
|
|
440
|
+
}
|
package/src/cli/helpers.ts
CHANGED
|
@@ -1,30 +1,295 @@
|
|
|
1
1
|
import fs from 'node:fs'
|
|
2
2
|
import fsp from 'node:fs/promises'
|
|
3
|
+
import { homedir } from 'node:os'
|
|
4
|
+
import path from 'node:path'
|
|
3
5
|
import type { Readable } from 'node:stream'
|
|
6
|
+
import { parse as parseDotenv } from 'dotenv'
|
|
4
7
|
import { isAPIError } from './types.ts'
|
|
5
8
|
|
|
6
|
-
|
|
7
|
-
|
|
9
|
+
export type CliKeySecretCredentials = { authKey: string; authSecret: string }
|
|
10
|
+
export type CliAuthToken = { authToken: string }
|
|
11
|
+
export type CliAuth = CliKeySecretCredentials | CliAuthToken
|
|
12
|
+
type CliEnvSource = {
|
|
13
|
+
name: 'env' | 'credentialsFile'
|
|
14
|
+
values: Record<string, string | undefined>
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
let loadedProjectDotenvPath: string | undefined
|
|
18
|
+
let projectDotenvInjectedValues: Record<string, string> | undefined
|
|
19
|
+
let projectDotenvPreviousValues: Record<string, string | undefined> | undefined
|
|
20
|
+
let shellEnvBeforeProjectDotenv: Record<string, string | undefined> | undefined
|
|
21
|
+
|
|
22
|
+
type LoadCliEnvSourcesResult = {
|
|
23
|
+
loadError?: string
|
|
24
|
+
shellEnvSource: CliEnvSource
|
|
25
|
+
sources: CliEnvSource[]
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export type ResolvedCliConfig = {
|
|
29
|
+
auth?: CliAuth
|
|
30
|
+
credentials?: CliKeySecretCredentials
|
|
31
|
+
credentialsEndpoint?: string
|
|
32
|
+
endpoint?: string
|
|
33
|
+
loadError?: string
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function normalizeEnvValue(value: string | undefined): string | undefined {
|
|
37
|
+
const trimmed = value?.trim()
|
|
38
|
+
return trimmed ? trimmed : undefined
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function getConfiguredCredentialsFilePath(): string {
|
|
42
|
+
const configuredPath = normalizeEnvValue(process.env.TRANSLOADIT_CREDENTIALS_FILE)
|
|
43
|
+
if (configuredPath != null) {
|
|
44
|
+
return path.resolve(configuredPath)
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return path.join(homedir(), '.transloadit', 'credentials')
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function getProjectDotenvPath(): string {
|
|
51
|
+
return path.resolve(process.cwd(), '.env')
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function getDisplayPath(filePath: string): string {
|
|
55
|
+
const normalizedHome = path.resolve(homedir())
|
|
56
|
+
const normalizedFilePath = path.resolve(filePath)
|
|
57
|
+
if (normalizedFilePath === normalizedHome) return '~'
|
|
58
|
+
if (normalizedFilePath.startsWith(`${normalizedHome}${path.sep}`)) {
|
|
59
|
+
return `~${normalizedFilePath.slice(normalizedHome.length)}`
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return normalizedFilePath
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export function buildMissingCredentialsMessage(): string {
|
|
66
|
+
return [
|
|
67
|
+
'Missing credentials.',
|
|
68
|
+
'',
|
|
69
|
+
'Looked for TRANSLOADIT_KEY + TRANSLOADIT_SECRET in this order:',
|
|
70
|
+
'1. Shell env: TRANSLOADIT_KEY / TRANSLOADIT_SECRET',
|
|
71
|
+
`2. Current directory .env: ${getProjectDotenvPath()}`,
|
|
72
|
+
`3. Credentials file: ${getDisplayPath(getConfiguredCredentialsFilePath())}`,
|
|
73
|
+
].join('\n')
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export function buildMissingAuthMessage(): string {
|
|
77
|
+
return [
|
|
78
|
+
'Missing authentication.',
|
|
79
|
+
'',
|
|
80
|
+
'Looked for TRANSLOADIT_AUTH_TOKEN or TRANSLOADIT_KEY + TRANSLOADIT_SECRET in this order:',
|
|
81
|
+
'1. Shell env: TRANSLOADIT_AUTH_TOKEN, or TRANSLOADIT_KEY / TRANSLOADIT_SECRET',
|
|
82
|
+
`2. Current directory .env: ${getProjectDotenvPath()}`,
|
|
83
|
+
`3. Credentials file: ${getDisplayPath(getConfiguredCredentialsFilePath())}`,
|
|
84
|
+
].join('\n')
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function readEnvFile(
|
|
88
|
+
filePath: string,
|
|
89
|
+
): { ok: true; source: CliEnvSource } | { ok: false; error: string } | null {
|
|
90
|
+
if (!fs.existsSync(filePath)) return null
|
|
91
|
+
|
|
92
|
+
try {
|
|
93
|
+
return {
|
|
94
|
+
ok: true,
|
|
95
|
+
source: {
|
|
96
|
+
name: 'credentialsFile',
|
|
97
|
+
values: parseDotenv(fs.readFileSync(filePath)),
|
|
98
|
+
},
|
|
99
|
+
}
|
|
100
|
+
} catch (err) {
|
|
101
|
+
if (!(err instanceof Error)) {
|
|
102
|
+
throw new Error(`Was thrown a non-error: ${err}`)
|
|
103
|
+
}
|
|
104
|
+
return { ok: false, error: `Failed to read ${filePath}: ${err.message}` }
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export function loadProjectDotenvIntoProcessEnv(): string | undefined {
|
|
109
|
+
const projectDotenvPath = getProjectDotenvPath()
|
|
110
|
+
if (loadedProjectDotenvPath !== projectDotenvPath) {
|
|
111
|
+
restoreProjectDotenvFromProcessEnv()
|
|
112
|
+
shellEnvBeforeProjectDotenv = { ...process.env }
|
|
113
|
+
loadedProjectDotenvPath = projectDotenvPath
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
const projectDotenvResult = readEnvFile(projectDotenvPath)
|
|
117
|
+
if (projectDotenvResult == null) {
|
|
118
|
+
restoreProjectDotenvFromProcessEnv()
|
|
119
|
+
projectDotenvInjectedValues = undefined
|
|
120
|
+
projectDotenvPreviousValues = undefined
|
|
121
|
+
return undefined
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
if (!projectDotenvResult.ok) return projectDotenvResult.error
|
|
125
|
+
if (projectDotenvInjectedValues != null) return undefined
|
|
126
|
+
|
|
127
|
+
const previousValues: Record<string, string | undefined> = {}
|
|
128
|
+
const injectedValues: Record<string, string> = {}
|
|
129
|
+
for (const [key, value] of Object.entries(projectDotenvResult.source.values)) {
|
|
130
|
+
if (value == null) continue
|
|
131
|
+
if (normalizeEnvValue(process.env[key]) != null) continue
|
|
132
|
+
previousValues[key] = process.env[key]
|
|
133
|
+
process.env[key] = value
|
|
134
|
+
injectedValues[key] = value
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
projectDotenvPreviousValues = previousValues
|
|
138
|
+
projectDotenvInjectedValues = injectedValues
|
|
139
|
+
return undefined
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
function getShellEnvValues(): Record<string, string | undefined> {
|
|
143
|
+
if (loadedProjectDotenvPath === getProjectDotenvPath() && shellEnvBeforeProjectDotenv != null) {
|
|
144
|
+
return shellEnvBeforeProjectDotenv
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
return { ...process.env }
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
function restoreProjectDotenvFromProcessEnv(): void {
|
|
151
|
+
if (projectDotenvInjectedValues == null || projectDotenvPreviousValues == null) return
|
|
152
|
+
|
|
153
|
+
for (const [key, injectedValue] of Object.entries(projectDotenvInjectedValues)) {
|
|
154
|
+
if (process.env[key] !== injectedValue) continue
|
|
155
|
+
|
|
156
|
+
const previousValue = projectDotenvPreviousValues[key]
|
|
157
|
+
if (previousValue == null) {
|
|
158
|
+
delete process.env[key]
|
|
159
|
+
continue
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
process.env[key] = previousValue
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
projectDotenvInjectedValues = undefined
|
|
166
|
+
projectDotenvPreviousValues = undefined
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
function loadCliEnvSources(): LoadCliEnvSourcesResult {
|
|
170
|
+
const shellEnvSource: CliEnvSource = {
|
|
171
|
+
name: 'env',
|
|
172
|
+
values: getShellEnvValues(),
|
|
173
|
+
}
|
|
174
|
+
const loadErrors: string[] = []
|
|
175
|
+
|
|
176
|
+
const projectDotenvLoadError = loadProjectDotenvIntoProcessEnv()
|
|
177
|
+
if (projectDotenvLoadError != null) {
|
|
178
|
+
loadErrors.push(projectDotenvLoadError)
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
const sources: CliEnvSource[] = [
|
|
182
|
+
{
|
|
183
|
+
name: 'env',
|
|
184
|
+
values: { ...process.env },
|
|
185
|
+
},
|
|
186
|
+
]
|
|
187
|
+
|
|
188
|
+
const credentialsFilePath = getConfiguredCredentialsFilePath()
|
|
189
|
+
const credentialsFileResult = readEnvFile(credentialsFilePath)
|
|
190
|
+
if (credentialsFileResult?.ok === true) {
|
|
191
|
+
sources.push(credentialsFileResult.source)
|
|
192
|
+
} else if (credentialsFileResult?.ok === false) {
|
|
193
|
+
loadErrors.push(credentialsFileResult.error)
|
|
194
|
+
} else if (normalizeEnvValue(process.env.TRANSLOADIT_CREDENTIALS_FILE) != null) {
|
|
195
|
+
loadErrors.push(`Configured credentials file does not exist: ${credentialsFilePath}`)
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
return {
|
|
199
|
+
shellEnvSource,
|
|
200
|
+
sources,
|
|
201
|
+
...(loadErrors[0] ? { loadError: loadErrors[0] } : {}),
|
|
202
|
+
}
|
|
203
|
+
}
|
|
8
204
|
|
|
9
|
-
|
|
205
|
+
function getSourceValue(source: CliEnvSource, keys: string[]): string | undefined {
|
|
206
|
+
for (const key of keys) {
|
|
207
|
+
const value = normalizeEnvValue(source.values[key])
|
|
208
|
+
if (value != null) return value
|
|
209
|
+
}
|
|
10
210
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const authSecret = process.env.TRANSLOADIT_SECRET ?? process.env.TRANSLOADIT_AUTH_SECRET
|
|
211
|
+
return undefined
|
|
212
|
+
}
|
|
14
213
|
|
|
15
|
-
|
|
214
|
+
function getSourceCredentials(source: CliEnvSource): CliKeySecretCredentials | undefined {
|
|
215
|
+
const authKey = getSourceValue(source, ['TRANSLOADIT_KEY', 'TRANSLOADIT_AUTH_KEY'])
|
|
216
|
+
const authSecret = getSourceValue(source, ['TRANSLOADIT_SECRET', 'TRANSLOADIT_AUTH_SECRET'])
|
|
217
|
+
if (authKey == null || authSecret == null) return undefined
|
|
16
218
|
|
|
17
219
|
return { authKey, authSecret }
|
|
18
220
|
}
|
|
19
221
|
|
|
20
|
-
|
|
21
|
-
|
|
222
|
+
function getSourceAuthToken(source: CliEnvSource): CliAuthToken | undefined {
|
|
223
|
+
const authToken = getSourceValue(source, ['TRANSLOADIT_AUTH_TOKEN'])
|
|
224
|
+
if (authToken == null) return undefined
|
|
225
|
+
|
|
226
|
+
return { authToken }
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
function resolveEndpointForSource(
|
|
230
|
+
source: CliEnvSource | undefined,
|
|
231
|
+
shellEnvSource: CliEnvSource,
|
|
232
|
+
): string | undefined {
|
|
233
|
+
const shellEndpoint = getSourceValue(shellEnvSource, ['TRANSLOADIT_ENDPOINT'])
|
|
234
|
+
if (shellEndpoint != null) return shellEndpoint
|
|
235
|
+
if (source == null) return undefined
|
|
236
|
+
|
|
237
|
+
return getSourceValue(source, ['TRANSLOADIT_ENDPOINT'])
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
export function resolveCliConfig(): ResolvedCliConfig {
|
|
241
|
+
const { loadError, shellEnvSource, sources } = loadCliEnvSources()
|
|
242
|
+
let auth: CliAuth | undefined
|
|
243
|
+
let authSource: CliEnvSource | undefined
|
|
244
|
+
let credentials: CliKeySecretCredentials | undefined
|
|
245
|
+
let credentialsSource: CliEnvSource | undefined
|
|
246
|
+
|
|
247
|
+
for (const source of sources) {
|
|
248
|
+
if (auth == null) {
|
|
249
|
+
const authToken = getSourceAuthToken(source)
|
|
250
|
+
if (authToken != null) {
|
|
251
|
+
auth = authToken
|
|
252
|
+
authSource = source
|
|
253
|
+
} else {
|
|
254
|
+
const sourceCredentials = getSourceCredentials(source)
|
|
255
|
+
if (sourceCredentials != null) {
|
|
256
|
+
auth = sourceCredentials
|
|
257
|
+
authSource = source
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
if (credentials != null) continue
|
|
263
|
+
|
|
264
|
+
const sourceCredentials = getSourceCredentials(source)
|
|
265
|
+
if (sourceCredentials != null) {
|
|
266
|
+
credentials = sourceCredentials
|
|
267
|
+
credentialsSource = source
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
return {
|
|
272
|
+
...(auth != null ? { auth } : {}),
|
|
273
|
+
...(credentials != null ? { credentials } : {}),
|
|
274
|
+
...(authSource != null
|
|
275
|
+
? { endpoint: resolveEndpointForSource(authSource, shellEnvSource) }
|
|
276
|
+
: {}),
|
|
277
|
+
...(credentialsSource != null
|
|
278
|
+
? { credentialsEndpoint: resolveEndpointForSource(credentialsSource, shellEnvSource) }
|
|
279
|
+
: {}),
|
|
280
|
+
...(loadError != null ? { loadError } : {}),
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
type RequireCliCredentialsResult =
|
|
285
|
+
| { ok: true; credentials: CliKeySecretCredentials }
|
|
22
286
|
| { ok: false; error: string }
|
|
23
287
|
|
|
24
|
-
export function
|
|
25
|
-
const credentials =
|
|
26
|
-
if (credentials
|
|
27
|
-
return { ok:
|
|
288
|
+
export function requireCliCredentials(): RequireCliCredentialsResult {
|
|
289
|
+
const { credentials, loadError } = resolveCliConfig()
|
|
290
|
+
if (credentials != null) return { ok: true, credentials }
|
|
291
|
+
if (loadError != null) return { ok: false, error: loadError }
|
|
292
|
+
return { ok: false, error: buildMissingCredentialsMessage() }
|
|
28
293
|
}
|
|
29
294
|
|
|
30
295
|
export function createReadStream(file: string): Readable {
|
|
@@ -37,10 +37,6 @@ import {
|
|
|
37
37
|
robotImageBgremoveInstructionsSchema,
|
|
38
38
|
meta as robotImageBgremoveMeta,
|
|
39
39
|
} from '../alphalib/types/robots/image-bgremove.ts'
|
|
40
|
-
import {
|
|
41
|
-
robotImageGenerateInstructionsSchema,
|
|
42
|
-
meta as robotImageGenerateMeta,
|
|
43
|
-
} from '../alphalib/types/robots/image-generate.ts'
|
|
44
40
|
import {
|
|
45
41
|
robotImageOptimizeInstructionsSchema,
|
|
46
42
|
meta as robotImageOptimizeMeta,
|
|
@@ -169,11 +165,10 @@ export function findIntentDefinitionByPaths(
|
|
|
169
165
|
}
|
|
170
166
|
|
|
171
167
|
export const intentCatalog = [
|
|
172
|
-
|
|
173
|
-
kind: '
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
schema: robotImageGenerateInstructionsSchema,
|
|
168
|
+
defineSemanticIntent({
|
|
169
|
+
kind: 'semantic',
|
|
170
|
+
paths: ['image', 'generate'],
|
|
171
|
+
semantic: 'image-generate',
|
|
177
172
|
}),
|
|
178
173
|
defineRobotIntent({
|
|
179
174
|
kind: 'robot',
|
package/src/cli/intentRuntime.ts
CHANGED
|
@@ -318,8 +318,9 @@ function createSingleStep(
|
|
|
318
318
|
function createDynamicIntentStep(
|
|
319
319
|
execution: IntentDynamicStepExecutionDefinition,
|
|
320
320
|
rawValues: Record<string, unknown>,
|
|
321
|
+
hasInputs: boolean,
|
|
321
322
|
): Record<string, unknown> {
|
|
322
|
-
return getSemanticIntentDescriptor(execution.handler).createStep(rawValues)
|
|
323
|
+
return getSemanticIntentDescriptor(execution.handler).createStep(rawValues, { hasInputs })
|
|
323
324
|
}
|
|
324
325
|
|
|
325
326
|
function requiresLocalInput(
|
|
@@ -367,7 +368,11 @@ async function executeIntentCommand({
|
|
|
367
368
|
rawValues,
|
|
368
369
|
createOptions.inputs.length > 0,
|
|
369
370
|
)
|
|
370
|
-
: createDynamicIntentStep(
|
|
371
|
+
: createDynamicIntentStep(
|
|
372
|
+
definition.execution,
|
|
373
|
+
rawValues,
|
|
374
|
+
createOptions.inputs.length > 0,
|
|
375
|
+
),
|
|
371
376
|
} as AssembliesCreateOptions['stepsData'],
|
|
372
377
|
}
|
|
373
378
|
|
|
@@ -563,7 +568,7 @@ abstract class GeneratedFileIntentCommandBase extends GeneratedIntentCommandBase
|
|
|
563
568
|
|
|
564
569
|
const execution = this.getIntentDefinition().execution
|
|
565
570
|
if (execution.kind === 'dynamic-step') {
|
|
566
|
-
createDynamicIntentStep(execution, rawValues)
|
|
571
|
+
createDynamicIntentStep(execution, rawValues, this.getProvidedInputCount() > 0)
|
|
567
572
|
}
|
|
568
573
|
|
|
569
574
|
return undefined
|
|
@@ -212,7 +212,10 @@ function buildDescribeAiChatMessages({
|
|
|
212
212
|
}
|
|
213
213
|
}
|
|
214
214
|
|
|
215
|
-
function createImageDescribeStep(
|
|
215
|
+
function createImageDescribeStep(
|
|
216
|
+
rawValues: Record<string, unknown>,
|
|
217
|
+
_context: { hasInputs: boolean },
|
|
218
|
+
): Record<string, unknown> {
|
|
216
219
|
const { fields, profile } = resolveImageDescribeRequest(rawValues)
|
|
217
220
|
if (fields.length === 1 && fields[0] === 'labels') {
|
|
218
221
|
return {
|