logicstamp-context 0.2.7 → 0.3.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.
- package/LLM_CONTEXT.md +2 -2
- package/README.md +54 -26
- package/dist/cli/commands/context.d.ts.map +1 -1
- package/dist/cli/commands/context.js +25 -9
- package/dist/cli/commands/context.js.map +1 -1
- package/dist/cli/commands/ignore.d.ts +16 -0
- package/dist/cli/commands/ignore.d.ts.map +1 -0
- package/dist/cli/commands/ignore.js +61 -0
- package/dist/cli/commands/ignore.js.map +1 -0
- package/dist/cli/commands/init.d.ts +2 -2
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +7 -8
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/security.d.ts +1 -2
- package/dist/cli/commands/security.d.ts.map +1 -1
- package/dist/cli/commands/security.js +30 -69
- package/dist/cli/commands/security.js.map +1 -1
- package/dist/cli/handlers/ignoreHandler.d.ts +5 -0
- package/dist/cli/handlers/ignoreHandler.d.ts.map +1 -0
- package/dist/cli/handlers/ignoreHandler.js +23 -0
- package/dist/cli/handlers/ignoreHandler.js.map +1 -0
- package/dist/cli/handlers/securityHandler.d.ts.map +1 -1
- package/dist/cli/handlers/securityHandler.js +1 -5
- package/dist/cli/handlers/securityHandler.js.map +1 -1
- package/dist/cli/parser/argumentParser.d.ts +9 -0
- package/dist/cli/parser/argumentParser.d.ts.map +1 -1
- package/dist/cli/parser/argumentParser.js +31 -4
- package/dist/cli/parser/argumentParser.js.map +1 -1
- package/dist/cli/parser/helpText.d.ts +1 -0
- package/dist/cli/parser/helpText.d.ts.map +1 -1
- package/dist/cli/parser/helpText.js +62 -23
- package/dist/cli/parser/helpText.js.map +1 -1
- package/dist/cli/stamp.js +6 -0
- package/dist/cli/stamp.js.map +1 -1
- package/dist/core/pack/builder.d.ts.map +1 -1
- package/dist/core/pack/builder.js +25 -5
- package/dist/core/pack/builder.js.map +1 -1
- package/dist/core/pack/loader.d.ts +14 -0
- package/dist/core/pack/loader.d.ts.map +1 -1
- package/dist/core/pack/loader.js +86 -2
- package/dist/core/pack/loader.js.map +1 -1
- package/dist/core/pack.d.ts.map +1 -1
- package/dist/core/pack.js +15 -2
- package/dist/core/pack.js.map +1 -1
- package/dist/utils/codeSanitizer.d.ts +24 -0
- package/dist/utils/codeSanitizer.d.ts.map +1 -0
- package/dist/utils/codeSanitizer.js +234 -0
- package/dist/utils/codeSanitizer.js.map +1 -0
- package/dist/utils/stampignore.d.ts.map +1 -1
- package/dist/utils/stampignore.js +36 -14
- package/dist/utils/stampignore.js.map +1 -1
- package/package.json +1 -1
- package/schema/logicstamp.context.schema.json +1 -1
package/dist/cli/stamp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stamp.js","sourceRoot":"","sources":["../../src/cli/stamp.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAiC,MAAM,wBAAwB,CAAC;AACjG,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,oBAAoB;IACpB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;YACtC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;YAC9D,MAAM,kBAAkB,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;YACnE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACnD,YAAY,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,YAAY,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,wDAAwD;IACxD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAClE,YAAY,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,0CAA0C;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAE3B,sBAAsB;IACtB,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QAC1B,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,OAAO;IACT,CAAC;IAED,0BAA0B;IAC1B,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QAC9B,iBAAiB;QACjB,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,YAAY,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,kCAAkC;QAClC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;YACvB,gEAAgE;YAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;gBACtC,OAAO,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;gBAClF,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QAED,8DAA8D;QAC9D,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAClC,MAAM,gBAAgB,GAA6B;gBACjD,KAAK,EAAE,SAAS;gBAChB,GAAG,EAAE,SAAS;gBACd,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAC/B,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;aACvD,CAAC;YAEF,8BAA8B;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;oBACpC,gBAAgB,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACnC,CAAC,EAAE,CAAC;gBACN,CAAC;qBAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;oBAC7E,gBAAgB,CAAC,KAAK,GAAG,GAAG,CAAC;gBAC/B,CAAC;YACH,CAAC;YAED,MAAM,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;YACjD,OAAO;QACT,CAAC;QAED,mDAAmD;QACnD,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;YAC1E,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;YACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;QACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,6BAA6B;IAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAElC,+BAA+B;IAC/B,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;QAClC,MAAM,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;IAED,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QAC/B,MAAM,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,OAAO;IACT,CAAC;IAED,qDAAqD;IACrD,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QAC/B,MAAM,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,OAAO;IACT,CAAC;IAED,4BAA4B;IAC5B,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC;AACpC,CAAC;AAED,IAAI,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"stamp.js","sourceRoot":"","sources":["../../src/cli/stamp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/core/pack/builder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/core/pack/builder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAKtD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAwC7F;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAK5D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAQ5E;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAsBpH"}
|
|
@@ -5,21 +5,41 @@ import { readFile } from 'node:fs/promises';
|
|
|
5
5
|
import { resolve, isAbsolute } from 'node:path';
|
|
6
6
|
import { bundleHash as computeBundleHashStable } from '../../utils/hash.js';
|
|
7
7
|
import { resolveDependency } from './resolver.js';
|
|
8
|
+
import { normalizeEntryId } from '../../utils/fsx.js';
|
|
8
9
|
/**
|
|
9
10
|
* Build edges from nodes based on dependencies
|
|
10
11
|
*/
|
|
11
12
|
export function buildEdges(nodes, manifest) {
|
|
12
13
|
const edges = [];
|
|
14
|
+
// Node entryIds are normalized relative paths
|
|
13
15
|
const nodeIds = new Set(nodes.map((n) => n.entryId));
|
|
14
16
|
for (const node of nodes) {
|
|
15
|
-
|
|
17
|
+
// Find component node - node.entryId is normalized, so normalize manifest keys for lookup
|
|
18
|
+
let componentNode = manifest.components[node.entryId];
|
|
19
|
+
let manifestKeyForNode = node.entryId;
|
|
20
|
+
if (!componentNode) {
|
|
21
|
+
// Try to find by normalizing manifest keys
|
|
22
|
+
for (const [key, comp] of Object.entries(manifest.components)) {
|
|
23
|
+
const normalizedKey = normalizeEntryId(key);
|
|
24
|
+
if (normalizedKey === node.entryId) {
|
|
25
|
+
componentNode = comp;
|
|
26
|
+
manifestKeyForNode = key; // Keep original key for resolveDependency
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
16
31
|
if (!componentNode)
|
|
17
32
|
continue;
|
|
18
33
|
for (const dep of componentNode.dependencies) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
34
|
+
// Use original manifest key format for resolveDependency
|
|
35
|
+
const resolvedId = resolveDependency(manifest, dep, manifestKeyForNode);
|
|
36
|
+
// Normalize resolvedId before comparing with nodeIds (which are normalized)
|
|
37
|
+
if (resolvedId) {
|
|
38
|
+
const normalizedResolvedId = normalizeEntryId(resolvedId);
|
|
39
|
+
// Only add edge if both nodes are in the bundle
|
|
40
|
+
if (nodeIds.has(normalizedResolvedId)) {
|
|
41
|
+
edges.push([node.entryId, normalizedResolvedId]);
|
|
42
|
+
}
|
|
23
43
|
}
|
|
24
44
|
}
|
|
25
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/core/pack/builder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGhD,OAAO,EAAE,UAAU,IAAI,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/core/pack/builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,15 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type { UIFContract } from '../../types/UIFContract.js';
|
|
5
5
|
import type { ProjectManifest } from '../manifest.js';
|
|
6
|
+
interface SanitizeStats {
|
|
7
|
+
filesWithSecrets: number;
|
|
8
|
+
totalSecretsReplaced: number;
|
|
9
|
+
filesProcessed: string[];
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Get and reset sanitization statistics
|
|
13
|
+
*/
|
|
14
|
+
export declare function getAndResetSanitizeStats(): SanitizeStats;
|
|
6
15
|
/**
|
|
7
16
|
* Load manifest from file
|
|
8
17
|
*/
|
|
@@ -14,10 +23,15 @@ export declare function loadManifest(basePath: string): Promise<ProjectManifest>
|
|
|
14
23
|
export declare function loadContract(entryId: string, projectRoot: string): Promise<UIFContract | null>;
|
|
15
24
|
/**
|
|
16
25
|
* Extract code header (JSDoc @uif block) from source file
|
|
26
|
+
* NOTE: Source files are NEVER modified. Only the in-memory content is sanitized
|
|
27
|
+
* before being included in generated JSON bundles.
|
|
17
28
|
*/
|
|
18
29
|
export declare function extractCodeHeader(entryId: string, projectRoot: string): Promise<string | null>;
|
|
19
30
|
/**
|
|
20
31
|
* Read full source code
|
|
32
|
+
* NOTE: Source files are NEVER modified. Only the in-memory content is sanitized
|
|
33
|
+
* before being included in generated JSON bundles.
|
|
21
34
|
*/
|
|
22
35
|
export declare function readSourceCode(entryId: string, projectRoot: string): Promise<string | null>;
|
|
36
|
+
export {};
|
|
23
37
|
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/core/pack/loader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/core/pack/loader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAUtD,UAAU,aAAa;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAQD;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,aAAa,CAQxD;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CA8B7E;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAYpG;AAkCD;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAgCpG;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA0BjG"}
|
package/dist/core/pack/loader.js
CHANGED
|
@@ -4,6 +4,27 @@
|
|
|
4
4
|
import { readFile } from 'node:fs/promises';
|
|
5
5
|
import { join, resolve, isAbsolute } from 'node:path';
|
|
6
6
|
import { debugError } from '../../utils/debug.js';
|
|
7
|
+
import { loadSecurityReport, sanitizeCode } from '../../utils/codeSanitizer.js';
|
|
8
|
+
// Cache for security report (loaded once per project)
|
|
9
|
+
let cachedSecurityReport = undefined;
|
|
10
|
+
let cachedProjectRoot = null;
|
|
11
|
+
let sanitizeStats = {
|
|
12
|
+
filesWithSecrets: 0,
|
|
13
|
+
totalSecretsReplaced: 0,
|
|
14
|
+
filesProcessed: [],
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Get and reset sanitization statistics
|
|
18
|
+
*/
|
|
19
|
+
export function getAndResetSanitizeStats() {
|
|
20
|
+
const stats = { ...sanitizeStats };
|
|
21
|
+
sanitizeStats = {
|
|
22
|
+
filesWithSecrets: 0,
|
|
23
|
+
totalSecretsReplaced: 0,
|
|
24
|
+
filesProcessed: [],
|
|
25
|
+
};
|
|
26
|
+
return stats;
|
|
27
|
+
}
|
|
7
28
|
/**
|
|
8
29
|
* Load manifest from file
|
|
9
30
|
*/
|
|
@@ -53,13 +74,58 @@ export async function loadContract(entryId, projectRoot) {
|
|
|
53
74
|
return null;
|
|
54
75
|
}
|
|
55
76
|
}
|
|
77
|
+
/**
|
|
78
|
+
* Normalize project root for comparison (handles Windows case-insensitivity and path variations)
|
|
79
|
+
*/
|
|
80
|
+
function normalizeProjectRoot(path) {
|
|
81
|
+
const normalized = resolve(path);
|
|
82
|
+
// On Windows, paths are case-insensitive, so lowercase for comparison
|
|
83
|
+
if (process.platform === 'win32') {
|
|
84
|
+
return normalized.toLowerCase().replace(/\\/g, '/');
|
|
85
|
+
}
|
|
86
|
+
return normalized.replace(/\\/g, '/');
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Get security report (cached per project)
|
|
90
|
+
*/
|
|
91
|
+
async function getSecurityReport(projectRoot) {
|
|
92
|
+
const normalizedRoot = normalizeProjectRoot(projectRoot);
|
|
93
|
+
// Use cached report if available for the same project (normalized comparison)
|
|
94
|
+
if (cachedSecurityReport !== undefined && cachedProjectRoot !== null) {
|
|
95
|
+
const normalizedCachedRoot = normalizeProjectRoot(cachedProjectRoot);
|
|
96
|
+
if (normalizedCachedRoot === normalizedRoot) {
|
|
97
|
+
return cachedSecurityReport;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
// Load and cache the report
|
|
101
|
+
cachedProjectRoot = projectRoot;
|
|
102
|
+
cachedSecurityReport = await loadSecurityReport(projectRoot);
|
|
103
|
+
return cachedSecurityReport;
|
|
104
|
+
}
|
|
56
105
|
/**
|
|
57
106
|
* Extract code header (JSDoc @uif block) from source file
|
|
107
|
+
* NOTE: Source files are NEVER modified. Only the in-memory content is sanitized
|
|
108
|
+
* before being included in generated JSON bundles.
|
|
58
109
|
*/
|
|
59
110
|
export async function extractCodeHeader(entryId, projectRoot) {
|
|
60
111
|
try {
|
|
61
112
|
const absolutePath = isAbsolute(entryId) ? entryId : resolve(projectRoot, entryId);
|
|
62
|
-
|
|
113
|
+
// Read file content (source file is never modified)
|
|
114
|
+
let content = await readFile(absolutePath, 'utf8');
|
|
115
|
+
// Sanitize code in-memory only (for JSON generation, source files remain unchanged)
|
|
116
|
+
const securityReport = await getSecurityReport(projectRoot);
|
|
117
|
+
let sanitizeResult = null;
|
|
118
|
+
if (securityReport) {
|
|
119
|
+
sanitizeResult = sanitizeCode(content, absolutePath, securityReport, projectRoot);
|
|
120
|
+
content = sanitizeResult.sanitized;
|
|
121
|
+
// Track and log when secrets are found and replaced
|
|
122
|
+
if (sanitizeResult.secretsReplaced) {
|
|
123
|
+
sanitizeStats.filesWithSecrets++;
|
|
124
|
+
sanitizeStats.totalSecretsReplaced += sanitizeResult.matchCount;
|
|
125
|
+
sanitizeStats.filesProcessed.push(entryId);
|
|
126
|
+
console.log(` 🔒 Sanitized ${sanitizeResult.matchCount} secret(s) in ${entryId}`);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
63
129
|
// Look for @uif JSDoc block
|
|
64
130
|
const headerMatch = content.match(/\/\*\*[\s\S]*?@uif[\s\S]*?\*\//);
|
|
65
131
|
if (headerMatch) {
|
|
@@ -73,11 +139,29 @@ export async function extractCodeHeader(entryId, projectRoot) {
|
|
|
73
139
|
}
|
|
74
140
|
/**
|
|
75
141
|
* Read full source code
|
|
142
|
+
* NOTE: Source files are NEVER modified. Only the in-memory content is sanitized
|
|
143
|
+
* before being included in generated JSON bundles.
|
|
76
144
|
*/
|
|
77
145
|
export async function readSourceCode(entryId, projectRoot) {
|
|
78
146
|
try {
|
|
79
147
|
const absolutePath = isAbsolute(entryId) ? entryId : resolve(projectRoot, entryId);
|
|
80
|
-
|
|
148
|
+
// Read file content (source file is never modified)
|
|
149
|
+
let content = await readFile(absolutePath, 'utf8');
|
|
150
|
+
// Sanitize code in-memory only (for JSON generation, source files remain unchanged)
|
|
151
|
+
const securityReport = await getSecurityReport(projectRoot);
|
|
152
|
+
let sanitizeResult = null;
|
|
153
|
+
if (securityReport) {
|
|
154
|
+
sanitizeResult = sanitizeCode(content, absolutePath, securityReport, projectRoot);
|
|
155
|
+
content = sanitizeResult.sanitized;
|
|
156
|
+
// Track and log when secrets are found and replaced
|
|
157
|
+
if (sanitizeResult.secretsReplaced) {
|
|
158
|
+
sanitizeStats.filesWithSecrets++;
|
|
159
|
+
sanitizeStats.totalSecretsReplaced += sanitizeResult.matchCount;
|
|
160
|
+
sanitizeStats.filesProcessed.push(entryId);
|
|
161
|
+
console.log(` 🔒 Sanitized ${sanitizeResult.matchCount} secret(s) in ${entryId}`);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return content;
|
|
81
165
|
}
|
|
82
166
|
catch (error) {
|
|
83
167
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/core/pack/loader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/core/pack/loader.ts"],"names":[],"mappings":"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"}
|
package/dist/core/pack.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pack.d.ts","sourceRoot":"","sources":["../../src/core/pack.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;
|
|
1
|
+
{"version":3,"file":"pack.d.ts","sourceRoot":"","sources":["../../src/core/pack.ts"],"names":[],"mappings":"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"}
|
package/dist/core/pack.js
CHANGED
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
* Creates compact, hash-locked bundles with dependency graphs
|
|
28
28
|
*/
|
|
29
29
|
import { resolve, isAbsolute } from 'node:path';
|
|
30
|
+
import { getRelativePath } from '../utils/fsx.js';
|
|
30
31
|
import { normalizeEntryId } from '../utils/fsx.js';
|
|
31
32
|
import { createRequire } from 'node:module';
|
|
32
33
|
// Import from extracted modules
|
|
@@ -215,8 +216,13 @@ export async function pack(entryId, manifest, options, projectRoot) {
|
|
|
215
216
|
codeHeader = await extractCodeHeader(manifestKey, projectRoot);
|
|
216
217
|
}
|
|
217
218
|
if (contract) {
|
|
219
|
+
// Ensure node entryId is relative (manifest keys should already be relative, but convert if needed)
|
|
220
|
+
let nodeEntryId = manifestKey;
|
|
221
|
+
if (isAbsolute(manifestKey)) {
|
|
222
|
+
nodeEntryId = getRelativePath(projectRoot, manifestKey);
|
|
223
|
+
}
|
|
218
224
|
nodes.push({
|
|
219
|
-
entryId:
|
|
225
|
+
entryId: normalizeEntryId(nodeEntryId), // Use manifest key as the canonical identifier, normalized to relative
|
|
220
226
|
contract,
|
|
221
227
|
...(codeHeader !== undefined && { codeHeader }),
|
|
222
228
|
...(code !== undefined && { code }),
|
|
@@ -245,10 +251,17 @@ export async function pack(entryId, manifest, options, projectRoot) {
|
|
|
245
251
|
// Compute bundle hash
|
|
246
252
|
const bundleHash = computeBundleHash(sortedNodes, options.depth);
|
|
247
253
|
// Create bundle
|
|
254
|
+
// Ensure entryId is normalized and relative (not absolute)
|
|
255
|
+
// Convert absolute paths to relative before normalizing
|
|
256
|
+
let entryIdForBundle = actualEntryId;
|
|
257
|
+
if (isAbsolute(actualEntryId)) {
|
|
258
|
+
entryIdForBundle = getRelativePath(projectRoot, actualEntryId);
|
|
259
|
+
}
|
|
260
|
+
const normalizedEntryId = normalizeEntryId(entryIdForBundle);
|
|
248
261
|
const bundle = {
|
|
249
262
|
type: 'LogicStampBundle',
|
|
250
263
|
schemaVersion: '0.1',
|
|
251
|
-
entryId:
|
|
264
|
+
entryId: normalizedEntryId,
|
|
252
265
|
depth: options.depth,
|
|
253
266
|
createdAt: new Date().toISOString(),
|
|
254
267
|
bundleHash,
|
package/dist/core/pack.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pack.js","sourceRoot":"","sources":["../../src/core/pack.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"pack.js","sourceRoot":"","sources":["../../src/core/pack.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Code sanitization utilities
|
|
3
|
+
* Replaces secret values in code with "PRIVATE_DATA" based on security report
|
|
4
|
+
*/
|
|
5
|
+
import type { SecurityReport } from '../cli/commands/security.js';
|
|
6
|
+
/**
|
|
7
|
+
* Load security report from file
|
|
8
|
+
*/
|
|
9
|
+
export declare function loadSecurityReport(projectRoot: string): Promise<SecurityReport | null>;
|
|
10
|
+
/**
|
|
11
|
+
* Result of sanitization operation
|
|
12
|
+
*/
|
|
13
|
+
export interface SanitizeResult {
|
|
14
|
+
sanitized: string;
|
|
15
|
+
secretsReplaced: boolean;
|
|
16
|
+
filePath: string;
|
|
17
|
+
matchCount: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Sanitize code by replacing secret values with "PRIVATE_DATA"
|
|
21
|
+
* Uses security report to identify which lines contain secrets
|
|
22
|
+
*/
|
|
23
|
+
export declare function sanitizeCode(code: string, filePath: string, report: SecurityReport | null, projectRoot: string): SanitizeResult;
|
|
24
|
+
//# sourceMappingURL=codeSanitizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codeSanitizer.d.ts","sourceRoot":"","sources":["../../src/utils/codeSanitizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAS5F;AA+LD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,GAAG,IAAI,EAC7B,WAAW,EAAE,MAAM,GAClB,cAAc,CAwDhB"}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Code sanitization utilities
|
|
3
|
+
* Replaces secret values in code with "PRIVATE_DATA" based on security report
|
|
4
|
+
*/
|
|
5
|
+
import { resolve, isAbsolute, normalize } from 'node:path';
|
|
6
|
+
import { readFile } from 'node:fs/promises';
|
|
7
|
+
/**
|
|
8
|
+
* Load security report from file
|
|
9
|
+
*/
|
|
10
|
+
export async function loadSecurityReport(projectRoot) {
|
|
11
|
+
try {
|
|
12
|
+
const reportPath = resolve(projectRoot, 'stamp_security_report.json');
|
|
13
|
+
const content = await readFile(reportPath, 'utf8');
|
|
14
|
+
return JSON.parse(content);
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
// Report doesn't exist or can't be read - that's okay
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Normalize a path for comparison (handles Windows case-insensitivity)
|
|
23
|
+
* Converts to lowercase on Windows and normalizes separators
|
|
24
|
+
*/
|
|
25
|
+
function normalizePathForComparison(path) {
|
|
26
|
+
const normalized = normalize(resolve(path));
|
|
27
|
+
// On Windows, paths are case-insensitive, so lowercase for comparison
|
|
28
|
+
// Also normalize separators to forward slashes for consistency
|
|
29
|
+
if (process.platform === 'win32') {
|
|
30
|
+
return normalized.toLowerCase().replace(/\\/g, '/');
|
|
31
|
+
}
|
|
32
|
+
return normalized.replace(/\\/g, '/');
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Get secret matches for a specific file
|
|
36
|
+
*/
|
|
37
|
+
function getSecretMatchesForFile(report, filePath, projectRoot) {
|
|
38
|
+
// Try to match file path - handle both absolute and relative paths
|
|
39
|
+
const absoluteFilePath = isAbsolute(filePath) ? filePath : resolve(projectRoot, filePath);
|
|
40
|
+
const normalizedTargetPath = normalizePathForComparison(absoluteFilePath);
|
|
41
|
+
// Also normalize project roots for comparison
|
|
42
|
+
const normalizedReportRoot = normalizePathForComparison(report.projectRoot);
|
|
43
|
+
const normalizedCurrentRoot = normalizePathForComparison(projectRoot);
|
|
44
|
+
return report.matches.filter(match => {
|
|
45
|
+
// Normalize match file path - try multiple strategies
|
|
46
|
+
let matchFilePath;
|
|
47
|
+
if (isAbsolute(match.file)) {
|
|
48
|
+
// Match file is already absolute
|
|
49
|
+
matchFilePath = match.file;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
// Match file is relative - try resolving from report's projectRoot first
|
|
53
|
+
matchFilePath = resolve(report.projectRoot, match.file);
|
|
54
|
+
}
|
|
55
|
+
const normalizedMatchPath = normalizePathForComparison(matchFilePath);
|
|
56
|
+
// Direct path match
|
|
57
|
+
if (normalizedMatchPath === normalizedTargetPath) {
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
// If project roots differ, try resolving relative to current projectRoot
|
|
61
|
+
if (normalizedReportRoot !== normalizedCurrentRoot && !isAbsolute(match.file)) {
|
|
62
|
+
// Try resolving the match file relative to current projectRoot
|
|
63
|
+
const alternativePath = resolve(projectRoot, match.file);
|
|
64
|
+
const normalizedAlternative = normalizePathForComparison(alternativePath);
|
|
65
|
+
if (normalizedAlternative === normalizedTargetPath) {
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
// Try making both paths relative to their respective roots and comparing
|
|
69
|
+
// This handles cases where the file structure is the same but roots differ
|
|
70
|
+
try {
|
|
71
|
+
const relativeFromReport = match.file.replace(/^\.\//, '');
|
|
72
|
+
const relativeFromCurrent = filePath.replace(/^\.\//, '');
|
|
73
|
+
if (normalizePathForComparison(relativeFromReport) === normalizePathForComparison(relativeFromCurrent)) {
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
// Ignore errors in relative path comparison
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return false;
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Sanitize a line of code by replacing secret values with "PRIVATE_DATA"
|
|
86
|
+
* Uses the match information to accurately identify and replace the secret value
|
|
87
|
+
*/
|
|
88
|
+
function sanitizeLine(line, matches) {
|
|
89
|
+
if (matches.length === 0) {
|
|
90
|
+
return line;
|
|
91
|
+
}
|
|
92
|
+
let sanitized = line;
|
|
93
|
+
// Sort matches by column (right to left) to avoid offset issues when replacing
|
|
94
|
+
const sortedMatches = [...matches].sort((a, b) => b.column - a.column);
|
|
95
|
+
for (const match of sortedMatches) {
|
|
96
|
+
// Extract the secret value from the snippet
|
|
97
|
+
// The snippet typically shows: "context = 'SECRET_VALUE' context"
|
|
98
|
+
// We need to extract the actual secret value
|
|
99
|
+
// For database URLs: postgres://user:password@host (check this FIRST before quoted value matching)
|
|
100
|
+
// Database URLs are often in quotes, so we need to handle them specially
|
|
101
|
+
if (match.type === 'Database URL with Credentials') {
|
|
102
|
+
// Extract the password from the URL pattern: protocol://user:password@host
|
|
103
|
+
const dbUrlMatch = match.snippet.match(/((?:postgres|mysql|mongodb):\/\/[^:]+:)([^@]+)(@)/i);
|
|
104
|
+
if (dbUrlMatch) {
|
|
105
|
+
const password = dbUrlMatch[2];
|
|
106
|
+
// Also try to find the full URL in the line to replace just the password part
|
|
107
|
+
const fullUrlMatch = sanitized.match(/(['"`])((?:postgres|mysql|mongodb):\/\/[^:]+:)([^@]+)(@[^'"`]+)\1/i);
|
|
108
|
+
if (fullUrlMatch) {
|
|
109
|
+
const quote = fullUrlMatch[1];
|
|
110
|
+
const prefix = fullUrlMatch[2];
|
|
111
|
+
const passwordPart = fullUrlMatch[3];
|
|
112
|
+
const suffix = fullUrlMatch[4];
|
|
113
|
+
// Replace the URL with password sanitized
|
|
114
|
+
sanitized = sanitized.replace(fullUrlMatch[0], `${quote}${prefix}PRIVATE_DATA${suffix}${quote}`);
|
|
115
|
+
}
|
|
116
|
+
else if (sanitized.includes(password)) {
|
|
117
|
+
// Fallback: just replace the password if we can't match the full URL
|
|
118
|
+
sanitized = sanitized.replace(password, 'PRIVATE_DATA');
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
// Try to extract quoted values: 'value', "value", or `value`
|
|
124
|
+
// Handle cases where snippet has extra context (leading/trailing spaces, etc.)
|
|
125
|
+
const quotedValueMatch = match.snippet.match(/[=:]\s*(['"`])([^'"`]+)\1/);
|
|
126
|
+
if (quotedValueMatch) {
|
|
127
|
+
const quote = quotedValueMatch[1];
|
|
128
|
+
const secretValue = quotedValueMatch[2];
|
|
129
|
+
// Replace the secret value in the line, preserving quotes
|
|
130
|
+
// The secretValue might be in the line even if the snippet has different context
|
|
131
|
+
if (secretValue && secretValue.length > 0) {
|
|
132
|
+
const escapedValue = secretValue.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
133
|
+
// Try to find and replace the quoted value in the line
|
|
134
|
+
// Match: quote + secretValue + quote (with word boundaries to avoid partial matches)
|
|
135
|
+
const quotePattern = new RegExp(`${quote}${escapedValue}${quote}`, 'g');
|
|
136
|
+
// Check if pattern matches (don't use test() as it modifies lastIndex)
|
|
137
|
+
if (quotePattern.exec(sanitized) !== null) {
|
|
138
|
+
// Reset regex lastIndex before replace
|
|
139
|
+
quotePattern.lastIndex = 0;
|
|
140
|
+
sanitized = sanitized.replace(quotePattern, `${quote}PRIVATE_DATA${quote}`);
|
|
141
|
+
}
|
|
142
|
+
else if (sanitized.includes(secretValue)) {
|
|
143
|
+
// Fallback: if exact quote match fails, try to replace the value itself
|
|
144
|
+
// This handles cases where quotes might differ or context is different
|
|
145
|
+
sanitized = sanitized.replace(new RegExp(escapedValue, 'g'), 'PRIVATE_DATA');
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
// Try to extract unquoted values after = or :
|
|
151
|
+
const unquotedValueMatch = match.snippet.match(/[=:]\s+([a-zA-Z0-9_\-]{16,})/);
|
|
152
|
+
if (unquotedValueMatch) {
|
|
153
|
+
const secretValue = unquotedValueMatch[1];
|
|
154
|
+
if (sanitized.includes(secretValue)) {
|
|
155
|
+
const escapedValue = secretValue.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
156
|
+
sanitized = sanitized.replace(new RegExp(`\\b${escapedValue}\\b`, 'g'), 'PRIVATE_DATA');
|
|
157
|
+
}
|
|
158
|
+
continue;
|
|
159
|
+
}
|
|
160
|
+
// For private keys, replace the entire key block
|
|
161
|
+
if (match.type === 'Private Key' && sanitized.includes('BEGIN')) {
|
|
162
|
+
// Find the private key block and replace content between BEGIN and END
|
|
163
|
+
sanitized = sanitized.replace(/(-----BEGIN\s+(?:RSA\s+)?PRIVATE\s+KEY-----)[\s\S]*?(-----END\s+(?:RSA\s+)?PRIVATE\s+KEY-----)/g, '$1\nPRIVATE_DATA\n$2');
|
|
164
|
+
continue;
|
|
165
|
+
}
|
|
166
|
+
// Fallback: try to find and replace long alphanumeric strings that match the pattern
|
|
167
|
+
// This is less precise but catches edge cases
|
|
168
|
+
const longStringMatch = match.snippet.match(/([a-zA-Z0-9_\-]{20,})/);
|
|
169
|
+
if (longStringMatch) {
|
|
170
|
+
const potentialSecret = longStringMatch[1];
|
|
171
|
+
// Only replace if it's not already been replaced and it's a reasonable length
|
|
172
|
+
if (potentialSecret.length >= 16 && sanitized.includes(potentialSecret) && !sanitized.includes('PRIVATE_DATA')) {
|
|
173
|
+
const escaped = potentialSecret.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
174
|
+
sanitized = sanitized.replace(new RegExp(escaped, 'g'), 'PRIVATE_DATA');
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
return sanitized;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Sanitize code by replacing secret values with "PRIVATE_DATA"
|
|
182
|
+
* Uses security report to identify which lines contain secrets
|
|
183
|
+
*/
|
|
184
|
+
export function sanitizeCode(code, filePath, report, projectRoot) {
|
|
185
|
+
if (!report || report.matches.length === 0) {
|
|
186
|
+
return {
|
|
187
|
+
sanitized: code,
|
|
188
|
+
secretsReplaced: false,
|
|
189
|
+
filePath,
|
|
190
|
+
matchCount: 0,
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
// Get secret matches for this specific file
|
|
194
|
+
const fileMatches = getSecretMatchesForFile(report, filePath, projectRoot);
|
|
195
|
+
if (fileMatches.length === 0) {
|
|
196
|
+
// No matches for this file - return code unchanged
|
|
197
|
+
return {
|
|
198
|
+
sanitized: code,
|
|
199
|
+
secretsReplaced: false,
|
|
200
|
+
filePath,
|
|
201
|
+
matchCount: 0,
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
// Group matches by line number
|
|
205
|
+
const matchesByLine = new Map();
|
|
206
|
+
for (const match of fileMatches) {
|
|
207
|
+
if (!matchesByLine.has(match.line)) {
|
|
208
|
+
matchesByLine.set(match.line, []);
|
|
209
|
+
}
|
|
210
|
+
matchesByLine.get(match.line).push(match);
|
|
211
|
+
}
|
|
212
|
+
// Sanitize each line that has secrets
|
|
213
|
+
const lines = code.split('\n');
|
|
214
|
+
let secretsReplaced = false;
|
|
215
|
+
const sanitizedLines = lines.map((line, index) => {
|
|
216
|
+
const lineNumber = index + 1; // Line numbers are 1-based
|
|
217
|
+
const lineMatches = matchesByLine.get(lineNumber);
|
|
218
|
+
if (lineMatches && lineMatches.length > 0) {
|
|
219
|
+
const sanitized = sanitizeLine(line, lineMatches);
|
|
220
|
+
if (sanitized !== line) {
|
|
221
|
+
secretsReplaced = true;
|
|
222
|
+
}
|
|
223
|
+
return sanitized;
|
|
224
|
+
}
|
|
225
|
+
return line;
|
|
226
|
+
});
|
|
227
|
+
return {
|
|
228
|
+
sanitized: sanitizedLines.join('\n'),
|
|
229
|
+
secretsReplaced,
|
|
230
|
+
filePath,
|
|
231
|
+
matchCount: fileMatches.length,
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
//# sourceMappingURL=codeSanitizer.js.map
|