@mnemonik/shared 7.141.2 → 7.142.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.
@@ -18,6 +18,11 @@ export declare function redactCredentials(text: string, options?: RedactCredenti
18
18
  redactions: number;
19
19
  kinds: string[];
20
20
  };
21
+ /** Source callers edit literal AST spans within these existing command-line matches. */
22
+ export declare function commandLineCredentialRanges(text: string): Array<{
23
+ start: number;
24
+ end: number;
25
+ }>;
21
26
  /**
22
27
  * The credential values the context rules (command-line passwords, URL
23
28
  * passwords, named values, Bearer tokens) would redact from `text`, for a
@@ -1 +1 @@
1
- {"version":3,"file":"redactCredentials.d.ts","sourceRoot":"","sources":["../src/redactCredentials.ts"],"names":[],"mappings":"AA4CA,MAAM,WAAW,wBAAwB;IACvC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AA+fD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,wBAA6B,GACrC;IACD,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAEA;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,IAAI,CAAC,wBAAwB,EAAE,iBAAiB,CAAM,GAC9D,GAAG,CAAC,MAAM,CAAC,CAIb"}
1
+ {"version":3,"file":"redactCredentials.d.ts","sourceRoot":"","sources":["../src/redactCredentials.ts"],"names":[],"mappings":"AA4CA,MAAM,WAAW,wBAAwB;IACvC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AA+fD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,wBAA6B,GACrC;IACD,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAEA;AAED,wFAAwF;AACxF,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAoB/F;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,IAAI,CAAC,wBAAwB,EAAE,iBAAiB,CAAM,GAC9D,GAAG,CAAC,MAAM,CAAC,CAIb"}
@@ -477,6 +477,28 @@ function redact(text, options, values) {
477
477
  export function redactCredentials(text, options = {}) {
478
478
  return redact(text, options, new Set());
479
479
  }
480
+ /** Source callers edit literal AST spans within these existing command-line matches. */
481
+ export function commandLineCredentialRanges(text) {
482
+ const ranges = [];
483
+ for (const { pattern, replacement, secretGroup, commandLine } of PATTERNS) {
484
+ if (!commandLine || !secretGroup || typeof replacement !== 'function')
485
+ continue;
486
+ for (const match of text.matchAll(pattern)) {
487
+ const prefix = match[1];
488
+ const value = match[secretGroup];
489
+ if (prefix === undefined || value === undefined)
490
+ continue;
491
+ // Runtime expressions can contain literal defaults; the source AST separates them.
492
+ const runtimeWord = /^"?\$/.test(value);
493
+ if (!runtimeWord &&
494
+ replacement(match[0], ...match.slice(1).map((group) => group ?? '')) === match[0])
495
+ continue;
496
+ const start = match.index + prefix.length;
497
+ ranges.push({ start, end: start + value.length });
498
+ }
499
+ }
500
+ return ranges.sort((a, b) => a.start - b.start);
501
+ }
480
502
  /**
481
503
  * The credential values the context rules (command-line passwords, URL
482
504
  * passwords, named values, Bearer tokens) would redact from `text`, for a
@@ -1 +1 @@
1
- {"version":3,"file":"redactCredentials.js","sourceRoot":"","sources":["../src/redactCredentials.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redactCredentials.js","sourceRoot":"","sources":["../src/redactCredentials.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sourceRedaction.d.ts","sourceRoot":"","sources":["../src/sourceRedaction.ts"],"names":[],"mappings":"AAgBA,sGAAsG;AACtG,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA6BxF"}
1
+ {"version":3,"file":"sourceRedaction.d.ts","sourceRoot":"","sources":["../src/sourceRedaction.ts"],"names":[],"mappings":"AAgBA,sGAAsG;AACtG,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAqCxF"}
@@ -2,7 +2,7 @@ import { extname } from 'node:path';
2
2
  import { Parser } from 'web-tree-sitter';
3
3
  import { loadGrammar } from './ast/grammars.js';
4
4
  import { MAX_AST_PARSE_BYTES } from './ast/astChunker.js';
5
- import { redactCredentials } from './redactCredentials.js';
5
+ import { commandLineCredentialRanges, redactCredentials } from './redactCredentials.js';
6
6
  import { redactHighEntropyTokens, redactSecretValue, scrubSecrets, SECRET_LABEL_RE, } from './secretPatterns.js';
7
7
  function scrubPayload(text) {
8
8
  return redactCredentials(scrubSecrets(text), { commandLineOnly: true }).text;
@@ -16,7 +16,11 @@ export async function scrubSourceSecrets(text, filePath) {
16
16
  ? 'tsx'
17
17
  : ['.js', '.jsx', '.mjs', '.cjs'].includes(extension)
18
18
  ? 'javascript'
19
- : null;
19
+ : ['.py', '.pyi'].includes(extension)
20
+ ? 'python'
21
+ : ['.sh', '.bash', '.zsh'].includes(extension)
22
+ ? 'bash'
23
+ : null;
20
24
  if (!text || !language || Buffer.byteLength(text, 'utf8') > MAX_AST_PARSE_BYTES) {
21
25
  return scrubPayload(text);
22
26
  }
@@ -32,7 +36,10 @@ export async function scrubSourceSecrets(text, filePath) {
32
36
  if (!tree || tree.rootNode.hasError)
33
37
  return scrubPayload(text);
34
38
  const root = tree.rootNode;
35
- return text.slice(0, root.startIndex) + redactNode(root) + text.slice(root.endIndex);
39
+ const redacted = language === 'bash'
40
+ ? redactShellNode(root, commandLineCredentialRanges(text))
41
+ : redactNode(root);
42
+ return text.slice(0, root.startIndex) + redacted + text.slice(root.endIndex);
36
43
  }
37
44
  catch {
38
45
  return scrubPayload(text);
@@ -42,11 +49,111 @@ export async function scrubSourceSecrets(text, filePath) {
42
49
  parser?.delete();
43
50
  }
44
51
  }
52
+ function redactShellNode(root, ranges) {
53
+ for (const range of ranges) {
54
+ let literal = root.descendantForIndex(range.start, range.start);
55
+ while (literal && !['word', 'string', 'raw_string', 'ansi_c_string'].includes(literal.type))
56
+ literal = literal.parent;
57
+ // Regex rules can stop at an escaped quote/space; the AST owns the complete literal.
58
+ if (literal)
59
+ range.end = Math.max(range.end, literal.endIndex);
60
+ }
61
+ let rangeIndex = 0;
62
+ const payload = (text, start, sensitive, boundary) => {
63
+ while (rangeIndex < ranges.length) {
64
+ const range = ranges[rangeIndex];
65
+ if (!range || range.end > start)
66
+ break;
67
+ rangeIndex++;
68
+ }
69
+ let result = '';
70
+ let offset = start;
71
+ for (let i = rangeIndex; i < ranges.length; i++) {
72
+ const range = ranges[i];
73
+ if (!range || range.start >= start + text.length)
74
+ break;
75
+ if (range.start < boundary)
76
+ continue;
77
+ const begin = Math.max(offset, range.start);
78
+ const end = Math.min(start + text.length, range.end);
79
+ if (begin >= end)
80
+ continue;
81
+ result +=
82
+ text.slice(offset - start, begin - start) +
83
+ redactSecretValue(text.slice(begin - start, end - start));
84
+ offset = end;
85
+ }
86
+ return literalPayload(result + text.slice(offset - start), sensitive);
87
+ };
88
+ const visit = (node, sensitive = false, boundary = 0) => {
89
+ const original = node.text;
90
+ if (['simple_expansion', 'command_substitution', 'arithmetic_expansion'].includes(node.type)) {
91
+ // An enclosing credential rule must not taint arguments inside a runtime expression.
92
+ boundary = node.startIndex;
93
+ sensitive = false;
94
+ }
95
+ if (node.type === 'expansion') {
96
+ // A CLI credential argument can supply the label even when this is not an assignment.
97
+ for (let i = rangeIndex; i < ranges.length; i++) {
98
+ const range = ranges[i];
99
+ if (!range || range.start > node.startIndex)
100
+ break;
101
+ if (range.start >= boundary && range.end >= node.endIndex)
102
+ sensitive = true;
103
+ }
104
+ boundary = node.startIndex;
105
+ // Defaults/alternates are value literals; the parameter name remains a reference.
106
+ sensitive = sensitive && /^:?[+=-]$/.test(node.childForFieldName('operator')?.text ?? '');
107
+ }
108
+ if (node.type === 'comment')
109
+ return '#' + scrubPayload(original.slice(1));
110
+ if (node.type === 'raw_string' || node.type === 'ansi_c_string') {
111
+ const prefix = node.type === 'ansi_c_string' ? 2 : 1;
112
+ return (original.slice(0, prefix) +
113
+ payload(original.slice(prefix, -1), node.startIndex + prefix, sensitive, boundary) +
114
+ "'");
115
+ }
116
+ if (node.type === 'word') {
117
+ if (node.parent?.type === 'command_name' ||
118
+ node.id === node.parent?.childForFieldName('name')?.id)
119
+ return original;
120
+ const redacted = payload(original, node.startIndex, sensitive, boundary);
121
+ return redacted === original ? original : "'" + redacted.replaceAll("'", "'\\''") + "'";
122
+ }
123
+ const isText = node.type === 'string' || node.type === 'heredoc_body';
124
+ const value = node.type === 'variable_assignment' ? node.childForFieldName('value') : null;
125
+ const labeled = value && secretLabel(node.childForFieldName('name'));
126
+ const children = isText
127
+ ? node.namedChildren.filter((child) => !['string_content', 'heredoc_content'].includes(child.type))
128
+ : node.namedChildren;
129
+ let result = node.type === 'string' ? '"' : '';
130
+ let offset = node.startIndex + (node.type === 'string' ? 1 : 0);
131
+ for (const child of children) {
132
+ const gap = original.slice(offset - node.startIndex, child.startIndex - node.startIndex);
133
+ result += isText ? payload(gap, offset, sensitive, boundary) : gap;
134
+ result += visit(child, (sensitive &&
135
+ (isText ||
136
+ node.type === 'concatenation' ||
137
+ (node.type === 'expansion' && child.type !== 'variable_name'))) ||
138
+ Boolean(labeled && child.id === value?.id), boundary);
139
+ offset = child.endIndex;
140
+ }
141
+ const end = node.endIndex - (node.type === 'string' ? 1 : 0);
142
+ const tail = original.slice(offset - node.startIndex, end - node.startIndex);
143
+ return (result +
144
+ (isText ? payload(tail, offset, sensitive, boundary) : tail) +
145
+ (node.type === 'string' ? '"' : ''));
146
+ };
147
+ return visit(root);
148
+ }
45
149
  function secretLabel(node) {
46
150
  if (!node)
47
151
  return false;
48
- const property = node.childForFieldName('property') ?? node;
49
- const name = property.type === 'string' ? property.text.slice(1, -1) : property.text;
152
+ const property = node.childForFieldName('property') ?? node.childForFieldName('attribute') ?? node;
153
+ const name = property.type === 'string'
154
+ ? (property.namedChildren.find((child) => child.type === 'string_content')?.text ??
155
+ property.text.slice(1, -1))
156
+ : property.text;
50
157
  return SECRET_LABEL_RE.test(name);
51
158
  }
52
159
  function literalPayload(text, sensitive) {
@@ -58,11 +165,16 @@ function literalPayload(text, sensitive) {
58
165
  function redactNode(node, sensitive = false) {
59
166
  const original = node.text;
60
167
  if (node.type === 'comment') {
168
+ if (original.startsWith('#'))
169
+ return '#' + scrubPayload(original.slice(1));
61
170
  return original.startsWith('/*')
62
171
  ? '/*' + scrubPayload(original.slice(2, -2)) + '*/'
63
172
  : '//' + scrubPayload(original.slice(2));
64
173
  }
65
- if (node.type === 'string') {
174
+ const stringStart = node.type === 'string' && node.firstNamedChild?.type === 'string_start'
175
+ ? node.firstNamedChild
176
+ : null;
177
+ if (node.type === 'string' && !stringStart) {
66
178
  return original[0] + literalPayload(original.slice(1, -1), sensitive) + original.at(-1);
67
179
  }
68
180
  if (node.type === 'property_identifier' &&
@@ -71,19 +183,22 @@ function redactNode(node, sensitive = false) {
71
183
  const payload = literalPayload(original, false);
72
184
  return payload === original ? original : '"' + payload + '"';
73
185
  }
74
- if (node.type === 'number' && sensitive)
186
+ if (['number', 'integer', 'float'].includes(node.type) && sensitive)
75
187
  return `'${redactSecretValue(original)}'`;
76
- if (node.type === 'template_string') {
77
- let result = '`';
78
- let offset = node.startIndex + 1;
188
+ if (node.type === 'template_string' || stringStart) {
189
+ const stringEnd = stringStart ? node.lastNamedChild : null;
190
+ let result = stringStart?.text ?? '`';
191
+ let offset = stringStart?.endIndex ?? node.startIndex + 1;
79
192
  for (const child of node.namedChildren) {
80
- if (child.type !== 'template_substitution')
193
+ if (child.type !== 'template_substitution' && child.type !== 'interpolation')
81
194
  continue;
82
195
  result += literalPayload(original.slice(offset - node.startIndex, child.startIndex - node.startIndex), sensitive);
83
196
  result += redactNode(child);
84
197
  offset = child.endIndex;
85
198
  }
86
- return result + literalPayload(original.slice(offset - node.startIndex, -1), sensitive) + '`';
199
+ return (result +
200
+ literalPayload(original.slice(offset - node.startIndex, (stringEnd?.startIndex ?? node.endIndex - 1) - node.startIndex), sensitive) +
201
+ (stringEnd?.text ?? '`'));
87
202
  }
88
203
  if (node.type === 'regex_pattern' || node.type === 'jsx_text')
89
204
  return scrubPayload(original);
@@ -101,6 +216,9 @@ function redactNode(node, sensitive = false) {
101
216
  'public_field_definition',
102
217
  'assignment_pattern',
103
218
  'required_parameter',
219
+ 'default_parameter',
220
+ 'typed_default_parameter',
221
+ 'keyword_argument',
104
222
  ].includes(node.type)) {
105
223
  key =
106
224
  node.childForFieldName('name') ??
@@ -109,7 +227,7 @@ function redactNode(node, sensitive = false) {
109
227
  node.childForFieldName('left');
110
228
  value = node.childForFieldName('value') ?? node.childForFieldName('right');
111
229
  }
112
- else if (node.type === 'assignment_expression') {
230
+ else if (['assignment_expression', 'assignment', 'augmented_assignment', 'named_expression'].includes(node.type)) {
113
231
  key = node.childForFieldName('left');
114
232
  value = node.childForFieldName('right');
115
233
  }
@@ -123,16 +241,22 @@ function redactNode(node, sensitive = false) {
123
241
  result += original.slice(offset - node.startIndex, child.startIndex - node.startIndex);
124
242
  // Carry labels through value wrappers, never through call arguments or conditions.
125
243
  const carry = sensitive &&
126
- (([
127
- 'parenthesized_expression',
128
- 'as_expression',
129
- 'satisfies_expression',
130
- 'non_null_expression',
131
- ].includes(node.type) &&
132
- child.id === node.firstNamedChild?.id) ||
244
+ (node.type === 'concatenated_string' ||
245
+ node.type === 'binary_operator' ||
246
+ node.type === 'unary_operator' ||
247
+ (node.type === 'call' && child.id === node.childForFieldName('function')?.id) ||
248
+ (node.type === 'attribute' && child.id === node.childForFieldName('object')?.id) ||
249
+ (node.type === 'conditional_expression' && child.id !== node.namedChildren[1]?.id) ||
250
+ ([
251
+ 'parenthesized_expression',
252
+ 'as_expression',
253
+ 'satisfies_expression',
254
+ 'non_null_expression',
255
+ ].includes(node.type) &&
256
+ child.id === node.firstNamedChild?.id) ||
133
257
  (node.type === 'type_assertion' && child.id === node.lastNamedChild?.id) ||
134
- (node.type === 'binary_expression' &&
135
- ['+', '||', '&&', '??'].includes(node.childForFieldName('operator')?.text ?? '')) ||
258
+ (['binary_expression', 'boolean_operator'].includes(node.type) &&
259
+ ['+', '||', '&&', '??', 'or', 'and'].includes(node.childForFieldName('operator')?.text ?? '')) ||
136
260
  (node.type === 'ternary_expression' &&
137
261
  child.id !== node.childForFieldName('condition')?.id));
138
262
  result += redactNode(child, carry || (labeled && child.id === value?.id));
@@ -1 +1 @@
1
- {"version":3,"file":"sourceRedaction.js","sourceRoot":"","sources":["../src/sourceRedaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sourceRedaction.js","sourceRoot":"","sources":["../src/sourceRedaction.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mnemonik/shared",
3
- "version": "7.141.2",
3
+ "version": "7.142.0",
4
4
  "description": "Shared constants and utilities for Mnemonik packages",
5
5
  "repository": {
6
6
  "type": "git",
@@ -33,6 +33,7 @@ import {
33
33
  readdirSync,
34
34
  rmSync,
35
35
  statSync,
36
+ writeFileSync,
36
37
  } from 'node:fs';
37
38
  import { tmpdir } from 'node:os';
38
39
  import { basename, join } from 'node:path';
@@ -88,11 +89,16 @@ interface GrammarSpec {
88
89
  const GRAMMARS: GrammarSpec[] = [
89
90
  {
90
91
  id: 'typescript',
91
- pkg: 'tree-sitter-typescript',
92
+ pkg: 'tree-sitter-typescript@0.23.2',
92
93
  wasmFile: 'tree-sitter-typescript.wasm',
93
94
  tags: 'upstream',
94
95
  },
95
- { id: 'tsx', pkg: 'tree-sitter-typescript', wasmFile: 'tree-sitter-tsx.wasm', tags: 'inherited' },
96
+ {
97
+ id: 'tsx',
98
+ pkg: 'tree-sitter-typescript@0.23.2',
99
+ wasmFile: 'tree-sitter-tsx.wasm',
100
+ tags: 'inherited',
101
+ },
96
102
  { id: 'javascript', pkg: 'tree-sitter-javascript', tags: 'upstream' },
97
103
  { id: 'python', pkg: 'tree-sitter-python', tags: 'upstream' },
98
104
  { id: 'go', pkg: 'tree-sitter-go', tags: 'upstream' },
@@ -216,6 +222,57 @@ async function checkOnly(): Promise<Problem[]> {
216
222
  return problems;
217
223
  }
218
224
 
225
+ /**
226
+ * 0.23.2's published WASMs and generated C share these two grammar defects.
227
+ * Keep `unique` contextual, and let GLR distinguish typeof-import type queries
228
+ * from runtime calls instead of discarding the type reading on static precedence.
229
+ * Source: https://github.com/tree-sitter/tree-sitter-typescript/tree/v0.23.2
230
+ * MIT; CLI 0.24.4 uses emscripten/emsdk:3.1.64 for the WASM build.
231
+ */
232
+ function rebuildTypescript(dir: string, work: string): void {
233
+ const grammarPath = join(dir, 'common', 'define-grammar.js');
234
+ let grammar = readFileSync(grammarPath, 'utf8');
235
+ for (const [before, after] of [
236
+ [
237
+ ' _reserved_identifier: (_, previous) => choice(',
238
+ " _reserved_identifier: (_, previous) => choice(\n 'unique',",
239
+ ],
240
+ [' [$.call_expression, $._type_query_call_expression],\n', ''],
241
+ [
242
+ ' conflicts: ($, previous) => previous.concat([',
243
+ ' conflicts: ($, previous) => previous.concat([\n [$.call_expression, $._type_query_call_expression],',
244
+ ],
245
+ ] as const) {
246
+ if (!grammar.includes(before)) throw new Error('TypeScript grammar patch no longer applies');
247
+ grammar = grammar.replace(before, after);
248
+ }
249
+ writeFileSync(grammarPath, grammar);
250
+ const tools = join(work, 'typescript-build');
251
+ execFileSync('npm', [
252
+ 'install',
253
+ '--prefix',
254
+ tools,
255
+ '--no-audit',
256
+ '--no-fund',
257
+ '--no-package-lock',
258
+ 'tree-sitter-cli@0.24.4',
259
+ 'tree-sitter-javascript@0.23.1',
260
+ ]);
261
+ const cli = join(tools, 'node_modules', '.bin', 'tree-sitter');
262
+ for (const dialect of ['typescript', 'tsx']) {
263
+ const options = {
264
+ cwd: join(dir, dialect),
265
+ env: { ...process.env, NODE_PATH: join(tools, 'node_modules') },
266
+ };
267
+ execFileSync(cli, ['generate'], options);
268
+ execFileSync(
269
+ cli,
270
+ ['build', '--wasm', '--docker', '--output', join(dir, `tree-sitter-${dialect}.wasm`)],
271
+ options
272
+ );
273
+ }
274
+ }
275
+
219
276
  function vendor(): Problem[] {
220
277
  mkdirSync(WASM_DIR, { recursive: true });
221
278
  const work = mkdtempSync(join(tmpdir(), 'ts-grammars-'));
@@ -247,6 +304,7 @@ function vendor(): Problem[] {
247
304
  dir,
248
305
  '--strip-components=1',
249
306
  ]);
307
+ if (spec.id === 'typescript') rebuildTypescript(dir, work);
250
308
  extracted.set(spec.pkg, dir);
251
309
  } catch (err) {
252
310
  problems.push({
@@ -578,6 +578,29 @@ export function redactCredentials(
578
578
  return redact(text, options, new Set());
579
579
  }
580
580
 
581
+ /** Source callers edit literal AST spans within these existing command-line matches. */
582
+ export function commandLineCredentialRanges(text: string): Array<{ start: number; end: number }> {
583
+ const ranges: Array<{ start: number; end: number }> = [];
584
+ for (const { pattern, replacement, secretGroup, commandLine } of PATTERNS) {
585
+ if (!commandLine || !secretGroup || typeof replacement !== 'function') continue;
586
+ for (const match of text.matchAll(pattern)) {
587
+ const prefix = match[1];
588
+ const value = match[secretGroup];
589
+ if (prefix === undefined || value === undefined) continue;
590
+ // Runtime expressions can contain literal defaults; the source AST separates them.
591
+ const runtimeWord = /^"?\$/.test(value);
592
+ if (
593
+ !runtimeWord &&
594
+ replacement(match[0], ...match.slice(1).map((group) => group ?? '')) === match[0]
595
+ )
596
+ continue;
597
+ const start = match.index + prefix.length;
598
+ ranges.push({ start, end: start + value.length });
599
+ }
600
+ }
601
+ return ranges.sort((a, b) => a.start - b.start);
602
+ }
603
+
581
604
  /**
582
605
  * The credential values the context rules (command-line passwords, URL
583
606
  * passwords, named values, Bearer tokens) would redact from `text`, for a
@@ -2,7 +2,7 @@ import { extname } from 'node:path';
2
2
  import { Parser, type Node, type Tree } from 'web-tree-sitter';
3
3
  import { loadGrammar } from './ast/grammars.js';
4
4
  import { MAX_AST_PARSE_BYTES } from './ast/astChunker.js';
5
- import { redactCredentials } from './redactCredentials.js';
5
+ import { commandLineCredentialRanges, redactCredentials } from './redactCredentials.js';
6
6
  import {
7
7
  redactHighEntropyTokens,
8
8
  redactSecretValue,
@@ -23,7 +23,11 @@ export async function scrubSourceSecrets(text: string, filePath: string): Promis
23
23
  ? 'tsx'
24
24
  : ['.js', '.jsx', '.mjs', '.cjs'].includes(extension)
25
25
  ? 'javascript'
26
- : null;
26
+ : ['.py', '.pyi'].includes(extension)
27
+ ? 'python'
28
+ : ['.sh', '.bash', '.zsh'].includes(extension)
29
+ ? 'bash'
30
+ : null;
27
31
  if (!text || !language || Buffer.byteLength(text, 'utf8') > MAX_AST_PARSE_BYTES) {
28
32
  return scrubPayload(text);
29
33
  }
@@ -37,7 +41,11 @@ export async function scrubSourceSecrets(text: string, filePath: string): Promis
37
41
  tree = parser.parse(text);
38
42
  if (!tree || tree.rootNode.hasError) return scrubPayload(text);
39
43
  const root = tree.rootNode;
40
- return text.slice(0, root.startIndex) + redactNode(root) + text.slice(root.endIndex);
44
+ const redacted =
45
+ language === 'bash'
46
+ ? redactShellNode(root, commandLineCredentialRanges(text))
47
+ : redactNode(root);
48
+ return text.slice(0, root.startIndex) + redacted + text.slice(root.endIndex);
41
49
  } catch {
42
50
  return scrubPayload(text);
43
51
  } finally {
@@ -46,10 +54,120 @@ export async function scrubSourceSecrets(text: string, filePath: string): Promis
46
54
  }
47
55
  }
48
56
 
57
+ function redactShellNode(
58
+ root: Node,
59
+ ranges: ReturnType<typeof commandLineCredentialRanges>
60
+ ): string {
61
+ for (const range of ranges) {
62
+ let literal = root.descendantForIndex(range.start, range.start);
63
+ while (literal && !['word', 'string', 'raw_string', 'ansi_c_string'].includes(literal.type))
64
+ literal = literal.parent;
65
+ // Regex rules can stop at an escaped quote/space; the AST owns the complete literal.
66
+ if (literal) range.end = Math.max(range.end, literal.endIndex);
67
+ }
68
+ let rangeIndex = 0;
69
+ const payload = (text: string, start: number, sensitive: boolean, boundary: number): string => {
70
+ while (rangeIndex < ranges.length) {
71
+ const range = ranges[rangeIndex];
72
+ if (!range || range.end > start) break;
73
+ rangeIndex++;
74
+ }
75
+ let result = '';
76
+ let offset = start;
77
+ for (let i = rangeIndex; i < ranges.length; i++) {
78
+ const range = ranges[i];
79
+ if (!range || range.start >= start + text.length) break;
80
+ if (range.start < boundary) continue;
81
+ const begin = Math.max(offset, range.start);
82
+ const end = Math.min(start + text.length, range.end);
83
+ if (begin >= end) continue;
84
+ result +=
85
+ text.slice(offset - start, begin - start) +
86
+ redactSecretValue(text.slice(begin - start, end - start));
87
+ offset = end;
88
+ }
89
+ return literalPayload(result + text.slice(offset - start), sensitive);
90
+ };
91
+ const visit = (node: Node, sensitive = false, boundary = 0): string => {
92
+ const original = node.text;
93
+ if (['simple_expansion', 'command_substitution', 'arithmetic_expansion'].includes(node.type)) {
94
+ // An enclosing credential rule must not taint arguments inside a runtime expression.
95
+ boundary = node.startIndex;
96
+ sensitive = false;
97
+ }
98
+ if (node.type === 'expansion') {
99
+ // A CLI credential argument can supply the label even when this is not an assignment.
100
+ for (let i = rangeIndex; i < ranges.length; i++) {
101
+ const range = ranges[i];
102
+ if (!range || range.start > node.startIndex) break;
103
+ if (range.start >= boundary && range.end >= node.endIndex) sensitive = true;
104
+ }
105
+ boundary = node.startIndex;
106
+ // Defaults/alternates are value literals; the parameter name remains a reference.
107
+ sensitive = sensitive && /^:?[+=-]$/.test(node.childForFieldName('operator')?.text ?? '');
108
+ }
109
+ if (node.type === 'comment') return '#' + scrubPayload(original.slice(1));
110
+ if (node.type === 'raw_string' || node.type === 'ansi_c_string') {
111
+ const prefix = node.type === 'ansi_c_string' ? 2 : 1;
112
+ return (
113
+ original.slice(0, prefix) +
114
+ payload(original.slice(prefix, -1), node.startIndex + prefix, sensitive, boundary) +
115
+ "'"
116
+ );
117
+ }
118
+ if (node.type === 'word') {
119
+ if (
120
+ node.parent?.type === 'command_name' ||
121
+ node.id === node.parent?.childForFieldName('name')?.id
122
+ )
123
+ return original;
124
+ const redacted = payload(original, node.startIndex, sensitive, boundary);
125
+ return redacted === original ? original : "'" + redacted.replaceAll("'", "'\\''") + "'";
126
+ }
127
+ const isText = node.type === 'string' || node.type === 'heredoc_body';
128
+ const value = node.type === 'variable_assignment' ? node.childForFieldName('value') : null;
129
+ const labeled = value && secretLabel(node.childForFieldName('name'));
130
+ const children = isText
131
+ ? node.namedChildren.filter(
132
+ (child) => !['string_content', 'heredoc_content'].includes(child.type)
133
+ )
134
+ : node.namedChildren;
135
+ let result = node.type === 'string' ? '"' : '';
136
+ let offset = node.startIndex + (node.type === 'string' ? 1 : 0);
137
+ for (const child of children) {
138
+ const gap = original.slice(offset - node.startIndex, child.startIndex - node.startIndex);
139
+ result += isText ? payload(gap, offset, sensitive, boundary) : gap;
140
+ result += visit(
141
+ child,
142
+ (sensitive &&
143
+ (isText ||
144
+ node.type === 'concatenation' ||
145
+ (node.type === 'expansion' && child.type !== 'variable_name'))) ||
146
+ Boolean(labeled && child.id === value?.id),
147
+ boundary
148
+ );
149
+ offset = child.endIndex;
150
+ }
151
+ const end = node.endIndex - (node.type === 'string' ? 1 : 0);
152
+ const tail = original.slice(offset - node.startIndex, end - node.startIndex);
153
+ return (
154
+ result +
155
+ (isText ? payload(tail, offset, sensitive, boundary) : tail) +
156
+ (node.type === 'string' ? '"' : '')
157
+ );
158
+ };
159
+ return visit(root);
160
+ }
161
+
49
162
  function secretLabel(node: Node | null): boolean {
50
163
  if (!node) return false;
51
- const property = node.childForFieldName('property') ?? node;
52
- const name = property.type === 'string' ? property.text.slice(1, -1) : property.text;
164
+ const property =
165
+ node.childForFieldName('property') ?? node.childForFieldName('attribute') ?? node;
166
+ const name =
167
+ property.type === 'string'
168
+ ? (property.namedChildren.find((child) => child.type === 'string_content')?.text ??
169
+ property.text.slice(1, -1))
170
+ : property.text;
53
171
  return SECRET_LABEL_RE.test(name);
54
172
  }
55
173
 
@@ -62,11 +180,16 @@ function literalPayload(text: string, sensitive: boolean): string {
62
180
  function redactNode(node: Node, sensitive = false): string {
63
181
  const original = node.text;
64
182
  if (node.type === 'comment') {
183
+ if (original.startsWith('#')) return '#' + scrubPayload(original.slice(1));
65
184
  return original.startsWith('/*')
66
185
  ? '/*' + scrubPayload(original.slice(2, -2)) + '*/'
67
186
  : '//' + scrubPayload(original.slice(2));
68
187
  }
69
- if (node.type === 'string') {
188
+ const stringStart =
189
+ node.type === 'string' && node.firstNamedChild?.type === 'string_start'
190
+ ? node.firstNamedChild
191
+ : null;
192
+ if (node.type === 'string' && !stringStart) {
70
193
  return original[0] + literalPayload(original.slice(1, -1), sensitive) + original.at(-1);
71
194
  }
72
195
  if (
@@ -77,12 +200,14 @@ function redactNode(node: Node, sensitive = false): string {
77
200
  const payload = literalPayload(original, false);
78
201
  return payload === original ? original : '"' + payload + '"';
79
202
  }
80
- if (node.type === 'number' && sensitive) return `'${redactSecretValue(original)}'`;
81
- if (node.type === 'template_string') {
82
- let result = '`';
83
- let offset = node.startIndex + 1;
203
+ if (['number', 'integer', 'float'].includes(node.type) && sensitive)
204
+ return `'${redactSecretValue(original)}'`;
205
+ if (node.type === 'template_string' || stringStart) {
206
+ const stringEnd = stringStart ? node.lastNamedChild : null;
207
+ let result = stringStart?.text ?? '`';
208
+ let offset = stringStart?.endIndex ?? node.startIndex + 1;
84
209
  for (const child of node.namedChildren) {
85
- if (child.type !== 'template_substitution') continue;
210
+ if (child.type !== 'template_substitution' && child.type !== 'interpolation') continue;
86
211
  result += literalPayload(
87
212
  original.slice(offset - node.startIndex, child.startIndex - node.startIndex),
88
213
  sensitive
@@ -90,7 +215,17 @@ function redactNode(node: Node, sensitive = false): string {
90
215
  result += redactNode(child);
91
216
  offset = child.endIndex;
92
217
  }
93
- return result + literalPayload(original.slice(offset - node.startIndex, -1), sensitive) + '`';
218
+ return (
219
+ result +
220
+ literalPayload(
221
+ original.slice(
222
+ offset - node.startIndex,
223
+ (stringEnd?.startIndex ?? node.endIndex - 1) - node.startIndex
224
+ ),
225
+ sensitive
226
+ ) +
227
+ (stringEnd?.text ?? '`')
228
+ );
94
229
  }
95
230
  if (node.type === 'regex_pattern' || node.type === 'jsx_text') return scrubPayload(original);
96
231
  // A bare `token: value` fragment is also a valid JS labeled statement.
@@ -108,6 +243,9 @@ function redactNode(node: Node, sensitive = false): string {
108
243
  'public_field_definition',
109
244
  'assignment_pattern',
110
245
  'required_parameter',
246
+ 'default_parameter',
247
+ 'typed_default_parameter',
248
+ 'keyword_argument',
111
249
  ].includes(node.type)
112
250
  ) {
113
251
  key =
@@ -116,7 +254,11 @@ function redactNode(node: Node, sensitive = false): string {
116
254
  node.childForFieldName('pattern') ??
117
255
  node.childForFieldName('left');
118
256
  value = node.childForFieldName('value') ?? node.childForFieldName('right');
119
- } else if (node.type === 'assignment_expression') {
257
+ } else if (
258
+ ['assignment_expression', 'assignment', 'augmented_assignment', 'named_expression'].includes(
259
+ node.type
260
+ )
261
+ ) {
120
262
  key = node.childForFieldName('left');
121
263
  value = node.childForFieldName('right');
122
264
  } else if (node.type === 'jsx_attribute') {
@@ -130,16 +272,24 @@ function redactNode(node: Node, sensitive = false): string {
130
272
  // Carry labels through value wrappers, never through call arguments or conditions.
131
273
  const carry =
132
274
  sensitive &&
133
- (([
134
- 'parenthesized_expression',
135
- 'as_expression',
136
- 'satisfies_expression',
137
- 'non_null_expression',
138
- ].includes(node.type) &&
139
- child.id === node.firstNamedChild?.id) ||
275
+ (node.type === 'concatenated_string' ||
276
+ node.type === 'binary_operator' ||
277
+ node.type === 'unary_operator' ||
278
+ (node.type === 'call' && child.id === node.childForFieldName('function')?.id) ||
279
+ (node.type === 'attribute' && child.id === node.childForFieldName('object')?.id) ||
280
+ (node.type === 'conditional_expression' && child.id !== node.namedChildren[1]?.id) ||
281
+ ([
282
+ 'parenthesized_expression',
283
+ 'as_expression',
284
+ 'satisfies_expression',
285
+ 'non_null_expression',
286
+ ].includes(node.type) &&
287
+ child.id === node.firstNamedChild?.id) ||
140
288
  (node.type === 'type_assertion' && child.id === node.lastNamedChild?.id) ||
141
- (node.type === 'binary_expression' &&
142
- ['+', '||', '&&', '??'].includes(node.childForFieldName('operator')?.text ?? '')) ||
289
+ (['binary_expression', 'boolean_operator'].includes(node.type) &&
290
+ ['+', '||', '&&', '??', 'or', 'and'].includes(
291
+ node.childForFieldName('operator')?.text ?? ''
292
+ )) ||
143
293
  (node.type === 'ternary_expression' &&
144
294
  child.id !== node.childForFieldName('condition')?.id));
145
295
  result += redactNode(child, carry || (labeled && child.id === value?.id));
package/wasm/tsx.wasm CHANGED
Binary file
Binary file