cutsdk 1.1.5 → 1.1.7

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.
@@ -1 +1 @@
1
- {"version":3,"file":"list-drafts.d.ts","sourceRoot":"","sources":["../../../src/api/draft/list-drafts.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,wBAAsB,UAAU,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CA0C3D"}
1
+ {"version":3,"file":"list-drafts.d.ts","sourceRoot":"","sources":["../../../src/api/draft/list-drafts.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,wBAAsB,UAAU,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CA2C3D"}
@@ -28,6 +28,7 @@ async function listDrafts() {
28
28
  if (fs_1.default.existsSync(metaPath)) {
29
29
  try {
30
30
  const meta = JSON.parse(fs_1.default.readFileSync(metaPath, 'utf-8'));
31
+ item.draftId = meta.draft_id || item.draftId;
31
32
  item.name = meta.draft_name || entry.name;
32
33
  if (meta.tm_draft_create)
33
34
  item.createdAt = meta.tm_draft_create;
@@ -1 +1 @@
1
- {"version":3,"file":"list-drafts.js","sourceRoot":"","sources":["../../../src/api/draft/list-drafts.ts"],"names":[],"mappings":";;;;;AAKA,gCA0CC;AA/CD,4CAAoB;AACpB,gDAAwB;AACxB,yCAAsC;AAG/B,KAAK,UAAU,UAAU;IAC9B,MAAM,SAAS,GAAG,eAAM,CAAC,SAAS,CAAC;IACnC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IAEzC,MAAM,OAAO,GAAG,YAAE,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACnE,MAAM,KAAK,GAAoB,EAAE,CAAC;IAElC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAAE,SAAS;QAEnC,MAAM,GAAG,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;QAExD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,SAAS;QAE1C,MAAM,IAAI,GAAkB;YAC1B,OAAO,EAAE,KAAK,CAAC,IAAI;YACnB,QAAQ,EAAE,GAAG;SACd,CAAC;QAEF,IAAI,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC5D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,IAAI,CAAC;gBAC1C,IAAI,IAAI,CAAC,eAAe;oBAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC;gBAChE,IAAI,IAAI,CAAC,iBAAiB;oBAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACvE,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC;YAChD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QAEV,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC;IAChE,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"list-drafts.js","sourceRoot":"","sources":["../../../src/api/draft/list-drafts.ts"],"names":[],"mappings":";;;;;AAKA,gCA2CC;AAhDD,4CAAoB;AACpB,gDAAwB;AACxB,yCAAsC;AAG/B,KAAK,UAAU,UAAU;IAC9B,MAAM,SAAS,GAAG,eAAM,CAAC,SAAS,CAAC;IACnC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IAEzC,MAAM,OAAO,GAAG,YAAE,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACnE,MAAM,KAAK,GAAoB,EAAE,CAAC;IAElC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAAE,SAAS;QAEnC,MAAM,GAAG,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;QAExD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,SAAS;QAE1C,MAAM,IAAI,GAAkB;YAC1B,OAAO,EAAE,KAAK,CAAC,IAAI;YACnB,QAAQ,EAAE,GAAG;SACd,CAAC;QAEF,IAAI,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC5D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC;gBAC7C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,IAAI,CAAC;gBAC1C,IAAI,IAAI,CAAC,eAAe;oBAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC;gBAChE,IAAI,IAAI,CAAC,iBAAiB;oBAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC;YACvE,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC;YAChD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QAEV,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC;IAChE,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-and-render-draft.d.ts","sourceRoot":"","sources":["../../../src/api/draft-spec/create-and-render-draft.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,yBAAyB,EAAE,0BAA0B,EAAwB,MAAM,aAAa,CAAC;AAG/G,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAmChH"}
1
+ {"version":3,"file":"create-and-render-draft.d.ts","sourceRoot":"","sources":["../../../src/api/draft-spec/create-and-render-draft.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,yBAAyB,EAAE,0BAA0B,EAAwB,MAAM,aAAa,CAAC;AAG/G,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAiChH"}
@@ -8,6 +8,7 @@ const fs_1 = __importDefault(require("fs"));
8
8
  const path_1 = __importDefault(require("path"));
9
9
  const config_1 = require("../../config");
10
10
  const render_draft_1 = require("../cloud/render-draft");
11
+ const errors_1 = require("../../shared/errors");
11
12
  const create_draft_from_spec_1 = require("./create-draft-from-spec");
12
13
  async function createAndRenderDraft(input) {
13
14
  const draftsDir = input.output?.draftsDir;
@@ -15,9 +16,7 @@ async function createAndRenderDraft(input) {
15
16
  config_1.config.draftsDir = draftsDir;
16
17
  }
17
18
  const draft = await (0, create_draft_from_spec_1.createDraftFromSpec)(input.draft);
18
- if (input.output?.name) {
19
- setDraftDisplayName(draft.filePath, input.output.name);
20
- }
19
+ finalizeDraftOutput(draft, input.output?.name);
21
20
  if (input.afterCreate) {
22
21
  await input.afterCreate({
23
22
  draft,
@@ -47,17 +46,6 @@ function findCreatedClip(clips, type, index) {
47
46
  }
48
47
  return clip;
49
48
  }
50
- function setDraftDisplayName(draftPath, draftName) {
51
- const metaPath = path_1.default.join(draftPath, 'draft_meta_info.json');
52
- if (!fs_1.default.existsSync(metaPath))
53
- return;
54
- const meta = JSON.parse(fs_1.default.readFileSync(metaPath, 'utf-8'));
55
- meta.draft_name = draftName;
56
- meta.draft_fold_path = draftPath;
57
- meta.draft_root_path = path_1.default.dirname(draftPath);
58
- meta.tm_draft_modified = Date.now() * 1000;
59
- fs_1.default.writeFileSync(metaPath, JSON.stringify(meta), 'utf-8');
60
- }
61
49
  function finalizeDraftOutput(draft, draftName) {
62
50
  const actualPath = resolveActualDraftPath(draft.filePath, draftName);
63
51
  draft.filePath = actualPath;
@@ -79,12 +67,31 @@ function syncDraftMetaPath(draftPath, draftName) {
79
67
  fs_1.default.writeFileSync(metaPath, JSON.stringify(meta), 'utf-8');
80
68
  }
81
69
  function resolveActualDraftPath(draftPath, draftName) {
70
+ if (draftName) {
71
+ return ensureNamedDraftPath(draftPath, draftName);
72
+ }
82
73
  if (fs_1.default.existsSync(draftPath))
83
74
  return draftPath;
84
- if (draftName) {
85
- const namedPath = path_1.default.join(path_1.default.dirname(draftPath), draftName);
86
- if (fs_1.default.existsSync(namedPath))
75
+ return draftPath;
76
+ }
77
+ function ensureNamedDraftPath(draftPath, draftName) {
78
+ const namedPath = path_1.default.join(path_1.default.dirname(draftPath), draftName);
79
+ if (path_1.default.resolve(draftPath) === path_1.default.resolve(namedPath))
80
+ return namedPath;
81
+ if (fs_1.default.existsSync(namedPath)) {
82
+ if (!fs_1.default.existsSync(draftPath))
87
83
  return namedPath;
84
+ throw new errors_1.CutSdkError({
85
+ code: 'DRAFT_OUTPUT_CONFLICT',
86
+ message: `Draft output folder already exists: ${namedPath}`,
87
+ operation: 'createAndRenderDraft',
88
+ path: namedPath,
89
+ details: { draftPath, namedPath, draftName },
90
+ });
91
+ }
92
+ if (fs_1.default.existsSync(draftPath)) {
93
+ fs_1.default.renameSync(draftPath, namedPath);
94
+ return namedPath;
88
95
  }
89
96
  return draftPath;
90
97
  }
@@ -1 +1 @@
1
- {"version":3,"file":"create-and-render-draft.js","sourceRoot":"","sources":["../../../src/api/draft-spec/create-and-render-draft.ts"],"names":[],"mappings":";;;;;AAQA,oDAmCC;AA3CD,4CAAoB;AACpB,gDAAwB;AAExB,yCAAsC;AACtC,wDAAoD;AAEpD,qEAA+D;AAExD,KAAK,UAAU,oBAAoB,CAAC,KAAgC;IACzE,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC;IAC1C,IAAI,SAAS,EAAE,CAAC;QACd,eAAM,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,IAAA,4CAAmB,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrD,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;QACvB,mBAAmB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,MAAM,KAAK,CAAC,WAAW,CAAC;YACtB,KAAK;YACL,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;SACrE,CAAC,CAAC;IACL,CAAC;IACD,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE/C,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC;IACnC,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;QACpD,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAW,EAAC;QAC/B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,SAAS,EAAE,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ;QAC7C,QAAQ,EAAE,aAAa,CAAC,QAAQ;QAChC,OAAO,EAAE,aAAa,CAAC,OAAO;QAC9B,IAAI,EAAE,aAAa,CAAC,IAAI;QACxB,cAAc,EAAE,aAAa,CAAC,cAAc;QAC5C,SAAS,EAAE,aAAa,CAAC,SAAS;KACnC,CAAC,CAAC;IAEH,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC;AAED,SAAS,eAAe,CACtB,KAA6B,EAC7B,IAAkC,EAClC,KAAa;IAEb,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;IAC/D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAAC,SAAiB,EAAE,SAAiB;IAC/D,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;IAC9D,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO;IAErC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5D,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC5B,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;IACjC,IAAI,CAAC,eAAe,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IAC3C,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AAC5D,CAAC;AAUD,SAAS,mBAAmB,CAAC,KAAsB,EAAE,SAAkB;IACrE,MAAM,UAAU,GAAG,sBAAsB,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACrE,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;IAC5B,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;IAC9B,KAAK,CAAC,WAAW,GAAG,SAAS,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC;IACpE,KAAK,CAAC,eAAe,GAAG,cAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAClD,iBAAiB,CAAC,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,iBAAiB,CAAC,SAAiB,EAAE,SAAkB;IAC9D,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;IAC9D,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO;IAErC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5D,IAAI,SAAS;QAAE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC3C,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;IACjC,IAAI,CAAC,eAAe,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IAC3C,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,sBAAsB,CAAC,SAAiB,EAAE,SAAkB;IACnE,IAAI,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IAE/C,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,cAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;QAChE,IAAI,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IACjD,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"create-and-render-draft.js","sourceRoot":"","sources":["../../../src/api/draft-spec/create-and-render-draft.ts"],"names":[],"mappings":"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"}
@@ -81,7 +81,7 @@ console.log(result.draft.filePath);
81
81
  - 包导入名是 `cutsdk`。
82
82
  - 低层 SDK 的数字时间单位是微秒,`1s = 1000000`。
83
83
  - AI Draft Spec 和 `cutcli` 便捷命令可写 `1.5s`、`500ms`、`300000us`。
84
- - 默认草稿目录是 `~/Movies/JianyingPro Drafts/{draftId}/`;可通过 `CUT_DRAFTS_DIR` 或 `createAndRenderDraft().output.draftsDir` 覆盖。
84
+ - 默认草稿目录是 `~/Movies/JianyingPro Drafts/{draftId}/`;可通过 `CUT_DRAFTS_DIR` 或 `createAndRenderDraft().output.draftsDir` 覆盖;传入 `output.name` 时,SDK 会使用显示名文件夹,并保持 `result.draft.actualPath`、`result.draft.filePath` 与 `listDrafts().filePath` 一致。
85
85
  - 媒体本地路径和 URL 都可用:本地路径会复制到草稿 `resources/`,URL 会下载到 `resources/`。
86
86
  - 图片必须提供 `width` 和 `height`。
87
87
  - 使用低层 API 添加视频或音频时,要提供素材原始时长。
@@ -127,4 +127,5 @@ cutcli config doctor --pretty
127
127
 
128
128
  - 更友好的 Spec 模板 DSL 可以建立在 Draft Spec 之上,例如 `createMontage({ output, canvas, durationPerImage, images, captions, style })`,内部展开为标准 Draft Spec。
129
129
  - 后续 SDK 可在 Spec validate 阶段校验转场名,错误提示应类似:`transition xxx not found,建议使用素材浏览器或 query transitions 返回的名称`。
130
- - 后续 SDK 可返回 `actualPath`、`displayName`、`draftFolderName`,并支持 `cleanupOnFailure: true` 清理失败半成品。
130
+ - SDK 已支持返回 `actualPath`、`displayName`、`draftFolderName`,并在传入 `output.name` 时稳定采用显示名文件夹;生成后注意校验 `actualPath` / `filePath` 是否与 `listDrafts().filePath` 一致。
131
+ - 后续 SDK 可支持 `cleanupOnFailure: true` 清理失败半成品。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cutsdk",
3
- "version": "1.1.5",
3
+ "version": "1.1.7",
4
4
  "description": "CapCut 草稿 Node.js SDK — 用代码批量创建剪映标准草稿,支持字幕/图片/视频/音频/特效/贴纸/关键帧/遮罩",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",