webfuscator 1.2.0 → 1.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.
Files changed (111) hide show
  1. package/dist/analysis/constant.js +3 -4
  2. package/dist/analysis/constant.js.map +1 -1
  3. package/dist/analysis/inlineability.d.ts.map +1 -1
  4. package/dist/analysis/inlineability.js +37 -25
  5. package/dist/analysis/inlineability.js.map +1 -1
  6. package/dist/index.d.ts +1 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/obfuscator.d.ts +2 -1
  9. package/dist/obfuscator.d.ts.map +1 -1
  10. package/dist/obfuscator.js +47 -12
  11. package/dist/obfuscator.js.map +1 -1
  12. package/dist/options.d.ts +24 -4
  13. package/dist/options.d.ts.map +1 -1
  14. package/dist/preparation/expand-destructuring.d.ts +3 -3
  15. package/dist/preparation/expand-destructuring.js +6 -6
  16. package/dist/preparation/expand-destructuring.js.map +1 -1
  17. package/dist/transforms/arrow-to-function.js +3 -5
  18. package/dist/transforms/arrow-to-function.js.map +1 -1
  19. package/dist/transforms/conceal-strings.d.ts +57 -0
  20. package/dist/transforms/conceal-strings.d.ts.map +1 -0
  21. package/dist/transforms/conceal-strings.js +361 -0
  22. package/dist/transforms/conceal-strings.js.map +1 -0
  23. package/dist/transforms/const-let-to-var.d.ts +3 -3
  24. package/dist/transforms/const-let-to-var.d.ts.map +1 -1
  25. package/dist/transforms/const-let-to-var.js +36 -9
  26. package/dist/transforms/const-let-to-var.js.map +1 -1
  27. package/dist/transforms/const-to-let.d.ts +2 -3
  28. package/dist/transforms/const-to-let.d.ts.map +1 -1
  29. package/dist/transforms/const-to-let.js +3 -5
  30. package/dist/transforms/const-to-let.js.map +1 -1
  31. package/dist/transforms/fold-builtin-methods.d.ts.map +1 -1
  32. package/dist/transforms/fold-builtin-methods.js +48 -10
  33. package/dist/transforms/fold-builtin-methods.js.map +1 -1
  34. package/dist/transforms/fold-constants.js +3 -0
  35. package/dist/transforms/fold-constants.js.map +1 -1
  36. package/dist/transforms/hoist-variables.d.ts +30 -0
  37. package/dist/transforms/hoist-variables.d.ts.map +1 -0
  38. package/dist/transforms/hoist-variables.js +224 -0
  39. package/dist/transforms/hoist-variables.js.map +1 -0
  40. package/dist/transforms/inline-functions.js +3 -4
  41. package/dist/transforms/inline-functions.js.map +1 -1
  42. package/dist/transforms/mangle-properties.js +7 -4
  43. package/dist/transforms/mangle-properties.js.map +1 -1
  44. package/dist/transforms/merge-variable-declarations.d.ts +17 -0
  45. package/dist/transforms/merge-variable-declarations.d.ts.map +1 -0
  46. package/dist/transforms/merge-variable-declarations.js +68 -0
  47. package/dist/transforms/merge-variable-declarations.js.map +1 -0
  48. package/dist/transforms/numbers-to-strings.d.ts.map +1 -1
  49. package/dist/transforms/numbers-to-strings.js +1 -8
  50. package/dist/transforms/numbers-to-strings.js.map +1 -1
  51. package/dist/transforms/pack-declarations-into-parameters.js +1 -5
  52. package/dist/transforms/pack-declarations-into-parameters.js.map +1 -1
  53. package/dist/transforms/pack.d.ts +5 -7
  54. package/dist/transforms/pack.d.ts.map +1 -1
  55. package/dist/transforms/pack.js +194 -32
  56. package/dist/transforms/pack.js.map +1 -1
  57. package/dist/transforms/remove-unused-code.d.ts.map +1 -1
  58. package/dist/transforms/remove-unused-code.js +7 -39
  59. package/dist/transforms/remove-unused-code.js.map +1 -1
  60. package/dist/transforms/rename-identifiers.d.ts.map +1 -1
  61. package/dist/transforms/rename-identifiers.js +29 -17
  62. package/dist/transforms/rename-identifiers.js.map +1 -1
  63. package/dist/transforms/reorder-function-declarations.d.ts +25 -0
  64. package/dist/transforms/reorder-function-declarations.d.ts.map +1 -0
  65. package/dist/transforms/reorder-function-declarations.js +64 -0
  66. package/dist/transforms/reorder-function-declarations.js.map +1 -0
  67. package/dist/transforms/specials-to-strings.js +4 -3
  68. package/dist/transforms/specials-to-strings.js.map +1 -1
  69. package/dist/transforms/update-to-assignment.js +1 -16
  70. package/dist/transforms/update-to-assignment.js.map +1 -1
  71. package/dist/utils/ast.d.ts +1 -2
  72. package/dist/utils/ast.d.ts.map +1 -1
  73. package/dist/utils/ast.js +12 -42
  74. package/dist/utils/ast.js.map +1 -1
  75. package/dist/utils/literal.d.ts.map +1 -1
  76. package/dist/utils/literal.js +74 -2
  77. package/dist/utils/literal.js.map +1 -1
  78. package/dist/utils/statement-lists.d.ts +9 -0
  79. package/dist/utils/statement-lists.d.ts.map +1 -0
  80. package/dist/utils/statement-lists.js +27 -0
  81. package/dist/utils/statement-lists.js.map +1 -0
  82. package/package.json +12 -13
  83. package/src/analysis/constant.ts +3 -6
  84. package/src/analysis/inlineability.ts +40 -32
  85. package/src/index.ts +1 -0
  86. package/src/obfuscator.ts +51 -14
  87. package/src/options.ts +28 -3
  88. package/src/preparation/expand-destructuring.ts +6 -6
  89. package/src/transforms/arrow-to-function.ts +3 -5
  90. package/src/transforms/conceal-strings.ts +530 -0
  91. package/src/transforms/const-let-to-var.ts +37 -9
  92. package/src/transforms/const-to-let.ts +3 -5
  93. package/src/transforms/fold-builtin-methods.ts +67 -12
  94. package/src/transforms/fold-constants.ts +3 -0
  95. package/src/transforms/hoist-variables.ts +272 -0
  96. package/src/transforms/inline-functions.ts +3 -4
  97. package/src/transforms/mangle-properties.ts +7 -7
  98. package/src/transforms/merge-variable-declarations.ts +91 -0
  99. package/src/transforms/numbers-to-strings.ts +2 -12
  100. package/src/transforms/pack-declarations-into-parameters.ts +1 -5
  101. package/src/transforms/pack.ts +202 -35
  102. package/src/transforms/remove-unused-code.ts +9 -64
  103. package/src/transforms/rename-identifiers.ts +42 -17
  104. package/src/transforms/reorder-function-declarations.ts +80 -0
  105. package/src/transforms/specials-to-strings.ts +4 -3
  106. package/src/transforms/update-to-assignment.ts +1 -17
  107. package/src/utils/ast.ts +15 -51
  108. package/src/utils/literal.ts +91 -2
  109. package/src/utils/statement-lists.ts +45 -0
  110. package/DISCLOSURE +0 -9
  111. package/README.md +0 -62
@@ -1,5 +1,5 @@
1
1
  import * as t from '@babel/types';
2
- import { enclosingScopeHasDirectEval, isInsideWith } from '../utils/ast.js';
2
+ import { isInsideWith } from '../utils/ast.js';
3
3
  import { traverseForChanges } from '../utils/change-tracking.js';
4
4
  /**
5
5
  * Lowers arrows with Babel's capture-aware `arrowFunctionToExpression`. Arrows
@@ -59,10 +59,8 @@ const visitor = {
59
59
  arrowReferencesSuper(path) ||
60
60
  inUnsafeCaptureContext(path) ||
61
61
  usesReassignedArguments(path) ||
62
- // `with` can shadow capture aliases, and direct eval can inspect the changed
63
- // runtime meaning of `this` or `arguments`.
64
- isInsideWith(path) ||
65
- enclosingScopeHasDirectEval(path)) {
62
+ // `with` can capture Babel's `this` or `arguments` alias.
63
+ isInsideWith(path)) {
66
64
  return;
67
65
  }
68
66
  path.arrowFunctionToExpression({
@@ -1 +1 @@
1
- {"version":3,"file":"arrow-to-function.js","sourceRoot":"","sources":["../../src/transforms/arrow-to-function.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"arrow-to-function.js","sourceRoot":"","sources":["../../src/transforms/arrow-to-function.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import type { File } from '@babel/types';
2
+ import type { TransformContext } from '../options.js';
3
+ /**
4
+ * Replaces runtime string literals with calls to a generated decoder. Each vault
5
+ * stores masked positions in a shuffled UTF-16 pool. The decoder handles lone
6
+ * surrogates without relying on mutable built-ins. The default `regional` pool
7
+ * covers U+0000-00FF and every 256-unit page used by the program. `full` covers
8
+ * all 65,536 code units.
9
+ *
10
+ * `scope: 'program'` creates one vault. `scope: 'function'` creates a vault per
11
+ * function but repeats the program-wide pool in each one. Parameter defaults and
12
+ * computed keys use the enclosing vault because they run before the function
13
+ * body. Code inside `with` gets a lexical vault so the object cannot capture
14
+ * decoder references.
15
+ *
16
+ * Directives, module specifiers, import attributes, and non-computed keys are not
17
+ * runtime expressions, so they stay unchanged.
18
+ *
19
+ * This is obfuscation, not encryption. The output contains the decoder and all
20
+ * data needed to recover each string. `cover: 'used'` also leaves one-unit
21
+ * strings in the pool and may reproduce longer text by chance.
22
+ *
23
+ * The example uses `{ cover: 'used' }` to keep the pool short.
24
+ *
25
+ * @example
26
+ * // ◀️ before
27
+ * function greet(name) {
28
+ * return "Hello, " + name;
29
+ * }
30
+ *
31
+ * // ▶️ after
32
+ * const _stringPool = " lo,He",
33
+ * _stringPayload = [0, 4, 7, 2, 2, 6, 2],
34
+ * _stringMetadata = [0, 7, 4, 5],
35
+ * _stringCache = [null],
36
+ * _stringDecoder = function (_entry) {
37
+ * let _cached = _stringCache[_entry];
38
+ * if (_cached !== null) return _cached;
39
+ * let _result = "",
40
+ * _record = _entry * 4,
41
+ * _start = _stringMetadata[_record],
42
+ * _length = _stringMetadata[_record + 1],
43
+ * _stringKey = _stringMetadata[_record + 2],
44
+ * _stringStep = _stringMetadata[_record + 3];
45
+ * for (let _position = 0; _position < _length; _position++) {
46
+ * let _stringMask = _stringKey + _position * _stringStep & 7;
47
+ * _result += _stringPool[_stringPayload[_start + _position] ^ _stringMask];
48
+ * }
49
+ * _stringCache[_entry] = _result;
50
+ * return _result;
51
+ * };
52
+ * function greet(name) {
53
+ * return _stringDecoder(0) + name;
54
+ * }
55
+ */
56
+ export declare function concealStrings(ast: File, ctx: TransformContext): boolean;
57
+ //# sourceMappingURL=conceal-strings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conceal-strings.d.ts","sourceRoot":"","sources":["../../src/transforms/conceal-strings.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAExC,OAAO,KAAK,EAAyB,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAOzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAmBxE"}
@@ -0,0 +1,361 @@
1
+ import traverse from '@babel/traverse';
2
+ import * as t from '@babel/types';
3
+ import { isNonComputedKey } from '../utils/ast.js';
4
+ import { mulberry32, shuffleInPlace } from '../utils/random.js';
5
+ const RECORD_WIDTH = 4;
6
+ /**
7
+ * Replaces runtime string literals with calls to a generated decoder. Each vault
8
+ * stores masked positions in a shuffled UTF-16 pool. The decoder handles lone
9
+ * surrogates without relying on mutable built-ins. The default `regional` pool
10
+ * covers U+0000-00FF and every 256-unit page used by the program. `full` covers
11
+ * all 65,536 code units.
12
+ *
13
+ * `scope: 'program'` creates one vault. `scope: 'function'` creates a vault per
14
+ * function but repeats the program-wide pool in each one. Parameter defaults and
15
+ * computed keys use the enclosing vault because they run before the function
16
+ * body. Code inside `with` gets a lexical vault so the object cannot capture
17
+ * decoder references.
18
+ *
19
+ * Directives, module specifiers, import attributes, and non-computed keys are not
20
+ * runtime expressions, so they stay unchanged.
21
+ *
22
+ * This is obfuscation, not encryption. The output contains the decoder and all
23
+ * data needed to recover each string. `cover: 'used'` also leaves one-unit
24
+ * strings in the pool and may reproduce longer text by chance.
25
+ *
26
+ * The example uses `{ cover: 'used' }` to keep the pool short.
27
+ *
28
+ * @example
29
+ * // ◀️ before
30
+ * function greet(name) {
31
+ * return "Hello, " + name;
32
+ * }
33
+ *
34
+ * // ▶️ after
35
+ * const _stringPool = " lo,He",
36
+ * _stringPayload = [0, 4, 7, 2, 2, 6, 2],
37
+ * _stringMetadata = [0, 7, 4, 5],
38
+ * _stringCache = [null],
39
+ * _stringDecoder = function (_entry) {
40
+ * let _cached = _stringCache[_entry];
41
+ * if (_cached !== null) return _cached;
42
+ * let _result = "",
43
+ * _record = _entry * 4,
44
+ * _start = _stringMetadata[_record],
45
+ * _length = _stringMetadata[_record + 1],
46
+ * _stringKey = _stringMetadata[_record + 2],
47
+ * _stringStep = _stringMetadata[_record + 3];
48
+ * for (let _position = 0; _position < _length; _position++) {
49
+ * let _stringMask = _stringKey + _position * _stringStep & 7;
50
+ * _result += _stringPool[_stringPayload[_start + _position] ^ _stringMask];
51
+ * }
52
+ * _stringCache[_entry] = _result;
53
+ * return _result;
54
+ * };
55
+ * function greet(name) {
56
+ * return _stringDecoder(0) + name;
57
+ * }
58
+ */
59
+ export function concealStrings(ast, ctx) {
60
+ const options = resolveOptions(ctx.concealStrings);
61
+ const rng = mulberry32(ctx.seed);
62
+ const state = { changed: false, groups: new Map(), options };
63
+ if (options.scope === 'function') {
64
+ normalizeConciseArrows(ast, options);
65
+ }
66
+ traverse(ast, collectVisitor, undefined, state);
67
+ if (state.groups.size === 0) {
68
+ return false;
69
+ }
70
+ const pool = buildSharedPool(state.groups.values(), options.cover, rng);
71
+ for (const group of state.groups.values()) {
72
+ concealGroup(group, options, pool, rng);
73
+ state.changed = true;
74
+ }
75
+ return state.changed;
76
+ }
77
+ const collectVisitor = {
78
+ StringLiteral(path, state) {
79
+ if (!isRuntimeString(path)) {
80
+ return;
81
+ }
82
+ const owner = findVaultOwner(path, state.options.scope);
83
+ if (!owner) {
84
+ return;
85
+ }
86
+ let group = state.groups.get(owner.node);
87
+ if (!group) {
88
+ group = { occurrences: [], owner };
89
+ state.groups.set(owner.node, group);
90
+ }
91
+ group.occurrences.push({ path, value: path.node.value });
92
+ },
93
+ };
94
+ function resolveOptions(options) {
95
+ const cache = options?.cache ?? true;
96
+ const cover = options?.cover ?? 'regional';
97
+ const deduplicate = options?.deduplicate ?? true;
98
+ const scope = options?.scope ?? 'program';
99
+ if (typeof cache !== 'boolean') {
100
+ throw new TypeError('concealStrings cache must be a boolean');
101
+ }
102
+ if (cover !== 'full' && cover !== 'regional' && cover !== 'used') {
103
+ throw new TypeError("concealStrings cover must be 'full', 'regional', or 'used'");
104
+ }
105
+ if (typeof deduplicate !== 'boolean') {
106
+ throw new TypeError('concealStrings deduplicate must be a boolean');
107
+ }
108
+ if (scope !== 'function' && scope !== 'program') {
109
+ throw new TypeError("concealStrings scope must be 'function' or 'program'");
110
+ }
111
+ return { cache, cover, deduplicate, scope };
112
+ }
113
+ function normalizeConciseArrows(ast, options) {
114
+ const marked = new WeakSet();
115
+ traverse(ast, {
116
+ StringLiteral(path) {
117
+ if (!isRuntimeString(path)) {
118
+ return;
119
+ }
120
+ const owner = findVaultOwner(path, options.scope);
121
+ if (owner?.isArrowFunctionExpression() && !t.isBlockStatement(owner.node.body)) {
122
+ marked.add(owner.node);
123
+ }
124
+ },
125
+ ArrowFunctionExpression: {
126
+ exit(path) {
127
+ if (!marked.has(path.node) || t.isBlockStatement(path.node.body)) {
128
+ return;
129
+ }
130
+ const expression = path.node.body;
131
+ path.get('body').replaceWith(t.blockStatement([t.returnStatement(expression)]));
132
+ path.node.expression = false;
133
+ },
134
+ },
135
+ });
136
+ }
137
+ function findVaultOwner(path, scope) {
138
+ let child = path;
139
+ let current = path.parentPath;
140
+ while (current) {
141
+ if (current.isFunction() && child.key === 'body' && scope === 'function') {
142
+ return current;
143
+ }
144
+ if (current.isWithStatement() && child.key === 'body') {
145
+ const body = current.get('body');
146
+ return body.isBlockStatement() ? body : null;
147
+ }
148
+ if (current.isProgram()) {
149
+ return current;
150
+ }
151
+ child = current;
152
+ current = current.parentPath;
153
+ }
154
+ return null;
155
+ }
156
+ function isRuntimeString(path) {
157
+ const parent = path.parent;
158
+ const node = path.node;
159
+ if ((t.isImportDeclaration(parent) && parent.source === node) ||
160
+ (t.isExportNamedDeclaration(parent) && parent.source === node) ||
161
+ (t.isExportAllDeclaration(parent) && parent.source === node) ||
162
+ t.isImportAttribute(parent) ||
163
+ (t.isImportSpecifier(parent) && parent.imported === node) ||
164
+ (t.isExportSpecifier(parent) && parent.exported === node) ||
165
+ (t.isExportNamespaceSpecifier(parent) && parent.exported === node)) {
166
+ return false;
167
+ }
168
+ return !isNonComputedKey(path);
169
+ }
170
+ function concealGroup(group, options, pool, rng) {
171
+ const entries = makeEntries(group.occurrences, options.deduplicate);
172
+ shuffleInPlace(entries, rng);
173
+ const data = encodeEntries(entries, pool, rng);
174
+ const identifiers = insertVault(statementBody(group.owner), entries.length, data, options.cache);
175
+ for (let index = 0; index < entries.length; index++) {
176
+ for (const occurrence of entries[index].occurrences) {
177
+ occurrence.path.replaceWith(t.callExpression(t.identifier(identifiers.decoder.name), [t.numericLiteral(index)]));
178
+ occurrence.path.skip();
179
+ }
180
+ }
181
+ }
182
+ function makeEntries(occurrences, deduplicate) {
183
+ if (!deduplicate) {
184
+ return occurrences.map((occurrence) => ({ occurrences: [occurrence], value: occurrence.value }));
185
+ }
186
+ const byValue = new Map();
187
+ for (const occurrence of occurrences) {
188
+ let entry = byValue.get(occurrence.value);
189
+ if (!entry) {
190
+ entry = { occurrences: [], value: occurrence.value };
191
+ byValue.set(occurrence.value, entry);
192
+ }
193
+ entry.occurrences.push(occurrence);
194
+ }
195
+ return [...byValue.values()];
196
+ }
197
+ function buildSharedPool(groups, cover, rng) {
198
+ const usedUnits = new Set();
199
+ for (const group of groups) {
200
+ for (const occurrence of group.occurrences) {
201
+ let index = 0;
202
+ while (index < occurrence.value.length) {
203
+ usedUnits.add(occurrence.value[index]);
204
+ index++;
205
+ }
206
+ }
207
+ }
208
+ const poolUnits = makePoolUnits(usedUnits, cover);
209
+ shuffleInPlace(poolUnits, rng);
210
+ return {
211
+ indexMask: coveringBitMask(poolUnits.length),
212
+ positions: indexPoolPositions(poolUnits),
213
+ value: poolUnits.join(''),
214
+ };
215
+ }
216
+ function encodeEntries(entries, pool, rng) {
217
+ const metadata = [];
218
+ const payload = [];
219
+ for (const entry of entries) {
220
+ const key = randomInteger(pool.indexMask + 1, rng);
221
+ const step = randomOddInteger(pool.indexMask, rng);
222
+ metadata.push(payload.length, entry.value.length, key, step);
223
+ for (let position = 0; position < entry.value.length; position++) {
224
+ const truePosition = pool.positions.get(entry.value[position]);
225
+ payload.push(truePosition ^ maskPosition(position, key, step, pool.indexMask));
226
+ }
227
+ }
228
+ return { indexMask: pool.indexMask, metadata, payload, pool: pool.value };
229
+ }
230
+ function makePoolUnits(usedUnits, cover) {
231
+ return cover === 'used' ? [...usedUnits] : coveredPageUnits(usedUnits, cover);
232
+ }
233
+ function coveredPageUnits(usedUnits, cover) {
234
+ const pages = new Set();
235
+ if (cover === 'full') {
236
+ for (let page = 0; page < 0x01_00; page++) {
237
+ pages.add(page);
238
+ }
239
+ }
240
+ else {
241
+ pages.add(0);
242
+ for (const unit of usedUnits) {
243
+ pages.add(unit.codePointAt(0) >>> 8);
244
+ }
245
+ }
246
+ const units = [];
247
+ for (const page of pages) {
248
+ const start = page << 8;
249
+ for (let offset = 0; offset < 0x01_00; offset++) {
250
+ units.push(String.fromCodePoint(start + offset));
251
+ }
252
+ }
253
+ return units;
254
+ }
255
+ function indexPoolPositions(pool) {
256
+ const positions = new Map();
257
+ for (let index = 0; index < pool.length; index++) {
258
+ positions.set(pool[index], index);
259
+ }
260
+ return positions;
261
+ }
262
+ function coveringBitMask(length) {
263
+ let mask = 0;
264
+ while (mask < length - 1) {
265
+ mask = (mask << 1) | 1;
266
+ }
267
+ return mask;
268
+ }
269
+ function randomInteger(limit, rng) {
270
+ return limit === 0 ? 0 : Math.floor(rng() * limit);
271
+ }
272
+ function randomOddInteger(mask, rng) {
273
+ return mask === 0 ? 0 : randomInteger((mask + 1) / 2, rng) * 2 + 1;
274
+ }
275
+ function maskPosition(position, key, step, indexMask) {
276
+ return (key + position * step) & indexMask;
277
+ }
278
+ function statementBody(owner) {
279
+ if (owner.isProgram() || owner.isBlockStatement()) {
280
+ return owner;
281
+ }
282
+ const body = owner.get('body');
283
+ if (!body.isBlockStatement()) {
284
+ throw new Error('concealStrings expected a normalized function body');
285
+ }
286
+ return body;
287
+ }
288
+ function insertVault(body, entryCount, data, cache) {
289
+ const fresh = (purpose) => t.identifier(body.scope.generateUid(purpose));
290
+ const identifiers = {
291
+ cache: cache ? fresh('stringCache') : null,
292
+ decoder: fresh('stringDecoder'),
293
+ metadata: fresh('stringMetadata'),
294
+ payload: fresh('stringPayload'),
295
+ pool: fresh('stringPool'),
296
+ };
297
+ const decoder = t.functionExpression(null, [], t.blockStatement([]));
298
+ const declarations = [
299
+ t.variableDeclarator(identifiers.pool, t.stringLiteral(data.pool)),
300
+ t.variableDeclarator(identifiers.payload, numericArray(data.payload)),
301
+ t.variableDeclarator(identifiers.metadata, numericArray(data.metadata)),
302
+ ];
303
+ if (identifiers.cache) {
304
+ declarations.push(t.variableDeclarator(identifiers.cache, t.arrayExpression(Array.from({ length: entryCount }, () => t.nullLiteral()))));
305
+ }
306
+ declarations.push(t.variableDeclarator(identifiers.decoder, decoder));
307
+ const declaration = t.variableDeclaration('const', declarations);
308
+ const [declarationPath] = body.unshiftContainer('body', declaration);
309
+ const declaratorPaths = declarationPath.get('declarations');
310
+ const decoderPath = declaratorPaths
311
+ .find((path) => path.node.init === decoder)
312
+ .get('init');
313
+ populateDecoder(decoderPath, identifiers, data.indexMask);
314
+ return identifiers;
315
+ }
316
+ function populateDecoder(decoderPath, vault, indexMask) {
317
+ const fresh = (purpose) => t.identifier(decoderPath.scope.generateUid(purpose));
318
+ const entry = fresh('entry');
319
+ const result = fresh('result');
320
+ const record = fresh('record');
321
+ const start = fresh('start');
322
+ const length = fresh('length');
323
+ const key = fresh('stringKey');
324
+ const step = fresh('stringStep');
325
+ const position = fresh('position');
326
+ const mask = fresh('stringMask');
327
+ const statements = [];
328
+ if (vault.cache) {
329
+ const cached = fresh('cached');
330
+ statements.push(t.variableDeclaration('let', [t.variableDeclarator(cached, indexed(vault.cache, entry))]), t.ifStatement(t.binaryExpression('!==', cached, t.nullLiteral()), t.returnStatement(cached)));
331
+ }
332
+ statements.push(t.variableDeclaration('let', [
333
+ t.variableDeclarator(result, t.stringLiteral('')),
334
+ t.variableDeclarator(record, t.binaryExpression('*', entry, t.numericLiteral(RECORD_WIDTH))),
335
+ t.variableDeclarator(start, indexed(vault.metadata, record)),
336
+ t.variableDeclarator(length, indexed(vault.metadata, t.binaryExpression('+', record, t.numericLiteral(1)))),
337
+ t.variableDeclarator(key, indexed(vault.metadata, t.binaryExpression('+', record, t.numericLiteral(2)))),
338
+ t.variableDeclarator(step, indexed(vault.metadata, t.binaryExpression('+', record, t.numericLiteral(3)))),
339
+ ]), t.forStatement(t.variableDeclaration('let', [t.variableDeclarator(position, t.numericLiteral(0))]), t.binaryExpression('<', position, length), t.updateExpression('++', position), t.blockStatement([
340
+ t.variableDeclaration('let', [
341
+ t.variableDeclarator(mask, maskExpression(position, key, step, indexMask)),
342
+ ]),
343
+ t.expressionStatement(t.assignmentExpression('+=', result, indexed(vault.pool, t.binaryExpression('^', indexed(vault.payload, t.binaryExpression('+', start, position)), mask)))),
344
+ ])));
345
+ if (vault.cache) {
346
+ statements.push(t.expressionStatement(t.assignmentExpression('=', indexed(vault.cache, entry), result)));
347
+ }
348
+ statements.push(t.returnStatement(result));
349
+ decoderPath.node.params = [entry];
350
+ decoderPath.node.body.body = statements;
351
+ }
352
+ function maskExpression(position, key, step, indexMask) {
353
+ return t.binaryExpression('&', t.binaryExpression('+', t.cloneNode(key), t.binaryExpression('*', t.cloneNode(position), t.cloneNode(step))), t.numericLiteral(indexMask));
354
+ }
355
+ function indexed(object, property) {
356
+ return t.memberExpression(t.cloneNode(object), t.cloneNode(property), true);
357
+ }
358
+ function numericArray(values) {
359
+ return t.arrayExpression(values.map((value) => t.numericLiteral(value)));
360
+ }
361
+ //# sourceMappingURL=conceal-strings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conceal-strings.js","sourceRoot":"","sources":["../../src/transforms/conceal-strings.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import type { File } from '@babel/types';
2
2
  /**
3
- * Lifts safe lexical declarations to function-scoped `var`, renaming collisions
4
- * caused by hoisting. TDZ reads, reassigned constants, captured loop bindings,
5
- * uninitialized loop heads, program scope, `with`, and direct eval are refused.
3
+ * Converts safe `let` and `const` declarations to `var` and renames bindings
4
+ * that would conflict after hoisting. It skips TDZ reads, reassigned constants,
5
+ * captured loop bindings, uninitialized loop heads, script globals, and `with`.
6
6
  *
7
7
  * @example
8
8
  * // ◀️ before
@@ -1 +1 @@
1
- {"version":3,"file":"const-let-to-var.d.ts","sourceRoot":"","sources":["../../src/transforms/const-let-to-var.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAMxC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO,CAuDhD"}
1
+ {"version":3,"file":"const-let-to-var.d.ts","sourceRoot":"","sources":["../../src/transforms/const-let-to-var.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAMxC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO,CA+DhD"}
@@ -1,12 +1,12 @@
1
1
  import traverse from '@babel/traverse';
2
2
  import * as t from '@babel/types';
3
3
  import { initializerReaches } from '../analysis/document-order.js';
4
- import { enclosingScopeHasDirectEval, isInsideWith } from '../utils/ast.js';
4
+ import { isInsideWith } from '../utils/ast.js';
5
5
  import { hasConstantViolation } from '../utils/paths.js';
6
6
  /**
7
- * Lifts safe lexical declarations to function-scoped `var`, renaming collisions
8
- * caused by hoisting. TDZ reads, reassigned constants, captured loop bindings,
9
- * uninitialized loop heads, program scope, `with`, and direct eval are refused.
7
+ * Converts safe `let` and `const` declarations to `var` and renames bindings
8
+ * that would conflict after hoisting. It skips TDZ reads, reassigned constants,
9
+ * captured loop bindings, uninitialized loop heads, script globals, and `with`.
10
10
  *
11
11
  * @example
12
12
  * // ◀️ before
@@ -29,8 +29,8 @@ export function constLetToVar(ast) {
29
29
  if (kind !== 'let' && kind !== 'const') {
30
30
  return;
31
31
  }
32
- // Babel cannot see names supplied by `with` or direct eval.
33
- if (isInsideWith(path) || enclosingScopeHasDirectEval(path)) {
32
+ // Babel's scope table cannot account for properties supplied by `with`.
33
+ if (isInsideWith(path)) {
34
34
  return;
35
35
  }
36
36
  // A `var` write would lose the `const` TypeError.
@@ -45,11 +45,19 @@ export function constLetToVar(ast) {
45
45
  if (forHeadMissingInitializer(path)) {
46
46
  return;
47
47
  }
48
- // Top-level `var` creates a global property. Lexical declarations do not.
49
48
  const blockScope = path.scope;
50
49
  const varScope = blockScope.getFunctionParent() ?? blockScope.getProgramParent();
51
50
  if (varScope.path.isProgram()) {
52
- return;
51
+ // Script `var` creates a global-object property; module `var` does not.
52
+ if (varScope.path.node.sourceType !== 'module') {
53
+ return;
54
+ }
55
+ // A circular importer can read this binding before initialization. A
56
+ // lexical binding throws in TDZ then, while `var` reads `undefined`. That
57
+ // external read does not appear in this file's references.
58
+ if (bindsExportedName(path)) {
59
+ return;
60
+ }
53
61
  }
54
62
  // One `var` cannot preserve per-iteration bindings captured by closures.
55
63
  if (capturedInEnclosingLoop(path)) {
@@ -63,7 +71,7 @@ export function constLetToVar(ast) {
63
71
  if (!id) {
64
72
  return;
65
73
  }
66
- if (isInsideWith(path) || enclosingScopeHasDirectEval(path)) {
74
+ if (isInsideWith(path)) {
67
75
  return;
68
76
  }
69
77
  const scope = path.parentPath.scope;
@@ -125,6 +133,25 @@ function forHeadMissingInitializer(path) {
125
133
  }
126
134
  return path.node.declarations.some((decl) => decl.init == null);
127
135
  }
136
+ // A source clause re-exports another module's binding, not this local binding.
137
+ function bindsExportedName(path) {
138
+ if (path.parentPath.isExportNamedDeclaration()) {
139
+ return true;
140
+ }
141
+ const names = new Set(Object.keys(path.getBindingIdentifiers()));
142
+ const program = path.scope.getProgramParent().path.node;
143
+ for (const statement of program.body) {
144
+ if (!t.isExportNamedDeclaration(statement) || statement.source) {
145
+ continue;
146
+ }
147
+ for (const specifier of statement.specifiers) {
148
+ if (t.isExportSpecifier(specifier) && names.has(specifier.local.name)) {
149
+ return true;
150
+ }
151
+ }
152
+ }
153
+ return false;
154
+ }
128
155
  // A nested function or class can observe the loop's per-iteration binding.
129
156
  function capturedInEnclosingLoop(path) {
130
157
  const loop = enclosingLoop(path);
@@ -1 +1 @@
1
- {"version":3,"file":"const-let-to-var.js","sourceRoot":"","sources":["../../src/transforms/const-let-to-var.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,iBAAiB,CAAA;AAEtC,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AAGjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,2BAA2B,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAErD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,aAAa,CAAC,GAAS;IACrC,MAAM,KAAK,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;IAChC,QAAQ,CAAC,GAAG,EAAE;QACZ,mBAAmB,CAAC,IAAI;YACtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;YAC3B,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBACvC,OAAM;YACR,CAAC;YACD,4DAA4D;YAC5D,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,2BAA2B,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5D,OAAM;YACR,CAAC;YACD,kDAAkD;YAClD,IAAI,IAAI,KAAK,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnD,OAAM;YACR,CAAC;YACD,yEAAyE;YACzE,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,OAAM;YACR,CAAC;YACD,2EAA2E;YAC3E,IAAI,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpC,OAAM;YACR,CAAC;YACD,0EAA0E;YAC1E,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAA;YAC7B,MAAM,QAAQ,GAAG,UAAU,CAAC,iBAAiB,EAAE,IAAI,UAAU,CAAC,gBAAgB,EAAE,CAAA;YAChF,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;gBAC9B,OAAM;YACR,CAAC;YACD,yEAAyE;YACzE,IAAI,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClC,OAAM;YACR,CAAC;YACD,4BAA4B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;YAC5C,KAAK,CAAC,OAAO,GAAG,IAAI,CAAA;QACtB,CAAC;QAED,gBAAgB,CAAC,IAAI;YACnB,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;YACvB,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,OAAM;YACR,CAAC;YACD,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,2BAA2B,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5D,OAAM;YACR,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAA;YACnC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAO,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;gBAC9E,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;gBAC1B,KAAK,CAAC,OAAO,GAAG,IAAI,CAAA;YACtB,CAAC;QACH,CAAC;KACF,CAAC,CAAA;IACF,OAAO,KAAK,CAAC,OAAO,CAAA;AACtB,CAAC;AAED,MAAM,2BAA2B,GAAiC;IAChE,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE;QACnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;YAC9C,IAAI,OAAO,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;gBAChC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IACD,UAAU,CAAC,IAAI;QACb,IAAI,CAAC,IAAI,EAAE,CAAA;IACb,CAAC;IACD,WAAW,CAAC,IAAI;QACd,IAAI,CAAC,IAAI,EAAE,CAAA;IACb,CAAC;CACF,CAAA;AAED,4EAA4E;AAC5E,+CAA+C;AAC/C,SAAS,oBAAoB,CAAC,IAAqC;IACjE,MAAM,QAAQ,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAA;IAC/C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,EAAE,CAAC;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,SAAQ;QACV,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,cAAc,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC/E,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC;gBACtD,OAAO,IAAI,CAAA;YACb,CAAC;YACD,MAAM,SAAS,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAA;YACjD,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAC3B,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;oBACrC,OAAO,IAAI,CAAA;gBACb,CAAC;gBACD,SAAQ;YACV,CAAC;YACD,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;YACvD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,qBAAqB,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;gBACnF,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAqC;IACtE,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,MAAM,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAA;AACjE,CAAC;AAED,2EAA2E;AAC3E,SAAS,uBAAuB,CAAC,IAAqC;IACpE,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;IAChC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,KAAK,CAAA;IACd,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,EAAE,CAAC;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,SAAQ;QACV,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,cAAc,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC/E,KACE,IAAI,OAAO,GAAG,KAAK,CAAC,UAAU,EAC9B,OAAO,IAAI,OAAO,KAAK,IAAI,EAC3B,OAAO,GAAG,OAAO,CAAC,UAAU,EAC5B,CAAC;gBACD,IAAI,OAAO,CAAC,UAAU,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;oBAC9C,OAAO,IAAI,CAAA;gBACb,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,4BAA4B,CACnC,IAAqC,EACrC,QAAe;IAEf,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;IAEtB,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAA;IAC9D,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,SAAQ;QACV,CAAC;QACD,OAAO,CAAC,IAAI,GAAG,KAAK,CAAA;IACtB,CAAC;IAED,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1C,qEAAqE;YACrE,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,kBAAkB,EAAE,CAAA;QACtC,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAA;IAC7B,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,IAAI,OAAO,GAAG,IAAI,CAAA;YAClB,IACE,UAAU,CAAC,MAAO,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;gBACrD,UAAU,CAAC,MAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAClC,CAAC;gBACD,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;gBACtC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YAClC,CAAC;YAED,UAAU,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC7C,CAAC;IACH,CAAC;IAED,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,2BAA2B,EAAE;QACpD,KAAK,EAAE,YAAY;KACpB,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAc;IAC9C,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAE,CAAA;AACtF,CAAC;AAED,gEAAgE;AAChE,SAAS,uBAAuB,CAAC,KAAe,EAAE,IAAc;IAC9D,IAAI,MAAM,GAAoB,IAAI,CAAA;IAClC,KAAK,IAAI,OAAO,GAAG,KAAK,CAAC,UAAU,EAAE,OAAO,IAAI,OAAO,KAAK,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QAC/F,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;YACzB,MAAM,GAAG,OAAO,CAAA;QAClB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,aAAa,CAAC,IAAc;IACnC,KAAK,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QAC1E,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;YACzB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YACrB,OAAO,OAAO,CAAA;QAChB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,UAAU,CAAC,KAAY;IAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;AAChE,CAAC;AAED,SAAS,eAAe,CAAC,IAAqC;IAC5D,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,GAAG,KAAK,MAAM,CAAA;IAC5B,CAAC;IACD,IAAI,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,GAAG,KAAK,MAAM,CAAA;IAC5B,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
1
+ {"version":3,"file":"const-let-to-var.js","sourceRoot":"","sources":["../../src/transforms/const-let-to-var.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,7 @@
1
1
  import type { File } from '@babel/types';
2
2
  /**
3
- * Changes `const` to `let` when no write can observe the lost TypeError. Direct
4
- * eval and recorded constant violations keep the declaration unchanged. Scope
5
- * and TDZ behavior are otherwise identical.
3
+ * Changes `const` to `let` when Babel finds no writes. Read-only bindings keep
4
+ * the same scope and TDZ behavior; the declarations differ only on writes.
6
5
  *
7
6
  * @example
8
7
  * // ◀️ before
@@ -1 +1 @@
1
- {"version":3,"file":"const-to-let.d.ts","sourceRoot":"","sources":["../../src/transforms/const-to-let.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAOxC;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO,CAE7C"}
1
+ {"version":3,"file":"const-to-let.d.ts","sourceRoot":"","sources":["../../src/transforms/const-to-let.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAMxC;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,IAAI,GAAG,OAAO,CAE7C"}