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.
Files changed (439) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +130 -0
  3. package/dist/api/audios/add-audios.d.ts +3 -0
  4. package/dist/api/audios/add-audios.d.ts.map +1 -0
  5. package/dist/api/audios/add-audios.js +33 -0
  6. package/dist/api/audios/add-audios.js.map +1 -0
  7. package/dist/api/audios/get-audios.d.ts +5 -0
  8. package/dist/api/audios/get-audios.d.ts.map +1 -0
  9. package/dist/api/audios/get-audios.js +27 -0
  10. package/dist/api/audios/get-audios.js.map +1 -0
  11. package/dist/api/captions/add-captions.d.ts +3 -0
  12. package/dist/api/captions/add-captions.d.ts.map +1 -0
  13. package/dist/api/captions/add-captions.js +220 -0
  14. package/dist/api/captions/add-captions.js.map +1 -0
  15. package/dist/api/captions/get-captions.d.ts +5 -0
  16. package/dist/api/captions/get-captions.d.ts.map +1 -0
  17. package/dist/api/captions/get-captions.js +36 -0
  18. package/dist/api/captions/get-captions.js.map +1 -0
  19. package/dist/api/cloud/render-draft.d.ts +11 -0
  20. package/dist/api/cloud/render-draft.d.ts.map +1 -0
  21. package/dist/api/cloud/render-draft.js +203 -0
  22. package/dist/api/cloud/render-draft.js.map +1 -0
  23. package/dist/api/cloud/submit-video-render-task.d.ts +4 -0
  24. package/dist/api/cloud/submit-video-render-task.d.ts.map +1 -0
  25. package/dist/api/cloud/submit-video-render-task.js +54 -0
  26. package/dist/api/cloud/submit-video-render-task.js.map +1 -0
  27. package/dist/api/cloud/upload-draft.d.ts +4 -0
  28. package/dist/api/cloud/upload-draft.d.ts.map +1 -0
  29. package/dist/api/cloud/upload-draft.js +89 -0
  30. package/dist/api/cloud/upload-draft.js.map +1 -0
  31. package/dist/api/draft/create-draft.d.ts +3 -0
  32. package/dist/api/draft/create-draft.d.ts.map +1 -0
  33. package/dist/api/draft/create-draft.js +11 -0
  34. package/dist/api/draft/create-draft.js.map +1 -0
  35. package/dist/api/draft/easy-create-material.d.ts +3 -0
  36. package/dist/api/draft/easy-create-material.d.ts.map +1 -0
  37. package/dist/api/draft/easy-create-material.js +64 -0
  38. package/dist/api/draft/easy-create-material.js.map +1 -0
  39. package/dist/api/draft/get-draft-info.d.ts +5 -0
  40. package/dist/api/draft/get-draft-info.d.ts.map +1 -0
  41. package/dist/api/draft/get-draft-info.js +35 -0
  42. package/dist/api/draft/get-draft-info.js.map +1 -0
  43. package/dist/api/draft/list-drafts.d.ts +3 -0
  44. package/dist/api/draft/list-drafts.d.ts.map +1 -0
  45. package/dist/api/draft/list-drafts.js +51 -0
  46. package/dist/api/draft/list-drafts.js.map +1 -0
  47. package/dist/api/draft-spec/create-and-render-draft.d.ts +3 -0
  48. package/dist/api/draft-spec/create-and-render-draft.d.ts.map +1 -0
  49. package/dist/api/draft-spec/create-and-render-draft.js +70 -0
  50. package/dist/api/draft-spec/create-and-render-draft.js.map +1 -0
  51. package/dist/api/draft-spec/create-draft-from-spec.d.ts +4 -0
  52. package/dist/api/draft-spec/create-draft-from-spec.d.ts.map +1 -0
  53. package/dist/api/draft-spec/create-draft-from-spec.js +96 -0
  54. package/dist/api/draft-spec/create-draft-from-spec.js.map +1 -0
  55. package/dist/api/draft-spec/resolve.d.ts +21 -0
  56. package/dist/api/draft-spec/resolve.d.ts.map +1 -0
  57. package/dist/api/draft-spec/resolve.js +279 -0
  58. package/dist/api/draft-spec/resolve.js.map +1 -0
  59. package/dist/api/draft-spec/time.d.ts +17 -0
  60. package/dist/api/draft-spec/time.d.ts.map +1 -0
  61. package/dist/api/draft-spec/time.js +56 -0
  62. package/dist/api/draft-spec/time.js.map +1 -0
  63. package/dist/api/draft-spec/validation.d.ts +3 -0
  64. package/dist/api/draft-spec/validation.d.ts.map +1 -0
  65. package/dist/api/draft-spec/validation.js +179 -0
  66. package/dist/api/draft-spec/validation.js.map +1 -0
  67. package/dist/api/effects/add-effects.d.ts +3 -0
  68. package/dist/api/effects/add-effects.d.ts.map +1 -0
  69. package/dist/api/effects/add-effects.js +24 -0
  70. package/dist/api/effects/add-effects.js.map +1 -0
  71. package/dist/api/effects/get-effects.d.ts +5 -0
  72. package/dist/api/effects/get-effects.d.ts.map +1 -0
  73. package/dist/api/effects/get-effects.js +23 -0
  74. package/dist/api/effects/get-effects.js.map +1 -0
  75. package/dist/api/images/add-images.d.ts +3 -0
  76. package/dist/api/images/add-images.d.ts.map +1 -0
  77. package/dist/api/images/add-images.js +67 -0
  78. package/dist/api/images/add-images.js.map +1 -0
  79. package/dist/api/images/get-images.d.ts +5 -0
  80. package/dist/api/images/get-images.d.ts.map +1 -0
  81. package/dist/api/images/get-images.js +30 -0
  82. package/dist/api/images/get-images.js.map +1 -0
  83. package/dist/api/keyframes/add-keyframes.d.ts +3 -0
  84. package/dist/api/keyframes/add-keyframes.d.ts.map +1 -0
  85. package/dist/api/keyframes/add-keyframes.js +21 -0
  86. package/dist/api/keyframes/add-keyframes.js.map +1 -0
  87. package/dist/api/keyframes/get-keyframes.d.ts +6 -0
  88. package/dist/api/keyframes/get-keyframes.d.ts.map +1 -0
  89. package/dist/api/keyframes/get-keyframes.js +41 -0
  90. package/dist/api/keyframes/get-keyframes.js.map +1 -0
  91. package/dist/api/masks/add-masks.d.ts +3 -0
  92. package/dist/api/masks/add-masks.d.ts.map +1 -0
  93. package/dist/api/masks/add-masks.js +63 -0
  94. package/dist/api/masks/add-masks.js.map +1 -0
  95. package/dist/api/masks/get-masks.d.ts +6 -0
  96. package/dist/api/masks/get-masks.d.ts.map +1 -0
  97. package/dist/api/masks/get-masks.js +44 -0
  98. package/dist/api/masks/get-masks.js.map +1 -0
  99. package/dist/api/query/get-audio-duration.d.ts +3 -0
  100. package/dist/api/query/get-audio-duration.d.ts.map +1 -0
  101. package/dist/api/query/get-audio-duration.js +12 -0
  102. package/dist/api/query/get-audio-duration.js.map +1 -0
  103. package/dist/api/query/get-image-animations.d.ts +3 -0
  104. package/dist/api/query/get-image-animations.d.ts.map +1 -0
  105. package/dist/api/query/get-image-animations.js +21 -0
  106. package/dist/api/query/get-image-animations.js.map +1 -0
  107. package/dist/api/query/get-text-effects.d.ts +4 -0
  108. package/dist/api/query/get-text-effects.d.ts.map +1 -0
  109. package/dist/api/query/get-text-effects.js +36 -0
  110. package/dist/api/query/get-text-effects.js.map +1 -0
  111. package/dist/api/setup/templates/project/.agents/skills/cut-draft/SKILL.md +92 -0
  112. package/dist/api/setup/templates/project/cutcli-docs/.env.example +6 -0
  113. package/dist/api/setup/templates/project/cutcli-docs/README.md +95 -0
  114. package/dist/api/setup/templates/project/cutcli-docs/api-cheatsheet.md +156 -0
  115. package/dist/api/setup/templates/project/cutcli-docs/examples/01-create-draft.ts +43 -0
  116. package/dist/api/setup/templates/project/cutcli-docs/examples/02-draft-spec.ts +73 -0
  117. package/dist/api/setup/templates/project/cutcli-docs/examples/03-create-and-render.ts +66 -0
  118. package/dist/api/setup/templates/project/cutcli-docs/examples/04-cli-examples.md +109 -0
  119. package/dist/api/setup/templates/project/cutcli-docs/quickstart.md +130 -0
  120. package/dist/api/sticker/add-sticker.d.ts +3 -0
  121. package/dist/api/sticker/add-sticker.d.ts.map +1 -0
  122. package/dist/api/sticker/add-sticker.js +22 -0
  123. package/dist/api/sticker/add-sticker.js.map +1 -0
  124. package/dist/api/sticker/get-stickers.d.ts +5 -0
  125. package/dist/api/sticker/get-stickers.d.ts.map +1 -0
  126. package/dist/api/sticker/get-stickers.js +23 -0
  127. package/dist/api/sticker/get-stickers.js.map +1 -0
  128. package/dist/api/text-style/add-text-style.d.ts +3 -0
  129. package/dist/api/text-style/add-text-style.d.ts.map +1 -0
  130. package/dist/api/text-style/add-text-style.js +25 -0
  131. package/dist/api/text-style/add-text-style.js.map +1 -0
  132. package/dist/api/videos/add-videos.d.ts +3 -0
  133. package/dist/api/videos/add-videos.d.ts.map +1 -0
  134. package/dist/api/videos/add-videos.js +84 -0
  135. package/dist/api/videos/add-videos.js.map +1 -0
  136. package/dist/api/videos/get-videos.d.ts +5 -0
  137. package/dist/api/videos/get-videos.d.ts.map +1 -0
  138. package/dist/api/videos/get-videos.js +30 -0
  139. package/dist/api/videos/get-videos.js.map +1 -0
  140. package/dist/config/index.d.ts +11 -0
  141. package/dist/config/index.d.ts.map +1 -0
  142. package/dist/config/index.js +27 -0
  143. package/dist/config/index.js.map +1 -0
  144. package/dist/draft/drafts/AudioMaterial.d.ts +41 -0
  145. package/dist/draft/drafts/AudioMaterial.d.ts.map +1 -0
  146. package/dist/draft/drafts/AudioMaterial.js +45 -0
  147. package/dist/draft/drafts/AudioMaterial.js.map +1 -0
  148. package/dist/draft/drafts/Draft.d.ts +272 -0
  149. package/dist/draft/drafts/Draft.d.ts.map +1 -0
  150. package/dist/draft/drafts/Draft.js +374 -0
  151. package/dist/draft/drafts/Draft.js.map +1 -0
  152. package/dist/draft/drafts/Effects.d.ts +32 -0
  153. package/dist/draft/drafts/Effects.d.ts.map +1 -0
  154. package/dist/draft/drafts/Effects.js +77 -0
  155. package/dist/draft/drafts/Effects.js.map +1 -0
  156. package/dist/draft/drafts/Huazi.d.ts +47 -0
  157. package/dist/draft/drafts/Huazi.d.ts.map +1 -0
  158. package/dist/draft/drafts/Huazi.js +71 -0
  159. package/dist/draft/drafts/Huazi.js.map +1 -0
  160. package/dist/draft/drafts/Keyframe.d.ts +57 -0
  161. package/dist/draft/drafts/Keyframe.d.ts.map +1 -0
  162. package/dist/draft/drafts/Keyframe.js +66 -0
  163. package/dist/draft/drafts/Keyframe.js.map +1 -0
  164. package/dist/draft/drafts/Mask.d.ts +74 -0
  165. package/dist/draft/drafts/Mask.d.ts.map +1 -0
  166. package/dist/draft/drafts/Mask.js +93 -0
  167. package/dist/draft/drafts/Mask.js.map +1 -0
  168. package/dist/draft/drafts/MediaUtil.d.ts +18 -0
  169. package/dist/draft/drafts/MediaUtil.d.ts.map +1 -0
  170. package/dist/draft/drafts/MediaUtil.js +101 -0
  171. package/dist/draft/drafts/MediaUtil.js.map +1 -0
  172. package/dist/draft/drafts/Qipaos.d.ts +35 -0
  173. package/dist/draft/drafts/Qipaos.d.ts.map +1 -0
  174. package/dist/draft/drafts/Qipaos.js +41 -0
  175. package/dist/draft/drafts/Qipaos.js.map +1 -0
  176. package/dist/draft/drafts/Segments.d.ts +74 -0
  177. package/dist/draft/drafts/Segments.d.ts.map +1 -0
  178. package/dist/draft/drafts/Segments.js +112 -0
  179. package/dist/draft/drafts/Segments.js.map +1 -0
  180. package/dist/draft/drafts/Stickers.d.ts +58 -0
  181. package/dist/draft/drafts/Stickers.d.ts.map +1 -0
  182. package/dist/draft/drafts/Stickers.js +64 -0
  183. package/dist/draft/drafts/Stickers.js.map +1 -0
  184. package/dist/draft/drafts/TextMaterial.d.ts +119 -0
  185. package/dist/draft/drafts/TextMaterial.d.ts.map +1 -0
  186. package/dist/draft/drafts/TextMaterial.js +182 -0
  187. package/dist/draft/drafts/TextMaterial.js.map +1 -0
  188. package/dist/draft/drafts/Track.d.ts +18 -0
  189. package/dist/draft/drafts/Track.d.ts.map +1 -0
  190. package/dist/draft/drafts/Track.js +30 -0
  191. package/dist/draft/drafts/Track.js.map +1 -0
  192. package/dist/draft/drafts/Transitions.d.ts +14 -0
  193. package/dist/draft/drafts/Transitions.d.ts.map +1 -0
  194. package/dist/draft/drafts/Transitions.js +21 -0
  195. package/dist/draft/drafts/Transitions.js.map +1 -0
  196. package/dist/draft/drafts/VideoMaterial.d.ts +87 -0
  197. package/dist/draft/drafts/VideoMaterial.d.ts.map +1 -0
  198. package/dist/draft/drafts/VideoMaterial.js +92 -0
  199. package/dist/draft/drafts/VideoMaterial.js.map +1 -0
  200. package/dist/draft/drafts/add_keyframes_v2.d.ts +2 -0
  201. package/dist/draft/drafts/add_keyframes_v2.d.ts.map +1 -0
  202. package/dist/draft/drafts/add_keyframes_v2.js +281 -0
  203. package/dist/draft/drafts/add_keyframes_v2.js.map +1 -0
  204. package/dist/draft/drafts/add_text_animations.d.ts +7 -0
  205. package/dist/draft/drafts/add_text_animations.d.ts.map +1 -0
  206. package/dist/draft/drafts/add_text_animations.js +29 -0
  207. package/dist/draft/drafts/add_text_animations.js.map +1 -0
  208. package/dist/draft/drafts/add_video_animations.d.ts +7 -0
  209. package/dist/draft/drafts/add_video_animations.d.ts.map +1 -0
  210. package/dist/draft/drafts/add_video_animations.js +29 -0
  211. package/dist/draft/drafts/add_video_animations.js.map +1 -0
  212. package/dist/draft/drafts/add_video_effects.d.ts +27 -0
  213. package/dist/draft/drafts/add_video_effects.d.ts.map +1 -0
  214. package/dist/draft/drafts/add_video_effects.js +11 -0
  215. package/dist/draft/drafts/add_video_effects.js.map +1 -0
  216. package/dist/draft/drafts/data/audio/audio_effect.d.ts +35 -0
  217. package/dist/draft/drafts/data/audio/audio_effect.d.ts.map +1 -0
  218. package/dist/draft/drafts/data/audio/audio_effect.js +98 -0
  219. package/dist/draft/drafts/data/audio/audio_effect.js.map +1 -0
  220. package/dist/draft/drafts/data/audio//346/250/241/346/213/237.json +4275 -0
  221. package/dist/draft/drafts/data/audio//347/216/257/345/242/203.json +1673 -0
  222. package/dist/draft/drafts/data/audio//347/276/216/345/214/226.json +860 -0
  223. package/dist/draft/drafts/data/effect/cn/effect.d.ts +29 -0
  224. package/dist/draft/drafts/data/effect/cn/effect.d.ts.map +1 -0
  225. package/dist/draft/drafts/data/effect/cn/effect.js +122 -0
  226. package/dist/draft/drafts/data/effect/cn/effect.js.map +1 -0
  227. package/dist/draft/drafts/data/effect/cn/huamian/aixing.json +3097 -0
  228. package/dist/draft/drafts/data/effect/cn/huamian/anhei.json +3456 -0
  229. package/dist/draft/drafts/data/effect/cn/huamian/biankuang.json +8201 -0
  230. package/dist/draft/drafts/data/effect/cn/huamian/bling.json +5836 -0
  231. package/dist/draft/drafts/data/effect/cn/huamian/chaoku.json +3554 -0
  232. package/dist/draft/drafts/data/effect/cn/huamian/dianyin.json +624 -0
  233. package/dist/draft/drafts/data/effect/cn/huamian/donggan.json +11193 -0
  234. package/dist/draft/drafts/data/effect/cn/huamian/dv.json +3305 -0
  235. package/dist/draft/drafts/data/effect/cn/huamian/fanwei.json +10631 -0
  236. package/dist/draft/drafts/data/effect/cn/huamian/fenpin.json +1016 -0
  237. package/dist/draft/drafts/data/effect/cn/huamian/fugu.json +7592 -0
  238. package/dist/draft/drafts/data/effect/cn/huamian/guang.json +5614 -0
  239. package/dist/draft/drafts/data/effect/cn/huamian/hot.json +16202 -0
  240. package/dist/draft/drafts/data/effect/cn/huamian/jichu.json +10017 -0
  241. package/dist/draft/drafts/data/effect/cn/huamian/jinfen.json +2545 -0
  242. package/dist/draft/drafts/data/effect/cn/huamian/manhua.json +1897 -0
  243. package/dist/draft/drafts/data/effect/cn/huamian/niuqu.json +2037 -0
  244. package/dist/draft/drafts/data/effect/cn/huamian/touyin.json +1013 -0
  245. package/dist/draft/drafts/data/effect/cn/huamian/wenlin.json +2942 -0
  246. package/dist/draft/drafts/data/effect/cn/huamian/xinnian.json +4627 -0
  247. package/dist/draft/drafts/data/effect/cn/huamian/zhongyi.json +3063 -0
  248. package/dist/draft/drafts/data/effect/cn/huamian/ziran.json +4791 -0
  249. package/dist/draft/drafts/data/effect/cn/huamian/zuixin.json +5677 -0
  250. package/dist/draft/drafts/data/effect/cn/renwu/anhei.json +900 -0
  251. package/dist/draft/drafts/data/effect/cn/renwu/danglian.json +1518 -0
  252. package/dist/draft/drafts/data/effect/cn/renwu/hot.json +20280 -0
  253. package/dist/draft/drafts/data/effect/cn/renwu/huanrao.json +1447 -0
  254. package/dist/draft/drafts/data/effect/cn/renwu/kelong.json +1857 -0
  255. package/dist/draft/drafts/data/effect/cn/renwu/qingxu.json +5641 -0
  256. package/dist/draft/drafts/data/effect/cn/renwu/shenti.json +2827 -0
  257. package/dist/draft/drafts/data/effect/cn/renwu/shoubu.json +742 -0
  258. package/dist/draft/drafts/data/effect/cn/renwu/tousi.json +3129 -0
  259. package/dist/draft/drafts/data/effect/cn/renwu/xingxiang.json +1397 -0
  260. package/dist/draft/drafts/data/effect/cn/renwu/zhuangshi.json +5017 -0
  261. package/dist/draft/drafts/data/font/font.d.ts +11 -0
  262. package/dist/draft/drafts/data/font/font.d.ts.map +1 -0
  263. package/dist/draft/drafts/data/font/font.js +9303 -0
  264. package/dist/draft/drafts/data/font/font.js.map +1 -0
  265. package/dist/draft/drafts/data/font/font_0427.d.ts +3 -0
  266. package/dist/draft/drafts/data/font/font_0427.d.ts.map +1 -0
  267. package/dist/draft/drafts/data/font/font_0427.js +57922 -0
  268. package/dist/draft/drafts/data/font/font_0427.js.map +1 -0
  269. package/dist/draft/drafts/data/font/online_font.d.ts +7 -0
  270. package/dist/draft/drafts/data/font/online_font.d.ts.map +1 -0
  271. package/dist/draft/drafts/data/font/online_font.js +78 -0
  272. package/dist/draft/drafts/data/font/online_font.js.map +1 -0
  273. package/dist/draft/drafts/data/huazi/all_huazi_data.json +94057 -0
  274. package/dist/draft/drafts/data/huazi/online_huazi.d.ts +9 -0
  275. package/dist/draft/drafts/data/huazi/online_huazi.d.ts.map +1 -0
  276. package/dist/draft/drafts/data/huazi/online_huazi.js +163 -0
  277. package/dist/draft/drafts/data/huazi/online_huazi.js.map +1 -0
  278. package/dist/draft/drafts/data/texiao/aixin.json +2555 -0
  279. package/dist/draft/drafts/data/texiao/anhei.json +2909 -0
  280. package/dist/draft/drafts/data/texiao/biankuang.json +5906 -0
  281. package/dist/draft/drafts/data/texiao/bling.json +4171 -0
  282. package/dist/draft/drafts/data/texiao/chaoku.json +1560 -0
  283. package/dist/draft/drafts/data/texiao/dianyin.json +522 -0
  284. package/dist/draft/drafts/data/texiao/donggan.json +6157 -0
  285. package/dist/draft/drafts/data/texiao/dv.json +1796 -0
  286. package/dist/draft/drafts/data/texiao/fenpin.json +712 -0
  287. package/dist/draft/drafts/data/texiao/fenwei.json +4405 -0
  288. package/dist/draft/drafts/data/texiao/fugu.json +4472 -0
  289. package/dist/draft/drafts/data/texiao/guang.json +2297 -0
  290. package/dist/draft/drafts/data/texiao/jichu.json +4929 -0
  291. package/dist/draft/drafts/data/texiao/jinfen.json +1712 -0
  292. package/dist/draft/drafts/data/texiao/manhua.json +1700 -0
  293. package/dist/draft/drafts/data/texiao/niuqu.json +708 -0
  294. package/dist/draft/drafts/data/texiao/remen.json +7147 -0
  295. package/dist/draft/drafts/data/texiao/texiao.d.ts +53 -0
  296. package/dist/draft/drafts/data/texiao/texiao.d.ts.map +1 -0
  297. package/dist/draft/drafts/data/texiao/texiao.js +102 -0
  298. package/dist/draft/drafts/data/texiao/texiao.js.map +1 -0
  299. package/dist/draft/drafts/data/texiao/touyin.json +2354 -0
  300. package/dist/draft/drafts/data/texiao/wenli.json +2118 -0
  301. package/dist/draft/drafts/data/texiao/ziran.json +2882 -0
  302. package/dist/draft/drafts/data/texiao/zongyi.json +2287 -0
  303. package/dist/draft/drafts/data/text/chuchang.d.ts +35 -0
  304. package/dist/draft/drafts/data/text/chuchang.d.ts.map +1 -0
  305. package/dist/draft/drafts/data/text/chuchang.js +4547 -0
  306. package/dist/draft/drafts/data/text/chuchang.js.map +1 -0
  307. package/dist/draft/drafts/data/text/qipao.d.ts +87 -0
  308. package/dist/draft/drafts/data/text/qipao.d.ts.map +1 -0
  309. package/dist/draft/drafts/data/text/qipao.js +17773 -0
  310. package/dist/draft/drafts/data/text/qipao.js.map +1 -0
  311. package/dist/draft/drafts/data/text/ruchang.d.ts +35 -0
  312. package/dist/draft/drafts/data/text/ruchang.d.ts.map +1 -0
  313. package/dist/draft/drafts/data/text/ruchang.js +5363 -0
  314. package/dist/draft/drafts/data/text/ruchang.js.map +1 -0
  315. package/dist/draft/drafts/data/text/text_animations.d.ts +7 -0
  316. package/dist/draft/drafts/data/text/text_animations.d.ts.map +1 -0
  317. package/dist/draft/drafts/data/text/text_animations.js +147 -0
  318. package/dist/draft/drafts/data/text/text_animations.js.map +1 -0
  319. package/dist/draft/drafts/data/text/text_animations.json +26179 -0
  320. package/dist/draft/drafts/data/text/xunhuan.d.ts +35 -0
  321. package/dist/draft/drafts/data/text/xunhuan.d.ts.map +1 -0
  322. package/dist/draft/drafts/data/text/xunhuan.js +3435 -0
  323. package/dist/draft/drafts/data/text/xunhuan.js.map +1 -0
  324. package/dist/draft/drafts/data/tezhi/cn/aixin.json +3625 -0
  325. package/dist/draft/drafts/data/tezhi/cn/biaoqing.json +3269 -0
  326. package/dist/draft/drafts/data/tezhi/cn/bohemanbo.json +3270 -0
  327. package/dist/draft/drafts/data/tezhi/cn/dianshang.json +3269 -0
  328. package/dist/draft/drafts/data/tezhi/cn/dongri.json +3267 -0
  329. package/dist/draft/drafts/data/tezhi/cn/hot.json +3379 -0
  330. package/dist/draft/drafts/data/tezhi/cn/hudie.json +3490 -0
  331. package/dist/draft/drafts/data/tezhi/cn/hudong.json +3328 -0
  332. package/dist/draft/drafts/data/tezhi/cn/hunli.json +3290 -0
  333. package/dist/draft/drafts/data/tezhi/cn/jiari.json +3276 -0
  334. package/dist/draft/drafts/data/tezhi/cn/keai.json +3269 -0
  335. package/dist/draft/drafts/data/tezhi/cn/langman.json +3290 -0
  336. package/dist/draft/drafts/data/tezhi/cn/lvxing.json +3350 -0
  337. package/dist/draft/drafts/data/tezhi/cn/meishi.json +3294 -0
  338. package/dist/draft/drafts/data/tezhi/cn/meizhuang.json +3279 -0
  339. package/dist/draft/drafts/data/tezhi/cn/qingxu1.json +3421 -0
  340. package/dist/draft/drafts/data/tezhi/cn/qingxu2.json +3368 -0
  341. package/dist/draft/drafts/data/tezhi/cn/qingxu3.json +3358 -0
  342. package/dist/draft/drafts/data/tezhi/cn/qingxu4.json +3361 -0
  343. package/dist/draft/drafts/data/tezhi/cn/regeng.json +3292 -0
  344. package/dist/draft/drafts/data/tezhi/cn/vip.json +3336 -0
  345. package/dist/draft/drafts/data/tezhi/cn/vlog.json +3295 -0
  346. package/dist/draft/drafts/data/tezhi/cn/xiari.json +3411 -0
  347. package/dist/draft/drafts/data/tezhi/cn/xinnian.json +3274 -0
  348. package/dist/draft/drafts/data/tezhi/cn/yinyuejie.json +3285 -0
  349. package/dist/draft/drafts/data/tezhi/cn/yundong.json +3267 -0
  350. package/dist/draft/drafts/data/tezhi/cn/zhakai.json +3399 -0
  351. package/dist/draft/drafts/data/tezhi/cn/zhisi.json +3385 -0
  352. package/dist/draft/drafts/data/tezhi/cn_sticker.d.ts +2 -0
  353. package/dist/draft/drafts/data/tezhi/cn_sticker.d.ts.map +1 -0
  354. package/dist/draft/drafts/data/tezhi/cn_sticker.js +41 -0
  355. package/dist/draft/drafts/data/tezhi/cn_sticker.js.map +1 -0
  356. package/dist/draft/drafts/data/transitions/cn/MG/345/212/250/347/224/273.json +880 -0
  357. package/dist/draft/drafts/data/transitions/cn/hot.json +20419 -0
  358. package/dist/draft/drafts/data/transitions/cn//344/272/222/345/212/250emoji.json +820 -0
  359. package/dist/draft/drafts/data/transitions/cn//345/205/211/346/225/210.json +3355 -0
  360. package/dist/draft/drafts/data/transitions/cn//345/210/206/345/211/262.json +2255 -0
  361. package/dist/draft/drafts/data/transitions/cn//345/217/240/345/214/226.json +2206 -0
  362. package/dist/draft/drafts/data/transitions/cn//345/271/273/347/201/257/347/211/207.json +4175 -0
  363. package/dist/draft/drafts/data/transitions/cn//346/211/255/346/233/262.json +2388 -0
  364. package/dist/draft/drafts/data/transitions/cn//346/213/215/346/221/204.json +1546 -0
  365. package/dist/draft/drafts/data/transitions/cn//346/225/205/351/232/234.json +1616 -0
  366. package/dist/draft/drafts/data/transitions/cn//346/226/260/345/271/264.json +2935 -0
  367. package/dist/draft/drafts/data/transitions/cn//346/234/200/346/226/260.json +3167 -0
  368. package/dist/draft/drafts/data/transitions/cn//346/250/241/347/263/212.json +1535 -0
  369. package/dist/draft/drafts/data/transitions/cn//347/273/274/350/211/272.json +904 -0
  370. package/dist/draft/drafts/data/transitions/cn//350/207/252/347/204/266.json +657 -0
  371. package/dist/draft/drafts/data/transitions/cn//350/277/220/351/225/234.json +5283 -0
  372. package/dist/draft/drafts/data/transitions/cn_transitions.d.ts +3 -0
  373. package/dist/draft/drafts/data/transitions/cn_transitions.d.ts.map +1 -0
  374. package/dist/draft/drafts/data/transitions/cn_transitions.js +52 -0
  375. package/dist/draft/drafts/data/transitions/cn_transitions.js.map +1 -0
  376. package/dist/draft/drafts/data/video/group.d.ts +35 -0
  377. package/dist/draft/drafts/data/video/group.d.ts.map +1 -0
  378. package/dist/draft/drafts/data/video/group.js +7496 -0
  379. package/dist/draft/drafts/data/video/group.js.map +1 -0
  380. package/dist/draft/drafts/data/video/ins.d.ts +19 -0
  381. package/dist/draft/drafts/data/video/ins.d.ts.map +1 -0
  382. package/dist/draft/drafts/data/video/ins.js +3046 -0
  383. package/dist/draft/drafts/data/video/ins.js.map +1 -0
  384. package/dist/draft/drafts/data/video/out.d.ts +35 -0
  385. package/dist/draft/drafts/data/video/out.d.ts.map +1 -0
  386. package/dist/draft/drafts/data/video/out.js +1640 -0
  387. package/dist/draft/drafts/data/video/out.js.map +1 -0
  388. package/dist/draft/drafts/data/video/video_animations.d.ts +7 -0
  389. package/dist/draft/drafts/data/video/video_animations.d.ts.map +1 -0
  390. package/dist/draft/drafts/data/video/video_animations.js +138 -0
  391. package/dist/draft/drafts/data/video/video_animations.js.map +1 -0
  392. package/dist/draft/drafts/data/video/video_animations.json +22380 -0
  393. package/dist/draft/drafts/online_effects.d.ts +3 -0
  394. package/dist/draft/drafts/online_effects.d.ts.map +1 -0
  395. package/dist/draft/drafts/online_effects.js +57 -0
  396. package/dist/draft/drafts/online_effects.js.map +1 -0
  397. package/dist/draft/index.d.ts +23 -0
  398. package/dist/draft/index.d.ts.map +1 -0
  399. package/dist/draft/index.js +20 -0
  400. package/dist/draft/index.js.map +1 -0
  401. package/dist/index.d.ts +62 -0
  402. package/dist/index.d.ts.map +1 -0
  403. package/dist/index.js +90 -0
  404. package/dist/index.js.map +1 -0
  405. package/dist/shared/cloud-client.d.ts +59 -0
  406. package/dist/shared/cloud-client.d.ts.map +1 -0
  407. package/dist/shared/cloud-client.js +121 -0
  408. package/dist/shared/cloud-client.js.map +1 -0
  409. package/dist/shared/draft-service.d.ts +9 -0
  410. package/dist/shared/draft-service.d.ts.map +1 -0
  411. package/dist/shared/draft-service.js +91 -0
  412. package/dist/shared/draft-service.js.map +1 -0
  413. package/dist/shared/errors.d.ts +28 -0
  414. package/dist/shared/errors.d.ts.map +1 -0
  415. package/dist/shared/errors.js +138 -0
  416. package/dist/shared/errors.js.map +1 -0
  417. package/dist/shared/logger.d.ts +6 -0
  418. package/dist/shared/logger.d.ts.map +1 -0
  419. package/dist/shared/logger.js +9 -0
  420. package/dist/shared/logger.js.map +1 -0
  421. package/dist/shared/media-downloader.d.ts +14 -0
  422. package/dist/shared/media-downloader.d.ts.map +1 -0
  423. package/dist/shared/media-downloader.js +94 -0
  424. package/dist/shared/media-downloader.js.map +1 -0
  425. package/dist/shared/media.d.ts +6 -0
  426. package/dist/shared/media.d.ts.map +1 -0
  427. package/dist/shared/media.js +117 -0
  428. package/dist/shared/media.js.map +1 -0
  429. package/dist/template/attachment_pc_common.json +1 -0
  430. package/dist/template/draft_agency_config.json +1 -0
  431. package/dist/template/draft_content.json +132 -0
  432. package/dist/template/draft_meta_info.json +59 -0
  433. package/dist/template/template.tmp +1 -0
  434. package/dist/types/index.d.ts +637 -0
  435. package/dist/types/index.d.ts.map +1 -0
  436. package/dist/types/index.js +4 -0
  437. package/dist/types/index.js.map +1 -0
  438. package/package.json +64 -4
  439. 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,6 @@
1
+ export declare const logger: {
2
+ info: (...args: any[]) => void;
3
+ warn: (...args: any[]) => void;
4
+ error: (...args: any[]) => void;
5
+ };
6
+ //# sourceMappingURL=logger.d.ts.map
@@ -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,6 @@
1
+ export declare function getAudioDuration(url: string): Promise<number>;
2
+ export declare function getImageDimensions(url: string): Promise<{
3
+ width: number;
4
+ height: number;
5
+ }>;
6
+ //# sourceMappingURL=media.d.ts.map
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,4CAmBC;AAED,gDAkBC;AA1ED,4DAA+B;AAC/B,4CAAoB;AACpB,gDAAwB;AACxB,qCAAuC;AAEvC,SAAS,KAAK,CAAC,KAAa;IAC1B,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,MAAc,EAAE,SAA4B;IAC1E,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,SAAS,SAAS,oBAAoB,QAAQ,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,YAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,MAAM,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,sBAAsB,SAAS,UAAU,MAAM,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC;AAC3B,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAc;IACvC,MAAM,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/C,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,WAAW,CAAC;IACvC,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,WAAW,CAAC;IACvC,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,WAAW,CAAC;IACvC,IAAI,GAAG,KAAK,OAAO;QAAE,OAAO,YAAY,CAAC;IACzC,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,WAAW,CAAC;IACvC,OAAO,YAAY,CAAC;AACtB,CAAC;AAEM,KAAK,UAAU,gBAAgB,CAAC,GAAW;IAChD,IAAI,CAAC;QACH,MAAM,EAAE,WAAW,EAAE,GAAG,wDAAa,gBAAgB,GAAC,CAAC;QACvD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACvF,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC1C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,oCAAoC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACnE,MAAM,IAAI,oBAAW,CAAC;YACpB,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EAAE,uCAAuC,GAAG,EAAE;YACrD,OAAO,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE;YACpC,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,kBAAkB,CAAC,GAAW;IAClD,IAAI,CAAC;QACH,MAAM,EAAE,SAAS,EAAE,GAAG,wDAAa,YAAY,GAAC,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;IAChE,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,sCAAsC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACrE,MAAM,IAAI,oBAAW,CAAC;YACpB,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EAAE,yCAAyC,GAAG,EAAE;YACvD,OAAO,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE;YACpC,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
@@ -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
+ }