@gnapi/cotester 1.2.5 → 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.
- package/dist/auditLogger.d.ts +46 -0
- package/dist/auditLogger.js +107 -0
- package/dist/auditLogger.js.map +1 -0
- package/dist/cli.js +10 -0
- package/dist/cli.js.map +1 -1
- package/dist/configManager.d.ts +16 -0
- package/dist/configManager.js +84 -17
- package/dist/configManager.js.map +1 -1
- package/dist/fileWorker.js +6 -1
- package/dist/fileWorker.js.map +1 -1
- package/dist/generator.d.ts +24 -1
- package/dist/generator.js +27 -8
- package/dist/generator.js.map +1 -1
- package/dist/importRepairer.d.ts +22 -0
- package/dist/importRepairer.js +226 -0
- package/dist/importRepairer.js.map +1 -0
- package/dist/interfaceShapeResolver.js +8 -3
- package/dist/interfaceShapeResolver.js.map +1 -1
- package/dist/migrator.d.ts +49 -0
- package/dist/migrator.js +335 -0
- package/dist/migrator.js.map +1 -0
- package/dist/mockGenerator.js +3 -1
- package/dist/mockGenerator.js.map +1 -1
- package/dist/sensitiveValueDetector.d.ts +62 -0
- package/dist/sensitiveValueDetector.js +147 -0
- package/dist/sensitiveValueDetector.js.map +1 -0
- package/dist/watcher.js +10 -1
- package/dist/watcher.js.map +1 -1
- package/package.json +1 -1
package/dist/migrator.js
ADDED
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Version Upgrade Command — `cotester migrate`
|
|
4
|
+
*
|
|
5
|
+
* Scans all cotester-generated test and mock files, detects their format
|
|
6
|
+
* version, and upgrades them in-place to the current version.
|
|
7
|
+
*
|
|
8
|
+
* Version history
|
|
9
|
+
* ───────────────
|
|
10
|
+
* v1 (unversioned) Files have `// @cotester-generated` but no version line.
|
|
11
|
+
* Describe blocks lack `@testgen-sig:` fingerprint comments.
|
|
12
|
+
* Mock headers have no version line.
|
|
13
|
+
*
|
|
14
|
+
* v2 (current) Test files: second line is `// @cotester-version: 2`.
|
|
15
|
+
* Test files: `// @testgen-sig:` comments precede each describe.
|
|
16
|
+
* Mock files: second header line is `// @cotester-version: 2`.
|
|
17
|
+
*
|
|
18
|
+
* v1 → v2 transformations
|
|
19
|
+
* ───────────────────────
|
|
20
|
+
* Test files:
|
|
21
|
+
* 1. Insert `// @cotester-version: 2` immediately after `// @cotester-generated`.
|
|
22
|
+
* 2. For each describe('fnName', ...) block, if no preceding @testgen-sig comment
|
|
23
|
+
* exists, insert one by re-analysing the source file to get the current
|
|
24
|
+
* signature fingerprint.
|
|
25
|
+
*
|
|
26
|
+
* Mock files:
|
|
27
|
+
* 1. Insert `// @cotester-version: 2` after the `// Auto-generated mock data for`
|
|
28
|
+
* first-line header.
|
|
29
|
+
*
|
|
30
|
+
* All transformations are idempotent — running `cotester migrate` a second time
|
|
31
|
+
* has no effect on already-upgraded files.
|
|
32
|
+
*/
|
|
33
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
34
|
+
if (k2 === undefined) k2 = k;
|
|
35
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
36
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
37
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
38
|
+
}
|
|
39
|
+
Object.defineProperty(o, k2, desc);
|
|
40
|
+
}) : (function(o, m, k, k2) {
|
|
41
|
+
if (k2 === undefined) k2 = k;
|
|
42
|
+
o[k2] = m[k];
|
|
43
|
+
}));
|
|
44
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
45
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
46
|
+
}) : function(o, v) {
|
|
47
|
+
o["default"] = v;
|
|
48
|
+
});
|
|
49
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
50
|
+
var ownKeys = function(o) {
|
|
51
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
52
|
+
var ar = [];
|
|
53
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
54
|
+
return ar;
|
|
55
|
+
};
|
|
56
|
+
return ownKeys(o);
|
|
57
|
+
};
|
|
58
|
+
return function (mod) {
|
|
59
|
+
if (mod && mod.__esModule) return mod;
|
|
60
|
+
var result = {};
|
|
61
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
62
|
+
__setModuleDefault(result, mod);
|
|
63
|
+
return result;
|
|
64
|
+
};
|
|
65
|
+
})();
|
|
66
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
67
|
+
exports.runMigrate = runMigrate;
|
|
68
|
+
const fs = __importStar(require("fs"));
|
|
69
|
+
const path = __importStar(require("path"));
|
|
70
|
+
const utils_1 = require("./utils");
|
|
71
|
+
const configManager_1 = require("./configManager");
|
|
72
|
+
const astCache_1 = require("./astCache");
|
|
73
|
+
const scenarioEngine_1 = require("./scenarioEngine");
|
|
74
|
+
const generator_1 = require("./generator");
|
|
75
|
+
// ─── Version constants ────────────────────────────────────────────────────────
|
|
76
|
+
const VERSION_PREFIX = "// @cotester-version:";
|
|
77
|
+
const MOCK_HEADER_PREFIX = "// Auto-generated mock data for";
|
|
78
|
+
const VERSION_LINE = `// @cotester-version: ${generator_1.CURRENT_FILE_VERSION}`;
|
|
79
|
+
/**
|
|
80
|
+
* Run the migration scan for all generated test/mock files under the project's
|
|
81
|
+
* configured testDir and mockDir.
|
|
82
|
+
*
|
|
83
|
+
* @param folder Optional subfolder to restrict the scan (relative to testDir/mockDir).
|
|
84
|
+
* @param opts `dryRun: true` prints proposed changes without writing.
|
|
85
|
+
*/
|
|
86
|
+
function runMigrate(folder, opts = {}) {
|
|
87
|
+
const projectRoot = (0, utils_1.getProjectRoot)();
|
|
88
|
+
const config = (0, configManager_1.loadConfig)(projectRoot);
|
|
89
|
+
const dryRun = opts.dryRun ?? false;
|
|
90
|
+
if (dryRun)
|
|
91
|
+
(0, utils_1.log)("Dry-run mode — no files will be modified.", "info");
|
|
92
|
+
const testRoot = path.join(projectRoot, config.testDir);
|
|
93
|
+
const mockRoot = path.join(projectRoot, config.mockDir);
|
|
94
|
+
const testScan = folder ? path.join(testRoot, folder) : testRoot;
|
|
95
|
+
const mockScan = folder ? path.join(mockRoot, folder) : mockRoot;
|
|
96
|
+
const testFiles = collectGeneratedTestFiles(testScan);
|
|
97
|
+
const mockFiles = collectGeneratedMockFiles(mockScan);
|
|
98
|
+
(0, utils_1.log)(`Scanning ${testFiles.length} test file(s) and ${mockFiles.length} mock file(s)…`, "info");
|
|
99
|
+
const result = { scanned: 0, upgraded: 0, alreadyCurrent: 0, failed: 0 };
|
|
100
|
+
for (const filePath of testFiles) {
|
|
101
|
+
result.scanned++;
|
|
102
|
+
const outcome = migrateTestFile(filePath, projectRoot, config, dryRun);
|
|
103
|
+
tally(result, outcome, filePath, projectRoot);
|
|
104
|
+
}
|
|
105
|
+
for (const filePath of mockFiles) {
|
|
106
|
+
result.scanned++;
|
|
107
|
+
const outcome = migrateMockFile(filePath, dryRun);
|
|
108
|
+
tally(result, outcome, filePath, projectRoot);
|
|
109
|
+
}
|
|
110
|
+
const dryTag = dryRun ? " (dry-run)" : "";
|
|
111
|
+
(0, utils_1.log)(`Migration complete${dryTag}: ${result.upgraded} upgraded, ` +
|
|
112
|
+
`${result.alreadyCurrent} already at v${generator_1.CURRENT_FILE_VERSION}, ` +
|
|
113
|
+
`${result.failed} failed`, result.failed > 0 ? "warn" : "success");
|
|
114
|
+
}
|
|
115
|
+
function migrateTestFile(filePath, projectRoot, config, dryRun) {
|
|
116
|
+
try {
|
|
117
|
+
const content = fs.readFileSync(filePath, "utf-8");
|
|
118
|
+
const version = detectVersion(content, "test");
|
|
119
|
+
if (version >= generator_1.CURRENT_FILE_VERSION)
|
|
120
|
+
return "current";
|
|
121
|
+
let updated = content;
|
|
122
|
+
// ── v1 → v2 ──────────────────────────────────────────────────────
|
|
123
|
+
if (version < 2) {
|
|
124
|
+
updated = insertVersionMarkerTest(updated);
|
|
125
|
+
updated = stampSignatureComments(updated, filePath, projectRoot, config);
|
|
126
|
+
}
|
|
127
|
+
// Future migration passes: if (version < 3) { updated = applyV2ToV3(updated); }
|
|
128
|
+
if (!dryRun) {
|
|
129
|
+
fs.writeFileSync(filePath, updated, "utf-8");
|
|
130
|
+
}
|
|
131
|
+
return "upgraded";
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
return "failed";
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
function migrateMockFile(filePath, dryRun) {
|
|
138
|
+
try {
|
|
139
|
+
const content = fs.readFileSync(filePath, "utf-8");
|
|
140
|
+
const version = detectVersion(content, "mock");
|
|
141
|
+
if (version >= generator_1.CURRENT_FILE_VERSION)
|
|
142
|
+
return "current";
|
|
143
|
+
let updated = content;
|
|
144
|
+
// ── v1 → v2 ──────────────────────────────────────────────────────
|
|
145
|
+
if (version < 2) {
|
|
146
|
+
updated = insertVersionMarkerMock(updated);
|
|
147
|
+
}
|
|
148
|
+
if (!dryRun) {
|
|
149
|
+
fs.writeFileSync(filePath, updated, "utf-8");
|
|
150
|
+
}
|
|
151
|
+
return "upgraded";
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
return "failed";
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
// ─── Version detection ────────────────────────────────────────────────────────
|
|
158
|
+
/**
|
|
159
|
+
* Detect the version encoded in a file's header comment.
|
|
160
|
+
*
|
|
161
|
+
* @param content Raw file text.
|
|
162
|
+
* @param kind "test" or "mock" — determines which header marker to look for.
|
|
163
|
+
* @returns Version number (1 for unversioned, 0 for non-cotester files).
|
|
164
|
+
*/
|
|
165
|
+
function detectVersion(content, kind) {
|
|
166
|
+
const isGenerated = kind === "test"
|
|
167
|
+
? content.trimStart().startsWith(generator_1.TESTGEN_MARKER)
|
|
168
|
+
: content.trimStart().startsWith(MOCK_HEADER_PREFIX);
|
|
169
|
+
if (!isGenerated)
|
|
170
|
+
return 0;
|
|
171
|
+
for (const line of content.split(/\r?\n/).slice(0, 5)) {
|
|
172
|
+
if (line.startsWith(VERSION_PREFIX)) {
|
|
173
|
+
const num = parseInt(line.replace(VERSION_PREFIX, "").trim(), 10);
|
|
174
|
+
return isNaN(num) ? 1 : num;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
// Recognised as generated but no version line → it is v1
|
|
178
|
+
return 1;
|
|
179
|
+
}
|
|
180
|
+
// ─── v1 → v2 transforms ──────────────────────────────────────────────────────
|
|
181
|
+
/**
|
|
182
|
+
* Insert `// @cotester-version: 2` on the line immediately after
|
|
183
|
+
* `// @cotester-generated` in a test file.
|
|
184
|
+
*/
|
|
185
|
+
function insertVersionMarkerTest(content) {
|
|
186
|
+
const markerLine = generator_1.TESTGEN_MARKER;
|
|
187
|
+
const idx = content.indexOf(markerLine);
|
|
188
|
+
if (idx === -1)
|
|
189
|
+
return content;
|
|
190
|
+
// Find the end of that line (after the newline)
|
|
191
|
+
const lineEnd = content.indexOf("\n", idx);
|
|
192
|
+
if (lineEnd === -1)
|
|
193
|
+
return content + "\n" + VERSION_LINE;
|
|
194
|
+
return content.slice(0, lineEnd + 1) + VERSION_LINE + "\n" + content.slice(lineEnd + 1);
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Insert `// @cotester-version: 2` on the line immediately after the
|
|
198
|
+
* `// Auto-generated mock data for …` first line in a mock file.
|
|
199
|
+
*/
|
|
200
|
+
function insertVersionMarkerMock(content) {
|
|
201
|
+
const idx = content.indexOf(MOCK_HEADER_PREFIX);
|
|
202
|
+
if (idx === -1)
|
|
203
|
+
return content;
|
|
204
|
+
const lineEnd = content.indexOf("\n", idx);
|
|
205
|
+
if (lineEnd === -1)
|
|
206
|
+
return content + "\n" + VERSION_LINE;
|
|
207
|
+
return content.slice(0, lineEnd + 1) + VERSION_LINE + "\n" + content.slice(lineEnd + 1);
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* For each `describe('fnName', ...)` block in `content`, if there is no
|
|
211
|
+
* `// @testgen-sig:fnName` comment on the line immediately above it, attempt
|
|
212
|
+
* to add one by re-analysing the corresponding source file.
|
|
213
|
+
*
|
|
214
|
+
* If the source file cannot be found or analysed, the describe block is left
|
|
215
|
+
* unchanged — the migration is always non-destructive.
|
|
216
|
+
*/
|
|
217
|
+
function stampSignatureComments(content, testFilePath, projectRoot, config) {
|
|
218
|
+
// Build a map: fnName → sigFingerprint from the current source
|
|
219
|
+
const sigMap = buildSigMap(testFilePath, projectRoot, config);
|
|
220
|
+
if (sigMap.size === 0)
|
|
221
|
+
return content;
|
|
222
|
+
let result = content;
|
|
223
|
+
for (const [fnName, sig] of sigMap) {
|
|
224
|
+
const sigComment = `// @testgen-sig:${sig}`;
|
|
225
|
+
// Skip if this function already has a sig stamp
|
|
226
|
+
if (result.includes(`// @testgen-sig:${fnName}(`))
|
|
227
|
+
continue;
|
|
228
|
+
// Find the describe('fnName', ...) line and insert the sig comment above it
|
|
229
|
+
const describeRe = new RegExp(`(^[ \\t]*)(describe\\s*\\(\\s*['"\`]${escapeForRegex(fnName)}['"\`])`, "m");
|
|
230
|
+
result = result.replace(describeRe, `$1${sigComment}\n$1$2`);
|
|
231
|
+
}
|
|
232
|
+
return result;
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Re-analyse the source file that corresponds to `testFilePath` and build a
|
|
236
|
+
* map of functionName → signature fingerprint string.
|
|
237
|
+
*/
|
|
238
|
+
function buildSigMap(testFilePath, projectRoot, config) {
|
|
239
|
+
const srcFile = reverseMapToSource(testFilePath, projectRoot, config);
|
|
240
|
+
if (!srcFile || !fs.existsSync(srcFile))
|
|
241
|
+
return new Map();
|
|
242
|
+
try {
|
|
243
|
+
const functions = (0, astCache_1.analyzeFileCached)(srcFile, projectRoot);
|
|
244
|
+
const scenarios = (0, scenarioEngine_1.generateScenarios)(functions, config, projectRoot);
|
|
245
|
+
const map = new Map();
|
|
246
|
+
for (const s of scenarios) {
|
|
247
|
+
const params = s.parameters
|
|
248
|
+
.map((p) => `${p.name}:${p.type.replace(/\s+/g, "")}`)
|
|
249
|
+
.join(",");
|
|
250
|
+
const sig = `${s.functionName}(${params}):${s.returnType.replace(/\s+/g, "")}`;
|
|
251
|
+
map.set(s.functionName, sig);
|
|
252
|
+
}
|
|
253
|
+
return map;
|
|
254
|
+
}
|
|
255
|
+
catch {
|
|
256
|
+
return new Map();
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Reverse-map a test file path back to its source file path.
|
|
261
|
+
*
|
|
262
|
+
* e.g. `cotester/tests/services/user.service.test.ts`
|
|
263
|
+
* → `src/services/user.service.ts`
|
|
264
|
+
*/
|
|
265
|
+
function reverseMapToSource(testFilePath, projectRoot, config) {
|
|
266
|
+
const testRoot = path.resolve(projectRoot, config.testDir);
|
|
267
|
+
const srcRoot = path.resolve(projectRoot, config.srcDir);
|
|
268
|
+
const rel = path.relative(testRoot, testFilePath);
|
|
269
|
+
if (rel.startsWith(".."))
|
|
270
|
+
return null; // test file is outside testDir
|
|
271
|
+
const srcRel = rel.replace(/\.test\.ts$/, ".ts");
|
|
272
|
+
return path.join(srcRoot, srcRel);
|
|
273
|
+
}
|
|
274
|
+
// ─── File collection ──────────────────────────────────────────────────────────
|
|
275
|
+
/**
|
|
276
|
+
* Recursively collect `.test.ts` files under `dir` that start with the
|
|
277
|
+
* `// @cotester-generated` marker (cotester-owned, safe to migrate).
|
|
278
|
+
*/
|
|
279
|
+
function collectGeneratedTestFiles(dir) {
|
|
280
|
+
return collectFiles(dir, ".test.ts", (content) => content.trimStart().startsWith(generator_1.TESTGEN_MARKER));
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Recursively collect `.mock.ts` files under `dir` that start with the
|
|
284
|
+
* `// Auto-generated mock data` marker.
|
|
285
|
+
*/
|
|
286
|
+
function collectGeneratedMockFiles(dir) {
|
|
287
|
+
return collectFiles(dir, ".mock.ts", (content) => content.trimStart().startsWith(MOCK_HEADER_PREFIX));
|
|
288
|
+
}
|
|
289
|
+
function collectFiles(dir, suffix, isOwned) {
|
|
290
|
+
if (!fs.existsSync(dir))
|
|
291
|
+
return [];
|
|
292
|
+
const results = [];
|
|
293
|
+
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
|
|
294
|
+
const full = path.join(dir, entry.name);
|
|
295
|
+
if (entry.isDirectory()) {
|
|
296
|
+
results.push(...collectFiles(full, suffix, isOwned));
|
|
297
|
+
}
|
|
298
|
+
else if (entry.isFile() && entry.name.endsWith(suffix)) {
|
|
299
|
+
try {
|
|
300
|
+
// Only read the first 200 chars to check the ownership marker
|
|
301
|
+
const fd = fs.openSync(full, "r");
|
|
302
|
+
const buf = Buffer.alloc(200);
|
|
303
|
+
const bytesRead = fs.readSync(fd, buf, 0, 200, 0);
|
|
304
|
+
fs.closeSync(fd);
|
|
305
|
+
const peek = buf.slice(0, bytesRead).toString("utf-8");
|
|
306
|
+
if (isOwned(peek))
|
|
307
|
+
results.push(full);
|
|
308
|
+
}
|
|
309
|
+
catch {
|
|
310
|
+
// skip unreadable files
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
return results;
|
|
315
|
+
}
|
|
316
|
+
// ─── Helpers ─────────────────────────────────────────────────────────────────
|
|
317
|
+
function tally(result, outcome, filePath, projectRoot) {
|
|
318
|
+
const rel = path.relative(projectRoot, filePath).replace(/\\/g, "/");
|
|
319
|
+
if (outcome === "upgraded") {
|
|
320
|
+
result.upgraded++;
|
|
321
|
+
(0, utils_1.log)(` ↑ upgraded ${rel}`, "success");
|
|
322
|
+
}
|
|
323
|
+
else if (outcome === "current") {
|
|
324
|
+
result.alreadyCurrent++;
|
|
325
|
+
(0, utils_1.log)(` ✔ current ${rel}`, "info");
|
|
326
|
+
}
|
|
327
|
+
else {
|
|
328
|
+
result.failed++;
|
|
329
|
+
(0, utils_1.log)(` ✖ failed ${rel}`, "error");
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
function escapeForRegex(str) {
|
|
333
|
+
return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
334
|
+
}
|
|
335
|
+
//# sourceMappingURL=migrator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrator.js","sourceRoot":"","sources":["../src/migrator.ts"],"names":[],"mappings":"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"}
|
package/dist/mockGenerator.js
CHANGED
|
@@ -43,6 +43,7 @@ const path = __importStar(require("path"));
|
|
|
43
43
|
const formatter_1 = require("./formatter");
|
|
44
44
|
const utils_1 = require("./utils");
|
|
45
45
|
const mockDataEngine_1 = require("./mockDataEngine");
|
|
46
|
+
const sensitiveValueDetector_1 = require("./sensitiveValueDetector");
|
|
46
47
|
const interfaceShapeResolver_1 = require("./interfaceShapeResolver");
|
|
47
48
|
const sharedMockRegistry_1 = require("./sharedMockRegistry");
|
|
48
49
|
/**
|
|
@@ -63,6 +64,7 @@ async function generateMockFile(srcFilePath, scenarios, projectRoot, srcDir, moc
|
|
|
63
64
|
// Header comment
|
|
64
65
|
const relSrc = path.relative(projectRoot, srcFilePath).replace(/\\/g, "/");
|
|
65
66
|
lines.push(`// Auto-generated mock data for ${relSrc}`);
|
|
67
|
+
lines.push(`// @cotester-version: 2`);
|
|
66
68
|
lines.push(`// Do not edit — regenerated on each source change.`);
|
|
67
69
|
lines.push("");
|
|
68
70
|
// ── Import from shared registry if we have any custom-type factories ─
|
|
@@ -97,7 +99,7 @@ async function generateMockFile(srcFilePath, scenarios, projectRoot, srcDir, moc
|
|
|
97
99
|
return `${name}: ${factory}()`;
|
|
98
100
|
}
|
|
99
101
|
}
|
|
100
|
-
return `${name}: ${rawLiteral}`;
|
|
102
|
+
return `${name}: ${(0, sensitiveValueDetector_1.sanitizeLiteral)(rawLiteral, name)}`;
|
|
101
103
|
})
|
|
102
104
|
.join(", ");
|
|
103
105
|
lines.push(` ${key}: { ${props} },`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mockGenerator.js","sourceRoot":"","sources":["../src/mockGenerator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mockGenerator.js","sourceRoot":"","sources":["../src/mockGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sensitive Value Detector (Security)
|
|
3
|
+
*
|
|
4
|
+
* Scans string literals that are about to be written into generated mock files
|
|
5
|
+
* and replaces any that match known credential/secret patterns with the safe
|
|
6
|
+
* placeholder `'REDACTED_FOR_TESTS'`.
|
|
7
|
+
*
|
|
8
|
+
* Covers:
|
|
9
|
+
* • JWT tokens (three base64url segments with realistic lengths)
|
|
10
|
+
* • OpenAI / Anthropic / generic sk- prefixed keys
|
|
11
|
+
* • Stripe live/test keys (pk_live_, sk_live_, pk_test_, sk_test_)
|
|
12
|
+
* • AWS access key IDs (AKIA…)
|
|
13
|
+
* • Google API keys (AIza…)
|
|
14
|
+
* • GitHub personal access tokens (ghp_, ghs_)
|
|
15
|
+
* • PEM private-key headers
|
|
16
|
+
* • Database connection strings that embed a password (scheme://user:pass@)
|
|
17
|
+
* • High-entropy hex blobs (≥ 32 hex chars)
|
|
18
|
+
*
|
|
19
|
+
* Design decisions:
|
|
20
|
+
* - All patterns require a minimum length to avoid false positives on
|
|
21
|
+
* short/obviously-fake values used in unit-test fixtures.
|
|
22
|
+
* - The JWT pattern requires a signature segment of ≥ 20 chars so the
|
|
23
|
+
* intentionally short placeholder in mockDataEngine is NOT redacted.
|
|
24
|
+
* - Detection is case-sensitive where real credentials always match a
|
|
25
|
+
* fixed casing (AWS, JWT headers), case-insensitive for word patterns.
|
|
26
|
+
*/
|
|
27
|
+
/** The safe placeholder substituted for any detected sensitive value. */
|
|
28
|
+
export declare const REDACTED_PLACEHOLDER = "'REDACTED_FOR_TESTS'";
|
|
29
|
+
/**
|
|
30
|
+
* Check whether a raw string value (no surrounding quotes) matches any
|
|
31
|
+
* sensitive pattern.
|
|
32
|
+
*
|
|
33
|
+
* @returns The matched pattern name, or `null` when the value is clean.
|
|
34
|
+
*/
|
|
35
|
+
export declare function detectSensitiveValue(rawValue: string): string | null;
|
|
36
|
+
/**
|
|
37
|
+
* Sanitize a TypeScript **string literal** (including its surrounding single
|
|
38
|
+
* or double quotes) that is about to be written into a mock file.
|
|
39
|
+
*
|
|
40
|
+
* - If the extracted value matches a sensitive pattern → returns
|
|
41
|
+
* `'REDACTED_FOR_TESTS'` and logs a security warning.
|
|
42
|
+
* - Otherwise → returns the original literal unchanged.
|
|
43
|
+
*
|
|
44
|
+
* Non-string literals (numbers, booleans, object literals, `null`, etc.) are
|
|
45
|
+
* returned unchanged — they cannot carry credential strings.
|
|
46
|
+
*
|
|
47
|
+
* @param literal The TypeScript source literal, e.g. `'sk-live-abc123'`
|
|
48
|
+
* @param context Optional description of where the literal came from
|
|
49
|
+
* (used only in the warning message).
|
|
50
|
+
*/
|
|
51
|
+
export declare function sanitizeLiteral(literal: string, context?: string): string;
|
|
52
|
+
/**
|
|
53
|
+
* Sanitize a **raw string value** (without surrounding quotes) that is about
|
|
54
|
+
* to be embedded inside a larger generated literal (e.g. an object property).
|
|
55
|
+
*
|
|
56
|
+
* - If sensitive → returns the string `REDACTED_FOR_TESTS` (no quotes).
|
|
57
|
+
* - Otherwise → returns the original value unchanged.
|
|
58
|
+
*
|
|
59
|
+
* @param rawValue The bare string value, e.g. `sk-live-abc123`
|
|
60
|
+
* @param context Optional description for the warning message.
|
|
61
|
+
*/
|
|
62
|
+
export declare function sanitizeRawValue(rawValue: string, context?: string): string;
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Sensitive Value Detector (Security)
|
|
4
|
+
*
|
|
5
|
+
* Scans string literals that are about to be written into generated mock files
|
|
6
|
+
* and replaces any that match known credential/secret patterns with the safe
|
|
7
|
+
* placeholder `'REDACTED_FOR_TESTS'`.
|
|
8
|
+
*
|
|
9
|
+
* Covers:
|
|
10
|
+
* • JWT tokens (three base64url segments with realistic lengths)
|
|
11
|
+
* • OpenAI / Anthropic / generic sk- prefixed keys
|
|
12
|
+
* • Stripe live/test keys (pk_live_, sk_live_, pk_test_, sk_test_)
|
|
13
|
+
* • AWS access key IDs (AKIA…)
|
|
14
|
+
* • Google API keys (AIza…)
|
|
15
|
+
* • GitHub personal access tokens (ghp_, ghs_)
|
|
16
|
+
* • PEM private-key headers
|
|
17
|
+
* • Database connection strings that embed a password (scheme://user:pass@)
|
|
18
|
+
* • High-entropy hex blobs (≥ 32 hex chars)
|
|
19
|
+
*
|
|
20
|
+
* Design decisions:
|
|
21
|
+
* - All patterns require a minimum length to avoid false positives on
|
|
22
|
+
* short/obviously-fake values used in unit-test fixtures.
|
|
23
|
+
* - The JWT pattern requires a signature segment of ≥ 20 chars so the
|
|
24
|
+
* intentionally short placeholder in mockDataEngine is NOT redacted.
|
|
25
|
+
* - Detection is case-sensitive where real credentials always match a
|
|
26
|
+
* fixed casing (AWS, JWT headers), case-insensitive for word patterns.
|
|
27
|
+
*/
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.REDACTED_PLACEHOLDER = void 0;
|
|
30
|
+
exports.detectSensitiveValue = detectSensitiveValue;
|
|
31
|
+
exports.sanitizeLiteral = sanitizeLiteral;
|
|
32
|
+
exports.sanitizeRawValue = sanitizeRawValue;
|
|
33
|
+
const utils_1 = require("./utils");
|
|
34
|
+
const SENSITIVE_PATTERNS = [
|
|
35
|
+
// JWT — header.payload.signature (all three segments must be non-trivial)
|
|
36
|
+
{
|
|
37
|
+
name: "JWT",
|
|
38
|
+
pattern: /eyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{20,}/,
|
|
39
|
+
},
|
|
40
|
+
// OpenAI / Anthropic / generic sk- keys (supports sk-XXXX and sk-proj-XXXX formats)
|
|
41
|
+
{
|
|
42
|
+
name: "API key (sk- prefix)",
|
|
43
|
+
pattern: /\bsk-[A-Za-z0-9_-]{15,}\b/,
|
|
44
|
+
},
|
|
45
|
+
// Stripe-style keys
|
|
46
|
+
{
|
|
47
|
+
name: "Stripe API key",
|
|
48
|
+
pattern: /\b(?:pk_live|sk_live|pk_test|sk_test)_[A-Za-z0-9]{20,}\b/,
|
|
49
|
+
},
|
|
50
|
+
// AWS Access Key ID
|
|
51
|
+
{
|
|
52
|
+
name: "AWS access key ID",
|
|
53
|
+
pattern: /\bAKIA[0-9A-Z]{16}\b/,
|
|
54
|
+
},
|
|
55
|
+
// Google API key
|
|
56
|
+
{
|
|
57
|
+
name: "Google API key",
|
|
58
|
+
pattern: /\bAIza[0-9A-Za-z_-]{35}\b/,
|
|
59
|
+
},
|
|
60
|
+
// GitHub personal / server / actions tokens (ghp_, ghs_, gha_, ghr_)
|
|
61
|
+
{
|
|
62
|
+
name: "GitHub token",
|
|
63
|
+
pattern: /\bgh[psar]_[A-Za-z0-9]{30,}\b/,
|
|
64
|
+
},
|
|
65
|
+
// PEM private key block header
|
|
66
|
+
{
|
|
67
|
+
name: "PEM private key header",
|
|
68
|
+
pattern: /-----BEGIN (?:RSA |EC |DSA |OPENSSH )?PRIVATE KEY-----/,
|
|
69
|
+
},
|
|
70
|
+
// Database URLs with embedded credentials: scheme://user:pass@host
|
|
71
|
+
{
|
|
72
|
+
name: "database URL with credentials",
|
|
73
|
+
pattern: /(?:mongodb|postgres(?:ql)?|mysql|redis|mariadb):\/\/[^:/?#\s]+:[^@\s]{4,}@/i,
|
|
74
|
+
},
|
|
75
|
+
// High-entropy hex blobs (≥ 32 consecutive hex chars — typical of secrets/hashes)
|
|
76
|
+
{
|
|
77
|
+
name: "high-entropy hex string",
|
|
78
|
+
pattern: /\b[0-9a-f]{32,}\b/i,
|
|
79
|
+
},
|
|
80
|
+
];
|
|
81
|
+
// ─── Public API ───────────────────────────────────────────────────────────────
|
|
82
|
+
/** The safe placeholder substituted for any detected sensitive value. */
|
|
83
|
+
exports.REDACTED_PLACEHOLDER = "'REDACTED_FOR_TESTS'";
|
|
84
|
+
/**
|
|
85
|
+
* Check whether a raw string value (no surrounding quotes) matches any
|
|
86
|
+
* sensitive pattern.
|
|
87
|
+
*
|
|
88
|
+
* @returns The matched pattern name, or `null` when the value is clean.
|
|
89
|
+
*/
|
|
90
|
+
function detectSensitiveValue(rawValue) {
|
|
91
|
+
for (const { name, pattern } of SENSITIVE_PATTERNS) {
|
|
92
|
+
if (pattern.test(rawValue))
|
|
93
|
+
return name;
|
|
94
|
+
}
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Sanitize a TypeScript **string literal** (including its surrounding single
|
|
99
|
+
* or double quotes) that is about to be written into a mock file.
|
|
100
|
+
*
|
|
101
|
+
* - If the extracted value matches a sensitive pattern → returns
|
|
102
|
+
* `'REDACTED_FOR_TESTS'` and logs a security warning.
|
|
103
|
+
* - Otherwise → returns the original literal unchanged.
|
|
104
|
+
*
|
|
105
|
+
* Non-string literals (numbers, booleans, object literals, `null`, etc.) are
|
|
106
|
+
* returned unchanged — they cannot carry credential strings.
|
|
107
|
+
*
|
|
108
|
+
* @param literal The TypeScript source literal, e.g. `'sk-live-abc123'`
|
|
109
|
+
* @param context Optional description of where the literal came from
|
|
110
|
+
* (used only in the warning message).
|
|
111
|
+
*/
|
|
112
|
+
function sanitizeLiteral(literal, context) {
|
|
113
|
+
// Only process string literals — must start with ' or "
|
|
114
|
+
const trimmed = literal.trim();
|
|
115
|
+
if (!trimmed.startsWith("'") && !trimmed.startsWith('"')) {
|
|
116
|
+
return literal;
|
|
117
|
+
}
|
|
118
|
+
// Extract raw value by stripping outer quotes
|
|
119
|
+
const rawValue = trimmed.slice(1, trimmed.length - 1);
|
|
120
|
+
const matched = detectSensitiveValue(rawValue);
|
|
121
|
+
if (matched) {
|
|
122
|
+
const where = context ? ` (from ${context})` : "";
|
|
123
|
+
(0, utils_1.log)(` ⚠ Security: sensitive value matching "${matched}" detected${where} — replaced with REDACTED_FOR_TESTS`, "warn");
|
|
124
|
+
return exports.REDACTED_PLACEHOLDER;
|
|
125
|
+
}
|
|
126
|
+
return literal;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Sanitize a **raw string value** (without surrounding quotes) that is about
|
|
130
|
+
* to be embedded inside a larger generated literal (e.g. an object property).
|
|
131
|
+
*
|
|
132
|
+
* - If sensitive → returns the string `REDACTED_FOR_TESTS` (no quotes).
|
|
133
|
+
* - Otherwise → returns the original value unchanged.
|
|
134
|
+
*
|
|
135
|
+
* @param rawValue The bare string value, e.g. `sk-live-abc123`
|
|
136
|
+
* @param context Optional description for the warning message.
|
|
137
|
+
*/
|
|
138
|
+
function sanitizeRawValue(rawValue, context) {
|
|
139
|
+
const matched = detectSensitiveValue(rawValue);
|
|
140
|
+
if (matched) {
|
|
141
|
+
const where = context ? ` (from ${context})` : "";
|
|
142
|
+
(0, utils_1.log)(` ⚠ Security: sensitive value matching "${matched}" detected${where} — replaced with REDACTED_FOR_TESTS`, "warn");
|
|
143
|
+
return "REDACTED_FOR_TESTS";
|
|
144
|
+
}
|
|
145
|
+
return rawValue;
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=sensitiveValueDetector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sensitiveValueDetector.js","sourceRoot":"","sources":["../src/sensitiveValueDetector.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;;;AAwEH,oDAKC;AAiBD,0CAqBC;AAYD,4CAWC;AAxID,mCAA8B;AAW9B,MAAM,kBAAkB,GAAuB;IAC3C,0EAA0E;IAC1E;QACI,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,+DAA+D;KAC3E;IACD,oFAAoF;IACpF;QACI,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,2BAA2B;KACvC;IACD,oBAAoB;IACpB;QACI,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,0DAA0D;KACtE;IACD,oBAAoB;IACpB;QACI,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,sBAAsB;KAClC;IACD,iBAAiB;IACjB;QACI,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,2BAA2B;KACvC;IACD,qEAAqE;IACrE;QACI,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,+BAA+B;KAC3C;IACD,+BAA+B;IAC/B;QACI,IAAI,EAAE,wBAAwB;QAC9B,OAAO,EAAE,wDAAwD;KACpE;IACD,mEAAmE;IACnE;QACI,IAAI,EAAE,+BAA+B;QACrC,OAAO,EAAE,6EAA6E;KACzF;IACD,kFAAkF;IAClF;QACI,IAAI,EAAE,yBAAyB;QAC/B,OAAO,EAAE,oBAAoB;KAChC;CACJ,CAAC;AAEF,iFAAiF;AAEjF,yEAAyE;AAC5D,QAAA,oBAAoB,GAAG,sBAAsB,CAAC;AAE3D;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAC,QAAgB;IACjD,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,kBAAkB,EAAE,CAAC;QACjD,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;IAC5C,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,eAAe,CAAC,OAAe,EAAE,OAAgB;IAC7D,wDAAwD;IACxD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,8CAA8C;IAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAE/C,IAAI,OAAO,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,IAAA,WAAG,EACC,2CAA2C,OAAO,aAAa,KAAK,qCAAqC,EACzG,MAAM,CACT,CAAC;QACF,OAAO,4BAAoB,CAAC;IAChC,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,gBAAgB,CAAC,QAAgB,EAAE,OAAgB;IAC/D,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,OAAO,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,IAAA,WAAG,EACC,2CAA2C,OAAO,aAAa,KAAK,qCAAqC,EACzG,MAAM,CACT,CAAC;QACF,OAAO,oBAAoB,CAAC;IAChC,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC"}
|