speccore 5.86.0 → 5.87.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 (35) hide show
  1. package/dist/commands/analyze.d.ts.map +1 -1
  2. package/dist/commands/analyze.js +35 -10
  3. package/dist/commands/analyze.js.map +1 -1
  4. package/dist/commands/doc2spec.js +13 -1
  5. package/dist/commands/doc2spec.js.map +1 -1
  6. package/dist/commands/import.d.ts.map +1 -1
  7. package/dist/commands/import.js +18 -1
  8. package/dist/commands/import.js.map +1 -1
  9. package/dist/commands/init.d.ts +8 -5
  10. package/dist/commands/init.d.ts.map +1 -1
  11. package/dist/commands/init.js +26 -104
  12. package/dist/commands/init.js.map +1 -1
  13. package/dist/commands/iteration/split.d.ts.map +1 -1
  14. package/dist/commands/iteration/split.js +16 -2
  15. package/dist/commands/iteration/split.js.map +1 -1
  16. package/dist/commands/iteration-from-global.d.ts.map +1 -1
  17. package/dist/commands/iteration-from-global.js +13 -1
  18. package/dist/commands/iteration-from-global.js.map +1 -1
  19. package/dist/commands/migrate.d.ts.map +1 -1
  20. package/dist/commands/migrate.js +17 -1
  21. package/dist/commands/migrate.js.map +1 -1
  22. package/dist/commands/pattern.d.ts.map +1 -1
  23. package/dist/commands/pattern.js +20 -4
  24. package/dist/commands/pattern.js.map +1 -1
  25. package/dist/commands/update.d.ts.map +1 -1
  26. package/dist/commands/update.js +8 -10
  27. package/dist/commands/update.js.map +1 -1
  28. package/dist/core/global-artifacts.d.ts.map +1 -1
  29. package/dist/core/global-artifacts.js +5 -4
  30. package/dist/core/global-artifacts.js.map +1 -1
  31. package/dist/utils/task-utils.d.ts +5 -0
  32. package/dist/utils/task-utils.d.ts.map +1 -1
  33. package/dist/utils/task-utils.js +14 -0
  34. package/dist/utils/task-utils.js.map +1 -1
  35. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"global-artifacts.d.ts","sourceRoot":"","sources":["../../src/core/global-artifacts.ts"],"names":[],"mappings":"AAoBA,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqC7F"}
1
+ {"version":3,"file":"global-artifacts.d.ts","sourceRoot":"","sources":["../../src/core/global-artifacts.ts"],"names":[],"mappings":"AAqBA,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqC7F"}
@@ -7,14 +7,15 @@ exports.generateGlobalArtifacts = generateGlobalArtifacts;
7
7
  const fs_extra_1 = require("fs-extra");
8
8
  const path_1 = require("path");
9
9
  const logger_1 = require("../utils/logger");
10
- /** 写入前检查冲突:内容不同则旧文件重命名为 *-old */
10
+ /** 写入前检查冲突:内容不同则旧文件重命名为时间戳格式 */
11
11
  async function safeWrite(filePath, newContent) {
12
12
  if (await (0, fs_extra_1.pathExists)(filePath)) {
13
13
  const existing = await (0, fs_extra_1.readFile)(filePath, 'utf-8');
14
14
  if (existing.trim() !== newContent.trim()) {
15
- const oldPath = filePath.replace(/\.md$/, '-old.md');
16
- await (0, fs_extra_1.rename)(filePath, oldPath);
17
- logger_1.logger.info(` ⚠️ 冲突: ${(0, path_1.join)('.', filePath)} → 旧版保存为 ${(0, path_1.join)('.', oldPath)}`);
15
+ const ts = new Date().toISOString().replace(/[-:T]/g, '').slice(0, 14);
16
+ const backupPath = filePath.replace(/\.md$/, `-${ts}.md`);
17
+ await (0, fs_extra_1.rename)(filePath, backupPath);
18
+ logger_1.logger.info(` ⚠️ 冲突: ${(0, path_1.join)('.', filePath)} → 旧版重命名为 ${(0, path_1.join)('.', backupPath)}`);
18
19
  }
19
20
  }
20
21
  await (0, fs_extra_1.writeFile)(filePath, newContent);
@@ -1 +1 @@
1
- {"version":3,"file":"global-artifacts.js","sourceRoot":"","sources":["../../src/core/global-artifacts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"global-artifacts.js","sourceRoot":"","sources":["../../src/core/global-artifacts.ts"],"names":[],"mappings":";;AAqBA,0DAqCC;AA1DD;;GAEG;AACH,uCAA8E;AAC9E,+BAA4B;AAC5B,4CAAyC;AAEzC,gCAAgC;AAChC,KAAK,UAAU,SAAS,CAAC,QAAgB,EAAE,UAAkB;IAC3D,IAAI,MAAM,IAAA,qBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,MAAM,IAAA,mBAAQ,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnD,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;YAC1C,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvE,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC1D,MAAM,IAAA,iBAAM,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACnC,eAAM,CAAC,IAAI,CAAC,cAAc,IAAA,WAAI,EAAC,GAAG,EAAE,QAAQ,CAAC,aAAa,IAAA,WAAI,EAAC,GAAG,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IACD,MAAM,IAAA,oBAAS,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACxC,CAAC;AAEM,KAAK,UAAU,uBAAuB,CAAC,OAAiB,EAAE,KAAa;IAC5E,MAAM,SAAS,GAAG,IAAA,WAAI,EAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC9C,MAAM,IAAA,oBAAS,EAAC,SAAS,CAAC,CAAC;IAC3B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnD,gBAAgB;IAChB,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,SAAS,CAAC,IAAA,WAAI,EAAC,SAAS,EAAE,eAAe,CAAC,EAAE;QAChD,YAAY;QACZ,WAAW,GAAG,GAAG;QACjB,EAAE;QACF,SAAS,IAAI,cAAc;KAC5B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAEd,gBAAgB;IAChB,MAAM,SAAS,CAAC,IAAA,WAAI,EAAC,SAAS,EAAE,eAAe,CAAC,EAAE;QAChD,UAAU;QACV,WAAW,GAAG,GAAG;QACjB,EAAE;QACF,yBAAyB;QACzB,+BAA+B;QAC/B,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,GAAG,0BAA0B,CAAC;KAC5D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAEd,iBAAiB;IACjB,MAAM,SAAS,CAAC,IAAA,WAAI,EAAC,SAAS,EAAE,gBAAgB,CAAC,EAAE;QACjD,UAAU;QACV,YAAY,GAAG,GAAG;QAClB,EAAE;QACF,WAAW;QACX,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC;QACpC,EAAE;QACF,aAAa;QACb,0BAA0B;KAC3B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAEd,eAAM,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;AAC5E,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,OAAiB;IAC9C,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAC1C,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC1D,MAAM,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC,YAAY,EAAE,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;gBAC7D,MAAM,UAAU,GAAa,EAAE,CAAC;gBAChC,IAAI,IAAI,CAAC,OAAO,CAAC;oBAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC5C,IAAI,IAAI,CAAC,KAAK,CAAC;oBAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACzC,IAAI,IAAI,CAAC,eAAe,CAAC;oBAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACtD,IAAI,IAAI,CAAC,SAAS,CAAC;oBAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAChD,IAAI,IAAI,CAAC,MAAM,CAAC;oBAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC7C,IAAI,IAAI,CAAC,cAAc,CAAC;oBAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACpD,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,cAAc,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACtG,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;QAED,MAAM,OAAO,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACrC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC9C,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;YAChF,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,WAAW,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7E,CAAC;QAED,IAAI,EAAE,CAAC,UAAU,CAAC,IAAA,WAAI,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;YACvC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,QAAQ,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,EAAE,CAAC,UAAU,CAAC,IAAA,WAAI,EAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAA,WAAI,EAAC,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;YACzF,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,YAAY,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,gCAAgC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpH,CAAC"}
@@ -40,6 +40,11 @@ export declare function now(): string;
40
40
  * 返回备份文件路径(无旧文件则返回 null)
41
41
  */
42
42
  export declare function backupWithTimestamp(filePath: string): Promise<string | null>;
43
+ /**
44
+ * 目录备份:旧目录按时间戳重命名,永不覆盖
45
+ * 返回备份目录路径(无旧目录则返回 null)
46
+ */
47
+ export declare function backupDirWithTimestamp(dirPath: string): Promise<string | null>;
43
48
  /**
44
49
  * 判断文件名是否为时间戳备份文件(如 ANALYSIS-20260813021034.md)
45
50
  */
@@ -1 +1 @@
1
- {"version":3,"file":"task-utils.d.ts","sourceRoot":"","sources":["../../src/utils/task-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAa/C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAM1C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAGzD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CASjE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ3D;AAED;;GAEG;AACH,wBAAgB,KAAK,IAAI,MAAM,CAE9B;AAED;;GAEG;AACH,wBAAgB,GAAG,IAAI,MAAM,CAE5B;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAUlF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,OAAO,GACnB,OAAO,CAAC,OAAO,CAAC,CAelB"}
1
+ {"version":3,"file":"task-utils.d.ts","sourceRoot":"","sources":["../../src/utils/task-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAa/C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAM1C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAGzD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CASjE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ3D;AAED;;GAEG;AACH,wBAAgB,KAAK,IAAI,MAAM,CAE9B;AAED;;GAEG;AACH,wBAAgB,GAAG,IAAI,MAAM,CAE5B;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAUlF;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQpF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,OAAO,GACnB,OAAO,CAAC,OAAO,CAAC,CAelB"}
@@ -14,6 +14,7 @@ exports.readTaskType = readTaskType;
14
14
  exports.today = today;
15
15
  exports.now = now;
16
16
  exports.backupWithTimestamp = backupWithTimestamp;
17
+ exports.backupDirWithTimestamp = backupDirWithTimestamp;
17
18
  exports.isTimestampBackup = isTimestampBackup;
18
19
  exports.shouldOverwrite = shouldOverwrite;
19
20
  const fs_1 = require("fs");
@@ -112,6 +113,19 @@ async function backupWithTimestamp(filePath) {
112
113
  }
113
114
  return null;
114
115
  }
116
+ /**
117
+ * 目录备份:旧目录按时间戳重命名,永不覆盖
118
+ * 返回备份目录路径(无旧目录则返回 null)
119
+ */
120
+ async function backupDirWithTimestamp(dirPath) {
121
+ if (await (0, fs_extra_1.pathExists)(dirPath)) {
122
+ const ts = new Date().toISOString().replace(/[-:T]/g, '').slice(0, 14);
123
+ const backupPath = `${dirPath}-${ts}`;
124
+ await (0, fs_extra_1.rename)(dirPath, backupPath);
125
+ return backupPath;
126
+ }
127
+ return null;
128
+ }
115
129
  /**
116
130
  * 判断文件名是否为时间戳备份文件(如 ANALYSIS-20260813021034.md)
117
131
  */
@@ -1 +1 @@
1
- {"version":3,"file":"task-utils.js","sourceRoot":"","sources":["../../src/utils/task-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-utils.js","sourceRoot":"","sources":["../../src/utils/task-utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "speccore",
3
- "version": "5.86.0",
3
+ "version": "5.87.0",
4
4
  "description": "SpecCore - Code by Spec, Not by Vibe.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",