@gnapi/cotester 1.2.4 → 1.2.6

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 (49) hide show
  1. package/dist/analyzer.d.ts +5 -0
  2. package/dist/analyzer.js +7 -2
  3. package/dist/analyzer.js.map +1 -1
  4. package/dist/auditLogger.d.ts +46 -0
  5. package/dist/auditLogger.js +107 -0
  6. package/dist/auditLogger.js.map +1 -0
  7. package/dist/checker.d.ts +3 -1
  8. package/dist/checker.js +1 -0
  9. package/dist/checker.js.map +1 -1
  10. package/dist/cli.js +39 -0
  11. package/dist/cli.js.map +1 -1
  12. package/dist/configManager.d.ts +27 -0
  13. package/dist/configManager.js +87 -17
  14. package/dist/configManager.js.map +1 -1
  15. package/dist/fileWorker.js +6 -1
  16. package/dist/fileWorker.js.map +1 -1
  17. package/dist/frameworkAdapter.d.ts +51 -0
  18. package/dist/frameworkAdapter.js +77 -0
  19. package/dist/frameworkAdapter.js.map +1 -0
  20. package/dist/generator.d.ts +24 -1
  21. package/dist/generator.js +167 -69
  22. package/dist/generator.js.map +1 -1
  23. package/dist/hooksInstaller.d.ts +1 -0
  24. package/dist/hooksInstaller.js +246 -0
  25. package/dist/hooksInstaller.js.map +1 -0
  26. package/dist/importRepairer.d.ts +22 -0
  27. package/dist/importRepairer.js +226 -0
  28. package/dist/importRepairer.js.map +1 -0
  29. package/dist/interfaceShapeResolver.js +8 -3
  30. package/dist/interfaceShapeResolver.js.map +1 -1
  31. package/dist/migrator.d.ts +49 -0
  32. package/dist/migrator.js +335 -0
  33. package/dist/migrator.js.map +1 -0
  34. package/dist/mockGenerator.js +25 -1
  35. package/dist/mockGenerator.js.map +1 -1
  36. package/dist/reporter.d.ts +10 -0
  37. package/dist/reporter.js +270 -0
  38. package/dist/reporter.js.map +1 -0
  39. package/dist/scenarioEngine.js +4 -1
  40. package/dist/scenarioEngine.js.map +1 -1
  41. package/dist/sensitiveValueDetector.d.ts +62 -0
  42. package/dist/sensitiveValueDetector.js +147 -0
  43. package/dist/sensitiveValueDetector.js.map +1 -0
  44. package/dist/sharedMockRegistry.d.ts +27 -0
  45. package/dist/sharedMockRegistry.js +223 -0
  46. package/dist/sharedMockRegistry.js.map +1 -0
  47. package/dist/watcher.js +10 -1
  48. package/dist/watcher.js.map +1 -1
  49. package/package.json +1 -1
@@ -0,0 +1,226 @@
1
+ "use strict";
2
+ /**
3
+ * Broken Import Auto-Repair
4
+ *
5
+ * At watcher startup, scans all cotester-generated test files and validates
6
+ * that their relative import paths resolve to real files on disk.
7
+ *
8
+ * When an import is stale (the source file was moved/renamed), this module:
9
+ * 1. Searches the srcDir for a file with the same basename.
10
+ * 2. If exactly one match is found, rewrites the import path in-place.
11
+ * 3. Logs a warning with the old and new paths.
12
+ * 4. If multiple matches are found, logs an ambiguity warning and skips.
13
+ * 5. If no match is found, logs a warning so the user can act.
14
+ */
15
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ var desc = Object.getOwnPropertyDescriptor(m, k);
18
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
19
+ desc = { enumerable: true, get: function() { return m[k]; } };
20
+ }
21
+ Object.defineProperty(o, k2, desc);
22
+ }) : (function(o, m, k, k2) {
23
+ if (k2 === undefined) k2 = k;
24
+ o[k2] = m[k];
25
+ }));
26
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
27
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
28
+ }) : function(o, v) {
29
+ o["default"] = v;
30
+ });
31
+ var __importStar = (this && this.__importStar) || (function () {
32
+ var ownKeys = function(o) {
33
+ ownKeys = Object.getOwnPropertyNames || function (o) {
34
+ var ar = [];
35
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
36
+ return ar;
37
+ };
38
+ return ownKeys(o);
39
+ };
40
+ return function (mod) {
41
+ if (mod && mod.__esModule) return mod;
42
+ var result = {};
43
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
44
+ __setModuleDefault(result, mod);
45
+ return result;
46
+ };
47
+ })();
48
+ Object.defineProperty(exports, "__esModule", { value: true });
49
+ exports.repairImports = repairImports;
50
+ const fs = __importStar(require("fs"));
51
+ const path = __importStar(require("path"));
52
+ const utils_1 = require("./utils");
53
+ // Matches: from '...' or from "..." (relative paths only — start with . or ..)
54
+ const RELATIVE_IMPORT_RE = /from\s+(['"])(\.\.?\/[^'"]+)\1/g;
55
+ const TESTGEN_MARKER = "// @cotester-generated";
56
+ // ─── Public entry point ───────────────────────────────────────────────────────
57
+ /**
58
+ * Scan all cotester-generated test files and repair any broken relative imports.
59
+ *
60
+ * @param projectRoot Absolute path to the project root.
61
+ * @param config Resolved cotester config (provides testDir and srcDir).
62
+ * @param dryRun When true, log proposed changes without writing files.
63
+ */
64
+ function repairImports(projectRoot, config, dryRun = false) {
65
+ const testRoot = path.resolve(projectRoot, config.testDir);
66
+ const srcRoot = path.resolve(projectRoot, config.srcDir);
67
+ if (!fs.existsSync(testRoot))
68
+ return;
69
+ const testFiles = collectGeneratedTestFiles(testRoot);
70
+ if (testFiles.length === 0)
71
+ return;
72
+ (0, utils_1.log)(`Import repair: scanning ${testFiles.length} generated test file(s)…`, "info");
73
+ let repaired = 0;
74
+ let broken = 0;
75
+ for (const testFile of testFiles) {
76
+ const fileRepaired = repairFileImports(testFile, srcRoot, projectRoot, dryRun);
77
+ repaired += fileRepaired.repaired;
78
+ broken += fileRepaired.broken;
79
+ }
80
+ if (repaired > 0 || broken > 0) {
81
+ const dryTag = dryRun ? " (dry-run)" : "";
82
+ (0, utils_1.log)(`Import repair complete${dryTag}: ${repaired} import(s) fixed, ${broken} unresolvable import(s) skipped.`, broken > 0 ? "warn" : "success");
83
+ }
84
+ else {
85
+ (0, utils_1.log)("Import repair: all imports are up to date.", "info");
86
+ }
87
+ }
88
+ function repairFileImports(testFilePath, srcRoot, projectRoot, dryRun) {
89
+ const stats = { repaired: 0, broken: 0 };
90
+ let content;
91
+ try {
92
+ content = fs.readFileSync(testFilePath, "utf-8");
93
+ }
94
+ catch {
95
+ return stats;
96
+ }
97
+ const testDir = path.dirname(testFilePath);
98
+ let updated = content;
99
+ let needsWrite = false;
100
+ // Reset regex state before each file
101
+ RELATIVE_IMPORT_RE.lastIndex = 0;
102
+ let match;
103
+ while ((match = RELATIVE_IMPORT_RE.exec(content)) !== null) {
104
+ const quote = match[1]; // ' or "
105
+ const importSpec = match[2]; // e.g. ../../src/services/user.service
106
+ // Resolve the import to an absolute file path
107
+ // TypeScript imports omit the .ts extension
108
+ const resolvedBase = path.resolve(testDir, importSpec);
109
+ const resolvedTs = resolvedBase + ".ts";
110
+ // If the file still exists, nothing to do
111
+ if (fs.existsSync(resolvedTs) || fs.existsSync(resolvedBase)) {
112
+ continue;
113
+ }
114
+ // Skip imports that clearly point outside srcRoot (e.g. mock dir imports)
115
+ // We only repair source-file imports; mock imports are regenerated on next run
116
+ const basename = path.basename(importSpec);
117
+ // Search srcRoot for a file with the same basename
118
+ const candidates = findByBasename(srcRoot, basename + ".ts");
119
+ const rel = path.relative(projectRoot, testFilePath).replace(/\\/g, "/");
120
+ if (candidates.length === 0) {
121
+ (0, utils_1.log)(` ⚠ Broken import in ${rel}: '${importSpec}' — source not found (file may have been deleted)`, "warn");
122
+ stats.broken++;
123
+ continue;
124
+ }
125
+ if (candidates.length > 1) {
126
+ const candidateRels = candidates
127
+ .map((c) => path.relative(projectRoot, c).replace(/\\/g, "/"))
128
+ .join(", ");
129
+ (0, utils_1.log)(` ⚠ Broken import in ${rel}: '${importSpec}' — multiple matches found (${candidateRels}), skipping`, "warn");
130
+ stats.broken++;
131
+ continue;
132
+ }
133
+ // Exactly one match — compute new relative import path
134
+ const newTarget = candidates[0];
135
+ const newImportPath = computeRelativeImport(newTarget, testFilePath);
136
+ const oldFull = match[0]; // full match text
137
+ const newFull = `from ${quote}${newImportPath}${quote}`;
138
+ const newTargetRel = path.relative(projectRoot, newTarget).replace(/\\/g, "/");
139
+ (0, utils_1.log)(` ↻ Repaired import in ${rel}: ${quote}${importSpec}${quote} → ${quote}${newImportPath}${quote} (${newTargetRel})`, "warn");
140
+ // Replace only this occurrence (use indexOf for safety — regex exec gives position)
141
+ updated = updated.replace(oldFull, newFull);
142
+ needsWrite = true;
143
+ stats.repaired++;
144
+ // Re-run regex from start since we mutated the string
145
+ RELATIVE_IMPORT_RE.lastIndex = 0;
146
+ // Re-read content so subsequent iterations work on the updated string
147
+ content = updated;
148
+ }
149
+ if (needsWrite && !dryRun) {
150
+ try {
151
+ fs.writeFileSync(testFilePath, updated, "utf-8");
152
+ }
153
+ catch (err) {
154
+ (0, utils_1.log)(` ✖ Failed to write repairs to ${path.relative(projectRoot, testFilePath)}: ${err.message}`, "error");
155
+ }
156
+ }
157
+ return stats;
158
+ }
159
+ // ─── File search helpers ──────────────────────────────────────────────────────
160
+ /**
161
+ * Recursively find files inside `dir` whose name exactly matches `filename`.
162
+ */
163
+ function findByBasename(dir, filename) {
164
+ const SKIP_DIRS = new Set(["node_modules", "dist", ".git", "cotester"]);
165
+ const results = [];
166
+ if (!fs.existsSync(dir))
167
+ return results;
168
+ for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
169
+ const full = path.join(dir, entry.name);
170
+ if (entry.isDirectory()) {
171
+ if (SKIP_DIRS.has(entry.name))
172
+ continue;
173
+ results.push(...findByBasename(full, filename));
174
+ }
175
+ else if (entry.isFile() && entry.name === filename) {
176
+ results.push(full);
177
+ }
178
+ }
179
+ return results;
180
+ }
181
+ /**
182
+ * Collect all cotester-generated `.test.ts` files under `dir` by peeking
183
+ * at the first 100 bytes for the ownership marker.
184
+ */
185
+ function collectGeneratedTestFiles(dir) {
186
+ const results = [];
187
+ if (!fs.existsSync(dir))
188
+ return results;
189
+ for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
190
+ const full = path.join(dir, entry.name);
191
+ if (entry.isDirectory()) {
192
+ results.push(...collectGeneratedTestFiles(full));
193
+ }
194
+ else if (entry.isFile() && entry.name.endsWith(".test.ts")) {
195
+ try {
196
+ const fd = fs.openSync(full, "r");
197
+ const buf = Buffer.alloc(100);
198
+ const bytesRead = fs.readSync(fd, buf, 0, 100, 0);
199
+ fs.closeSync(fd);
200
+ const peek = buf.slice(0, bytesRead).toString("utf-8");
201
+ if (peek.trimStart().startsWith(TESTGEN_MARKER)) {
202
+ results.push(full);
203
+ }
204
+ }
205
+ catch {
206
+ // skip unreadable files
207
+ }
208
+ }
209
+ }
210
+ return results;
211
+ }
212
+ // ─── Path helpers ─────────────────────────────────────────────────────────────
213
+ /**
214
+ * Compute the relative import path from `fromFilePath` to `targetFilePath`,
215
+ * stripping the `.ts` extension (TypeScript convention).
216
+ */
217
+ function computeRelativeImport(targetFilePath, fromFilePath) {
218
+ const targetDir = path.dirname(targetFilePath);
219
+ const fromDir = path.dirname(fromFilePath);
220
+ let rel = path.relative(fromDir, targetDir).replace(/\\/g, "/");
221
+ if (!rel.startsWith("."))
222
+ rel = "./" + rel;
223
+ const basename = path.basename(targetFilePath, ".ts");
224
+ return `${rel}/${basename}`;
225
+ }
226
+ //# sourceMappingURL=importRepairer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"importRepairer.js","sourceRoot":"","sources":["../src/importRepairer.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBH,sCAkCC;AArDD,uCAAyB;AACzB,2CAA6B;AAC7B,mCAA8B;AAG9B,gFAAgF;AAChF,MAAM,kBAAkB,GAAG,iCAAiC,CAAC;AAE7D,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAEhD,iFAAiF;AAEjF;;;;;;GAMG;AACH,SAAgB,aAAa,CACzB,WAAmB,EACnB,MAAqB,EACrB,MAAM,GAAG,KAAK;IAEd,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAEzD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO;IAErC,MAAM,SAAS,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IAEtD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEnC,IAAA,WAAG,EAAC,2BAA2B,SAAS,CAAC,MAAM,0BAA0B,EAAE,MAAM,CAAC,CAAC;IAEnF,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,iBAAiB,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QAC/E,QAAQ,IAAI,YAAY,CAAC,QAAQ,CAAC;QAClC,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC;IAClC,CAAC;IAED,IAAI,QAAQ,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,IAAA,WAAG,EACC,yBAAyB,MAAM,KAAK,QAAQ,qBAAqB,MAAM,kCAAkC,EACzG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAClC,CAAC;IACN,CAAC;SAAM,CAAC;QACJ,IAAA,WAAG,EAAC,4CAA4C,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;AACL,CAAC;AASD,SAAS,iBAAiB,CACtB,YAAoB,EACpB,OAAe,EACf,WAAmB,EACnB,MAAe;IAEf,MAAM,KAAK,GAAgB,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IAEtD,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACD,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3C,IAAI,OAAO,GAAG,OAAO,CAAC;IACtB,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,qCAAqC;IACrC,kBAAkB,CAAC,SAAS,GAAG,CAAC,CAAC;IAEjC,IAAI,KAA6B,CAAC;IAClC,OAAO,CAAC,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAU,SAAS;QAC1C,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAK,uCAAuC;QAExE,8CAA8C;QAC9C,4CAA4C;QAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,YAAY,GAAG,KAAK,CAAC;QAExC,0CAA0C;QAC1C,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC3D,SAAS;QACb,CAAC;QAED,0EAA0E;QAC1E,+EAA+E;QAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAE3C,mDAAmD;QACnD,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,EAAE,QAAQ,GAAG,KAAK,CAAC,CAAC;QAE7D,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAEzE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,IAAA,WAAG,EACC,wBAAwB,GAAG,MAAM,UAAU,mDAAmD,EAC9F,MAAM,CACT,CAAC;YACF,KAAK,CAAC,MAAM,EAAE,CAAC;YACf,SAAS;QACb,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,aAAa,GAAG,UAAU;iBAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;iBAC7D,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,IAAA,WAAG,EACC,wBAAwB,GAAG,MAAM,UAAU,+BAA+B,aAAa,aAAa,EACpG,MAAM,CACT,CAAC;YACF,KAAK,CAAC,MAAM,EAAE,CAAC;YACf,SAAS;QACb,CAAC;QAED,uDAAuD;QACvD,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,aAAa,GAAG,qBAAqB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAErE,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAA8B,kBAAkB;QACzE,MAAM,OAAO,GAAG,QAAQ,KAAK,GAAG,aAAa,GAAG,KAAK,EAAE,CAAC;QAExD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC/E,IAAA,WAAG,EACC,0BAA0B,GAAG,KAAK,KAAK,GAAG,UAAU,GAAG,KAAK,MAAM,KAAK,GAAG,aAAa,GAAG,KAAK,KAAK,YAAY,GAAG,EACnH,MAAM,CACT,CAAC;QAEF,oFAAoF;QACpF,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5C,UAAU,GAAG,IAAI,CAAC;QAClB,KAAK,CAAC,QAAQ,EAAE,CAAC;QAEjB,sDAAsD;QACtD,kBAAkB,CAAC,SAAS,GAAG,CAAC,CAAC;QAEjC,sEAAsE;QACtE,OAAO,GAAG,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC;QACxB,IAAI,CAAC;YACD,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAChB,IAAA,WAAG,EAAC,kCAAkC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;QAC/G,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,iFAAiF;AAEjF;;GAEG;AACH,SAAS,cAAc,CAAC,GAAW,EAAE,QAAgB;IACjD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IACxE,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC;IAExC,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACtB,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;gBAAE,SAAS;YACxC,OAAO,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QACpD,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,SAAS,yBAAyB,CAAC,GAAW;IAC1C,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC;IAExC,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC;QACrD,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3D,IAAI,CAAC;gBACD,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAClC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC9B,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;gBAClD,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBACjB,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACvD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;oBAC9C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACL,wBAAwB;YAC5B,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,iFAAiF;AAEjF;;;GAGG;AACH,SAAS,qBAAqB,CAAC,cAAsB,EAAE,YAAoB;IACvE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAE3C,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAChE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;IAE3C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACtD,OAAO,GAAG,GAAG,IAAI,QAAQ,EAAE,CAAC;AAChC,CAAC"}
@@ -60,6 +60,7 @@ const ts_morph_1 = require("ts-morph");
60
60
  const fs = __importStar(require("fs"));
61
61
  const path = __importStar(require("path"));
62
62
  const mockDataEngine_1 = require("./mockDataEngine");
63
+ const sensitiveValueDetector_1 = require("./sensitiveValueDetector");
63
64
  // ─── Constants ────────────────────────────────────────────────────────────────
64
65
  /** Maximum recursion depth to prevent infinite loops on circular types. */
65
66
  const MAX_DEPTH = 4;
@@ -178,7 +179,11 @@ function buildMockFromType(type, depth) {
178
179
  // ── Primitives ────────────────────────────────────────────────────────────
179
180
  if (type.isString() || type.isStringLiteral()) {
180
181
  const lit = type.isStringLiteral() ? type.getLiteralValue() : undefined;
181
- return typeof lit === "string" ? `'${lit}'` : "'test-value'";
182
+ if (typeof lit === "string") {
183
+ const safe = (0, sensitiveValueDetector_1.sanitizeRawValue)(lit, "string literal type");
184
+ return `'${safe}'`;
185
+ }
186
+ return "'test-value'";
182
187
  }
183
188
  if (type.isNumber() || type.isNumberLiteral()) {
184
189
  const lit = type.isNumberLiteral() ? type.getLiteralValue() : undefined;
@@ -203,7 +208,7 @@ function buildMockFromType(type, depth) {
203
208
  if (type.isEnumLiteral()) {
204
209
  const lit = type.getLiteralValue();
205
210
  if (typeof lit === "string")
206
- return `'${lit}'`;
211
+ return `'${(0, sensitiveValueDetector_1.sanitizeRawValue)(lit, "enum literal")}'`;
207
212
  if (typeof lit === "number")
208
213
  return String(lit);
209
214
  }
@@ -216,7 +221,7 @@ function buildMockFromType(type, depth) {
216
221
  if (members && members.length > 0) {
217
222
  const firstVal = members[0].getValue?.();
218
223
  if (typeof firstVal === "string")
219
- return `'${firstVal}'`;
224
+ return `'${(0, sensitiveValueDetector_1.sanitizeRawValue)(firstVal, "enum value")}'`;
220
225
  if (typeof firstVal === "number")
221
226
  return String(firstVal);
222
227
  }
@@ -1 +1 @@
1
- {"version":3,"file":"interfaceShapeResolver.js","sourceRoot":"","sources":["../src/interfaceShapeResolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interfaceShapeResolver.js","sourceRoot":"","sources":["../src/interfaceShapeResolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Version Upgrade Command — `cotester migrate`
3
+ *
4
+ * Scans all cotester-generated test and mock files, detects their format
5
+ * version, and upgrades them in-place to the current version.
6
+ *
7
+ * Version history
8
+ * ───────────────
9
+ * v1 (unversioned) Files have `// @cotester-generated` but no version line.
10
+ * Describe blocks lack `@testgen-sig:` fingerprint comments.
11
+ * Mock headers have no version line.
12
+ *
13
+ * v2 (current) Test files: second line is `// @cotester-version: 2`.
14
+ * Test files: `// @testgen-sig:` comments precede each describe.
15
+ * Mock files: second header line is `// @cotester-version: 2`.
16
+ *
17
+ * v1 → v2 transformations
18
+ * ───────────────────────
19
+ * Test files:
20
+ * 1. Insert `// @cotester-version: 2` immediately after `// @cotester-generated`.
21
+ * 2. For each describe('fnName', ...) block, if no preceding @testgen-sig comment
22
+ * exists, insert one by re-analysing the source file to get the current
23
+ * signature fingerprint.
24
+ *
25
+ * Mock files:
26
+ * 1. Insert `// @cotester-version: 2` after the `// Auto-generated mock data for`
27
+ * first-line header.
28
+ *
29
+ * All transformations are idempotent — running `cotester migrate` a second time
30
+ * has no effect on already-upgraded files.
31
+ */
32
+ export interface MigrateOptions {
33
+ /** Print what would change without writing any files. */
34
+ dryRun?: boolean;
35
+ }
36
+ export interface MigrateResult {
37
+ scanned: number;
38
+ upgraded: number;
39
+ alreadyCurrent: number;
40
+ failed: number;
41
+ }
42
+ /**
43
+ * Run the migration scan for all generated test/mock files under the project's
44
+ * configured testDir and mockDir.
45
+ *
46
+ * @param folder Optional subfolder to restrict the scan (relative to testDir/mockDir).
47
+ * @param opts `dryRun: true` prints proposed changes without writing.
48
+ */
49
+ export declare function runMigrate(folder?: string, opts?: MigrateOptions): void;