@mnemonik/shared 7.141.2 → 7.141.3

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.
@@ -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,CA+BxF"}
@@ -16,7 +16,9 @@ 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
+ : null;
20
22
  if (!text || !language || Buffer.byteLength(text, 'utf8') > MAX_AST_PARSE_BYTES) {
21
23
  return scrubPayload(text);
22
24
  }
@@ -45,8 +47,11 @@ export async function scrubSourceSecrets(text, filePath) {
45
47
  function secretLabel(node) {
46
48
  if (!node)
47
49
  return false;
48
- const property = node.childForFieldName('property') ?? node;
49
- const name = property.type === 'string' ? property.text.slice(1, -1) : property.text;
50
+ const property = node.childForFieldName('property') ?? node.childForFieldName('attribute') ?? node;
51
+ const name = property.type === 'string'
52
+ ? (property.namedChildren.find((child) => child.type === 'string_content')?.text ??
53
+ property.text.slice(1, -1))
54
+ : property.text;
50
55
  return SECRET_LABEL_RE.test(name);
51
56
  }
52
57
  function literalPayload(text, sensitive) {
@@ -58,11 +63,16 @@ function literalPayload(text, sensitive) {
58
63
  function redactNode(node, sensitive = false) {
59
64
  const original = node.text;
60
65
  if (node.type === 'comment') {
66
+ if (original.startsWith('#'))
67
+ return '#' + scrubPayload(original.slice(1));
61
68
  return original.startsWith('/*')
62
69
  ? '/*' + scrubPayload(original.slice(2, -2)) + '*/'
63
70
  : '//' + scrubPayload(original.slice(2));
64
71
  }
65
- if (node.type === 'string') {
72
+ const stringStart = node.type === 'string' && node.firstNamedChild?.type === 'string_start'
73
+ ? node.firstNamedChild
74
+ : null;
75
+ if (node.type === 'string' && !stringStart) {
66
76
  return original[0] + literalPayload(original.slice(1, -1), sensitive) + original.at(-1);
67
77
  }
68
78
  if (node.type === 'property_identifier' &&
@@ -71,19 +81,22 @@ function redactNode(node, sensitive = false) {
71
81
  const payload = literalPayload(original, false);
72
82
  return payload === original ? original : '"' + payload + '"';
73
83
  }
74
- if (node.type === 'number' && sensitive)
84
+ if (['number', 'integer', 'float'].includes(node.type) && sensitive)
75
85
  return `'${redactSecretValue(original)}'`;
76
- if (node.type === 'template_string') {
77
- let result = '`';
78
- let offset = node.startIndex + 1;
86
+ if (node.type === 'template_string' || stringStart) {
87
+ const stringEnd = stringStart ? node.lastNamedChild : null;
88
+ let result = stringStart?.text ?? '`';
89
+ let offset = stringStart?.endIndex ?? node.startIndex + 1;
79
90
  for (const child of node.namedChildren) {
80
- if (child.type !== 'template_substitution')
91
+ if (child.type !== 'template_substitution' && child.type !== 'interpolation')
81
92
  continue;
82
93
  result += literalPayload(original.slice(offset - node.startIndex, child.startIndex - node.startIndex), sensitive);
83
94
  result += redactNode(child);
84
95
  offset = child.endIndex;
85
96
  }
86
- return result + literalPayload(original.slice(offset - node.startIndex, -1), sensitive) + '`';
97
+ return (result +
98
+ literalPayload(original.slice(offset - node.startIndex, (stringEnd?.startIndex ?? node.endIndex - 1) - node.startIndex), sensitive) +
99
+ (stringEnd?.text ?? '`'));
87
100
  }
88
101
  if (node.type === 'regex_pattern' || node.type === 'jsx_text')
89
102
  return scrubPayload(original);
@@ -101,6 +114,9 @@ function redactNode(node, sensitive = false) {
101
114
  'public_field_definition',
102
115
  'assignment_pattern',
103
116
  'required_parameter',
117
+ 'default_parameter',
118
+ 'typed_default_parameter',
119
+ 'keyword_argument',
104
120
  ].includes(node.type)) {
105
121
  key =
106
122
  node.childForFieldName('name') ??
@@ -109,7 +125,7 @@ function redactNode(node, sensitive = false) {
109
125
  node.childForFieldName('left');
110
126
  value = node.childForFieldName('value') ?? node.childForFieldName('right');
111
127
  }
112
- else if (node.type === 'assignment_expression') {
128
+ else if (['assignment_expression', 'assignment', 'augmented_assignment', 'named_expression'].includes(node.type)) {
113
129
  key = node.childForFieldName('left');
114
130
  value = node.childForFieldName('right');
115
131
  }
@@ -123,16 +139,22 @@ function redactNode(node, sensitive = false) {
123
139
  result += original.slice(offset - node.startIndex, child.startIndex - node.startIndex);
124
140
  // Carry labels through value wrappers, never through call arguments or conditions.
125
141
  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) ||
142
+ (node.type === 'concatenated_string' ||
143
+ node.type === 'binary_operator' ||
144
+ node.type === 'unary_operator' ||
145
+ (node.type === 'call' && child.id === node.childForFieldName('function')?.id) ||
146
+ (node.type === 'attribute' && child.id === node.childForFieldName('object')?.id) ||
147
+ (node.type === 'conditional_expression' && child.id !== node.namedChildren[1]?.id) ||
148
+ ([
149
+ 'parenthesized_expression',
150
+ 'as_expression',
151
+ 'satisfies_expression',
152
+ 'non_null_expression',
153
+ ].includes(node.type) &&
154
+ child.id === node.firstNamedChild?.id) ||
133
155
  (node.type === 'type_assertion' && child.id === node.lastNamedChild?.id) ||
134
- (node.type === 'binary_expression' &&
135
- ['+', '||', '&&', '??'].includes(node.childForFieldName('operator')?.text ?? '')) ||
156
+ (['binary_expression', 'boolean_operator'].includes(node.type) &&
157
+ ['+', '||', '&&', '??', 'or', 'and'].includes(node.childForFieldName('operator')?.text ?? '')) ||
136
158
  (node.type === 'ternary_expression' &&
137
159
  child.id !== node.childForFieldName('condition')?.id));
138
160
  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":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAwB,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,YAAY,EACZ,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAE7B,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;AAC/E,CAAC;AAED,sGAAsG;AACtG,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAY,EAAE,QAAgB;IACrE,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IAClD,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC1D,CAAC,CAAC,YAAY;QACd,CAAC,CAAC,SAAS,KAAK,MAAM;YACpB,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;gBACnD,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;oBACnC,CAAC,CAAC,QAAQ;oBACV,CAAC,CAAC,IAAI,CAAC;IACf,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,mBAAmB,EAAE,CAAC;QAChF,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,MAA0B,CAAC;IAC/B,IAAI,IAAI,GAAgB,IAAI,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,aAAa,IAAI,OAAO;YAAE,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACtB,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ;YAAE,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;YAAS,CAAC;QACT,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,IAAiB;IACpC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,MAAM,QAAQ,GACZ,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;IACpF,MAAM,IAAI,GACR,QAAQ,CAAC,IAAI,KAAK,QAAQ;QACxB,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC,EAAE,IAAI;YAC9E,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IACpB,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,SAAkB;IACtD,IAAI,SAAS,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1E,wFAAwF;IACxF,OAAO,uBAAuB,CAAC,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,UAAU,CAAC,IAAU,EAAE,SAAS,GAAG,KAAK;IAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;IAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;YAC9B,CAAC,CAAC,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;YACnD,CAAC,CAAC,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,WAAW,GACf,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,KAAK,cAAc;QACrE,CAAC,CAAC,IAAI,CAAC,eAAe;QACtB,CAAC,CAAC,IAAI,CAAC;IACX,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3C,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1F,CAAC;IACD,IACE,IAAI,CAAC,IAAI,KAAK,qBAAqB;QACnC,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK,MAAM;QAC5B,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,EACpD,CAAC;QACD,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAChD,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,GAAG,GAAG,CAAC;IAC/D,CAAC;IACD,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS;QACjE,OAAO,IAAI,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC;IAC5C,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,IAAI,WAAW,EAAE,CAAC;QACnD,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3D,IAAI,MAAM,GAAG,WAAW,EAAE,IAAI,IAAI,GAAG,CAAC;QACtC,IAAI,MAAM,GAAG,WAAW,EAAE,QAAQ,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QAC1D,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvC,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAuB,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe;gBAAE,SAAS;YACvF,MAAM,IAAI,cAAc,CACtB,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,EAC5E,SAAS,CACV,CAAC;YACF,MAAM,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;YAC5B,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC1B,CAAC;QACD,OAAO,CACL,MAAM;YACN,cAAc,CACZ,QAAQ,CAAC,KAAK,CACZ,MAAM,GAAG,IAAI,CAAC,UAAU,EACxB,CAAC,SAAS,EAAE,UAAU,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAC/D,EACD,SAAS,CACV;YACD,CAAC,SAAS,EAAE,IAAI,IAAI,GAAG,CAAC,CACzB,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC7F,uEAAuE;IACvE,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB,IAAI,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QACtF,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,IAAI,EAAE,eAAe,EAAE,IAAI,KAAK,YAAY;YAAE,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;IAClF,CAAC;IAED,IAAI,KAAK,GAAgB,IAAI,CAAC;IAC9B,IAAI,GAAG,GAAgB,IAAI,CAAC;IAC5B,IACE;QACE,qBAAqB;QACrB,MAAM;QACN,yBAAyB;QACzB,oBAAoB;QACpB,oBAAoB;QACpB,mBAAmB;QACnB,yBAAyB;QACzB,kBAAkB;KACnB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EACrB,CAAC;QACD,GAAG;YACD,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;gBAC9B,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;gBAC7B,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;gBACjC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACjC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC7E,CAAC;SAAM,IACL,CAAC,uBAAuB,EAAE,YAAY,EAAE,sBAAsB,EAAE,kBAAkB,CAAC,CAAC,QAAQ,CAC1F,IAAI,CAAC,IAAI,CACV,EACD,CAAC;QACD,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACrC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QACzC,CAAC,GAAG,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;IAClD,CAAC;IACD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;IAC7B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;QACvF,mFAAmF;QACnF,MAAM,KAAK,GACT,SAAS;YACT,CAAC,IAAI,CAAC,IAAI,KAAK,qBAAqB;gBAClC,IAAI,CAAC,IAAI,KAAK,iBAAiB;gBAC/B,IAAI,CAAC,IAAI,KAAK,gBAAgB;gBAC9B,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;gBAC7E,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAChF,CAAC,IAAI,CAAC,IAAI,KAAK,wBAAwB,IAAI,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBAClF,CAAC;oBACC,0BAA0B;oBAC1B,eAAe;oBACf,sBAAsB;oBACtB,qBAAqB;iBACtB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;oBACnB,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;gBACxC,CAAC,IAAI,CAAC,IAAI,KAAK,gBAAgB,IAAI,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;gBACxE,CAAC,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;oBAC5D,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,CAC3C,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,IAAI,IAAI,EAAE,CAC/C,CAAC;gBACJ,CAAC,IAAI,CAAC,IAAI,KAAK,oBAAoB;oBACjC,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC7D,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,EAAE,KAAK,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QAC1E,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC;IAC1B,CAAC;IACD,OAAO,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;AAC3D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mnemonik/shared",
3
- "version": "7.141.2",
3
+ "version": "7.141.3",
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({
@@ -23,7 +23,9 @@ 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
+ : null;
27
29
  if (!text || !language || Buffer.byteLength(text, 'utf8') > MAX_AST_PARSE_BYTES) {
28
30
  return scrubPayload(text);
29
31
  }
@@ -48,8 +50,13 @@ export async function scrubSourceSecrets(text: string, filePath: string): Promis
48
50
 
49
51
  function secretLabel(node: Node | null): boolean {
50
52
  if (!node) return false;
51
- const property = node.childForFieldName('property') ?? node;
52
- const name = property.type === 'string' ? property.text.slice(1, -1) : property.text;
53
+ const property =
54
+ node.childForFieldName('property') ?? node.childForFieldName('attribute') ?? node;
55
+ const name =
56
+ property.type === 'string'
57
+ ? (property.namedChildren.find((child) => child.type === 'string_content')?.text ??
58
+ property.text.slice(1, -1))
59
+ : property.text;
53
60
  return SECRET_LABEL_RE.test(name);
54
61
  }
55
62
 
@@ -62,11 +69,16 @@ function literalPayload(text: string, sensitive: boolean): string {
62
69
  function redactNode(node: Node, sensitive = false): string {
63
70
  const original = node.text;
64
71
  if (node.type === 'comment') {
72
+ if (original.startsWith('#')) return '#' + scrubPayload(original.slice(1));
65
73
  return original.startsWith('/*')
66
74
  ? '/*' + scrubPayload(original.slice(2, -2)) + '*/'
67
75
  : '//' + scrubPayload(original.slice(2));
68
76
  }
69
- if (node.type === 'string') {
77
+ const stringStart =
78
+ node.type === 'string' && node.firstNamedChild?.type === 'string_start'
79
+ ? node.firstNamedChild
80
+ : null;
81
+ if (node.type === 'string' && !stringStart) {
70
82
  return original[0] + literalPayload(original.slice(1, -1), sensitive) + original.at(-1);
71
83
  }
72
84
  if (
@@ -77,12 +89,14 @@ function redactNode(node: Node, sensitive = false): string {
77
89
  const payload = literalPayload(original, false);
78
90
  return payload === original ? original : '"' + payload + '"';
79
91
  }
80
- if (node.type === 'number' && sensitive) return `'${redactSecretValue(original)}'`;
81
- if (node.type === 'template_string') {
82
- let result = '`';
83
- let offset = node.startIndex + 1;
92
+ if (['number', 'integer', 'float'].includes(node.type) && sensitive)
93
+ return `'${redactSecretValue(original)}'`;
94
+ if (node.type === 'template_string' || stringStart) {
95
+ const stringEnd = stringStart ? node.lastNamedChild : null;
96
+ let result = stringStart?.text ?? '`';
97
+ let offset = stringStart?.endIndex ?? node.startIndex + 1;
84
98
  for (const child of node.namedChildren) {
85
- if (child.type !== 'template_substitution') continue;
99
+ if (child.type !== 'template_substitution' && child.type !== 'interpolation') continue;
86
100
  result += literalPayload(
87
101
  original.slice(offset - node.startIndex, child.startIndex - node.startIndex),
88
102
  sensitive
@@ -90,7 +104,17 @@ function redactNode(node: Node, sensitive = false): string {
90
104
  result += redactNode(child);
91
105
  offset = child.endIndex;
92
106
  }
93
- return result + literalPayload(original.slice(offset - node.startIndex, -1), sensitive) + '`';
107
+ return (
108
+ result +
109
+ literalPayload(
110
+ original.slice(
111
+ offset - node.startIndex,
112
+ (stringEnd?.startIndex ?? node.endIndex - 1) - node.startIndex
113
+ ),
114
+ sensitive
115
+ ) +
116
+ (stringEnd?.text ?? '`')
117
+ );
94
118
  }
95
119
  if (node.type === 'regex_pattern' || node.type === 'jsx_text') return scrubPayload(original);
96
120
  // A bare `token: value` fragment is also a valid JS labeled statement.
@@ -108,6 +132,9 @@ function redactNode(node: Node, sensitive = false): string {
108
132
  'public_field_definition',
109
133
  'assignment_pattern',
110
134
  'required_parameter',
135
+ 'default_parameter',
136
+ 'typed_default_parameter',
137
+ 'keyword_argument',
111
138
  ].includes(node.type)
112
139
  ) {
113
140
  key =
@@ -116,7 +143,11 @@ function redactNode(node: Node, sensitive = false): string {
116
143
  node.childForFieldName('pattern') ??
117
144
  node.childForFieldName('left');
118
145
  value = node.childForFieldName('value') ?? node.childForFieldName('right');
119
- } else if (node.type === 'assignment_expression') {
146
+ } else if (
147
+ ['assignment_expression', 'assignment', 'augmented_assignment', 'named_expression'].includes(
148
+ node.type
149
+ )
150
+ ) {
120
151
  key = node.childForFieldName('left');
121
152
  value = node.childForFieldName('right');
122
153
  } else if (node.type === 'jsx_attribute') {
@@ -130,16 +161,24 @@ function redactNode(node: Node, sensitive = false): string {
130
161
  // Carry labels through value wrappers, never through call arguments or conditions.
131
162
  const carry =
132
163
  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) ||
164
+ (node.type === 'concatenated_string' ||
165
+ node.type === 'binary_operator' ||
166
+ node.type === 'unary_operator' ||
167
+ (node.type === 'call' && child.id === node.childForFieldName('function')?.id) ||
168
+ (node.type === 'attribute' && child.id === node.childForFieldName('object')?.id) ||
169
+ (node.type === 'conditional_expression' && child.id !== node.namedChildren[1]?.id) ||
170
+ ([
171
+ 'parenthesized_expression',
172
+ 'as_expression',
173
+ 'satisfies_expression',
174
+ 'non_null_expression',
175
+ ].includes(node.type) &&
176
+ child.id === node.firstNamedChild?.id) ||
140
177
  (node.type === 'type_assertion' && child.id === node.lastNamedChild?.id) ||
141
- (node.type === 'binary_expression' &&
142
- ['+', '||', '&&', '??'].includes(node.childForFieldName('operator')?.text ?? '')) ||
178
+ (['binary_expression', 'boolean_operator'].includes(node.type) &&
179
+ ['+', '||', '&&', '??', 'or', 'and'].includes(
180
+ node.childForFieldName('operator')?.text ?? ''
181
+ )) ||
143
182
  (node.type === 'ternary_expression' &&
144
183
  child.id !== node.childForFieldName('condition')?.id));
145
184
  result += redactNode(child, carry || (labeled && child.id === value?.id));
package/wasm/tsx.wasm CHANGED
Binary file
Binary file