cutsdk 0.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +130 -0
- package/dist/api/audios/add-audios.d.ts +3 -0
- package/dist/api/audios/add-audios.d.ts.map +1 -0
- package/dist/api/audios/add-audios.js +33 -0
- package/dist/api/audios/add-audios.js.map +1 -0
- package/dist/api/audios/get-audios.d.ts +5 -0
- package/dist/api/audios/get-audios.d.ts.map +1 -0
- package/dist/api/audios/get-audios.js +27 -0
- package/dist/api/audios/get-audios.js.map +1 -0
- package/dist/api/captions/add-captions.d.ts +3 -0
- package/dist/api/captions/add-captions.d.ts.map +1 -0
- package/dist/api/captions/add-captions.js +220 -0
- package/dist/api/captions/add-captions.js.map +1 -0
- package/dist/api/captions/get-captions.d.ts +5 -0
- package/dist/api/captions/get-captions.d.ts.map +1 -0
- package/dist/api/captions/get-captions.js +36 -0
- package/dist/api/captions/get-captions.js.map +1 -0
- package/dist/api/cloud/render-draft.d.ts +11 -0
- package/dist/api/cloud/render-draft.d.ts.map +1 -0
- package/dist/api/cloud/render-draft.js +203 -0
- package/dist/api/cloud/render-draft.js.map +1 -0
- package/dist/api/cloud/submit-video-render-task.d.ts +4 -0
- package/dist/api/cloud/submit-video-render-task.d.ts.map +1 -0
- package/dist/api/cloud/submit-video-render-task.js +54 -0
- package/dist/api/cloud/submit-video-render-task.js.map +1 -0
- package/dist/api/cloud/upload-draft.d.ts +4 -0
- package/dist/api/cloud/upload-draft.d.ts.map +1 -0
- package/dist/api/cloud/upload-draft.js +89 -0
- package/dist/api/cloud/upload-draft.js.map +1 -0
- package/dist/api/draft/create-draft.d.ts +3 -0
- package/dist/api/draft/create-draft.d.ts.map +1 -0
- package/dist/api/draft/create-draft.js +11 -0
- package/dist/api/draft/create-draft.js.map +1 -0
- package/dist/api/draft/easy-create-material.d.ts +3 -0
- package/dist/api/draft/easy-create-material.d.ts.map +1 -0
- package/dist/api/draft/easy-create-material.js +64 -0
- package/dist/api/draft/easy-create-material.js.map +1 -0
- package/dist/api/draft/get-draft-info.d.ts +5 -0
- package/dist/api/draft/get-draft-info.d.ts.map +1 -0
- package/dist/api/draft/get-draft-info.js +35 -0
- package/dist/api/draft/get-draft-info.js.map +1 -0
- package/dist/api/draft/list-drafts.d.ts +3 -0
- package/dist/api/draft/list-drafts.d.ts.map +1 -0
- package/dist/api/draft/list-drafts.js +51 -0
- package/dist/api/draft/list-drafts.js.map +1 -0
- package/dist/api/draft-spec/create-and-render-draft.d.ts +3 -0
- package/dist/api/draft-spec/create-and-render-draft.d.ts.map +1 -0
- package/dist/api/draft-spec/create-and-render-draft.js +70 -0
- package/dist/api/draft-spec/create-and-render-draft.js.map +1 -0
- package/dist/api/draft-spec/create-draft-from-spec.d.ts +4 -0
- package/dist/api/draft-spec/create-draft-from-spec.d.ts.map +1 -0
- package/dist/api/draft-spec/create-draft-from-spec.js +96 -0
- package/dist/api/draft-spec/create-draft-from-spec.js.map +1 -0
- package/dist/api/draft-spec/resolve.d.ts +21 -0
- package/dist/api/draft-spec/resolve.d.ts.map +1 -0
- package/dist/api/draft-spec/resolve.js +279 -0
- package/dist/api/draft-spec/resolve.js.map +1 -0
- package/dist/api/draft-spec/time.d.ts +17 -0
- package/dist/api/draft-spec/time.d.ts.map +1 -0
- package/dist/api/draft-spec/time.js +56 -0
- package/dist/api/draft-spec/time.js.map +1 -0
- package/dist/api/draft-spec/validation.d.ts +3 -0
- package/dist/api/draft-spec/validation.d.ts.map +1 -0
- package/dist/api/draft-spec/validation.js +179 -0
- package/dist/api/draft-spec/validation.js.map +1 -0
- package/dist/api/effects/add-effects.d.ts +3 -0
- package/dist/api/effects/add-effects.d.ts.map +1 -0
- package/dist/api/effects/add-effects.js +24 -0
- package/dist/api/effects/add-effects.js.map +1 -0
- package/dist/api/effects/get-effects.d.ts +5 -0
- package/dist/api/effects/get-effects.d.ts.map +1 -0
- package/dist/api/effects/get-effects.js +23 -0
- package/dist/api/effects/get-effects.js.map +1 -0
- package/dist/api/images/add-images.d.ts +3 -0
- package/dist/api/images/add-images.d.ts.map +1 -0
- package/dist/api/images/add-images.js +67 -0
- package/dist/api/images/add-images.js.map +1 -0
- package/dist/api/images/get-images.d.ts +5 -0
- package/dist/api/images/get-images.d.ts.map +1 -0
- package/dist/api/images/get-images.js +30 -0
- package/dist/api/images/get-images.js.map +1 -0
- package/dist/api/keyframes/add-keyframes.d.ts +3 -0
- package/dist/api/keyframes/add-keyframes.d.ts.map +1 -0
- package/dist/api/keyframes/add-keyframes.js +21 -0
- package/dist/api/keyframes/add-keyframes.js.map +1 -0
- package/dist/api/keyframes/get-keyframes.d.ts +6 -0
- package/dist/api/keyframes/get-keyframes.d.ts.map +1 -0
- package/dist/api/keyframes/get-keyframes.js +41 -0
- package/dist/api/keyframes/get-keyframes.js.map +1 -0
- package/dist/api/masks/add-masks.d.ts +3 -0
- package/dist/api/masks/add-masks.d.ts.map +1 -0
- package/dist/api/masks/add-masks.js +63 -0
- package/dist/api/masks/add-masks.js.map +1 -0
- package/dist/api/masks/get-masks.d.ts +6 -0
- package/dist/api/masks/get-masks.d.ts.map +1 -0
- package/dist/api/masks/get-masks.js +44 -0
- package/dist/api/masks/get-masks.js.map +1 -0
- package/dist/api/query/get-audio-duration.d.ts +3 -0
- package/dist/api/query/get-audio-duration.d.ts.map +1 -0
- package/dist/api/query/get-audio-duration.js +12 -0
- package/dist/api/query/get-audio-duration.js.map +1 -0
- package/dist/api/query/get-image-animations.d.ts +3 -0
- package/dist/api/query/get-image-animations.d.ts.map +1 -0
- package/dist/api/query/get-image-animations.js +21 -0
- package/dist/api/query/get-image-animations.js.map +1 -0
- package/dist/api/query/get-text-effects.d.ts +4 -0
- package/dist/api/query/get-text-effects.d.ts.map +1 -0
- package/dist/api/query/get-text-effects.js +36 -0
- package/dist/api/query/get-text-effects.js.map +1 -0
- package/dist/api/setup/templates/project/.agents/skills/cut-draft/SKILL.md +92 -0
- package/dist/api/setup/templates/project/cutcli-docs/.env.example +6 -0
- package/dist/api/setup/templates/project/cutcli-docs/README.md +95 -0
- package/dist/api/setup/templates/project/cutcli-docs/api-cheatsheet.md +156 -0
- package/dist/api/setup/templates/project/cutcli-docs/examples/01-create-draft.ts +43 -0
- package/dist/api/setup/templates/project/cutcli-docs/examples/02-draft-spec.ts +73 -0
- package/dist/api/setup/templates/project/cutcli-docs/examples/03-create-and-render.ts +66 -0
- package/dist/api/setup/templates/project/cutcli-docs/examples/04-cli-examples.md +109 -0
- package/dist/api/setup/templates/project/cutcli-docs/quickstart.md +130 -0
- package/dist/api/sticker/add-sticker.d.ts +3 -0
- package/dist/api/sticker/add-sticker.d.ts.map +1 -0
- package/dist/api/sticker/add-sticker.js +22 -0
- package/dist/api/sticker/add-sticker.js.map +1 -0
- package/dist/api/sticker/get-stickers.d.ts +5 -0
- package/dist/api/sticker/get-stickers.d.ts.map +1 -0
- package/dist/api/sticker/get-stickers.js +23 -0
- package/dist/api/sticker/get-stickers.js.map +1 -0
- package/dist/api/text-style/add-text-style.d.ts +3 -0
- package/dist/api/text-style/add-text-style.d.ts.map +1 -0
- package/dist/api/text-style/add-text-style.js +25 -0
- package/dist/api/text-style/add-text-style.js.map +1 -0
- package/dist/api/videos/add-videos.d.ts +3 -0
- package/dist/api/videos/add-videos.d.ts.map +1 -0
- package/dist/api/videos/add-videos.js +84 -0
- package/dist/api/videos/add-videos.js.map +1 -0
- package/dist/api/videos/get-videos.d.ts +5 -0
- package/dist/api/videos/get-videos.d.ts.map +1 -0
- package/dist/api/videos/get-videos.js +30 -0
- package/dist/api/videos/get-videos.js.map +1 -0
- package/dist/config/index.d.ts +11 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +27 -0
- package/dist/config/index.js.map +1 -0
- package/dist/draft/drafts/AudioMaterial.d.ts +41 -0
- package/dist/draft/drafts/AudioMaterial.d.ts.map +1 -0
- package/dist/draft/drafts/AudioMaterial.js +45 -0
- package/dist/draft/drafts/AudioMaterial.js.map +1 -0
- package/dist/draft/drafts/Draft.d.ts +272 -0
- package/dist/draft/drafts/Draft.d.ts.map +1 -0
- package/dist/draft/drafts/Draft.js +374 -0
- package/dist/draft/drafts/Draft.js.map +1 -0
- package/dist/draft/drafts/Effects.d.ts +32 -0
- package/dist/draft/drafts/Effects.d.ts.map +1 -0
- package/dist/draft/drafts/Effects.js +77 -0
- package/dist/draft/drafts/Effects.js.map +1 -0
- package/dist/draft/drafts/Huazi.d.ts +47 -0
- package/dist/draft/drafts/Huazi.d.ts.map +1 -0
- package/dist/draft/drafts/Huazi.js +71 -0
- package/dist/draft/drafts/Huazi.js.map +1 -0
- package/dist/draft/drafts/Keyframe.d.ts +57 -0
- package/dist/draft/drafts/Keyframe.d.ts.map +1 -0
- package/dist/draft/drafts/Keyframe.js +66 -0
- package/dist/draft/drafts/Keyframe.js.map +1 -0
- package/dist/draft/drafts/Mask.d.ts +74 -0
- package/dist/draft/drafts/Mask.d.ts.map +1 -0
- package/dist/draft/drafts/Mask.js +93 -0
- package/dist/draft/drafts/Mask.js.map +1 -0
- package/dist/draft/drafts/MediaUtil.d.ts +18 -0
- package/dist/draft/drafts/MediaUtil.d.ts.map +1 -0
- package/dist/draft/drafts/MediaUtil.js +101 -0
- package/dist/draft/drafts/MediaUtil.js.map +1 -0
- package/dist/draft/drafts/Qipaos.d.ts +35 -0
- package/dist/draft/drafts/Qipaos.d.ts.map +1 -0
- package/dist/draft/drafts/Qipaos.js +41 -0
- package/dist/draft/drafts/Qipaos.js.map +1 -0
- package/dist/draft/drafts/Segments.d.ts +74 -0
- package/dist/draft/drafts/Segments.d.ts.map +1 -0
- package/dist/draft/drafts/Segments.js +112 -0
- package/dist/draft/drafts/Segments.js.map +1 -0
- package/dist/draft/drafts/Stickers.d.ts +58 -0
- package/dist/draft/drafts/Stickers.d.ts.map +1 -0
- package/dist/draft/drafts/Stickers.js +64 -0
- package/dist/draft/drafts/Stickers.js.map +1 -0
- package/dist/draft/drafts/TextMaterial.d.ts +119 -0
- package/dist/draft/drafts/TextMaterial.d.ts.map +1 -0
- package/dist/draft/drafts/TextMaterial.js +182 -0
- package/dist/draft/drafts/TextMaterial.js.map +1 -0
- package/dist/draft/drafts/Track.d.ts +18 -0
- package/dist/draft/drafts/Track.d.ts.map +1 -0
- package/dist/draft/drafts/Track.js +30 -0
- package/dist/draft/drafts/Track.js.map +1 -0
- package/dist/draft/drafts/Transitions.d.ts +14 -0
- package/dist/draft/drafts/Transitions.d.ts.map +1 -0
- package/dist/draft/drafts/Transitions.js +21 -0
- package/dist/draft/drafts/Transitions.js.map +1 -0
- package/dist/draft/drafts/VideoMaterial.d.ts +87 -0
- package/dist/draft/drafts/VideoMaterial.d.ts.map +1 -0
- package/dist/draft/drafts/VideoMaterial.js +92 -0
- package/dist/draft/drafts/VideoMaterial.js.map +1 -0
- package/dist/draft/drafts/add_keyframes_v2.d.ts +2 -0
- package/dist/draft/drafts/add_keyframes_v2.d.ts.map +1 -0
- package/dist/draft/drafts/add_keyframes_v2.js +281 -0
- package/dist/draft/drafts/add_keyframes_v2.js.map +1 -0
- package/dist/draft/drafts/add_text_animations.d.ts +7 -0
- package/dist/draft/drafts/add_text_animations.d.ts.map +1 -0
- package/dist/draft/drafts/add_text_animations.js +29 -0
- package/dist/draft/drafts/add_text_animations.js.map +1 -0
- package/dist/draft/drafts/add_video_animations.d.ts +7 -0
- package/dist/draft/drafts/add_video_animations.d.ts.map +1 -0
- package/dist/draft/drafts/add_video_animations.js +29 -0
- package/dist/draft/drafts/add_video_animations.js.map +1 -0
- package/dist/draft/drafts/add_video_effects.d.ts +27 -0
- package/dist/draft/drafts/add_video_effects.d.ts.map +1 -0
- package/dist/draft/drafts/add_video_effects.js +11 -0
- package/dist/draft/drafts/add_video_effects.js.map +1 -0
- package/dist/draft/drafts/data/audio/audio_effect.d.ts +35 -0
- package/dist/draft/drafts/data/audio/audio_effect.d.ts.map +1 -0
- package/dist/draft/drafts/data/audio/audio_effect.js +98 -0
- package/dist/draft/drafts/data/audio/audio_effect.js.map +1 -0
- package/dist/draft/drafts/data/audio//346/250/241/346/213/237.json +4275 -0
- package/dist/draft/drafts/data/audio//347/216/257/345/242/203.json +1673 -0
- package/dist/draft/drafts/data/audio//347/276/216/345/214/226.json +860 -0
- package/dist/draft/drafts/data/effect/cn/effect.d.ts +29 -0
- package/dist/draft/drafts/data/effect/cn/effect.d.ts.map +1 -0
- package/dist/draft/drafts/data/effect/cn/effect.js +122 -0
- package/dist/draft/drafts/data/effect/cn/effect.js.map +1 -0
- package/dist/draft/drafts/data/effect/cn/huamian/aixing.json +3097 -0
- package/dist/draft/drafts/data/effect/cn/huamian/anhei.json +3456 -0
- package/dist/draft/drafts/data/effect/cn/huamian/biankuang.json +8201 -0
- package/dist/draft/drafts/data/effect/cn/huamian/bling.json +5836 -0
- package/dist/draft/drafts/data/effect/cn/huamian/chaoku.json +3554 -0
- package/dist/draft/drafts/data/effect/cn/huamian/dianyin.json +624 -0
- package/dist/draft/drafts/data/effect/cn/huamian/donggan.json +11193 -0
- package/dist/draft/drafts/data/effect/cn/huamian/dv.json +3305 -0
- package/dist/draft/drafts/data/effect/cn/huamian/fanwei.json +10631 -0
- package/dist/draft/drafts/data/effect/cn/huamian/fenpin.json +1016 -0
- package/dist/draft/drafts/data/effect/cn/huamian/fugu.json +7592 -0
- package/dist/draft/drafts/data/effect/cn/huamian/guang.json +5614 -0
- package/dist/draft/drafts/data/effect/cn/huamian/hot.json +16202 -0
- package/dist/draft/drafts/data/effect/cn/huamian/jichu.json +10017 -0
- package/dist/draft/drafts/data/effect/cn/huamian/jinfen.json +2545 -0
- package/dist/draft/drafts/data/effect/cn/huamian/manhua.json +1897 -0
- package/dist/draft/drafts/data/effect/cn/huamian/niuqu.json +2037 -0
- package/dist/draft/drafts/data/effect/cn/huamian/touyin.json +1013 -0
- package/dist/draft/drafts/data/effect/cn/huamian/wenlin.json +2942 -0
- package/dist/draft/drafts/data/effect/cn/huamian/xinnian.json +4627 -0
- package/dist/draft/drafts/data/effect/cn/huamian/zhongyi.json +3063 -0
- package/dist/draft/drafts/data/effect/cn/huamian/ziran.json +4791 -0
- package/dist/draft/drafts/data/effect/cn/huamian/zuixin.json +5677 -0
- package/dist/draft/drafts/data/effect/cn/renwu/anhei.json +900 -0
- package/dist/draft/drafts/data/effect/cn/renwu/danglian.json +1518 -0
- package/dist/draft/drafts/data/effect/cn/renwu/hot.json +20280 -0
- package/dist/draft/drafts/data/effect/cn/renwu/huanrao.json +1447 -0
- package/dist/draft/drafts/data/effect/cn/renwu/kelong.json +1857 -0
- package/dist/draft/drafts/data/effect/cn/renwu/qingxu.json +5641 -0
- package/dist/draft/drafts/data/effect/cn/renwu/shenti.json +2827 -0
- package/dist/draft/drafts/data/effect/cn/renwu/shoubu.json +742 -0
- package/dist/draft/drafts/data/effect/cn/renwu/tousi.json +3129 -0
- package/dist/draft/drafts/data/effect/cn/renwu/xingxiang.json +1397 -0
- package/dist/draft/drafts/data/effect/cn/renwu/zhuangshi.json +5017 -0
- package/dist/draft/drafts/data/font/font.d.ts +11 -0
- package/dist/draft/drafts/data/font/font.d.ts.map +1 -0
- package/dist/draft/drafts/data/font/font.js +9303 -0
- package/dist/draft/drafts/data/font/font.js.map +1 -0
- package/dist/draft/drafts/data/font/font_0427.d.ts +3 -0
- package/dist/draft/drafts/data/font/font_0427.d.ts.map +1 -0
- package/dist/draft/drafts/data/font/font_0427.js +57922 -0
- package/dist/draft/drafts/data/font/font_0427.js.map +1 -0
- package/dist/draft/drafts/data/font/online_font.d.ts +7 -0
- package/dist/draft/drafts/data/font/online_font.d.ts.map +1 -0
- package/dist/draft/drafts/data/font/online_font.js +78 -0
- package/dist/draft/drafts/data/font/online_font.js.map +1 -0
- package/dist/draft/drafts/data/huazi/all_huazi_data.json +94057 -0
- package/dist/draft/drafts/data/huazi/online_huazi.d.ts +9 -0
- package/dist/draft/drafts/data/huazi/online_huazi.d.ts.map +1 -0
- package/dist/draft/drafts/data/huazi/online_huazi.js +163 -0
- package/dist/draft/drafts/data/huazi/online_huazi.js.map +1 -0
- package/dist/draft/drafts/data/texiao/aixin.json +2555 -0
- package/dist/draft/drafts/data/texiao/anhei.json +2909 -0
- package/dist/draft/drafts/data/texiao/biankuang.json +5906 -0
- package/dist/draft/drafts/data/texiao/bling.json +4171 -0
- package/dist/draft/drafts/data/texiao/chaoku.json +1560 -0
- package/dist/draft/drafts/data/texiao/dianyin.json +522 -0
- package/dist/draft/drafts/data/texiao/donggan.json +6157 -0
- package/dist/draft/drafts/data/texiao/dv.json +1796 -0
- package/dist/draft/drafts/data/texiao/fenpin.json +712 -0
- package/dist/draft/drafts/data/texiao/fenwei.json +4405 -0
- package/dist/draft/drafts/data/texiao/fugu.json +4472 -0
- package/dist/draft/drafts/data/texiao/guang.json +2297 -0
- package/dist/draft/drafts/data/texiao/jichu.json +4929 -0
- package/dist/draft/drafts/data/texiao/jinfen.json +1712 -0
- package/dist/draft/drafts/data/texiao/manhua.json +1700 -0
- package/dist/draft/drafts/data/texiao/niuqu.json +708 -0
- package/dist/draft/drafts/data/texiao/remen.json +7147 -0
- package/dist/draft/drafts/data/texiao/texiao.d.ts +53 -0
- package/dist/draft/drafts/data/texiao/texiao.d.ts.map +1 -0
- package/dist/draft/drafts/data/texiao/texiao.js +102 -0
- package/dist/draft/drafts/data/texiao/texiao.js.map +1 -0
- package/dist/draft/drafts/data/texiao/touyin.json +2354 -0
- package/dist/draft/drafts/data/texiao/wenli.json +2118 -0
- package/dist/draft/drafts/data/texiao/ziran.json +2882 -0
- package/dist/draft/drafts/data/texiao/zongyi.json +2287 -0
- package/dist/draft/drafts/data/text/chuchang.d.ts +35 -0
- package/dist/draft/drafts/data/text/chuchang.d.ts.map +1 -0
- package/dist/draft/drafts/data/text/chuchang.js +4547 -0
- package/dist/draft/drafts/data/text/chuchang.js.map +1 -0
- package/dist/draft/drafts/data/text/qipao.d.ts +87 -0
- package/dist/draft/drafts/data/text/qipao.d.ts.map +1 -0
- package/dist/draft/drafts/data/text/qipao.js +17773 -0
- package/dist/draft/drafts/data/text/qipao.js.map +1 -0
- package/dist/draft/drafts/data/text/ruchang.d.ts +35 -0
- package/dist/draft/drafts/data/text/ruchang.d.ts.map +1 -0
- package/dist/draft/drafts/data/text/ruchang.js +5363 -0
- package/dist/draft/drafts/data/text/ruchang.js.map +1 -0
- package/dist/draft/drafts/data/text/text_animations.d.ts +7 -0
- package/dist/draft/drafts/data/text/text_animations.d.ts.map +1 -0
- package/dist/draft/drafts/data/text/text_animations.js +147 -0
- package/dist/draft/drafts/data/text/text_animations.js.map +1 -0
- package/dist/draft/drafts/data/text/text_animations.json +26179 -0
- package/dist/draft/drafts/data/text/xunhuan.d.ts +35 -0
- package/dist/draft/drafts/data/text/xunhuan.d.ts.map +1 -0
- package/dist/draft/drafts/data/text/xunhuan.js +3435 -0
- package/dist/draft/drafts/data/text/xunhuan.js.map +1 -0
- package/dist/draft/drafts/data/tezhi/cn/aixin.json +3625 -0
- package/dist/draft/drafts/data/tezhi/cn/biaoqing.json +3269 -0
- package/dist/draft/drafts/data/tezhi/cn/bohemanbo.json +3270 -0
- package/dist/draft/drafts/data/tezhi/cn/dianshang.json +3269 -0
- package/dist/draft/drafts/data/tezhi/cn/dongri.json +3267 -0
- package/dist/draft/drafts/data/tezhi/cn/hot.json +3379 -0
- package/dist/draft/drafts/data/tezhi/cn/hudie.json +3490 -0
- package/dist/draft/drafts/data/tezhi/cn/hudong.json +3328 -0
- package/dist/draft/drafts/data/tezhi/cn/hunli.json +3290 -0
- package/dist/draft/drafts/data/tezhi/cn/jiari.json +3276 -0
- package/dist/draft/drafts/data/tezhi/cn/keai.json +3269 -0
- package/dist/draft/drafts/data/tezhi/cn/langman.json +3290 -0
- package/dist/draft/drafts/data/tezhi/cn/lvxing.json +3350 -0
- package/dist/draft/drafts/data/tezhi/cn/meishi.json +3294 -0
- package/dist/draft/drafts/data/tezhi/cn/meizhuang.json +3279 -0
- package/dist/draft/drafts/data/tezhi/cn/qingxu1.json +3421 -0
- package/dist/draft/drafts/data/tezhi/cn/qingxu2.json +3368 -0
- package/dist/draft/drafts/data/tezhi/cn/qingxu3.json +3358 -0
- package/dist/draft/drafts/data/tezhi/cn/qingxu4.json +3361 -0
- package/dist/draft/drafts/data/tezhi/cn/regeng.json +3292 -0
- package/dist/draft/drafts/data/tezhi/cn/vip.json +3336 -0
- package/dist/draft/drafts/data/tezhi/cn/vlog.json +3295 -0
- package/dist/draft/drafts/data/tezhi/cn/xiari.json +3411 -0
- package/dist/draft/drafts/data/tezhi/cn/xinnian.json +3274 -0
- package/dist/draft/drafts/data/tezhi/cn/yinyuejie.json +3285 -0
- package/dist/draft/drafts/data/tezhi/cn/yundong.json +3267 -0
- package/dist/draft/drafts/data/tezhi/cn/zhakai.json +3399 -0
- package/dist/draft/drafts/data/tezhi/cn/zhisi.json +3385 -0
- package/dist/draft/drafts/data/tezhi/cn_sticker.d.ts +2 -0
- package/dist/draft/drafts/data/tezhi/cn_sticker.d.ts.map +1 -0
- package/dist/draft/drafts/data/tezhi/cn_sticker.js +41 -0
- package/dist/draft/drafts/data/tezhi/cn_sticker.js.map +1 -0
- package/dist/draft/drafts/data/transitions/cn/MG/345/212/250/347/224/273.json +880 -0
- package/dist/draft/drafts/data/transitions/cn/hot.json +20419 -0
- package/dist/draft/drafts/data/transitions/cn//344/272/222/345/212/250emoji.json +820 -0
- package/dist/draft/drafts/data/transitions/cn//345/205/211/346/225/210.json +3355 -0
- package/dist/draft/drafts/data/transitions/cn//345/210/206/345/211/262.json +2255 -0
- package/dist/draft/drafts/data/transitions/cn//345/217/240/345/214/226.json +2206 -0
- package/dist/draft/drafts/data/transitions/cn//345/271/273/347/201/257/347/211/207.json +4175 -0
- package/dist/draft/drafts/data/transitions/cn//346/211/255/346/233/262.json +2388 -0
- package/dist/draft/drafts/data/transitions/cn//346/213/215/346/221/204.json +1546 -0
- package/dist/draft/drafts/data/transitions/cn//346/225/205/351/232/234.json +1616 -0
- package/dist/draft/drafts/data/transitions/cn//346/226/260/345/271/264.json +2935 -0
- package/dist/draft/drafts/data/transitions/cn//346/234/200/346/226/260.json +3167 -0
- package/dist/draft/drafts/data/transitions/cn//346/250/241/347/263/212.json +1535 -0
- package/dist/draft/drafts/data/transitions/cn//347/273/274/350/211/272.json +904 -0
- package/dist/draft/drafts/data/transitions/cn//350/207/252/347/204/266.json +657 -0
- package/dist/draft/drafts/data/transitions/cn//350/277/220/351/225/234.json +5283 -0
- package/dist/draft/drafts/data/transitions/cn_transitions.d.ts +3 -0
- package/dist/draft/drafts/data/transitions/cn_transitions.d.ts.map +1 -0
- package/dist/draft/drafts/data/transitions/cn_transitions.js +52 -0
- package/dist/draft/drafts/data/transitions/cn_transitions.js.map +1 -0
- package/dist/draft/drafts/data/video/group.d.ts +35 -0
- package/dist/draft/drafts/data/video/group.d.ts.map +1 -0
- package/dist/draft/drafts/data/video/group.js +7496 -0
- package/dist/draft/drafts/data/video/group.js.map +1 -0
- package/dist/draft/drafts/data/video/ins.d.ts +19 -0
- package/dist/draft/drafts/data/video/ins.d.ts.map +1 -0
- package/dist/draft/drafts/data/video/ins.js +3046 -0
- package/dist/draft/drafts/data/video/ins.js.map +1 -0
- package/dist/draft/drafts/data/video/out.d.ts +35 -0
- package/dist/draft/drafts/data/video/out.d.ts.map +1 -0
- package/dist/draft/drafts/data/video/out.js +1640 -0
- package/dist/draft/drafts/data/video/out.js.map +1 -0
- package/dist/draft/drafts/data/video/video_animations.d.ts +7 -0
- package/dist/draft/drafts/data/video/video_animations.d.ts.map +1 -0
- package/dist/draft/drafts/data/video/video_animations.js +138 -0
- package/dist/draft/drafts/data/video/video_animations.js.map +1 -0
- package/dist/draft/drafts/data/video/video_animations.json +22380 -0
- package/dist/draft/drafts/online_effects.d.ts +3 -0
- package/dist/draft/drafts/online_effects.d.ts.map +1 -0
- package/dist/draft/drafts/online_effects.js +57 -0
- package/dist/draft/drafts/online_effects.js.map +1 -0
- package/dist/draft/index.d.ts +23 -0
- package/dist/draft/index.d.ts.map +1 -0
- package/dist/draft/index.js +20 -0
- package/dist/draft/index.js.map +1 -0
- package/dist/index.d.ts +62 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +90 -0
- package/dist/index.js.map +1 -0
- package/dist/shared/cloud-client.d.ts +59 -0
- package/dist/shared/cloud-client.d.ts.map +1 -0
- package/dist/shared/cloud-client.js +121 -0
- package/dist/shared/cloud-client.js.map +1 -0
- package/dist/shared/draft-service.d.ts +9 -0
- package/dist/shared/draft-service.d.ts.map +1 -0
- package/dist/shared/draft-service.js +91 -0
- package/dist/shared/draft-service.js.map +1 -0
- package/dist/shared/errors.d.ts +28 -0
- package/dist/shared/errors.d.ts.map +1 -0
- package/dist/shared/errors.js +138 -0
- package/dist/shared/errors.js.map +1 -0
- package/dist/shared/logger.d.ts +6 -0
- package/dist/shared/logger.d.ts.map +1 -0
- package/dist/shared/logger.js +9 -0
- package/dist/shared/logger.js.map +1 -0
- package/dist/shared/media-downloader.d.ts +14 -0
- package/dist/shared/media-downloader.d.ts.map +1 -0
- package/dist/shared/media-downloader.js +94 -0
- package/dist/shared/media-downloader.js.map +1 -0
- package/dist/shared/media.d.ts +6 -0
- package/dist/shared/media.d.ts.map +1 -0
- package/dist/shared/media.js +117 -0
- package/dist/shared/media.js.map +1 -0
- package/dist/template/attachment_pc_common.json +1 -0
- package/dist/template/draft_agency_config.json +1 -0
- package/dist/template/draft_content.json +132 -0
- package/dist/template/draft_meta_info.json +59 -0
- package/dist/template/template.tmp +1 -0
- package/dist/types/index.d.ts +637 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +4 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +64 -4
- package/index.js +0 -1
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export type CutSdkErrorCode = 'INVALID_INPUT' | 'INVALID_JSON' | 'DRAFT_NOT_FOUND' | 'MEDIA_NOT_FOUND' | 'MEDIA_DOWNLOAD_FAILED' | 'MEDIA_METADATA_FAILED' | 'MISSING_API_TOKEN' | 'CLOUD_REQUEST_FAILED' | 'CLOUD_UPLOAD_FAILED' | 'DRAFT_SPEC_VALIDATION_FAILED' | 'DRAFT_SPEC_RESOLVE_FAILED' | 'UNKNOWN_ERROR';
|
|
2
|
+
export interface CutSdkErrorOptions {
|
|
3
|
+
code: CutSdkErrorCode | string;
|
|
4
|
+
message: string;
|
|
5
|
+
operation?: string;
|
|
6
|
+
path?: string;
|
|
7
|
+
status?: number;
|
|
8
|
+
details?: unknown;
|
|
9
|
+
cause?: unknown;
|
|
10
|
+
}
|
|
11
|
+
export interface SdkErrorContext {
|
|
12
|
+
operation?: string;
|
|
13
|
+
path?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare class CutSdkError extends Error {
|
|
16
|
+
code: string;
|
|
17
|
+
operation?: string;
|
|
18
|
+
path?: string;
|
|
19
|
+
status?: number;
|
|
20
|
+
details?: unknown;
|
|
21
|
+
cause?: unknown;
|
|
22
|
+
constructor(options: CutSdkErrorOptions);
|
|
23
|
+
}
|
|
24
|
+
export declare function isCutSdkError(error: unknown): error is CutSdkError;
|
|
25
|
+
export declare function normalizeSdkError(error: unknown, context?: SdkErrorContext): CutSdkError;
|
|
26
|
+
export declare function withSdkErrorContext<Args extends unknown[], Result>(operation: string, fn: (...args: Args) => Promise<Result>): (...args: Args) => Promise<Result>;
|
|
27
|
+
export declare function parseSdkJson<T>(value: string, path: string, operation?: string): T;
|
|
28
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/shared/errors.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GACvB,eAAe,GACf,cAAc,GACd,iBAAiB,GACjB,iBAAiB,GACjB,uBAAuB,GACvB,uBAAuB,GACvB,mBAAmB,GACnB,sBAAsB,GACtB,qBAAqB,GACrB,8BAA8B,GAC9B,2BAA2B,GAC3B,eAAe,CAAC;AAEpB,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,eAAe,GAAG,MAAM,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,WAAY,SAAQ,KAAK;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;gBAEJ,OAAO,EAAE,kBAAkB;CAUxC;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAOlE;AA0ED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,eAAoB,GAAG,WAAW,CAsB5F;AAED,wBAAgB,mBAAmB,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,MAAM,EAChE,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,GACrC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAQpC;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,CAYlF"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CutSdkError = void 0;
|
|
4
|
+
exports.isCutSdkError = isCutSdkError;
|
|
5
|
+
exports.normalizeSdkError = normalizeSdkError;
|
|
6
|
+
exports.withSdkErrorContext = withSdkErrorContext;
|
|
7
|
+
exports.parseSdkJson = parseSdkJson;
|
|
8
|
+
const time_1 = require("../api/draft-spec/time");
|
|
9
|
+
class CutSdkError extends Error {
|
|
10
|
+
constructor(options) {
|
|
11
|
+
super(options.message);
|
|
12
|
+
this.name = 'CutSdkError';
|
|
13
|
+
this.code = options.code;
|
|
14
|
+
this.operation = options.operation;
|
|
15
|
+
this.path = options.path;
|
|
16
|
+
this.status = options.status;
|
|
17
|
+
this.details = options.details;
|
|
18
|
+
this.cause = options.cause;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.CutSdkError = CutSdkError;
|
|
22
|
+
function isCutSdkError(error) {
|
|
23
|
+
return error instanceof CutSdkError || (typeof error === 'object' &&
|
|
24
|
+
error !== null &&
|
|
25
|
+
error.name === 'CutSdkError' &&
|
|
26
|
+
typeof error.code === 'string');
|
|
27
|
+
}
|
|
28
|
+
function withMissingContext(error, context) {
|
|
29
|
+
if (!error.operation && context.operation)
|
|
30
|
+
error.operation = context.operation;
|
|
31
|
+
if (!error.path && context.path)
|
|
32
|
+
error.path = context.path;
|
|
33
|
+
return error;
|
|
34
|
+
}
|
|
35
|
+
function matchKnownError(error, context) {
|
|
36
|
+
if (error instanceof time_1.DraftSpecError) {
|
|
37
|
+
return new CutSdkError({
|
|
38
|
+
code: 'DRAFT_SPEC_RESOLVE_FAILED',
|
|
39
|
+
message: error.message,
|
|
40
|
+
operation: context.operation,
|
|
41
|
+
path: error.path,
|
|
42
|
+
cause: error,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
const message = error.message || 'Unknown SDK error.';
|
|
46
|
+
if (/^Draft not found:/.test(message)) {
|
|
47
|
+
return new CutSdkError({
|
|
48
|
+
code: 'DRAFT_NOT_FOUND',
|
|
49
|
+
message,
|
|
50
|
+
operation: context.operation,
|
|
51
|
+
details: { filePath: message.replace(/^Draft not found:\s*/, '') },
|
|
52
|
+
cause: error,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
if (/^Local file not found:/.test(message)) {
|
|
56
|
+
return new CutSdkError({
|
|
57
|
+
code: 'MEDIA_NOT_FOUND',
|
|
58
|
+
message,
|
|
59
|
+
operation: context.operation,
|
|
60
|
+
details: { filePath: message.replace(/^Local file not found:\s*/, '') },
|
|
61
|
+
cause: error,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
if (/^Missing API token\./.test(message)) {
|
|
65
|
+
return new CutSdkError({
|
|
66
|
+
code: 'MISSING_API_TOKEN',
|
|
67
|
+
message,
|
|
68
|
+
operation: context.operation,
|
|
69
|
+
cause: error,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
if (/^(Cloud request failed|Cloud render request failed):/.test(message)) {
|
|
73
|
+
const statusMatch = message.match(/:\s*(\d{3})/);
|
|
74
|
+
return new CutSdkError({
|
|
75
|
+
code: 'CLOUD_REQUEST_FAILED',
|
|
76
|
+
message,
|
|
77
|
+
operation: context.operation,
|
|
78
|
+
status: statusMatch ? Number(statusMatch[1]) : undefined,
|
|
79
|
+
cause: error,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
if (error instanceof SyntaxError || /Unexpected token|JSON/.test(message)) {
|
|
83
|
+
return new CutSdkError({
|
|
84
|
+
code: 'INVALID_JSON',
|
|
85
|
+
message,
|
|
86
|
+
operation: context.operation,
|
|
87
|
+
path: context.path,
|
|
88
|
+
cause: error,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
93
|
+
function normalizeSdkError(error, context = {}) {
|
|
94
|
+
if (isCutSdkError(error)) {
|
|
95
|
+
return withMissingContext(error, context);
|
|
96
|
+
}
|
|
97
|
+
if (error instanceof Error) {
|
|
98
|
+
return matchKnownError(error, context) ?? new CutSdkError({
|
|
99
|
+
code: 'UNKNOWN_ERROR',
|
|
100
|
+
message: error.message || 'Unknown SDK error.',
|
|
101
|
+
operation: context.operation,
|
|
102
|
+
path: context.path,
|
|
103
|
+
cause: error,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
return new CutSdkError({
|
|
107
|
+
code: 'UNKNOWN_ERROR',
|
|
108
|
+
message: typeof error === 'string' ? error : 'Unknown SDK error.',
|
|
109
|
+
operation: context.operation,
|
|
110
|
+
path: context.path,
|
|
111
|
+
cause: error,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
function withSdkErrorContext(operation, fn) {
|
|
115
|
+
return async (...args) => {
|
|
116
|
+
try {
|
|
117
|
+
return await fn(...args);
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
throw normalizeSdkError(error, { operation });
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
function parseSdkJson(value, path, operation) {
|
|
125
|
+
try {
|
|
126
|
+
return JSON.parse(value);
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
throw new CutSdkError({
|
|
130
|
+
code: 'INVALID_JSON',
|
|
131
|
+
message: `Invalid JSON at ${path}.`,
|
|
132
|
+
operation,
|
|
133
|
+
path,
|
|
134
|
+
cause: error,
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/shared/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/shared/logger.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;oBACD,GAAG,EAAE;oBACL,GAAG,EAAE;qBACJ,GAAG,EAAE;CACvB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.logger = void 0;
|
|
4
|
+
exports.logger = {
|
|
5
|
+
info: (...args) => console.log('[cut]', ...args),
|
|
6
|
+
warn: (...args) => console.warn('[cut]', ...args),
|
|
7
|
+
error: (...args) => console.error('[cut]', ...args),
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/shared/logger.ts"],"names":[],"mappings":";;;AAAa,QAAA,MAAM,GAAG;IACpB,IAAI,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;IACvD,IAAI,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;IACxD,KAAK,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;CAC3D,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare const DRAFT_PATH_PLACEHOLDER = "##_draftpath_placeholder_0E685133-18CE-45ED-8CB8-2904A212EC80_##";
|
|
2
|
+
export declare const RESOURCES_DIR = "resources";
|
|
3
|
+
/**
|
|
4
|
+
* Resolve a media source (URL or local file path) into the draft resources/ dir.
|
|
5
|
+
* - URL → download to resources/
|
|
6
|
+
* - Local path → copy to resources/
|
|
7
|
+
*/
|
|
8
|
+
export declare function downloadFile(source: string, saveDir: string, ext: string): Promise<{
|
|
9
|
+
filePath: string;
|
|
10
|
+
fileName: string;
|
|
11
|
+
}>;
|
|
12
|
+
export declare function toPlaceholderPath(fileName: string): string;
|
|
13
|
+
export declare function getResourceDir(draftId: string): string;
|
|
14
|
+
//# sourceMappingURL=media-downloader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-downloader.d.ts","sourceRoot":"","sources":["../../src/shared/media-downloader.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,sBAAsB,qEACiC,CAAC;AACrE,eAAO,MAAM,aAAa,cAAc,CAAC;AASzC;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAUjD;AAkED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtD"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.RESOURCES_DIR = exports.DRAFT_PATH_PLACEHOLDER = void 0;
|
|
7
|
+
exports.downloadFile = downloadFile;
|
|
8
|
+
exports.toPlaceholderPath = toPlaceholderPath;
|
|
9
|
+
exports.getResourceDir = getResourceDir;
|
|
10
|
+
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
11
|
+
const fs_1 = __importDefault(require("fs"));
|
|
12
|
+
const path_1 = __importDefault(require("path"));
|
|
13
|
+
const uuid_1 = require("uuid");
|
|
14
|
+
const config_1 = require("../config");
|
|
15
|
+
const errors_1 = require("./errors");
|
|
16
|
+
exports.DRAFT_PATH_PLACEHOLDER = '##_draftpath_placeholder_0E685133-18CE-45ED-8CB8-2904A212EC80_##';
|
|
17
|
+
exports.RESOURCES_DIR = 'resources';
|
|
18
|
+
const MAX_RETRIES = 3;
|
|
19
|
+
const TIMEOUT_MS = 30000;
|
|
20
|
+
function isUrl(input) {
|
|
21
|
+
return /^https?:\/\//i.test(input);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Resolve a media source (URL or local file path) into the draft resources/ dir.
|
|
25
|
+
* - URL → download to resources/
|
|
26
|
+
* - Local path → copy to resources/
|
|
27
|
+
*/
|
|
28
|
+
async function downloadFile(source, saveDir, ext) {
|
|
29
|
+
if (!fs_1.default.existsSync(saveDir)) {
|
|
30
|
+
fs_1.default.mkdirSync(saveDir, { recursive: true });
|
|
31
|
+
}
|
|
32
|
+
if (!isUrl(source)) {
|
|
33
|
+
return copyLocalFile(source, saveDir, ext);
|
|
34
|
+
}
|
|
35
|
+
return downloadRemoteFile(source, saveDir, ext);
|
|
36
|
+
}
|
|
37
|
+
function copyLocalFile(localPath, saveDir, fallbackExt) {
|
|
38
|
+
const resolved = path_1.default.resolve(localPath);
|
|
39
|
+
if (!fs_1.default.existsSync(resolved)) {
|
|
40
|
+
throw new errors_1.CutSdkError({
|
|
41
|
+
code: 'MEDIA_NOT_FOUND',
|
|
42
|
+
message: `Local file not found: ${resolved}`,
|
|
43
|
+
details: { source: localPath, filePath: resolved },
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
const ext = path_1.default.extname(resolved) || fallbackExt;
|
|
47
|
+
const fileName = `${(0, uuid_1.v4)()}${ext}`;
|
|
48
|
+
const destPath = path_1.default.join(saveDir, fileName);
|
|
49
|
+
fs_1.default.copyFileSync(resolved, destPath);
|
|
50
|
+
return Promise.resolve({ filePath: destPath, fileName });
|
|
51
|
+
}
|
|
52
|
+
async function downloadRemoteFile(url, saveDir, ext) {
|
|
53
|
+
const fileName = `${(0, uuid_1.v4)()}${ext}`;
|
|
54
|
+
const filePath = path_1.default.join(saveDir, fileName);
|
|
55
|
+
for (let attempt = 1; attempt <= MAX_RETRIES; attempt++) {
|
|
56
|
+
try {
|
|
57
|
+
const res = await (0, node_fetch_1.default)(url, { timeout: TIMEOUT_MS });
|
|
58
|
+
if (!res.ok) {
|
|
59
|
+
throw new Error(`HTTP ${res.status} ${res.statusText}`);
|
|
60
|
+
}
|
|
61
|
+
const dest = fs_1.default.createWriteStream(filePath);
|
|
62
|
+
await new Promise((resolve, reject) => {
|
|
63
|
+
res.body.pipe(dest);
|
|
64
|
+
res.body.on('error', reject);
|
|
65
|
+
dest.on('finish', resolve);
|
|
66
|
+
dest.on('error', reject);
|
|
67
|
+
});
|
|
68
|
+
return { filePath, fileName };
|
|
69
|
+
}
|
|
70
|
+
catch (err) {
|
|
71
|
+
if (attempt < MAX_RETRIES) {
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
throw new errors_1.CutSdkError({
|
|
75
|
+
code: 'MEDIA_DOWNLOAD_FAILED',
|
|
76
|
+
message: `Failed to download ${url} after ${MAX_RETRIES} attempts: ${err.message}`,
|
|
77
|
+
details: { url, attempts: MAX_RETRIES },
|
|
78
|
+
cause: err,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
throw new errors_1.CutSdkError({
|
|
83
|
+
code: 'MEDIA_DOWNLOAD_FAILED',
|
|
84
|
+
message: `Failed to download ${url}`,
|
|
85
|
+
details: { url, attempts: MAX_RETRIES },
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
function toPlaceholderPath(fileName) {
|
|
89
|
+
return path_1.default.join(exports.DRAFT_PATH_PLACEHOLDER, exports.RESOURCES_DIR, fileName);
|
|
90
|
+
}
|
|
91
|
+
function getResourceDir(draftId) {
|
|
92
|
+
return path_1.default.join(config_1.config.draftsDir, draftId, exports.RESOURCES_DIR);
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=media-downloader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-downloader.js","sourceRoot":"","sources":["../../src/shared/media-downloader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/shared/media.ts"],"names":[],"mappings":"AAmCA,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBnE;AAED,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAkBhG"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.getAudioDuration = getAudioDuration;
|
|
40
|
+
exports.getImageDimensions = getImageDimensions;
|
|
41
|
+
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
42
|
+
const fs_1 = __importDefault(require("fs"));
|
|
43
|
+
const path_1 = __importDefault(require("path"));
|
|
44
|
+
const errors_1 = require("./errors");
|
|
45
|
+
function isUrl(input) {
|
|
46
|
+
return /^https?:\/\//i.test(input);
|
|
47
|
+
}
|
|
48
|
+
async function readSourceBuffer(source, mediaType) {
|
|
49
|
+
if (!isUrl(source)) {
|
|
50
|
+
const resolved = path_1.default.resolve(source);
|
|
51
|
+
if (!fs_1.default.existsSync(resolved)) {
|
|
52
|
+
throw new Error(`Local ${mediaType} file not found: ${resolved}`);
|
|
53
|
+
}
|
|
54
|
+
return fs_1.default.readFileSync(resolved);
|
|
55
|
+
}
|
|
56
|
+
const response = await (0, node_fetch_1.default)(source);
|
|
57
|
+
if (!response.ok) {
|
|
58
|
+
throw new Error(`Failed to download ${mediaType} from: ${source}`);
|
|
59
|
+
}
|
|
60
|
+
return response.buffer();
|
|
61
|
+
}
|
|
62
|
+
function audioMimeFromPath(source) {
|
|
63
|
+
const ext = path_1.default.extname(source).toLowerCase();
|
|
64
|
+
if (ext === '.wav')
|
|
65
|
+
return 'audio/wav';
|
|
66
|
+
if (ext === '.m4a')
|
|
67
|
+
return 'audio/mp4';
|
|
68
|
+
if (ext === '.aac')
|
|
69
|
+
return 'audio/aac';
|
|
70
|
+
if (ext === '.flac')
|
|
71
|
+
return 'audio/flac';
|
|
72
|
+
if (ext === '.ogg')
|
|
73
|
+
return 'audio/ogg';
|
|
74
|
+
return 'audio/mpeg';
|
|
75
|
+
}
|
|
76
|
+
async function getAudioDuration(url) {
|
|
77
|
+
try {
|
|
78
|
+
const { parseBuffer } = await Promise.resolve().then(() => __importStar(require('music-metadata')));
|
|
79
|
+
const buffer = await readSourceBuffer(url, 'audio');
|
|
80
|
+
const metadata = await parseBuffer(buffer, audioMimeFromPath(url), { duration: true });
|
|
81
|
+
const duration = metadata.format.duration;
|
|
82
|
+
if (duration === undefined) {
|
|
83
|
+
throw new Error('Unable to determine audio duration');
|
|
84
|
+
}
|
|
85
|
+
return (duration * 1000000) | 0;
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
console.error(`[media] getAudioDuration failed: ${error.message}`);
|
|
89
|
+
throw new errors_1.CutSdkError({
|
|
90
|
+
code: 'MEDIA_METADATA_FAILED',
|
|
91
|
+
message: `Failed to read audio duration from: ${url}`,
|
|
92
|
+
details: { url, mediaType: 'audio' },
|
|
93
|
+
cause: error,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
async function getImageDimensions(url) {
|
|
98
|
+
try {
|
|
99
|
+
const { imageSize } = await Promise.resolve().then(() => __importStar(require('image-size')));
|
|
100
|
+
const buffer = await readSourceBuffer(url, 'image');
|
|
101
|
+
const dimensions = imageSize(buffer);
|
|
102
|
+
if (!dimensions.width || !dimensions.height) {
|
|
103
|
+
throw new Error('Unable to parse image dimensions');
|
|
104
|
+
}
|
|
105
|
+
return { width: dimensions.width, height: dimensions.height };
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
console.error(`[media] getImageDimensions failed: ${error.message}`);
|
|
109
|
+
throw new errors_1.CutSdkError({
|
|
110
|
+
code: 'MEDIA_METADATA_FAILED',
|
|
111
|
+
message: `Failed to read image dimensions from: ${url}`,
|
|
112
|
+
details: { url, mediaType: 'image' },
|
|
113
|
+
cause: error,
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=media.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/shared/media.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"pc_feature_flag":0,"template_item_infos":[],"unlock_template_ids":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"marterials":null,"use_converter":false,"video_resolution":720}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
{
|
|
2
|
+
"canvas_config": {
|
|
3
|
+
"height": 1080,
|
|
4
|
+
"ratio": "original",
|
|
5
|
+
"width": 1920
|
|
6
|
+
},
|
|
7
|
+
"color_space": -1,
|
|
8
|
+
"config": {
|
|
9
|
+
"adjust_max_index": 1,
|
|
10
|
+
"attachment_info": [],
|
|
11
|
+
"combination_max_index": 1,
|
|
12
|
+
"export_range": null,
|
|
13
|
+
"extract_audio_last_index": 1,
|
|
14
|
+
"lyrics_recognition_id": "",
|
|
15
|
+
"lyrics_sync": true,
|
|
16
|
+
"lyrics_taskinfo": [],
|
|
17
|
+
"maintrack_adsorb": true,
|
|
18
|
+
"material_save_mode": 0,
|
|
19
|
+
"original_sound_last_index": 1,
|
|
20
|
+
"record_audio_last_index": 1,
|
|
21
|
+
"sticker_max_index": 1,
|
|
22
|
+
"subtitle_recognition_id": "",
|
|
23
|
+
"subtitle_sync": true,
|
|
24
|
+
"subtitle_taskinfo": [],
|
|
25
|
+
"video_mute": false,
|
|
26
|
+
"zoom_info_params": null
|
|
27
|
+
},
|
|
28
|
+
"cover": null,
|
|
29
|
+
"create_time": 0,
|
|
30
|
+
"duration": 0,
|
|
31
|
+
"extra_info": null,
|
|
32
|
+
"fps": 30.0,
|
|
33
|
+
"free_render_index_mode_on": false,
|
|
34
|
+
"group_container": null,
|
|
35
|
+
"id": "27D06F17-C8D6-4E67-99CC-F5C748BBA2FD",
|
|
36
|
+
"keyframes": {
|
|
37
|
+
"adjusts": [],
|
|
38
|
+
"audios": [],
|
|
39
|
+
"effects": [],
|
|
40
|
+
"filters": [],
|
|
41
|
+
"handwrites": [],
|
|
42
|
+
"stickers": [],
|
|
43
|
+
"texts": [],
|
|
44
|
+
"videos": []
|
|
45
|
+
},
|
|
46
|
+
"last_modified_platform": {
|
|
47
|
+
"app_id": 3704,
|
|
48
|
+
"app_source": "lv",
|
|
49
|
+
"app_version": "3.9.0",
|
|
50
|
+
"device_id": "ece93fefa6d73d0879f6cf6251e212fd",
|
|
51
|
+
"hard_disk_id": "da04071d52c1f66c291bc2f5b1f0e87f",
|
|
52
|
+
"mac_address": "864b94efa06c9456b10992695eba19c4",
|
|
53
|
+
"os": "mac",
|
|
54
|
+
"os_version": "12.5.1"
|
|
55
|
+
},
|
|
56
|
+
"materials": {
|
|
57
|
+
"audio_balances": [],
|
|
58
|
+
"audio_effects": [],
|
|
59
|
+
"audio_fades": [],
|
|
60
|
+
"audios": [],
|
|
61
|
+
"beats": [],
|
|
62
|
+
"canvases": [],
|
|
63
|
+
"chromas": [],
|
|
64
|
+
"color_curves": [],
|
|
65
|
+
"drafts": [],
|
|
66
|
+
"effects": [],
|
|
67
|
+
"handwrites": [],
|
|
68
|
+
"hsl": [],
|
|
69
|
+
"images": [],
|
|
70
|
+
"log_color_wheels": [],
|
|
71
|
+
"manual_deformations": [],
|
|
72
|
+
"masks": [],
|
|
73
|
+
"material_animations": [],
|
|
74
|
+
"placeholders": [],
|
|
75
|
+
"plugin_effects": [],
|
|
76
|
+
"primary_color_wheels": [],
|
|
77
|
+
"realtime_denoises": [],
|
|
78
|
+
"sound_channel_mappings": [],
|
|
79
|
+
"speeds": [],
|
|
80
|
+
"stickers": [],
|
|
81
|
+
"tail_leaders": [],
|
|
82
|
+
"text_templates": [],
|
|
83
|
+
"texts": [],
|
|
84
|
+
"transitions": [],
|
|
85
|
+
"video_effects": [],
|
|
86
|
+
"video_trackings": [],
|
|
87
|
+
"videos": []
|
|
88
|
+
},
|
|
89
|
+
"mutable_config": null,
|
|
90
|
+
"name": "",
|
|
91
|
+
"new_version": "69.0.0",
|
|
92
|
+
"platform": {
|
|
93
|
+
"app_id": 3704,
|
|
94
|
+
"app_source": "lv",
|
|
95
|
+
"app_version": "3.9.0",
|
|
96
|
+
"device_id": "ece93fefa6d73d0879f6cf6251e212fd",
|
|
97
|
+
"hard_disk_id": "da04071d52c1f66c291bc2f5b1f0e87f",
|
|
98
|
+
"mac_address": "864b94efa06c9456b10992695eba19c4",
|
|
99
|
+
"os": "mac",
|
|
100
|
+
"os_version": "12.5.1"
|
|
101
|
+
},
|
|
102
|
+
"relationships": [],
|
|
103
|
+
"render_index_track_mode_on": false,
|
|
104
|
+
"retouch_cover": null,
|
|
105
|
+
"source": "default",
|
|
106
|
+
"static_cover_image_path": "",
|
|
107
|
+
"tracks": [
|
|
108
|
+
{
|
|
109
|
+
"attribute": 0,
|
|
110
|
+
"flag": 0,
|
|
111
|
+
"id": "2D0629D7-BC55-4A90-867A-C078CFEEE0D2",
|
|
112
|
+
"segments": [],
|
|
113
|
+
"type": "video"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"attribute": 0,
|
|
117
|
+
"flag": 0,
|
|
118
|
+
"id": "E60E2C22-6F37-407B-9BEC-BA8900BF1041",
|
|
119
|
+
"segments": [],
|
|
120
|
+
"type": "audio"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"attribute": 0,
|
|
124
|
+
"flag": 1,
|
|
125
|
+
"id": "EC514920-CD5C-43CF-B09C-1F78EF7DBCF5",
|
|
126
|
+
"segments": [],
|
|
127
|
+
"type": "text"
|
|
128
|
+
}
|
|
129
|
+
],
|
|
130
|
+
"update_time": 0,
|
|
131
|
+
"version": 360000
|
|
132
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"draft_cloud_last_action_download": false,
|
|
3
|
+
"draft_cloud_purchase_info": "",
|
|
4
|
+
"draft_cloud_template_id": "",
|
|
5
|
+
"draft_cloud_tutorial_info": "",
|
|
6
|
+
"draft_cloud_videocut_purchase_info": "",
|
|
7
|
+
"draft_cover": "",
|
|
8
|
+
"draft_deeplink_url": "",
|
|
9
|
+
"draft_enterprise_info": {
|
|
10
|
+
"draft_enterprise_extra": "",
|
|
11
|
+
"draft_enterprise_id": "",
|
|
12
|
+
"draft_enterprise_name": ""
|
|
13
|
+
},
|
|
14
|
+
"draft_fold_path": "",
|
|
15
|
+
"draft_id": "18B14588-7A23-4A14-A0ED-BCA9C2152DB8",
|
|
16
|
+
"draft_is_article_video_draft": false,
|
|
17
|
+
"draft_is_from_deeplink": "false",
|
|
18
|
+
"draft_materials": [
|
|
19
|
+
{
|
|
20
|
+
"type": 0,
|
|
21
|
+
"value": []
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"type": 1,
|
|
25
|
+
"value": []
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"type": 2,
|
|
29
|
+
"value": []
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"type": 3,
|
|
33
|
+
"value": []
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"type": 6,
|
|
37
|
+
"value": []
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"type": 7,
|
|
41
|
+
"value": []
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"type": 8,
|
|
45
|
+
"value": []
|
|
46
|
+
}
|
|
47
|
+
],
|
|
48
|
+
"draft_materials_copied_info": [],
|
|
49
|
+
"draft_name": "",
|
|
50
|
+
"draft_removable_storage_device": "",
|
|
51
|
+
"draft_root_path": "",
|
|
52
|
+
"draft_segment_extra_info": [],
|
|
53
|
+
"draft_timeline_materials_size_": 2075,
|
|
54
|
+
"tm_draft_cloud_completed": "",
|
|
55
|
+
"tm_draft_cloud_modified": 0,
|
|
56
|
+
"tm_draft_create": 1686707414251596,
|
|
57
|
+
"tm_draft_modified": 2686707417166183,
|
|
58
|
+
"tm_duration": 0
|
|
59
|
+
}
|