@expo/metro-config 58.0.1 → 58.0.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.
Files changed (50) 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/cache-vary/LruCache.d.ts +8 -0
  8. package/build/cache-vary/LruCache.js +39 -0
  9. package/build/cache-vary/LruCache.js.map +1 -0
  10. package/build/cache-vary/VaryingCacheStore.d.ts +34 -0
  11. package/build/cache-vary/VaryingCacheStore.js +265 -0
  12. package/build/cache-vary/VaryingCacheStore.js.map +1 -0
  13. package/build/cache-vary/ambient.d.ts +15 -0
  14. package/build/cache-vary/ambient.js +90 -0
  15. package/build/cache-vary/ambient.js.map +1 -0
  16. package/build/env.d.ts +4 -0
  17. package/build/env.js +6 -0
  18. package/build/env.js.map +1 -1
  19. package/build/serializer/environmentVariableSerializerPlugin.js +4 -2
  20. package/build/serializer/environmentVariableSerializerPlugin.js.map +1 -1
  21. package/build/serializer/jsOutput.d.ts +5 -6
  22. package/build/serializer/jsOutput.js.map +1 -1
  23. package/build/serializer/reconcileTransformSerializerPlugin.js +14 -15
  24. package/build/serializer/reconcileTransformSerializerPlugin.js.map +1 -1
  25. package/build/serializer/sourceMap.d.ts +40 -4
  26. package/build/serializer/sourceMap.js +85 -155
  27. package/build/serializer/sourceMap.js.map +1 -1
  28. package/build/transform-worker/metro-transform-worker.d.ts +2 -3
  29. package/build/transform-worker/metro-transform-worker.js +48 -42
  30. package/build/transform-worker/metro-transform-worker.js.map +1 -1
  31. package/build/transform-worker/noxcturnal/noxcturnal-transformer.d.ts +2 -1
  32. package/build/transform-worker/noxcturnal/noxcturnal-transformer.js +5 -0
  33. package/build/transform-worker/noxcturnal/noxcturnal-transformer.js.map +1 -1
  34. package/build/transform-worker/noxcturnal/plugins/cache-vary.d.ts +7 -0
  35. package/build/transform-worker/noxcturnal/plugins/cache-vary.js +49 -0
  36. package/build/transform-worker/noxcturnal/plugins/cache-vary.js.map +1 -0
  37. package/build/transform-worker/noxcturnal/plugins/define.js +7 -0
  38. package/build/transform-worker/noxcturnal/plugins/define.js.map +1 -1
  39. package/build/transform-worker/noxcturnal/plugins/metro-dependency.js +1 -1
  40. package/build/transform-worker/noxcturnal/plugins/metro-dependency.js.map +1 -1
  41. package/build/transform-worker/noxcturnal/plugins/process-env.js +7 -0
  42. package/build/transform-worker/noxcturnal/plugins/process-env.js.map +1 -1
  43. package/build/transform-worker/transform-worker.js.map +1 -1
  44. package/build/transform-worker/transformShim.js +3 -4
  45. package/build/transform-worker/transformShim.js.map +1 -1
  46. package/build/transform-worker/types.d.ts +4 -0
  47. package/package.json +4 -4
  48. package/build/serializer/packedMap.d.ts +0 -48
  49. package/build/serializer/packedMap.js +0 -440
  50. package/build/serializer/packedMap.js.map +0 -1
@@ -10,10 +10,12 @@ Object.defineProperty(exports, "__esModule", {
10
10
  0 && (module.exports = {
11
11
  appendDebugIdToSourceMap: null,
12
12
  composeSourceMaps: null,
13
- patchMetroSourceMapStringForPackedMaps: null,
13
+ flattenSourceMap: null,
14
14
  rawMappingsToEncodedMap: null,
15
15
  sourceMapString: null,
16
- sourceMapStringNonBlocking: null
16
+ sourceMapStringNonBlocking: null,
17
+ vlqMapFromDecodedMap: null,
18
+ vlqMapFromEncodedMap: null
17
19
  });
18
20
  function _export(target, all) {
19
21
  for(var name in all)Object.defineProperty(target, name, {
@@ -28,8 +30,8 @@ _export(exports, {
28
30
  get composeSourceMaps () {
29
31
  return composeSourceMaps;
30
32
  },
31
- get patchMetroSourceMapStringForPackedMaps () {
32
- return patchMetroSourceMapStringForPackedMaps;
33
+ get flattenSourceMap () {
34
+ return flattenSourceMap;
33
35
  },
34
36
  get rawMappingsToEncodedMap () {
35
37
  return rawMappingsToEncodedMap;
@@ -39,9 +41,14 @@ _export(exports, {
39
41
  },
40
42
  get sourceMapStringNonBlocking () {
41
43
  return sourceMapStringNonBlocking;
44
+ },
45
+ get vlqMapFromDecodedMap () {
46
+ return vlqMapFromDecodedMap;
47
+ },
48
+ get vlqMapFromEncodedMap () {
49
+ return vlqMapFromEncodedMap;
42
50
  }
43
51
  });
44
- const _packedMap = require("./packedMap");
45
52
  let _remapping;
46
53
  function loadRemapping() {
47
54
  if (!_remapping) {
@@ -56,174 +63,96 @@ function loadSourcemapCodec() {
56
63
  }
57
64
  return _sourcemapCodec;
58
65
  }
59
- let _Generator;
60
- function loadGenerator() {
61
- if (!_Generator) {
62
- _Generator = require('@expo/metro/metro-source-map/Generator').default;
66
+ let _metroSourceMap;
67
+ function loadMetroSourceMap() {
68
+ if (!_metroSourceMap) {
69
+ _metroSourceMap = require('@expo/metro/metro-source-map');
63
70
  }
64
- return _Generator;
71
+ return _metroSourceMap;
65
72
  }
66
- let _isJsModule;
67
- function loadMetroSerializerHelpers() {
68
- if (!_isJsModule) {
69
- _isJsModule = require('@expo/metro/metro/DeltaBundler/Serializers/helpers/js.js').isJsModule;
73
+ let _metroSourceMapString;
74
+ function loadMetroSourceMapString() {
75
+ if (!_metroSourceMapString) {
76
+ _metroSourceMapString = require('@expo/metro/metro/DeltaBundler/Serializers/sourceMapString');
70
77
  }
71
- return {
72
- isJsModule: _isJsModule
73
- };
78
+ return _metroSourceMapString;
74
79
  }
75
- function feedModuleSegments(generator, tuples, carryOver) {
76
- for(let i = 0, n = tuples.length; i < n; i++){
77
- const tuple = tuples[i];
78
- const line = tuple[0] + carryOver;
79
- const column = tuple[1];
80
- if (tuple.length === 2) {
81
- generator.addSimpleMapping(line, column);
82
- } else if (tuple.length === 4) {
83
- generator.addSourceMapping(line, column, tuple[2], tuple[3]);
84
- } else {
85
- generator.addNamedSourceMapping(line, column, tuple[2], tuple[3], tuple[4]);
86
- }
80
+ let _traceMapping;
81
+ function loadTraceMapping() {
82
+ if (!_traceMapping) {
83
+ _traceMapping = require('@jridgewell/trace-mapping');
87
84
  }
85
+ return _traceMapping;
88
86
  }
89
- // Encoder fast path: read the `Int32Array` directly, skipping the Proxy
90
- // and the tuple-per-segment allocation that Proxy iteration would incur.
91
- // Without this, encoding a large bundle would allocate millions of
92
- // transient tuples per pass — defeating the in-memory storage win.
93
- function feedModuleSegmentsPacked(generator, packed, carryOver) {
94
- const buf = packed.buf;
95
- const names = packed.names;
96
- const count = packed.count;
97
- for(let i = 0; i < count; i++){
98
- const off = i * _packedMap.STRIDE;
99
- const line = buf[off] + carryOver;
100
- const column = buf[off + 1];
101
- const srcLine = buf[off + 2];
102
- if (srcLine === _packedMap.SENTINEL) {
103
- generator.addSimpleMapping(line, column);
104
- continue;
105
- }
106
- const srcCol = buf[off + 3];
107
- const nameIdx = buf[off + 4];
108
- if (nameIdx === _packedMap.SENTINEL) {
109
- generator.addSourceMapping(line, column, srcLine, srcCol);
110
- } else {
111
- generator.addNamedSourceMapping(line, column, srcLine, srcCol, names[nameIdx]);
112
- }
87
+ function flattenSourceMap(map) {
88
+ if (!('sections' in map)) {
89
+ return map;
90
+ }
91
+ const { FlattenMap, encodedMap } = loadTraceMapping();
92
+ const flat = encodedMap(new FlattenMap(map));
93
+ const result = {
94
+ version: flat.version,
95
+ mappings: flat.mappings,
96
+ names: flat.names,
97
+ sources: flat.sources
98
+ };
99
+ if (flat.file != null) {
100
+ result.file = flat.file;
113
101
  }
102
+ if (flat.sourcesContent) {
103
+ result.sourcesContent = flat.sourcesContent;
104
+ }
105
+ if (flat.ignoreList && flat.ignoreList.length > 0) {
106
+ result.ignoreList = flat.ignoreList;
107
+ }
108
+ return result;
114
109
  }
115
- // Inlined rather than going through Metro's `getSourceMapInfo` because
116
- // it spreads `data` and drops the non-enumerable `__packedMap`,
117
- // silently forcing the encoder onto the slow Proxy path.
118
- function readSourceMapInfo(module1, options) {
119
- const data = getModuleJsData(module1);
120
- // Don't read `data.map` when `__packedMap` is set — `data.map` is a
121
- // lazy accessor that materializes the Proxy on first read, and the
122
- // fast path below doesn't need it.
123
- let packed = data.data.__packedMap;
124
- let map;
125
- if (!packed) {
126
- map = data.data.map;
127
- // Self-heal a `SerializableSourceMap` `data.map` that bypassed the wrapper.
128
- if ((0, _packedMap.isSerializableSourceMap)(map)) {
129
- packed = _packedMap.PackedMap.deserialize(map);
130
- map = undefined;
131
- }
110
+ const NEWLINE = /\r\n?|\n|\u2028|\u2029/g;
111
+ function countLinesAndLastLineColumn(code) {
112
+ let lineCount = 1;
113
+ let lastLineStart = 0;
114
+ for (const match of code.matchAll(NEWLINE)){
115
+ lineCount++;
116
+ lastLineStart = match.index + match[0].length;
132
117
  }
133
118
  return {
134
- path: options.getSourceUrl?.(module1) ?? module1.path,
135
- source: options.excludeSource || data.type === 'js/module/asset' ? '' : module1.getSource().toString(),
136
- functionMap: data.data.functionMap,
137
- isIgnored: options.shouldAddToIgnoreList(module1),
138
- map,
139
- packed,
140
- lineCount: data.data.lineCount
119
+ lineCount,
120
+ lastLineColumn: code.length - lastLineStart
141
121
  };
142
122
  }
143
- function getModuleJsData(module1) {
144
- for (const out of module1.output){
145
- const type = out.type;
146
- if (typeof type === 'string' && type.startsWith('js/')) {
147
- return out;
148
- }
149
- }
150
- throw new Error(`[expo-metro-config] Module "${module1.path}" has no JS output. Cannot build a sourcemap entry.`);
151
- }
152
- function processModuleIntoGenerator(generator, module1, options, carryOver) {
153
- const info = readSourceMapInfo(module1, options);
154
- generator.startFile(info.path, info.source, info.functionMap ?? null, {
155
- addToIgnoreList: info.isIgnored
156
- });
157
- if (info.packed) {
158
- feedModuleSegmentsPacked(generator, info.packed, carryOver);
159
- } else if (Array.isArray(info.map)) {
160
- // Legacy plain-tuple path — hits for cache entries written before
161
- // `data.map` switched to `SerializableSourceMap`, and for modules from custom
162
- // transformers that don't emit packed format.
163
- feedModuleSegments(generator, info.map, carryOver);
164
- }
165
- generator.endFile();
166
- return carryOver + info.lineCount;
123
+ function vlqMapFromDecodedMap(decodedMap, code) {
124
+ const { lineCount, lastLineColumn } = countLinesAndLastLineColumn(code);
125
+ const map = loadMetroSourceMap().vlqMapFromBabelDecodedMap(decodedMap ?? {
126
+ mappings: [],
127
+ names: []
128
+ }, [
129
+ lineCount,
130
+ lastLineColumn
131
+ ]);
132
+ return {
133
+ lineCount,
134
+ map
135
+ };
167
136
  }
168
- function filterModules(modules, processModuleFilter) {
169
- const { isJsModule } = loadMetroSerializerHelpers();
170
- const out = [];
171
- for (const m of modules){
172
- if (isJsModule(m) && processModuleFilter(m)) {
173
- out.push(m);
174
- }
175
- }
176
- return out;
137
+ function vlqMapFromEncodedMap(encoded, code) {
138
+ const mappings = loadSourcemapCodec().decode(encoded.mappings);
139
+ return vlqMapFromDecodedMap({
140
+ mappings,
141
+ names: encoded.names
142
+ }, code);
177
143
  }
178
144
  function appendDebugIdToSourceMap(sourceMap, debugId) {
179
145
  return sourceMap.slice(0, -1) + `,"debugId":${JSON.stringify(debugId)}}`;
180
146
  }
181
- function emitGeneratorJson(generator, options) {
182
- const json = generator.toString(undefined, {
183
- excludeSource: options.excludeSource
184
- });
185
- return options.debugId ? appendDebugIdToSourceMap(json, options.debugId) : json;
186
- }
187
147
  function sourceMapString(modules, options) {
188
- const Generator = loadGenerator();
189
- const generator = new Generator();
190
- const filtered = filterModules(modules, options.processModuleFilter);
191
- let carryOver = 0;
192
- for (const mod of filtered){
193
- carryOver = processModuleIntoGenerator(generator, mod, options, carryOver);
194
- }
195
- return emitGeneratorJson(generator, options);
148
+ const { debugId, ...generatorOptions } = options;
149
+ const json = loadMetroSourceMapString().sourceMapString(modules, generatorOptions);
150
+ return debugId ? appendDebugIdToSourceMap(json, debugId) : json;
196
151
  }
197
152
  async function sourceMapStringNonBlocking(modules, options) {
198
- const Generator = loadGenerator();
199
- const generator = new Generator();
200
- const filtered = filterModules(modules, options.processModuleFilter);
201
- const NS_IN_MS = 1_000_000;
202
- const SLICE_NS = 50 * NS_IN_MS;
203
- let carryOver = 0;
204
- let i = 0;
205
- await new Promise((resolve)=>{
206
- const tick = ()=>{
207
- const start = process.hrtime();
208
- while(i < filtered.length){
209
- carryOver = processModuleIntoGenerator(generator, filtered[i], options, carryOver);
210
- i++;
211
- const diff = process.hrtime(start);
212
- if (diff[1] > SLICE_NS || diff[0] > 0) {
213
- setImmediate(tick);
214
- return;
215
- }
216
- }
217
- resolve();
218
- };
219
- tick();
220
- });
221
- return emitGeneratorJson(generator, options);
222
- }
223
- function patchMetroSourceMapStringForPackedMaps() {
224
- const stock = require('@expo/metro/metro/DeltaBundler/Serializers/sourceMapString');
225
- stock.sourceMapString = sourceMapString;
226
- stock.sourceMapStringNonBlocking = sourceMapStringNonBlocking;
153
+ const { debugId, ...generatorOptions } = options;
154
+ const json = await loadMetroSourceMapString().sourceMapStringNonBlocking(modules, generatorOptions);
155
+ return debugId ? appendDebugIdToSourceMap(json, debugId) : json;
227
156
  }
228
157
  function repairInvalidNegativeIndices(map) {
229
158
  const { decode, encode } = loadSourcemapCodec();
@@ -252,7 +181,8 @@ function composeSourceMaps(maps) {
252
181
  if (maps.length < 1) {
253
182
  throw new Error('composeSourceMaps: Expected at least one map');
254
183
  }
255
- const normalized = maps.map((map)=>{
184
+ const normalized = maps.map((input)=>{
185
+ const map = flattenSourceMap(input);
256
186
  if (map.ignoreList || !map.x_google_ignoreList) {
257
187
  return map;
258
188
  }
@@ -309,7 +239,7 @@ function composeSourceMaps(maps) {
309
239
  }
310
240
  // Required by Hermes for bytecode-frame symbolication. Lives on the
311
241
  // most-recent map (the Hermes map) and passes through unchanged.
312
- const last = maps[maps.length - 1];
242
+ const last = normalized[normalized.length - 1];
313
243
  if (last.x_hermes_function_offsets) {
314
244
  result.x_hermes_function_offsets = last.x_hermes_function_offsets;
315
245
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["serializer/sourceMap.ts"],"sourcesContent":[null],"names":["appendDebugIdToSourceMap","composeSourceMaps","patchMetroSourceMapStringForPackedMaps","rawMappingsToEncodedMap","sourceMapString","sourceMapStringNonBlocking","_remapping","loadRemapping","require","_sourcemapCodec","loadSourcemapCodec","_Generator","loadGenerator","default","_isJsModule","loadMetroSerializerHelpers","isJsModule","feedModuleSegments","generator","tuples","carryOver","i","n","length","tuple","line","column","addSimpleMapping","addSourceMapping","addNamedSourceMapping","feedModuleSegmentsPacked","packed","buf","names","count","off","STRIDE","srcLine","SENTINEL","srcCol","nameIdx","readSourceMapInfo","module","options","data","getModuleJsData","__packedMap","map","isSerializableSourceMap","PackedMap","deserialize","undefined","path","getSourceUrl","source","excludeSource","type","getSource","toString","functionMap","isIgnored","shouldAddToIgnoreList","lineCount","out","output","startsWith","Error","processModuleIntoGenerator","info","startFile","addToIgnoreList","Array","isArray","endFile","filterModules","modules","processModuleFilter","m","push","sourceMap","debugId","slice","JSON","stringify","emitGeneratorJson","json","Generator","filtered","mod","NS_IN_MS","SLICE_NS","Promise","resolve","tick","start","process","hrtime","diff","setImmediate","stock","repairInvalidNegativeIndices","decode","encode","decoded","mappings","changed","segment","maps","normalized","ignoreList","x_google_ignoreList","input","reverse","remap","composed","error","didRepair","fixed","result","version","sources","file","sourceRoot","sourcesContent","last","x_hermes_function_offsets","_genMapping","loadGenMapping","opts","GenMapping","addSegment","setSourceContent","toEncodedMap","filename","rawMappings","genLine","generated","genCol","original","name","encoded"],"mappings":"AAAA;;;;;CAKC;;;;;;;;;;;;;;;;;;;QA6QeA;eAAAA;;QAsGAC;eAAAA;;QA1CAC;eAAAA;;QAsJAC;eAAAA;;QAzMAC;eAAAA;;QAcMC;eAAAA;;;2BAjR+C;AA6CrE,IAAIC;AACJ,SAASC;IACP,IAAI,CAACD,YAAY;QACfA,aAAaE,QAAQ;IACvB;IACA,OAAOF;AACT;AAEA,IAAIG;AACJ,SAASC;IACP,IAAI,CAACD,iBAAiB;QACpBA,kBAAkBD,QAAQ;IAC5B;IACA,OAAOC;AACT;AAWA,IAAIE;AACJ,SAASC;IACP,IAAI,CAACD,YAAY;QACfA,aAAaH,QAAQ,0CAA0CK,OAAO;IACxE;IACA,OAAOF;AACT;AAOA,IAAIG;AACJ,SAASC;IACP,IAAI,CAACD,aAAa;QAChBA,cAAcN,QAAQ,4DAA4DQ,UAAU;IAC9F;IACA,OAAO;QAAEA,YAAYF;IAAa;AACpC;AAEA,SAASG,mBACPC,SAAyB,EACzBC,MAA6C,EAC7CC,SAAiB;IAEjB,IAAK,IAAIC,IAAI,GAAGC,IAAIH,OAAOI,MAAM,EAAEF,IAAIC,GAAGD,IAAK;QAC7C,MAAMG,QAAQL,MAAM,CAACE,EAAE;QACvB,MAAMI,OAAOD,KAAK,CAAC,EAAE,GAAGJ;QACxB,MAAMM,SAASF,KAAK,CAAC,EAAE;QACvB,IAAIA,MAAMD,MAAM,KAAK,GAAG;YACtBL,UAAUS,gBAAgB,CAACF,MAAMC;QACnC,OAAO,IAAIF,MAAMD,MAAM,KAAK,GAAG;YAC7BL,UAAUU,gBAAgB,CAACH,MAAMC,QAAQF,KAAK,CAAC,EAAE,EAAEA,KAAK,CAAC,EAAE;QAC7D,OAAO;YACLN,UAAUW,qBAAqB,CAACJ,MAAMC,QAAQF,KAAK,CAAC,EAAE,EAAEA,KAAK,CAAC,EAAE,EAAEA,KAAK,CAAC,EAAE;QAC5E;IACF;AACF;AAEA,wEAAwE;AACxE,yEAAyE;AACzE,mEAAmE;AACnE,mEAAmE;AACnE,SAASM,yBACPZ,SAAyB,EACzBa,MAAiB,EACjBX,SAAiB;IAEjB,MAAMY,MAAMD,OAAOC,GAAG;IACtB,MAAMC,QAAQF,OAAOE,KAAK;IAC1B,MAAMC,QAAQH,OAAOG,KAAK;IAC1B,IAAK,IAAIb,IAAI,GAAGA,IAAIa,OAAOb,IAAK;QAC9B,MAAMc,MAAMd,IAAIe,iBAAM;QACtB,MAAMX,OAAOO,GAAG,CAACG,IAAI,GAAIf;QACzB,MAAMM,SAASM,GAAG,CAACG,MAAM,EAAE;QAC3B,MAAME,UAAUL,GAAG,CAACG,MAAM,EAAE;QAC5B,IAAIE,YAAYC,mBAAQ,EAAE;YACxBpB,UAAUS,gBAAgB,CAACF,MAAMC;YACjC;QACF;QACA,MAAMa,SAASP,GAAG,CAACG,MAAM,EAAE;QAC3B,MAAMK,UAAUR,GAAG,CAACG,MAAM,EAAE;QAC5B,IAAIK,YAAYF,mBAAQ,EAAE;YACxBpB,UAAUU,gBAAgB,CAACH,MAAMC,QAAQW,SAASE;QACpD,OAAO;YACLrB,UAAUW,qBAAqB,CAACJ,MAAMC,QAAQW,SAASE,QAAQN,KAAK,CAACO,QAAQ;QAC/E;IACF;AACF;AAEA,uEAAuE;AACvE,gEAAgE;AAChE,yDAAyD;AACzD,SAASC,kBACPC,OAAc,EACdC,OAAkC;IAUlC,MAAMC,OAAOC,gBAAgBH;IAC7B,oEAAoE;IACpE,mEAAmE;IACnE,mCAAmC;IACnC,IAAIX,SAASa,KAAKA,IAAI,CAACE,WAAW;IAClC,IAAIC;IACJ,IAAI,CAAChB,QAAQ;QACXgB,MAAMH,KAAKA,IAAI,CAACG,GAAG;QACnB,4EAA4E;QAC5E,IAAIC,IAAAA,kCAAuB,EAACD,MAAM;YAChChB,SAASkB,oBAAS,CAACC,WAAW,CAACH;YAC/BA,MAAMI;QACR;IACF;IACA,OAAO;QACLC,MAAMT,QAAQU,YAAY,GAAGX,YAAWA,QAAOU,IAAI;QACnDE,QACEX,QAAQY,aAAa,IAAIX,KAAKY,IAAI,KAAK,oBAAoB,KAAKd,QAAOe,SAAS,GAAGC,QAAQ;QAC7FC,aAAaf,KAAKA,IAAI,CAACe,WAAW;QAClCC,WAAWjB,QAAQkB,qBAAqB,CAACnB;QACzCK;QACAhB;QACA+B,WAAWlB,KAAKA,IAAI,CAACkB,SAAS;IAChC;AACF;AAEA,SAASjB,gBAAgBH,OAAc;IACrC,KAAK,MAAMqB,OAAOrB,QAAOsB,MAAM,CAAE;QAC/B,MAAMR,OAAO,AAACO,IAA0BP,IAAI;QAC5C,IAAI,OAAOA,SAAS,YAAYA,KAAKS,UAAU,CAAC,QAAQ;YACtD,OAAOF;QACT;IACF;IACA,MAAM,IAAIG,MACR,CAAC,4BAA4B,EAAExB,QAAOU,IAAI,CAAC,mDAAmD,CAAC;AAEnG;AAYA,SAASe,2BACPjD,SAAyB,EACzBwB,OAAc,EACdC,OAAkC,EAClCvB,SAAiB;IAEjB,MAAMgD,OAAO3B,kBAAkBC,SAAQC;IACvCzB,UAAUmD,SAAS,CAACD,KAAKhB,IAAI,EAAEgB,KAAKd,MAAM,EAAEc,KAAKT,WAAW,IAAI,MAAM;QACpEW,iBAAiBF,KAAKR,SAAS;IACjC;IACA,IAAIQ,KAAKrC,MAAM,EAAE;QACfD,yBAAyBZ,WAAWkD,KAAKrC,MAAM,EAAEX;IACnD,OAAO,IAAImD,MAAMC,OAAO,CAACJ,KAAKrB,GAAG,GAAG;QAClC,kEAAkE;QAClE,8EAA8E;QAC9E,8CAA8C;QAC9C9B,mBAAmBC,WAAWkD,KAAKrB,GAAG,EAAE3B;IAC1C;IACAF,UAAUuD,OAAO;IACjB,OAAOrD,YAAYgD,KAAKN,SAAS;AACnC;AAEA,SAASY,cACPC,OAA0B,EAC1BC,mBAAqE;IAErE,MAAM,EAAE5D,UAAU,EAAE,GAAGD;IACvB,MAAMgD,MAAgB,EAAE;IACxB,KAAK,MAAMc,KAAKF,QAAS;QACvB,IAAI3D,WAAW6D,MAAMD,oBAAoBC,IAAI;YAC3Cd,IAAIe,IAAI,CAACD;QACX;IACF;IACA,OAAOd;AACT;AAYO,SAAS/D,yBAAyB+E,SAAiB,EAAEC,OAAe;IACzE,OAAOD,UAAUE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAEC,KAAKC,SAAS,CAACH,SAAS,CAAC,CAAC;AAC1E;AAEA,SAASI,kBAAkBlE,SAAyB,EAAEyB,OAA6B;IACjF,MAAM0C,OAAOnE,UAAUwC,QAAQ,CAACP,WAAW;QAAEI,eAAeZ,QAAQY,aAAa;IAAC;IAClF,OAAOZ,QAAQqC,OAAO,GAAGhF,yBAAyBqF,MAAM1C,QAAQqC,OAAO,IAAIK;AAC7E;AAEO,SAASjF,gBAAgBuE,OAA0B,EAAEhC,OAA6B;IACvF,MAAM2C,YAAY1E;IAClB,MAAMM,YAAY,IAAIoE;IACtB,MAAMC,WAAWb,cAAcC,SAAShC,QAAQiC,mBAAmB;IACnE,IAAIxD,YAAY;IAChB,KAAK,MAAMoE,OAAOD,SAAU;QAC1BnE,YAAY+C,2BAA2BjD,WAAWsE,KAAK7C,SAASvB;IAClE;IACA,OAAOgE,kBAAkBlE,WAAWyB;AACtC;AAKO,eAAetC,2BACpBsE,OAA0B,EAC1BhC,OAA6B;IAE7B,MAAM2C,YAAY1E;IAClB,MAAMM,YAAY,IAAIoE;IACtB,MAAMC,WAAWb,cAAcC,SAAShC,QAAQiC,mBAAmB;IAEnE,MAAMa,WAAW;IACjB,MAAMC,WAAW,KAAKD;IACtB,IAAIrE,YAAY;IAChB,IAAIC,IAAI;IAER,MAAM,IAAIsE,QAAc,CAACC;QACvB,MAAMC,OAAO;YACX,MAAMC,QAAQC,QAAQC,MAAM;YAC5B,MAAO3E,IAAIkE,SAAShE,MAAM,CAAE;gBAC1BH,YAAY+C,2BAA2BjD,WAAWqE,QAAQ,CAAClE,EAAE,EAAGsB,SAASvB;gBACzEC;gBACA,MAAM4E,OAAOF,QAAQC,MAAM,CAACF;gBAC5B,IAAIG,IAAI,CAAC,EAAE,GAAGP,YAAYO,IAAI,CAAC,EAAE,GAAG,GAAG;oBACrCC,aAAaL;oBACb;gBACF;YACF;YACAD;QACF;QACAC;IACF;IAEA,OAAOT,kBAAkBlE,WAAWyB;AACtC;AAMO,SAASzC;IACd,MAAMiG,QAAQ3F,QAAQ;IACtB2F,MAAM/F,eAAe,GAAGA;IACxB+F,MAAM9F,0BAA0B,GAAGA;AACrC;AAEA,SAAS+F,6BAA6BrD,GAAwB;IAC5D,MAAM,EAAEsD,MAAM,EAAEC,MAAM,EAAE,GAAG5F;IAC3B,MAAM6F,UAAUF,OAAOtD,IAAIyD,QAAQ;IAEnC,IAAIC,UAAU;IACd,KAAK,MAAMhF,QAAQ8E,QAAS;QAC1B,IAAK,IAAIlF,IAAI,GAAGA,IAAII,KAAKF,MAAM,EAAEF,IAAK;YACpC,MAAMqF,UAAUjF,IAAI,CAACJ,EAAE;YACvB,qEAAqE;YACrE,8DAA8D;YAC9D,iCAAiC;YACjC,IAAIqF,WAAW,QAAQA,QAAQnF,MAAM,GAAG,KAAMmF,CAAAA,OAAO,CAAC,EAAE,GAAI,KAAKA,OAAO,CAAC,EAAE,GAAI,CAAA,GAAI;gBACjFjF,IAAI,CAACJ,EAAE,GAAG;oBAACqF,OAAO,CAAC,EAAE;iBAAE;gBACvBD,UAAU;YACZ;QACF;IACF;IACA,OAAOA,UAAU;QAAE,GAAG1D,GAAG;QAAEyD,UAAUF,OAAOC;IAAS,IAAIxD;AAC3D;AAkBO,SAAS9C,kBAAkB0G,IAAoC;IACpE,IAAIA,KAAKpF,MAAM,GAAG,GAAG;QACnB,MAAM,IAAI2C,MAAM;IAClB;IAEA,MAAM0C,aAAaD,KAAK5D,GAAG,CAAC,CAACA;QAC3B,IAAIA,IAAI8D,UAAU,IAAI,CAAC9D,IAAI+D,mBAAmB,EAAE;YAC9C,OAAO/D;QACT;QACA,OAAO;YAAE,GAAGA,GAAG;YAAE8D,YAAY9D,IAAI+D,mBAAmB;QAAC;IACvD;IAEA,sEAAsE;IACtE,IAAIC,QAAQH,WAAW3B,KAAK,GAAG+B,OAAO;IACtC,MAAMC,QAAQ1G;IAEd,IAAI2G;IAEJ,IAAI;QACFA,WAAWD,MAAMF,OAAO,IAAM;IAChC,EAAE,OAAOI,OAAO;QACd,wEAAwE;QACxE,yEAAyE;QACzE,uEAAuE;QACvE,OAAO;QACP,uDAAuD;QACvD,8CAA8C;QAC9C,IAAIC,YAAY;QAChB,IAAI;YACFL,QAAQA,MAAMhE,GAAG,CAAC,CAACA;gBACjB,MAAMsE,QAAQjB,6BAA6BrD;gBAC3CqE,cAAcC,UAAUtE;gBACxB,OAAOsE;YACT;QACF,EAAE,OAAM;YACN,MAAMF;QACR;QACA,IAAI,CAACC,WAAW;YACd,MAAMD;QACR,OAAO;YACLD,WAAWD,MAAMF,OAAO,IAAM;QAChC;IACF;IAEA,oEAAoE;IACpE,mDAAmD;IACnD,MAAMO,SAA8B;QAClCC,SAASL,SAASK,OAAO;QACzBf,UAAUU,SAASV,QAAQ;QAC3BvE,OAAOiF,SAASjF,KAAK;QACrBuF,SAASN,SAASM,OAAO;IAC3B;IACA,IAAIN,SAASO,IAAI,IAAI,MAAM;QACzBH,OAAOG,IAAI,GAAGP,SAASO,IAAI;IAC7B;IACA,IAAIP,SAASQ,UAAU,IAAI,MAAM;QAC/BJ,OAAOI,UAAU,GAAGR,SAASQ,UAAU;IACzC;IACA,IAAIR,SAASS,cAAc,EAAE;QAC3BL,OAAOK,cAAc,GAAGT,SAASS,cAAc;IACjD;IAEA,oEAAoE;IACpE,iEAAiE;IACjE,MAAMC,OAAOjB,IAAI,CAACA,KAAKpF,MAAM,GAAG,EAAE;IAClC,IAAIqG,KAAKC,yBAAyB,EAAE;QAClCP,OAAOO,yBAAyB,GAAGD,KAAKC,yBAAyB;IACnE;IAEA,oEAAoE;IACpE,uBAAuB;IACvB,IAAIX,SAASL,UAAU,IAAIK,SAASL,UAAU,CAACtF,MAAM,GAAG,GAAG;QACzD+F,OAAOT,UAAU,GAAGK,SAASL,UAAU;QACvCS,OAAOR,mBAAmB,GAAGI,SAASL,UAAU;IAClD;IAEA,OAAOS;AACT;AAMA,IAAIQ;AACJ,SAASC;IACP,IAAI,CAACD,aAAa;QAChBA,cAActH,QAAQ;IACxB;IACA,OAAOsH;AACT;AAmBO,SAAS3H,wBAAwB6H,IAIvC;IACC,MAAM,EAAEC,UAAU,EAAEC,UAAU,EAAEC,gBAAgB,EAAEC,YAAY,EAAE,GAAGL;IACnE,MAAMhF,MAAM,IAAIkF,WAAW;QAAER,MAAMO,KAAKK,QAAQ;IAAC;IACjDF,iBAAiBpF,KAAKiF,KAAKK,QAAQ,EAAEL,KAAK1E,MAAM;IAEhD,KAAK,MAAMuB,KAAKmD,KAAKM,WAAW,CAAE;QAChC,MAAMC,UAAU1D,EAAE2D,SAAS,CAAC/G,IAAI,GAAG;QACnC,MAAMgH,SAAS5D,EAAE2D,SAAS,CAAC9G,MAAM;QACjC,IAAImD,EAAE6D,QAAQ,IAAI,MAAM;YACtBR,WAAWnF,KAAKwF,SAASE;QAC3B,OAAO,IAAI,OAAO5D,EAAE8D,IAAI,KAAK,UAAU;YACrCT,WAAWnF,KAAKwF,SAASE,QAAQT,KAAKK,QAAQ,EAAExD,EAAE6D,QAAQ,CAACjH,IAAI,GAAG,GAAGoD,EAAE6D,QAAQ,CAAChH,MAAM;QACxF,OAAO;YACLwG,WACEnF,KACAwF,SACAE,QACAT,KAAKK,QAAQ,EACbxD,EAAE6D,QAAQ,CAACjH,IAAI,GAAG,GAClBoD,EAAE6D,QAAQ,CAAChH,MAAM,EACjBmD,EAAE8D,IAAI;QAEV;IACF;IAEA,MAAMC,UAAUR,aAAarF;IAC7B,wEAAwE;IACxE,wEAAwE;IACxE,aAAa;IACb,OAAO;QACLwE,SAASqB,QAAQrB,OAAO;QACxBE,MAAMmB,QAAQnB,IAAI,IAAItE;QACtBqD,UAAUoC,QAAQpC,QAAQ;QAC1BvE,OAAO2G,QAAQ3G,KAAK;QACpBuF,SAAS;YAACQ,KAAKK,QAAQ;SAAC;QACxBV,gBAAgBiB,QAAQjB,cAAc;IACxC;AACF"}
1
+ {"version":3,"sources":["serializer/sourceMap.ts"],"sourcesContent":[null],"names":["appendDebugIdToSourceMap","composeSourceMaps","flattenSourceMap","rawMappingsToEncodedMap","sourceMapString","sourceMapStringNonBlocking","vlqMapFromDecodedMap","vlqMapFromEncodedMap","_remapping","loadRemapping","require","_sourcemapCodec","loadSourcemapCodec","_metroSourceMap","loadMetroSourceMap","_metroSourceMapString","loadMetroSourceMapString","_traceMapping","loadTraceMapping","map","FlattenMap","encodedMap","flat","result","version","mappings","names","sources","file","sourcesContent","ignoreList","length","NEWLINE","countLinesAndLastLineColumn","code","lineCount","lastLineStart","match","matchAll","index","lastLineColumn","decodedMap","vlqMapFromBabelDecodedMap","encoded","decode","sourceMap","debugId","slice","JSON","stringify","modules","options","generatorOptions","json","repairInvalidNegativeIndices","encode","decoded","changed","line","i","segment","maps","Error","normalized","input","x_google_ignoreList","reverse","remap","composed","error","didRepair","fixed","sourceRoot","last","x_hermes_function_offsets","_genMapping","loadGenMapping","opts","GenMapping","addSegment","setSourceContent","toEncodedMap","filename","source","m","rawMappings","genLine","generated","genCol","column","original","name","undefined"],"mappings":"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"}
@@ -11,8 +11,7 @@
11
11
  import { types as t } from '@babel/core';
12
12
  import type { JsTransformerConfig, JsTransformOptions } from '@expo/metro/metro-transform-worker';
13
13
  import type { ExpoJsOutput } from '../serializer/jsOutput';
14
- import { type SerializableSourceMap } from '../serializer/packedMap';
15
- import { type BabelSourceMapSegment, type EncodedTransformerSourceMap } from '../serializer/sourceMap';
14
+ import { type BabelSourceMapSegment, type EncodedMappings, type EncodedTransformerSourceMap } from '../serializer/sourceMap';
16
15
  import type { CollectedDependencies, Options as CollectDependenciesOptions } from './collect-dependencies';
17
16
  import { InvalidRequireCallError as InternalInvalidRequireCallError } from './collect-dependencies';
18
17
  import type { ExpoJsTransformerConfig } from './types';
@@ -28,7 +27,7 @@ export declare class InvalidRequireCallError extends Error {
28
27
  }
29
28
  export declare const minifyCode: (config: Pick<JsTransformerConfig, "minifierPath" | "minifierConfig">, filename: string, code: string, source: string, rawMappings: readonly BabelSourceMapSegment[], reserved?: string[], inputSourceMap?: EncodedTransformerSourceMap) => Promise<{
30
29
  code: string;
31
- sourceMap: SerializableSourceMap;
30
+ map: EncodedMappings;
32
31
  }>;
33
32
  export declare function applyImportSupport<TFile extends t.File>(ast: TFile, { filename, options, importDefault, importAll, collectLocations, performConstantFolding, }: {
34
33
  filename: string;
@@ -115,7 +115,7 @@ function _nodeassert() {
115
115
  };
116
116
  return data;
117
117
  }
118
- const _packedMap = require("../serializer/packedMap");
118
+ const _ambient = require("../cache-vary/ambient");
119
119
  const _sourceMap = require("../serializer/sourceMap");
120
120
  const _transformplugins = require("../transform-plugins");
121
121
  const _assettransformer = /*#__PURE__*/ _interop_require_wildcard(require("./asset-transformer"));
@@ -227,10 +227,10 @@ const minifyCode = async (config, filename, code, source, rawMappings, reserved
227
227
  });
228
228
  return {
229
229
  code: minified.code,
230
- sourceMap: minified.map ? (0, _packedMap.packDecodedMappings)({
231
- mappings: minified.map.mappings,
232
- names: minified.map.names
233
- }) : (0, _packedMap.emptySourceMap)()
230
+ map: minified.map ?? {
231
+ mappings: '',
232
+ names: []
233
+ }
234
234
  };
235
235
  } catch (error) {
236
236
  if (error.constructor.name === 'JS_Parse_Error') {
@@ -396,7 +396,7 @@ async function transformJS(file, { config, options }) {
396
396
  // Add "use strict" if the file was parsed as a module, and the directive did
397
397
  // not exist yet.
398
398
  applyUseStrictDirective(ast);
399
- const unstable_renameRequire = config.unstable_renameRequire;
399
+ const unstable_useStaticHermesModuleFactory = Boolean(options.customTransformOptions?.unstable_staticHermesOptimizedRequire);
400
400
  // NOTE(@hassankhan): Constant folding can be an expensive/slow operation, so we limit it to
401
401
  // production builds, or files that have specifically seen a change in their exports
402
402
  if (!options.dev || file.performConstantFolding) {
@@ -473,10 +473,9 @@ async function transformJS(file, { config, options }) {
473
473
  wrappedAst = ast;
474
474
  } else {
475
475
  // TODO: Replace this with a cheaper transform that doesn't require AST.
476
- ({ ast: wrappedAst } = _JsFileWrapping().wrapModule(ast, importDefault, importAll, dependencyMapName, config.globalPrefix, // TODO: This config is optional to allow its introduction in a minor
477
- // release. It should be made non-optional in ConfigT or removed in
478
- // future.
479
- unstable_renameRequire === false));
476
+ ({ ast: wrappedAst } = _JsFileWrapping().wrapModule(ast, importDefault, importAll, dependencyMapName, config.globalPrefix, {
477
+ unstable_useStaticHermesModuleFactory
478
+ }));
480
479
  }
481
480
  }
482
481
  const minify = (0, _resolveOptions.shouldMinify)(options);
@@ -526,19 +525,21 @@ async function transformJS(file, { config, options }) {
526
525
  })
527
526
  ]) : null;
528
527
  let code = result.code;
529
- let sourceMap;
528
+ let lineCount;
529
+ let map;
530
530
  // NOTE: We might want to enable this on native + hermes when tree shaking is enabled.
531
531
  if (minify) {
532
- ({ sourceMap, code } = await minifyCode(config, file.filename, result.code, file.code, rawMappings, reserved, generatedSourceMap ? {
532
+ let minifiedMap;
533
+ ({ map: minifiedMap, code } = await minifyCode(config, file.filename, result.code, file.code, rawMappings, reserved, generatedSourceMap ? {
533
534
  ...generatedSourceMap,
534
535
  version: 3,
535
536
  sources: generatedSourceMap.sources.map((source)=>source ?? file.filename)
536
537
  } : undefined));
538
+ ({ lineCount, map } = (0, _sourceMap.vlqMapFromEncodedMap)(minifiedMap, code));
539
+ } else if (generatedSourceMap) {
540
+ ({ lineCount, map } = (0, _sourceMap.vlqMapFromEncodedMap)(generatedSourceMap, code));
537
541
  } else {
538
- sourceMap = generatedSourceMap ? (0, _packedMap.packDecodedMappings)({
539
- mappings: generatedSourceMap.mappings,
540
- names: generatedSourceMap.names
541
- }) : (0, _packedMap.packRawMappings)(rawMappings);
542
+ ({ lineCount, map } = (0, _sourceMap.vlqMapFromDecodedMap)(result?.decodedMap, code));
542
543
  }
543
544
  const possibleReconcile = optimize && collectDependenciesOptions ? {
544
545
  inlineRequires: options.inlineRequires,
@@ -555,10 +556,8 @@ async function transformJS(file, { config, options }) {
555
556
  unstable_dependencyMapReservedName: config.unstable_dependencyMapReservedName,
556
557
  optimizationSizeLimit: config.optimizationSizeLimit,
557
558
  unstable_disableNormalizePseudoGlobals: config.unstable_disableNormalizePseudoGlobals,
558
- unstable_renameRequire
559
+ unstable_useStaticHermesModuleFactory
559
560
  } : undefined;
560
- let lineCount;
561
- ({ lineCount, sourceMap } = (0, _packedMap.countLinesAndTerminateSourceMap)(code, sourceMap));
562
561
  // Clean the AST for tree shaking by stripping non-serializable values (Symbols, functions, etc.)
563
562
  // that React Compiler and other Babel plugins may add.
564
563
  const output = [
@@ -566,17 +565,18 @@ async function transformJS(file, { config, options }) {
566
565
  data: {
567
566
  code,
568
567
  lineCount,
569
- // Reconcile re-runs Babel codegen and replaces `data.map` via
570
- // `installPackedMap` before any reader sees it, so the sourceMap emitted
571
- // here would be discarded — short-circuit to an empty Array to skip
572
- // the work and avoid GC pressure on optimize builds.
573
- map: possibleReconcile ? [] : sourceMap,
568
+ // Reconcile re-runs Babel codegen and replaces `data.map` before any reader sees it.
569
+ map: possibleReconcile ? {
570
+ mappings: '',
571
+ names: []
572
+ } : map,
574
573
  functionMap: file.functionMap,
575
574
  hasCjsExports: file.hasCjsExports,
576
575
  reactServerReference: file.reactServerReference,
577
576
  reactClientReference: file.reactClientReference,
578
577
  expoDomComponentReference: file.expoDomComponentReference,
579
578
  loaderReference: file.loaderReference,
579
+ expoCacheVary: await (0, _ambient.embedCurrentFingerprints)(file.cacheVary),
580
580
  ...possibleReconcile ? {
581
581
  ast: wrappedAst,
582
582
  // Store settings for the module that will be used to finish transformation after graph-based optimizations
@@ -661,6 +661,7 @@ function enableExperimentalImportSupportForReactCompiler(context) {
661
661
  }
662
662
  }
663
663
  async function completeFullNoxcturnalTransform(file, context, fullNoxcturnal) {
664
+ const cacheVary = fullNoxcturnal.result.metadata.cacheVary;
664
665
  if (String(context.options.customTransformOptions?.optimize) === 'true') {
665
666
  return transformJS({
666
667
  ...file,
@@ -675,16 +676,19 @@ async function completeFullNoxcturnalTransform(file, context, fullNoxcturnal) {
675
676
  reactClientReference: typeof fullNoxcturnal.result.metadata.reactClientReference === 'string' ? fullNoxcturnal.result.metadata.reactClientReference : file.reactClientReference,
676
677
  expoDomComponentReference: typeof fullNoxcturnal.result.metadata.expoDomComponentReference === 'string' ? fullNoxcturnal.result.metadata.expoDomComponentReference : file.expoDomComponentReference,
677
678
  loaderReference: typeof fullNoxcturnal.result.metadata.loaderReference === 'string' ? fullNoxcturnal.result.metadata.loaderReference : file.loaderReference,
678
- functionMap: fullNoxcturnal.result.functionMap ?? file.functionMap
679
+ functionMap: fullNoxcturnal.result.functionMap ?? file.functionMap,
680
+ cacheVary
679
681
  }, context);
680
682
  }
681
683
  let code = fullNoxcturnal.result.code;
682
- let sourceMap;
684
+ let lineCount;
685
+ let map;
683
686
  if ((0, _resolveOptions.shouldMinify)(context.options)) {
684
687
  const reserved = context.config.unstable_dependencyMapReservedName == null ? [] : [
685
688
  context.config.unstable_dependencyMapReservedName
686
689
  ];
687
- ({ code, sourceMap } = await minifyCode(context.config, file.filename, code, file.code, [], reserved, {
690
+ let minifiedMap;
691
+ ({ code, map: minifiedMap } = await minifyCode(context.config, file.filename, code, file.code, [], reserved, {
688
692
  version: 3,
689
693
  sources: [
690
694
  file.filename
@@ -695,14 +699,10 @@ async function completeFullNoxcturnalTransform(file, context, fullNoxcturnal) {
695
699
  names: fullNoxcturnal.result.map.names,
696
700
  mappings: fullNoxcturnal.result.map.mappings
697
701
  }));
702
+ ({ lineCount, map } = (0, _sourceMap.vlqMapFromEncodedMap)(minifiedMap, code));
698
703
  } else {
699
- sourceMap = (0, _packedMap.packDecodedMappings)({
700
- mappings: fullNoxcturnal.result.map.mappings,
701
- names: fullNoxcturnal.result.map.names
702
- });
704
+ ({ lineCount, map } = (0, _sourceMap.vlqMapFromEncodedMap)(fullNoxcturnal.result.map, code));
703
705
  }
704
- let lineCount;
705
- ({ lineCount, sourceMap } = (0, _packedMap.countLinesAndTerminateSourceMap)(code, sourceMap));
706
706
  return {
707
707
  dependencies: fullNoxcturnal.dependencies,
708
708
  output: [
@@ -711,13 +711,14 @@ async function completeFullNoxcturnalTransform(file, context, fullNoxcturnal) {
711
711
  data: {
712
712
  code,
713
713
  lineCount,
714
- map: sourceMap,
714
+ map,
715
715
  functionMap: fullNoxcturnal.result.functionMap ?? file.functionMap,
716
716
  hasCjsExports: typeof fullNoxcturnal.result.metadata.hasCjsExports === 'boolean' ? fullNoxcturnal.result.metadata.hasCjsExports : file.hasCjsExports,
717
717
  reactServerReference: typeof fullNoxcturnal.result.metadata.reactServerReference === 'string' ? fullNoxcturnal.result.metadata.reactServerReference : file.reactServerReference,
718
718
  reactClientReference: typeof fullNoxcturnal.result.metadata.reactClientReference === 'string' ? fullNoxcturnal.result.metadata.reactClientReference : file.reactClientReference,
719
719
  expoDomComponentReference: typeof fullNoxcturnal.result.metadata.expoDomComponentReference === 'string' ? fullNoxcturnal.result.metadata.expoDomComponentReference : file.expoDomComponentReference,
720
- loaderReference: typeof fullNoxcturnal.result.metadata.loaderReference === 'string' ? fullNoxcturnal.result.metadata.loaderReference : file.loaderReference
720
+ loaderReference: typeof fullNoxcturnal.result.metadata.loaderReference === 'string' ? fullNoxcturnal.result.metadata.loaderReference : file.loaderReference,
721
+ expoCacheVary: await (0, _ambient.embedCurrentFingerprints)(cacheVary)
721
722
  }
722
723
  }
723
724
  ]
@@ -743,16 +744,20 @@ async function transformJSWithBabelFallback(file, context, transformer) {
743
744
  reactClientReference: metadata?.reactClientReference,
744
745
  expoDomComponentReference: metadata?.expoDomComponentReference,
745
746
  loaderReference: metadata?.loaderReference,
746
- performConstantFolding: metadata?.performConstantFolding
747
+ performConstantFolding: metadata?.performConstantFolding,
748
+ cacheVary: metadata?.cacheVary
747
749
  };
748
750
  return await transformJS(jsFile, context);
749
751
  }
750
752
  async function transformJSON(file, { options, config }) {
751
753
  let code = config.unstable_disableModuleWrapping === true ? _JsFileWrapping().jsonToCommonJS(file.code) : _JsFileWrapping().wrapJson(file.code, config.globalPrefix);
752
- let sourceMap = (0, _packedMap.emptySourceMap)();
754
+ let encodedMap = {
755
+ mappings: '',
756
+ names: []
757
+ };
753
758
  const minify = (0, _resolveOptions.shouldMinify)(options);
754
759
  if (minify) {
755
- ({ sourceMap, code } = await minifyCode(config, file.filename, code, file.code, []));
760
+ ({ map: encodedMap, code } = await minifyCode(config, file.filename, code, file.code, []));
756
761
  }
757
762
  let jsType;
758
763
  if (file.type === 'asset') {
@@ -762,14 +767,13 @@ async function transformJSON(file, { options, config }) {
762
767
  } else {
763
768
  jsType = 'js/module';
764
769
  }
765
- let lineCount;
766
- ({ lineCount, sourceMap } = (0, _packedMap.countLinesAndTerminateSourceMap)(code, sourceMap));
770
+ const { lineCount, map } = (0, _sourceMap.vlqMapFromEncodedMap)(encodedMap, code);
767
771
  const output = [
768
772
  {
769
773
  data: {
770
774
  code,
771
775
  lineCount,
772
- map: sourceMap,
776
+ map,
773
777
  functionMap: null
774
778
  },
775
779
  type: jsType
@@ -845,7 +849,9 @@ async function transform(config, projectRoot, filename, data, options) {
845
849
  }
846
850
  // NOTE: Increment if cache becomes incompatible (original value would be '')
847
851
  // 1. Added new packed source map format
848
- const CACHE_VERSION = '2';
852
+ // 3. Replaced the packed source map format with Metro's compact `VlqMap`
853
+ // 4. `expoCacheVary` is embedded in cached transform results
854
+ const CACHE_VERSION = '4';
849
855
  function getCacheKey(config, opts) {
850
856
  const { // The `expo_customTransformerPath` from `./supervising-transform-worker` should not be part of the cache key
851
857
  expo_customTransformerPath: _customTransformerPath, babelTransformerPath, minifierPath, ...remainingConfig } = config;