@expo/metro-config 58.0.1 → 58.0.2

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 (32) hide show
  1. package/build/ExpoMetroConfig.d.ts +4 -4
  2. package/build/ExpoMetroConfig.js +18 -7
  3. package/build/ExpoMetroConfig.js.map +1 -1
  4. package/build/build-cache-store.d.ts +12 -0
  5. package/build/build-cache-store.js +46 -0
  6. package/build/build-cache-store.js.map +1 -0
  7. package/build/env.d.ts +4 -0
  8. package/build/env.js +6 -0
  9. package/build/env.js.map +1 -1
  10. package/build/serializer/environmentVariableSerializerPlugin.js +4 -2
  11. package/build/serializer/environmentVariableSerializerPlugin.js.map +1 -1
  12. package/build/serializer/jsOutput.d.ts +3 -6
  13. package/build/serializer/jsOutput.js.map +1 -1
  14. package/build/serializer/reconcileTransformSerializerPlugin.js +14 -15
  15. package/build/serializer/reconcileTransformSerializerPlugin.js.map +1 -1
  16. package/build/serializer/sourceMap.d.ts +40 -4
  17. package/build/serializer/sourceMap.js +85 -155
  18. package/build/serializer/sourceMap.js.map +1 -1
  19. package/build/transform-worker/metro-transform-worker.d.ts +2 -3
  20. package/build/transform-worker/metro-transform-worker.js +38 -39
  21. package/build/transform-worker/metro-transform-worker.js.map +1 -1
  22. package/build/transform-worker/noxcturnal/noxcturnal-transformer.d.ts +0 -1
  23. package/build/transform-worker/noxcturnal/noxcturnal-transformer.js.map +1 -1
  24. package/build/transform-worker/noxcturnal/plugins/metro-dependency.js +1 -1
  25. package/build/transform-worker/noxcturnal/plugins/metro-dependency.js.map +1 -1
  26. package/build/transform-worker/transform-worker.js.map +1 -1
  27. package/build/transform-worker/transformShim.js +3 -4
  28. package/build/transform-worker/transformShim.js.map +1 -1
  29. package/package.json +4 -4
  30. package/build/serializer/packedMap.d.ts +0 -48
  31. package/build/serializer/packedMap.js +0 -440
  32. package/build/serializer/packedMap.js.map +0 -1
@@ -1,440 +0,0 @@
1
- /**
2
- * Copyright © 2026 650 Industries.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */ // Compact, Array-compatible storage for a module's per-segment sourcemap
7
- // data, replacing the per-segment heap-allocated tuple Array on
8
- // `module.output[0].data.map`. The Proxy preserves every reader's access
9
- // pattern (`Array.isArray`, `length`, numeric indices, iteration); the
10
- // encoder fast path in `sourceMap.ts` reads the underlying `Int32Array`
11
- // directly to avoid the per-segment tuple allocation that Proxy
12
- // iteration would otherwise incur.
13
- //
14
- // `SerializableSourceMap` is the JSON-faithful sibling of the
15
- // `PackedMap` class above — same logical shape, but storage is a plain
16
- // `number[]` instead of an `Int32Array` so it round-trips through `JSON`.
17
- // Workers emit it across IPC and `metro-cache` writes it to disk;
18
- // `PackedMap.deserialize` rehydrates it on the main thread.
19
- "use strict";
20
- Object.defineProperty(exports, "__esModule", {
21
- value: true
22
- });
23
- 0 && (module.exports = {
24
- PackedMap: null,
25
- SENTINEL: null,
26
- STRIDE: null,
27
- countLinesAndTerminateSourceMap: null,
28
- emptySourceMap: null,
29
- installPackedMap: null,
30
- isSerializableSourceMap: null,
31
- makeProxy: null,
32
- materializeMap: null,
33
- packDecodedMappings: null,
34
- packRawMappings: null,
35
- patchTransformFileForPackedMaps: null,
36
- tupleAt: null,
37
- wrapTransformResultMaps: null
38
- });
39
- function _export(target, all) {
40
- for(var name in all)Object.defineProperty(target, name, {
41
- enumerable: true,
42
- get: Object.getOwnPropertyDescriptor(all, name).get
43
- });
44
- }
45
- _export(exports, {
46
- get PackedMap () {
47
- return PackedMap;
48
- },
49
- get SENTINEL () {
50
- return SENTINEL;
51
- },
52
- get STRIDE () {
53
- return STRIDE;
54
- },
55
- get countLinesAndTerminateSourceMap () {
56
- return countLinesAndTerminateSourceMap;
57
- },
58
- get emptySourceMap () {
59
- return emptySourceMap;
60
- },
61
- get installPackedMap () {
62
- return installPackedMap;
63
- },
64
- get isSerializableSourceMap () {
65
- return isSerializableSourceMap;
66
- },
67
- get makeProxy () {
68
- return makeProxy;
69
- },
70
- get materializeMap () {
71
- return materializeMap;
72
- },
73
- get packDecodedMappings () {
74
- return packDecodedMappings;
75
- },
76
- get packRawMappings () {
77
- return packRawMappings;
78
- },
79
- get patchTransformFileForPackedMaps () {
80
- return patchTransformFileForPackedMaps;
81
- },
82
- get tupleAt () {
83
- return tupleAt;
84
- },
85
- get wrapTransformResultMaps () {
86
- return wrapTransformResultMaps;
87
- }
88
- });
89
- const STRIDE = 5;
90
- const SENTINEL = -1;
91
- function isSerializableSourceMap(x) {
92
- if (x == null || typeof x !== 'object') return false;
93
- const o = x;
94
- return o.__version === 1 && Array.isArray(o.__packed) && Array.isArray(o.__names) && typeof o.__count === 'number';
95
- }
96
- class PackedMap {
97
- count;
98
- names;
99
- // `Int32Array` storage: 4 bytes/int off-heap vs 8 bytes/slot for the
100
- // tagged `number[]` shape that `SerializableSourceMap` carries.
101
- // Materialized eagerly so a `data.map` whose encoder never iterates
102
- // (e.g. SSR-eval'd modules — the bundle is concatenated and
103
- // `_compile`-ed without anyone calling `.buf`) doesn't strand a
104
- // serialized-shape array on the JS heap.
105
- buf;
106
- constructor(buf, names, count){
107
- this.buf = buf;
108
- this.names = names;
109
- this.count = count;
110
- }
111
- static deserialize(input) {
112
- return new PackedMap(Int32Array.from(input.__packed), input.__names, input.__count);
113
- }
114
- static fromInts(buf, names, count) {
115
- return new PackedMap(buf, names, count);
116
- }
117
- serialize() {
118
- const buf = this.buf;
119
- const out = new Array(buf.length);
120
- for(let i = 0; i < buf.length; i++)out[i] = buf[i];
121
- return {
122
- __version: 1,
123
- __count: this.count,
124
- __names: this.names.slice(),
125
- __packed: out
126
- };
127
- }
128
- }
129
- function tupleAt(p, i) {
130
- if (i < 0 || i >= p.count) return undefined;
131
- const buf = p.buf;
132
- const off = i * STRIDE;
133
- const genL = buf[off];
134
- const genC = buf[off + 1];
135
- const srcL = buf[off + 2];
136
- if (srcL === SENTINEL) {
137
- return [
138
- genL,
139
- genC
140
- ];
141
- }
142
- const srcC = buf[off + 3];
143
- const nameIdx = buf[off + 4];
144
- if (nameIdx === SENTINEL) {
145
- return [
146
- genL,
147
- genC,
148
- srcL,
149
- srcC
150
- ];
151
- }
152
- // A `SerializableSourceMap` with `nameIdx >= __names.length` is malformed; throw a
153
- // clear error rather than silently producing `[..., undefined]`, which
154
- // would corrupt names through the encoder without any obvious symptom.
155
- const name = p.names[nameIdx];
156
- if (name === undefined) {
157
- throw new Error(`[expo-metro-config] PackedMap segment ${i} references name index ${nameIdx}, ` + `but only ${p.names.length} names exist. The serialized entry is corrupt; ` + `clear the metro cache (\`expo start --clear\`) and rebuild.`);
158
- }
159
- return [
160
- genL,
161
- genC,
162
- srcL,
163
- srcC,
164
- name
165
- ];
166
- }
167
- function* iterateTuples(p) {
168
- for(let i = 0; i < p.count; i++){
169
- yield tupleAt(p, i);
170
- }
171
- }
172
- const NODE_INSPECT = Symbol.for('nodejs.util.inspect.custom');
173
- function installPackedMap(data, source) {
174
- // Tuple input goes straight to a typed-array-backed `PackedMap` — going
175
- // via `packTuples` would allocate a `number[]` that
176
- // `PackedMap.deserialize` would then drop on first `.buf` access.
177
- const packed = isSerializableSourceMap(source) ? PackedMap.deserialize(source) : packTuplesToPackedMap(source);
178
- // Lazy accessor for `data.map`: builds that never symbolicate (typical
179
- // CI / quiet dev sessions) read `data.__packedMap` exclusively via the
180
- // encoder fast path, so the Proxy is never allocated. Cached on first
181
- // read so consumers that hold onto `data.map` (e.g.
182
- // `getExplodedSourceMap`) see a stable identity.
183
- let cachedProxy;
184
- Object.defineProperty(data, 'map', {
185
- get () {
186
- if (!cachedProxy) cachedProxy = makeProxy(packed);
187
- return cachedProxy;
188
- },
189
- enumerable: true,
190
- configurable: true
191
- });
192
- Object.defineProperty(data, '__packedMap', {
193
- value: packed,
194
- enumerable: false,
195
- writable: false,
196
- configurable: true
197
- });
198
- }
199
- function wrapTransformResultMaps(result) {
200
- if (!result || !Array.isArray(result.output)) return result;
201
- for (const out of result.output){
202
- const data = out?.data;
203
- if (!data) continue;
204
- // Skip without touching `data.map` — reading it would fire the lazy
205
- // getter and materialize a Proxy we don't need.
206
- if (data.__packedMap) continue;
207
- if (isSerializableSourceMap(data.map)) {
208
- installPackedMap(data, data.map);
209
- }
210
- }
211
- return result;
212
- }
213
- function patchTransformFileForPackedMaps(bundler) {
214
- const originalTransformFile = bundler.transformFile.bind(bundler);
215
- bundler.transformFile = async (...args)=>{
216
- return wrapTransformResultMaps(await originalTransformFile(...args));
217
- };
218
- }
219
- function materializeMap(map) {
220
- if (map == null) return [];
221
- if (isSerializableSourceMap(map)) {
222
- const packed = PackedMap.deserialize(map);
223
- const out = new Array(packed.count);
224
- for(let i = 0; i < packed.count; i++){
225
- out[i] = tupleAt(packed, i);
226
- }
227
- return out;
228
- }
229
- // The Proxy is `Array.isArray`-true and iterates via `Symbol.iterator`.
230
- return Array.isArray(map) ? Array.from(map) : [];
231
- }
232
- function indexOrInsert(names, name) {
233
- const existing = names.get(name);
234
- if (existing !== undefined) return existing;
235
- const idx = names.size;
236
- names.set(name, idx);
237
- return idx;
238
- }
239
- function emptySourceMap() {
240
- return {
241
- __version: 1,
242
- __count: 0,
243
- __names: [],
244
- __packed: []
245
- };
246
- }
247
- function packRawMappings(rawMappings) {
248
- const names = new Map();
249
- const out = new Array(rawMappings.length * STRIDE);
250
- let off = 0;
251
- for (const m of rawMappings){
252
- out[off] = m.generated.line;
253
- out[off + 1] = m.generated.column;
254
- if (m.original == null) {
255
- out[off + 2] = SENTINEL;
256
- out[off + 3] = SENTINEL;
257
- out[off + 4] = SENTINEL;
258
- } else {
259
- out[off + 2] = m.original.line;
260
- out[off + 3] = m.original.column;
261
- out[off + 4] = typeof m.name === 'string' ? indexOrInsert(names, m.name) : SENTINEL;
262
- }
263
- off += STRIDE;
264
- }
265
- return {
266
- __version: 1,
267
- __count: rawMappings.length,
268
- __names: [
269
- ...names.keys()
270
- ],
271
- __packed: out
272
- };
273
- }
274
- function packDecodedMappings(input) {
275
- const decoded = loadSourceMapCodec().decode(input.mappings);
276
- let total = 0;
277
- for (const line of decoded)total += line.length;
278
- const out = new Array(total * STRIDE);
279
- let off = 0;
280
- let count = 0;
281
- for(let lineIdx = 0; lineIdx < decoded.length; lineIdx++){
282
- const genLine = lineIdx + 1;
283
- for (const seg of decoded[lineIdx]){
284
- out[off] = genLine;
285
- out[off + 1] = seg[0];
286
- if (seg.length === 1) {
287
- out[off + 2] = SENTINEL;
288
- out[off + 3] = SENTINEL;
289
- out[off + 4] = SENTINEL;
290
- } else {
291
- out[off + 2] = seg[2] + 1;
292
- out[off + 3] = seg[3];
293
- out[off + 4] = seg.length === 5 ? seg[4] : SENTINEL;
294
- }
295
- off += STRIDE;
296
- count++;
297
- }
298
- }
299
- return {
300
- __version: 1,
301
- __count: count,
302
- __names: input.names.slice(),
303
- __packed: out
304
- };
305
- }
306
- function countLinesAndTerminateSourceMap(code, sourceMap) {
307
- const NEWLINE = /\r\n?|\n|\u2028|\u2029/g;
308
- let lineCount = 1;
309
- let lastLineStart = 0;
310
- for (const match of code.matchAll(NEWLINE)){
311
- if (match.index == null) continue;
312
- lineCount++;
313
- lastLineStart = match.index + match[0].length;
314
- }
315
- const lastLineLength = code.length - lastLineStart;
316
- const lastIdx = sourceMap.__count - 1;
317
- if (lastIdx >= 0) {
318
- const off = lastIdx * STRIDE;
319
- if (sourceMap.__packed[off] === lineCount && sourceMap.__packed[off + 1] === lastLineLength) {
320
- return {
321
- lineCount,
322
- sourceMap
323
- };
324
- }
325
- }
326
- return {
327
- lineCount,
328
- sourceMap: {
329
- __version: 1,
330
- __count: sourceMap.__count + 1,
331
- __names: sourceMap.__names,
332
- __packed: [
333
- ...sourceMap.__packed,
334
- lineCount,
335
- lastLineLength,
336
- SENTINEL,
337
- SENTINEL,
338
- SENTINEL
339
- ]
340
- }
341
- };
342
- }
343
- let _sourceMapCodec;
344
- function loadSourceMapCodec() {
345
- if (!_sourceMapCodec) {
346
- _sourceMapCodec = require('@jridgewell/sourcemap-codec');
347
- }
348
- return _sourceMapCodec;
349
- }
350
- // Pack tuples straight into an `Int32Array`-backed `PackedMap`, skipping
351
- // a `SerializableSourceMap`. Used by `installPackedMap` when the caller already lives
352
- // on the main thread (reconcile, in-memory refits) and never needs the
353
- // JSON-faithful serialized shape for IPC.
354
- function packTuplesToPackedMap(tuples) {
355
- const names = new Map();
356
- const buf = new Int32Array(tuples.length * STRIDE);
357
- let off = 0;
358
- for (const tuple of tuples){
359
- buf[off] = tuple[0];
360
- buf[off + 1] = tuple[1];
361
- if (tuple.length === 2) {
362
- buf[off + 2] = SENTINEL;
363
- buf[off + 3] = SENTINEL;
364
- buf[off + 4] = SENTINEL;
365
- } else {
366
- buf[off + 2] = tuple[2];
367
- buf[off + 3] = tuple[3];
368
- buf[off + 4] = tuple.length === 5 ? indexOrInsert(names, tuple[4]) : SENTINEL;
369
- }
370
- off += STRIDE;
371
- }
372
- return PackedMap.fromInts(buf, [
373
- ...names.keys()
374
- ], tuples.length);
375
- }
376
- function makeProxy(packed) {
377
- const target = [];
378
- const handler = {
379
- get (_t, prop) {
380
- if (prop === 'length') return packed.count;
381
- if (prop === Symbol.iterator) return ()=>iterateTuples(packed);
382
- if (prop === 'toJSON') return ()=>packed.serialize();
383
- if (prop === NODE_INSPECT) {
384
- return ()=>`PackedMap(count=${packed.count})`;
385
- }
386
- if (typeof prop === 'string') {
387
- const n = +prop;
388
- if (Number.isInteger(n) && String(n) === prop && n >= 0) {
389
- return tupleAt(packed, n);
390
- }
391
- }
392
- // Array.prototype methods (`forEach`, `map`, …) reach us back
393
- // through numeric-index `get` and `length`, both covered above.
394
- return Reflect.get(target, prop);
395
- },
396
- has (_t, prop) {
397
- if (prop === 'length' || prop === Symbol.iterator || prop === 'toJSON') return true;
398
- if (typeof prop === 'string') {
399
- const n = +prop;
400
- if (Number.isInteger(n) && String(n) === prop && n >= 0 && n < packed.count) {
401
- return true;
402
- }
403
- }
404
- return Reflect.has(target, prop);
405
- },
406
- ownKeys (t) {
407
- const keys = new Array(packed.count);
408
- for(let i = 0; i < packed.count; i++)keys[i] = String(i);
409
- return keys.concat(Reflect.ownKeys(t));
410
- },
411
- getOwnPropertyDescriptor (t, prop) {
412
- if (typeof prop === 'string') {
413
- const n = +prop;
414
- if (Number.isInteger(n) && String(n) === prop && n >= 0 && n < packed.count) {
415
- return {
416
- value: tupleAt(packed, n),
417
- writable: false,
418
- enumerable: true,
419
- configurable: true
420
- };
421
- }
422
- }
423
- // Delegate `length` to the real Array target so the Proxy invariant
424
- // for non-configurable own keys holds.
425
- return Reflect.getOwnPropertyDescriptor(t, prop);
426
- },
427
- set () {
428
- throw new TypeError('[expo-metro-config] data.map is read-only — backed by a PackedMap. ' + 'Modify the underlying source map or rebuild with a fresh transform instead.');
429
- },
430
- deleteProperty () {
431
- throw new TypeError('[expo-metro-config] data.map is read-only — backed by a PackedMap.');
432
- },
433
- defineProperty () {
434
- throw new TypeError('[expo-metro-config] data.map is read-only — backed by a PackedMap.');
435
- }
436
- };
437
- return new Proxy(target, handler);
438
- }
439
-
440
- //# sourceMappingURL=packedMap.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["serializer/packedMap.ts"],"sourcesContent":[null],"names":["PackedMap","SENTINEL","STRIDE","countLinesAndTerminateSourceMap","emptySourceMap","installPackedMap","isSerializableSourceMap","makeProxy","materializeMap","packDecodedMappings","packRawMappings","patchTransformFileForPackedMaps","tupleAt","wrapTransformResultMaps","x","o","__version","Array","isArray","__packed","__names","__count","count","names","buf","deserialize","input","Int32Array","from","fromInts","serialize","out","length","i","slice","p","undefined","off","genL","genC","srcL","srcC","nameIdx","name","Error","iterateTuples","NODE_INSPECT","Symbol","for","data","source","packed","packTuplesToPackedMap","cachedProxy","Object","defineProperty","get","enumerable","configurable","value","writable","result","output","__packedMap","map","bundler","originalTransformFile","transformFile","bind","args","indexOrInsert","existing","idx","size","set","rawMappings","Map","m","generated","line","column","original","keys","decoded","loadSourceMapCodec","decode","mappings","total","lineIdx","genLine","seg","code","sourceMap","NEWLINE","lineCount","lastLineStart","match","matchAll","index","lastLineLength","lastIdx","_sourceMapCodec","require","tuples","tuple","target","handler","_t","prop","iterator","n","Number","isInteger","String","Reflect","has","ownKeys","t","concat","getOwnPropertyDescriptor","TypeError","deleteProperty","Proxy"],"mappings":"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"}