@expo/metro-config 56.0.4 → 56.0.6
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.
- package/build/file-store.d.ts +5 -0
- package/build/file-store.js +55 -0
- package/build/file-store.js.map +1 -1
- package/build/serializer/exportHermes.js +2 -2
- package/build/serializer/exportHermes.js.map +1 -1
- package/build/serializer/fork/baseJSBundle.d.ts +1 -0
- package/build/serializer/fork/baseJSBundle.js.map +1 -1
- package/build/serializer/jsOutput.d.ts +4 -1
- package/build/serializer/jsOutput.js.map +1 -1
- package/build/serializer/packedMap.d.ts +48 -0
- package/build/serializer/packedMap.js +416 -0
- package/build/serializer/packedMap.js.map +1 -0
- package/build/serializer/reconcileTransformSerializerPlugin.js +27 -21
- package/build/serializer/reconcileTransformSerializerPlugin.js.map +1 -1
- package/build/serializer/serializeChunks.js +16 -26
- package/build/serializer/serializeChunks.js.map +1 -1
- package/build/serializer/sourceMap.d.ts +43 -0
- package/build/serializer/sourceMap.js +304 -0
- package/build/serializer/sourceMap.js.map +1 -0
- package/build/serializer/withExpoSerializers.js +4 -14
- package/build/serializer/withExpoSerializers.js.map +1 -1
- package/build/transform-worker/metro-transform-worker.d.ts +4 -3
- package/build/transform-worker/metro-transform-worker.js +34 -25
- package/build/transform-worker/metro-transform-worker.js.map +1 -1
- package/build/transform-worker/postcss.js +34 -22
- package/build/transform-worker/postcss.js.map +1 -1
- package/build/transform-worker/transform-worker.d.ts +3 -2
- package/build/transform-worker/transform-worker.js.map +1 -1
- package/package.json +9 -6
- package/build/transform-worker/count-lines.d.ts +0 -14
- package/build/transform-worker/count-lines.js +0 -43
- package/build/transform-worker/count-lines.js.map +0 -1
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright © 2026 650 Industries.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.appendDebugIdToSourceMap = appendDebugIdToSourceMap;
|
|
10
|
+
exports.sourceMapString = sourceMapString;
|
|
11
|
+
exports.sourceMapStringNonBlocking = sourceMapStringNonBlocking;
|
|
12
|
+
exports.patchMetroSourceMapStringForPackedMaps = patchMetroSourceMapStringForPackedMaps;
|
|
13
|
+
exports.composeSourceMaps = composeSourceMaps;
|
|
14
|
+
exports.rawMappingsToEncodedMap = rawMappingsToEncodedMap;
|
|
15
|
+
const packedMap_1 = require("./packedMap");
|
|
16
|
+
let _remapping;
|
|
17
|
+
function loadRemapping() {
|
|
18
|
+
if (!_remapping) {
|
|
19
|
+
_remapping = require('@jridgewell/remapping');
|
|
20
|
+
}
|
|
21
|
+
return _remapping;
|
|
22
|
+
}
|
|
23
|
+
let _Generator;
|
|
24
|
+
function loadGenerator() {
|
|
25
|
+
if (!_Generator) {
|
|
26
|
+
_Generator = require('@expo/metro/metro-source-map/Generator').default;
|
|
27
|
+
}
|
|
28
|
+
return _Generator;
|
|
29
|
+
}
|
|
30
|
+
let _isJsModule;
|
|
31
|
+
function loadMetroSerializerHelpers() {
|
|
32
|
+
if (!_isJsModule) {
|
|
33
|
+
_isJsModule = require('@expo/metro/metro/DeltaBundler/Serializers/helpers/js.js').isJsModule;
|
|
34
|
+
}
|
|
35
|
+
return { isJsModule: _isJsModule };
|
|
36
|
+
}
|
|
37
|
+
function feedModuleSegments(generator, tuples, carryOver) {
|
|
38
|
+
for (let i = 0, n = tuples.length; i < n; i++) {
|
|
39
|
+
const tuple = tuples[i];
|
|
40
|
+
const line = tuple[0] + carryOver;
|
|
41
|
+
const column = tuple[1];
|
|
42
|
+
if (tuple.length === 2) {
|
|
43
|
+
generator.addSimpleMapping(line, column);
|
|
44
|
+
}
|
|
45
|
+
else if (tuple.length === 4) {
|
|
46
|
+
generator.addSourceMapping(line, column, tuple[2], tuple[3]);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
generator.addNamedSourceMapping(line, column, tuple[2], tuple[3], tuple[4]);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// Encoder fast path: read the `Int32Array` directly, skipping the Proxy
|
|
54
|
+
// and the tuple-per-segment allocation that Proxy iteration would incur.
|
|
55
|
+
// Without this, encoding a large bundle would allocate millions of
|
|
56
|
+
// transient tuples per pass — defeating the in-memory storage win.
|
|
57
|
+
function feedModuleSegmentsPacked(generator, packed, carryOver) {
|
|
58
|
+
const buf = packed.buf;
|
|
59
|
+
const names = packed.names;
|
|
60
|
+
const count = packed.count;
|
|
61
|
+
for (let i = 0; i < count; i++) {
|
|
62
|
+
const off = i * packedMap_1.STRIDE;
|
|
63
|
+
const line = buf[off] + carryOver;
|
|
64
|
+
const column = buf[off + 1];
|
|
65
|
+
const srcLine = buf[off + 2];
|
|
66
|
+
if (srcLine === packedMap_1.SENTINEL) {
|
|
67
|
+
generator.addSimpleMapping(line, column);
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
const srcCol = buf[off + 3];
|
|
71
|
+
const nameIdx = buf[off + 4];
|
|
72
|
+
if (nameIdx === packedMap_1.SENTINEL) {
|
|
73
|
+
generator.addSourceMapping(line, column, srcLine, srcCol);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
generator.addNamedSourceMapping(line, column, srcLine, srcCol, names[nameIdx]);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// Inlined rather than going through Metro's `getSourceMapInfo` because
|
|
81
|
+
// it spreads `data` and drops the non-enumerable `__packedMap`,
|
|
82
|
+
// silently forcing the encoder onto the slow Proxy path.
|
|
83
|
+
function readSourceMapInfo(module, options) {
|
|
84
|
+
const data = getModuleJsData(module);
|
|
85
|
+
// Don't read `data.map` when `__packedMap` is set — `data.map` is a
|
|
86
|
+
// lazy accessor that materializes the Proxy on first read, and the
|
|
87
|
+
// fast path below doesn't need it.
|
|
88
|
+
let packed = data.data.__packedMap;
|
|
89
|
+
let map;
|
|
90
|
+
if (!packed) {
|
|
91
|
+
map = data.data.map;
|
|
92
|
+
// Self-heal a `SerializableSourceMap` `data.map` that bypassed the wrapper.
|
|
93
|
+
if ((0, packedMap_1.isSerializableSourceMap)(map)) {
|
|
94
|
+
packed = packedMap_1.PackedMap.deserialize(map);
|
|
95
|
+
map = undefined;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return {
|
|
99
|
+
path: options.getSourceUrl?.(module) ?? module.path,
|
|
100
|
+
source: options.excludeSource || data.type === 'js/module/asset' ? '' : module.getSource().toString(),
|
|
101
|
+
functionMap: data.data.functionMap,
|
|
102
|
+
isIgnored: options.shouldAddToIgnoreList(module),
|
|
103
|
+
map,
|
|
104
|
+
packed,
|
|
105
|
+
lineCount: data.data.lineCount,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
function getModuleJsData(module) {
|
|
109
|
+
for (const out of module.output) {
|
|
110
|
+
const type = out.type;
|
|
111
|
+
if (typeof type === 'string' && type.startsWith('js/')) {
|
|
112
|
+
return out;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
throw new Error(`[expo-metro-config] Module "${module.path}" has no JS output. Cannot build a sourcemap entry.`);
|
|
116
|
+
}
|
|
117
|
+
function processModuleIntoGenerator(generator, module, options, carryOver) {
|
|
118
|
+
const info = readSourceMapInfo(module, options);
|
|
119
|
+
generator.startFile(info.path, info.source, info.functionMap ?? null, {
|
|
120
|
+
addToIgnoreList: info.isIgnored,
|
|
121
|
+
});
|
|
122
|
+
if (info.packed) {
|
|
123
|
+
feedModuleSegmentsPacked(generator, info.packed, carryOver);
|
|
124
|
+
}
|
|
125
|
+
else if (Array.isArray(info.map)) {
|
|
126
|
+
// Legacy plain-tuple path — hits for cache entries written before
|
|
127
|
+
// `data.map` switched to `SerializableSourceMap`, and for modules from custom
|
|
128
|
+
// transformers that don't emit packed format.
|
|
129
|
+
feedModuleSegments(generator, info.map, carryOver);
|
|
130
|
+
}
|
|
131
|
+
generator.endFile();
|
|
132
|
+
return carryOver + info.lineCount;
|
|
133
|
+
}
|
|
134
|
+
function filterModules(modules, processModuleFilter) {
|
|
135
|
+
const { isJsModule } = loadMetroSerializerHelpers();
|
|
136
|
+
const out = [];
|
|
137
|
+
for (const m of modules) {
|
|
138
|
+
if (isJsModule(m) && processModuleFilter(m)) {
|
|
139
|
+
out.push(m);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return out;
|
|
143
|
+
}
|
|
144
|
+
// Splice `,"debugId":"..."` in front of the trailing `}` of an already
|
|
145
|
+
// JSON-encoded sourcemap. Used for Hermes output where we don't control
|
|
146
|
+
// the JSON producer.
|
|
147
|
+
function appendDebugIdToSourceMap(sourceMap, debugId) {
|
|
148
|
+
return sourceMap.slice(0, -1) + `,"debugId":${JSON.stringify(debugId)}}`;
|
|
149
|
+
}
|
|
150
|
+
function emitGeneratorJson(generator, options) {
|
|
151
|
+
const json = generator.toString(undefined, { excludeSource: options.excludeSource });
|
|
152
|
+
return options.debugId ? appendDebugIdToSourceMap(json, options.debugId) : json;
|
|
153
|
+
}
|
|
154
|
+
function sourceMapString(modules, options) {
|
|
155
|
+
const Generator = loadGenerator();
|
|
156
|
+
const generator = new Generator();
|
|
157
|
+
const filtered = filterModules(modules, options.processModuleFilter);
|
|
158
|
+
let carryOver = 0;
|
|
159
|
+
for (const mod of filtered) {
|
|
160
|
+
carryOver = processModuleIntoGenerator(generator, mod, options, carryOver);
|
|
161
|
+
}
|
|
162
|
+
return emitGeneratorJson(generator, options);
|
|
163
|
+
}
|
|
164
|
+
// Yields back to the event loop every ~50 ms so the node server stays
|
|
165
|
+
// responsive on very large bundles. Matches Metro's `getSourceMapInfosImpl`
|
|
166
|
+
// pacing.
|
|
167
|
+
async function sourceMapStringNonBlocking(modules, options) {
|
|
168
|
+
const Generator = loadGenerator();
|
|
169
|
+
const generator = new Generator();
|
|
170
|
+
const filtered = filterModules(modules, options.processModuleFilter);
|
|
171
|
+
const NS_IN_MS = 1_000_000;
|
|
172
|
+
const SLICE_NS = 50 * NS_IN_MS;
|
|
173
|
+
let carryOver = 0;
|
|
174
|
+
let i = 0;
|
|
175
|
+
await new Promise((resolve) => {
|
|
176
|
+
const tick = () => {
|
|
177
|
+
const start = process.hrtime();
|
|
178
|
+
while (i < filtered.length) {
|
|
179
|
+
carryOver = processModuleIntoGenerator(generator, filtered[i], options, carryOver);
|
|
180
|
+
i++;
|
|
181
|
+
const diff = process.hrtime(start);
|
|
182
|
+
if (diff[1] > SLICE_NS || diff[0] > 0) {
|
|
183
|
+
setImmediate(tick);
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
resolve();
|
|
188
|
+
};
|
|
189
|
+
tick();
|
|
190
|
+
});
|
|
191
|
+
return emitGeneratorJson(generator, options);
|
|
192
|
+
}
|
|
193
|
+
// Metro's `Server._processSourceMapRequest` calls
|
|
194
|
+
// `sourceMapStringNonBlocking` directly, bypassing the `customSerializer`
|
|
195
|
+
// chain — so without rerouting it, every dev `.map` fetch iterates the
|
|
196
|
+
// `data.map` Proxy and the encoder fast path is unreachable.
|
|
197
|
+
function patchMetroSourceMapStringForPackedMaps() {
|
|
198
|
+
const stock = require('@expo/metro/metro/DeltaBundler/Serializers/sourceMapString');
|
|
199
|
+
stock.sourceMapString = sourceMapString;
|
|
200
|
+
stock.sourceMapStringNonBlocking = sourceMapStringNonBlocking;
|
|
201
|
+
}
|
|
202
|
+
// `maps[0]` is the original-most transform; `maps[maps.length - 1]` is
|
|
203
|
+
// the most recent. Built on `@jridgewell/remapping` instead of mozilla's
|
|
204
|
+
// `SourceMapConsumer`-based composer.
|
|
205
|
+
//
|
|
206
|
+
// Two shims around remapping:
|
|
207
|
+
// - Translate `x_google_ignoreList` to the standard `ignoreList` on
|
|
208
|
+
// each input. Metro's `Generator` emits only the legacy alias, but
|
|
209
|
+
// remapping's `TraceMap` reads only the standard field, so without
|
|
210
|
+
// this ignore-list info disappears across compose.
|
|
211
|
+
// - Carry over `x_hermes_function_offsets` (load-bearing for Hermes
|
|
212
|
+
// bytecode-frame symbolication) and re-emit the legacy
|
|
213
|
+
// `x_google_ignoreList` alias for devtools that haven't yet picked up
|
|
214
|
+
// the rename.
|
|
215
|
+
//
|
|
216
|
+
// `x_facebook_sources` is deliberately dropped — Expo doesn't ship to FB
|
|
217
|
+
// symbolicators.
|
|
218
|
+
function composeSourceMaps(maps) {
|
|
219
|
+
if (maps.length < 1) {
|
|
220
|
+
throw new Error('composeSourceMaps: Expected at least one map');
|
|
221
|
+
}
|
|
222
|
+
const normalized = maps.map((map) => {
|
|
223
|
+
if (map.ignoreList || !map.x_google_ignoreList) {
|
|
224
|
+
return map;
|
|
225
|
+
}
|
|
226
|
+
return { ...map, ignoreList: map.x_google_ignoreList };
|
|
227
|
+
});
|
|
228
|
+
// Metro convention is original-first; remapping is most-recent first.
|
|
229
|
+
const reversed = normalized.slice().reverse();
|
|
230
|
+
const composed = loadRemapping()(reversed, () => null);
|
|
231
|
+
// Re-emit as a plain object — remapping returns a `SourceMap` class
|
|
232
|
+
// instance, which doesn't round-trip JSON cleanly.
|
|
233
|
+
const result = {
|
|
234
|
+
version: composed.version,
|
|
235
|
+
mappings: composed.mappings,
|
|
236
|
+
names: composed.names,
|
|
237
|
+
sources: composed.sources,
|
|
238
|
+
};
|
|
239
|
+
if (composed.file != null) {
|
|
240
|
+
result.file = composed.file;
|
|
241
|
+
}
|
|
242
|
+
if (composed.sourceRoot != null) {
|
|
243
|
+
result.sourceRoot = composed.sourceRoot;
|
|
244
|
+
}
|
|
245
|
+
if (composed.sourcesContent) {
|
|
246
|
+
result.sourcesContent = composed.sourcesContent;
|
|
247
|
+
}
|
|
248
|
+
// Required by Hermes for bytecode-frame symbolication. Lives on the
|
|
249
|
+
// most-recent map (the Hermes map) and passes through unchanged.
|
|
250
|
+
const last = maps[maps.length - 1];
|
|
251
|
+
if (last.x_hermes_function_offsets) {
|
|
252
|
+
result.x_hermes_function_offsets = last.x_hermes_function_offsets;
|
|
253
|
+
}
|
|
254
|
+
// Emit both standard and legacy keys so devtools either side of the
|
|
255
|
+
// rename keep working.
|
|
256
|
+
if (composed.ignoreList && composed.ignoreList.length > 0) {
|
|
257
|
+
result.ignoreList = composed.ignoreList;
|
|
258
|
+
result.x_google_ignoreList = composed.ignoreList;
|
|
259
|
+
}
|
|
260
|
+
return result;
|
|
261
|
+
}
|
|
262
|
+
let _genMapping;
|
|
263
|
+
function loadGenMapping() {
|
|
264
|
+
if (!_genMapping) {
|
|
265
|
+
_genMapping = require('@jridgewell/gen-mapping');
|
|
266
|
+
}
|
|
267
|
+
return _genMapping;
|
|
268
|
+
}
|
|
269
|
+
// Convert Babel's `result.rawMappings` directly to an encoded sourcemap
|
|
270
|
+
// for feeding into a minifier. `BabelSourceMapSegment` lines are
|
|
271
|
+
// 1-based; `gen-mapping`'s `addSegment` is 0-based — subtract 1 at the
|
|
272
|
+
// boundary. Skipping a tuple intermediate avoids one Array allocation
|
|
273
|
+
// per segment.
|
|
274
|
+
function rawMappingsToEncodedMap(opts) {
|
|
275
|
+
const { GenMapping, addSegment, setSourceContent, toEncodedMap } = loadGenMapping();
|
|
276
|
+
const map = new GenMapping({ file: opts.filename });
|
|
277
|
+
setSourceContent(map, opts.filename, opts.source);
|
|
278
|
+
for (const m of opts.rawMappings) {
|
|
279
|
+
const genLine = m.generated.line - 1;
|
|
280
|
+
const genCol = m.generated.column;
|
|
281
|
+
if (m.original == null) {
|
|
282
|
+
addSegment(map, genLine, genCol);
|
|
283
|
+
}
|
|
284
|
+
else if (typeof m.name !== 'string') {
|
|
285
|
+
addSegment(map, genLine, genCol, opts.filename, m.original.line - 1, m.original.column);
|
|
286
|
+
}
|
|
287
|
+
else {
|
|
288
|
+
addSegment(map, genLine, genCol, opts.filename, m.original.line - 1, m.original.column, m.name);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
const encoded = toEncodedMap(map);
|
|
292
|
+
// gen-mapping always registers `opts.filename` as the single source, so
|
|
293
|
+
// hard-coding avoids a `.map(...)` allocation and a `(string | null)[]`
|
|
294
|
+
// narrowing.
|
|
295
|
+
return {
|
|
296
|
+
version: encoded.version,
|
|
297
|
+
file: encoded.file ?? undefined,
|
|
298
|
+
mappings: encoded.mappings,
|
|
299
|
+
names: encoded.names,
|
|
300
|
+
sources: [opts.filename],
|
|
301
|
+
sourcesContent: encoded.sourcesContent,
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
//# sourceMappingURL=sourceMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sourceMap.js","sourceRoot":"","sources":["../../src/serializer/sourceMap.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,16 +12,8 @@ const jsc_safe_url_1 = require("jsc-safe-url");
|
|
|
12
12
|
const debugId_1 = require("./debugId");
|
|
13
13
|
const environmentVariableSerializerPlugin_1 = require("./environmentVariableSerializerPlugin");
|
|
14
14
|
const serializeChunks_1 = require("./serializeChunks");
|
|
15
|
+
const sourceMap_1 = require("./sourceMap");
|
|
15
16
|
const env_1 = require("../env");
|
|
16
|
-
// Lazy-loaded to avoid pulling in metro-source-map and @babel/traverse at startup (~100ms savings)
|
|
17
|
-
let _sourceMapString;
|
|
18
|
-
function getSourceMapString() {
|
|
19
|
-
if (!_sourceMapString) {
|
|
20
|
-
_sourceMapString =
|
|
21
|
-
require('@expo/metro/metro/DeltaBundler/Serializers/sourceMapString').sourceMapString;
|
|
22
|
-
}
|
|
23
|
-
return _sourceMapString;
|
|
24
|
-
}
|
|
25
17
|
// Lazy-loaded to avoid pulling in @babel/generator, @babel/core at startup
|
|
26
18
|
let _reconcileTransformSerializerPlugin;
|
|
27
19
|
function getReconcileTransformSerializerPlugin() {
|
|
@@ -38,7 +30,7 @@ function getTreeShakeSerializer() {
|
|
|
38
30
|
}
|
|
39
31
|
return _treeShakeSerializer;
|
|
40
32
|
}
|
|
41
|
-
// Lazy-loaded to avoid pulling in metro's getAppendScripts
|
|
33
|
+
// Lazy-loaded to avoid pulling in metro's getAppendScripts at startup
|
|
42
34
|
let _baseJSBundle;
|
|
43
35
|
function getBaseJSBundle() {
|
|
44
36
|
if (!_baseJSBundle) {
|
|
@@ -135,10 +127,8 @@ function createDefaultExportCustomSerializer(config, configOptions = {}) {
|
|
|
135
127
|
})).code;
|
|
136
128
|
}
|
|
137
129
|
const getEnsuredMaps = () => {
|
|
138
|
-
bundleMap ??=
|
|
139
|
-
|
|
140
|
-
excludeSource: false,
|
|
141
|
-
// excludeSource: options.serializerOptions?.excludeSource,
|
|
130
|
+
bundleMap ??= (0, sourceMap_1.sourceMapString)([...premodulesToBundle, ...(0, serializeChunks_1.getSortedModules)([...graph.dependencies.values()], options)], {
|
|
131
|
+
excludeSource: options.serializerOptions?.excludeSource ?? false,
|
|
142
132
|
processModuleFilter: options.processModuleFilter,
|
|
143
133
|
shouldAddToIgnoreList: options.shouldAddToIgnoreList,
|
|
144
134
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withExpoSerializers.js","sourceRoot":"","sources":["../../src/serializer/withExpoSerializers.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"withExpoSerializers.js","sourceRoot":"","sources":["../../src/serializer/withExpoSerializers.ts"],"names":[],"mappings":";;;;;AA2EA,kDAiBC;AAID,sDAqBC;AAED,kFAmJC;AAkHD,oFAoBC;AAvYD,0FAAkE;AAElE,+CAAyD;AAEzD,uCAAyC;AACzC,+FAG+C;AAE/C,uDAA+E;AAC/E,2CAA8C;AAC9C,gCAA6B;AAI7B,2EAA2E;AAC3E,IAAI,mCAA6H,CAAC;AAClI,SAAS,qCAAqC;IAC5C,IAAI,CAAC,mCAAmC,EAAE,CAAC;QACzC,mCAAmC;YACjC,OAAO,CAAC,sCAAsC,CAAC,CAAC,kCAAkC,CAAC;IACvF,CAAC;IACD,OAAO,mCAAmC,CAAC;AAC7C,CAAC;AAED,IAAI,oBAAsF,CAAC;AAC3F,SAAS,sBAAsB;IAC7B,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1B,oBAAoB,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC,mBAAmB,CAAC;IACpF,CAAC;IACD,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED,sEAAsE;AACtE,IAAI,aAAgE,CAAC;AACrE,SAAS,eAAe;IACtB,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,aAAa,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC,YAAY,CAAC;IAC9D,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAyBD,SAAgB,mBAAmB,CACjC,MAAc,EACd,UAAmC,EAAE;IAErC,MAAM,UAAU,GAAuB,EAAE,CAAC;IAC1C,UAAU,CAAC,IAAI,CAAC,mEAA6B,CAAC,CAAC;IAC/C,IAAI,CAAC,SAAG,CAAC,uBAAuB,EAAE,CAAC;QACjC,UAAU,CAAC,IAAI,CAAC,yEAAmC,CAAC,CAAC;IACvD,CAAC;IAED,+BAA+B;IAC/B,UAAU,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAE1C,uDAAuD;IACvD,UAAU,CAAC,IAAI,CAAC,qCAAqC,EAAE,CAAC,CAAC;IAEzD,OAAO,qBAAqB,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAC5D,CAAC;AAED,iFAAiF;AACjF,qBAAqB;AACrB,SAAgB,qBAAqB,CACnC,MAAc,EACd,UAA8B,EAC9B,UAAmC,EAAE;IAErC,MAAM,cAAc,GAAG,oCAAoC,CACzD,MAAM,EACN,UAAU,EACV,MAAM,CAAC,UAAU,EAAE,gBAAgB,IAAI,IAAI,EAC3C,OAAO,CACR,CAAC;IAEF,mFAAmF;IACnF,qFAAqF;IAErF,yFAAyF;IACzF,MAAM,CAAC,UAAU,KAAK,EAAE,CAAC;IACzB,yFAAyF;IACzF,MAAM,CAAC,UAAU,CAAC,gBAAgB,GAAG,cAAc,CAAC;IAEpD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,mCAAmC,CACjD,MAA4B,EAC5B,gBAAyC,EAAE;IAE3C,OAAO,KAAK,EACV,UAAkB,EAClB,UAA0C,EAC1C,KAAiC,EACjC,YAAmC,EACc,EAAE;QACnD,8HAA8H;QAC9H,MAAM,aAAa,GACjB,KAAK,CAAC,gBAAgB,CAAC,GAAG;YAC1B,KAAK,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,WAAW,KAAK,MAAM,CAAC;QACxE,mGAAmG;QACnG,MAAM,aAAa,GAAG,YAAY,CAAC,eAAe,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC;QAE9E,MAAM,OAAO,GAAG;YACd,QAAQ,EAAE,KAAK,CAAC,gBAAgB,EAAE,QAAQ;YAC1C,WAAW,EAAE,KAAK,CAAC,gBAAgB,EAAE,sBAAsB,EAAE,WAAW,IAAI,QAAQ;SACrF,CAAC;QAEF,MAAM,OAAO,GAA0B;YACrC,GAAG,YAAY;YACf,cAAc,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE;gBACrC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrB,OAAO,YAAY,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,CAAC;gBACzD,CAAC;gBAED,OAAO,YAAY,CAAC,cAAc,CAChC,QAAQ;gBACR,gGAAgG;gBAChG,OAAO,CACR,CAAC;YACJ,CAAC;SACF,CAAC;QAEF,IAAI,OAA2B,CAAC;QAChC,MAAM,WAAW,GAAG,GAAG,EAAE;YACvB,IAAI,CAAC,aAAa,IAAI,OAAO,EAAE,CAAC;gBAC9B,OAAO,OAAO,CAAC;YACjB,CAAC;YAED,8BAA8B;YAC9B,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE;gBAC9D,GAAG,OAAO;gBACV,OAAO,EAAE,SAAS;aACnB,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,IAAA,wBAAc,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC;YAC/C,OAAO,GAAG,IAAA,sBAAY,EAAC,UAAU,CAAC,CAAC;YACnC,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;QAEF,IAAI,kBAAkB,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;QAEzC,IAAI,UAAU,GAAkB,IAAI,CAAC;QACrC,IAAI,SAAS,GAAkB,IAAI,CAAC;QAEpC,+DAA+D;QAC/D,yGAAyG;QACzG,MAAM,wBAAwB,GAAG,wBAAwB,CAAC,MAAM,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAC/F,IAAI,wBAAwB,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,UAAU,EAAE,kBAAkB,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAC9F,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/B,UAAU,GAAG,MAAM,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;gBACzB,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC;YACzB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;YAC9B,IAAI,aAAa,CAAC,wCAAwC,EAAE,CAAC;gBAC3D,KAAK,MAAM,MAAM,IAAI,aAAa,CAAC,wCAAwC,EAAE,CAAC;oBAC5E,kBAAkB,GAAG,MAAM,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,GAAG,kBAAkB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;gBACvF,CAAC;YACH,CAAC;YACD,UAAU,GAAG,IAAA,wBAAc,EACzB,eAAe,EAAE,CAAC,UAAU,EAAE,kBAAkB,EAAE,KAAK,EAAE;gBACvD,GAAG,OAAO;gBACV,OAAO;aACR,CAAC,CACH,CAAC,IAAI,CAAC;QACT,CAAC;QAED,MAAM,cAAc,GAAG,GAAG,EAAE;YAC1B,SAAS,KAAK,IAAA,2BAAe,EAC3B,CAAC,GAAG,kBAAkB,EAAE,GAAG,IAAA,kCAAgB,EAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EACvF;gBACE,aAAa,EAAE,OAAO,CAAC,iBAAiB,EAAE,aAAa,IAAI,KAAK;gBAChE,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;gBAChD,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;aACrD,CACF,CAAC;YAEF,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC;QAEF,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,IAAA,2BAAY,EAAC,OAAO,CAAC,SAAS,CAAC;gBACzC,CAAC,CAAC,IAAA,0BAAW,EAAC,OAAO,CAAC,SAAS,CAAC;gBAChC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;YACtB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;YAC/C,2CAA2C;YAC3C,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrC,OAAO;oBACL,IAAI,EAAE,UAAU;oBAChB,GAAG,EAAE,cAAc,EAAE;iBACtB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;gBACtB,OAAO,UAAU,CAAC;YACpB,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,UAAU;gBAChB,GAAG,EAAE,SAAS;aACf,CAAC;QACJ,CAAC;QAED,cAAc;QAEd,SAAS,KAAK,cAAc,EAAE,CAAC;QAE/B,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,0BAA0B,GAAG,CAAC,SAAiB,EAAE,EAAE;gBACvD,qHAAqH;gBACrH,8DAA8D;gBAC9D,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC9C,eAAe,CAAC,OAAO,GAAG,WAAW,EAAE,CAAC;gBACxC,4CAA4C;gBAC5C,sCAAsC;gBACtC,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YACzC,CAAC,CAAC;YAEF,OAAO;gBACL,IAAI,EAAE,UAAU;gBAChB,GAAG,EAAE,0BAA0B,CAAC,SAAS,CAAC;aAC3C,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,GAAG,EAAE,SAAS;SACf,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,MAAmB,EACnB,kBAAsC,EACtC,gBAAyC,EAAE;IAE3C,MAAM,iBAAiB,GACrB,kBAAkB,IAAI,mCAAmC,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAEnF,MAAM,cAAc,GAAG,KAAK,EAC1B,UAAkB,EAClB,UAA0C,EAC1C,KAAiC,EACjC,YAAmC,EACc,EAAE;QACnD,MAAM,OAAO,GAAG;YACd,QAAQ,EAAE,KAAK,CAAC,gBAAgB,EAAE,QAAQ;YAC1C,WAAW,EAAE,KAAK,CAAC,gBAAgB,EAAE,sBAAsB,EAAE,WAAW,IAAI,QAAQ;SACrF,CAAC;QAEF,MAAM,cAAc,GAClB,KAAK,CAAC,gBAAgB,EAAE,sBAAsB,EAAE,cAAc,KAAK,MAAM,CAAC;QAC5E,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAU,CAAC;QAE5F,MAAM,OAAO,GAA0B;YACrC,GAAG,YAAY;YACf,cAAc,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE;gBACrC,0EAA0E;gBAC1E,+EAA+E;gBAC/E,kFAAkF;gBAClF,IAAI,UAAU,GAAG,QAAQ,CAAC;gBAC1B,IAAI,cAAc,IAAI,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAChD,UAAU,GAAG,GAAG,QAAQ,SAAS,CAAC;gBACpC,CAAC;gBAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrB,OAAO,YAAY,CAAC,cAAc,CAAC,UAAU,EAAE,GAAG,KAAK,CAAC,CAAC;gBAC3D,CAAC;gBACD,OAAO,YAAY,CAAC,cAAc,CAChC,UAAU;gBACV,gGAAgG;gBAChG,OAAO,CACR,CAAC;YACJ,CAAC;SACF,CAAC;QAEF,MAAM,uBAAuB,GAAG,YAAY,CAAC,iBAAiB,CAAC;QAE/D,uEAAuE;QACvE,gHAAgH;QAChH,MAAM,uBAAuB,GAAG,CAAC,CAAC,uBAAuB,EAAE,MAAM,CAAC;QAElE,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE;YAC9B,IAAI,uBAAuB,EAAE,CAAC;gBAC5B,OAAO;oBACL,UAAU,EAAE,uBAAuB,CAAC,MAAM;oBAC1C,WAAW,EAAE,uBAAuB,CAAC,WAAW;oBAChD,WAAW,EAAE,uBAAuB,CAAC,WAAW;oBAChD,iBAAiB,EAAE,uBAAuB,CAAC,iBAAiB;iBAC7D,CAAC;YACJ,CAAC;YACD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACtB,MAAM,SAAS,GAAG,IAAA,2BAAY,EAAC,OAAO,CAAC,SAAS,CAAC;oBAC/C,CAAC,CAAC,IAAA,0BAAW,EAAC,OAAO,CAAC,SAAS,CAAC;oBAChC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;gBAEtB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;gBAEnD,OAAO;oBACL,UAAU,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,mBAAmB,CAAC;oBACrD,WAAW,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,wBAAwB,CAAC,KAAK,MAAM;oBACtE,WAAW,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,wBAAwB,CAAC,KAAK,MAAM;oBACtE,iBAAiB,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,MAAM;iBACrE,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,EAAE,CAAC;QAEL,IAAI,iBAAiB,EAAE,UAAU,KAAK,QAAQ,EAAE,CAAC;YAC/C,OAAO,iBAAiB,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACnE,CAAC;QAED,yDAAyD;QACzD,OAAO,CAAC,iBAAiB,GAAG;YAC1B,GAAG,OAAO,CAAC,iBAAiB;YAC5B,GAAG,iBAAiB;SACrB,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAA,0CAAwB,EAC3C,MAAM,EACN;YACE,iBAAiB,EAAE,CAAC,CAAC,iBAAiB,CAAC,iBAAiB;YACxD,WAAW,EAAE,CAAC,CAAC,iBAAiB,CAAC,WAAW;YAC5C,GAAG,aAAa;SACjB,EACD,UAAU,EACV,UAAU,EACV,KAAK,EAEL,OAAO,CACR,CAAC;QAEF,IAAI,uBAAuB,EAAE,CAAC;YAC5B,qFAAqF;YACrF,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,SAAgB,oCAAoC,CAClD,MAAmB,EACnB,UAA4C,EAC5C,kBAAqC,EACrC,UAAmC,EAAE;IAErC,MAAM,eAAe,GAAG,oBAAoB,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC;IAElF,OAAO,0BAA0B,CAC/B,kBAAkB,EAClB,KAAK,EAAE,GAAG,KAA2B,EAA0B,EAAE;QAC/D,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,SAAS,EAAE,CAAC;gBACd,KAAK,GAAG,MAAM,SAAS,CAAC,GAAG,KAAK,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QAED,OAAO,eAAe,CAAC,GAAG,KAAK,CAAC,CAAC;IACnC,CAAC,CACF,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CAAC,QAA2B,EAAE,IAAgB;IAC/E,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,oBAAoB,EAAE,QAAQ,EAAE,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,wBAAwB,CAAC,UAA8B;IAC9D,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,sBAAsB,IAAI,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACxE,OAAO,UAAU,CAAC,oBAAyC,CAAC;AAC9D,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,YAAkC;IACxD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,KAAK,MAAM,MAAM,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;QAC3C,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,qCAAqC;YACrC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAW,CAAC;YAChC,IAAI,iBAAiB,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;gBAC1E,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
|
@@ -9,11 +9,12 @@
|
|
|
9
9
|
* https://github.com/facebook/metro/blob/412771475c540b6f85d75d9dcd5a39a6e0753582/packages/metro-transform-worker/src/index.js#L1
|
|
10
10
|
*/
|
|
11
11
|
import { types as t } from '@babel/core';
|
|
12
|
-
import type { MetroSourceMapSegmentTuple } from '@expo/metro/metro-source-map';
|
|
13
12
|
import type { JsTransformerConfig, JsTransformOptions } from '@expo/metro/metro-transform-worker';
|
|
14
13
|
import type { CollectedDependencies, Options as CollectDependenciesOptions } from './collect-dependencies';
|
|
15
14
|
import { InvalidRequireCallError as InternalInvalidRequireCallError } from './collect-dependencies';
|
|
16
15
|
import type { ExpoJsOutput } from '../serializer/jsOutput';
|
|
16
|
+
import { type SerializableSourceMap } from '../serializer/packedMap';
|
|
17
|
+
import { type BabelSourceMapSegment } from '../serializer/sourceMap';
|
|
17
18
|
export { JsTransformOptions };
|
|
18
19
|
interface TransformResponse {
|
|
19
20
|
readonly dependencies: CollectedDependencies['dependencies'];
|
|
@@ -24,9 +25,9 @@ export declare class InvalidRequireCallError extends Error {
|
|
|
24
25
|
filename: string;
|
|
25
26
|
constructor(innerError: InternalInvalidRequireCallError, filename: string);
|
|
26
27
|
}
|
|
27
|
-
export declare const minifyCode: (config: Pick<JsTransformerConfig, "minifierPath" | "minifierConfig">, filename: string, code: string, source: string,
|
|
28
|
+
export declare const minifyCode: (config: Pick<JsTransformerConfig, "minifierPath" | "minifierConfig">, filename: string, code: string, source: string, rawMappings: readonly BabelSourceMapSegment[], reserved?: string[]) => Promise<{
|
|
28
29
|
code: string;
|
|
29
|
-
|
|
30
|
+
sourceMap: SerializableSourceMap;
|
|
30
31
|
}>;
|
|
31
32
|
export declare function applyImportSupport<TFile extends t.File>(ast: TFile, { filename, options, importDefault, importAll, collectLocations, performConstantFolding, }: {
|
|
32
33
|
filename: string;
|
|
@@ -63,8 +63,9 @@ const metroTransformPlugins = __importStar(require("@expo/metro/metro-transform-
|
|
|
63
63
|
const node_assert_1 = __importDefault(require("node:assert"));
|
|
64
64
|
const assetTransformer = __importStar(require("./asset-transformer"));
|
|
65
65
|
const collect_dependencies_1 = __importStar(require("./collect-dependencies"));
|
|
66
|
-
const count_lines_1 = require("./count-lines");
|
|
67
66
|
const resolveOptions_1 = require("./resolveOptions");
|
|
67
|
+
const packedMap_1 = require("../serializer/packedMap");
|
|
68
|
+
const sourceMap_1 = require("../serializer/sourceMap");
|
|
68
69
|
const transform_plugins_1 = require("../transform-plugins");
|
|
69
70
|
const getMinifier_1 = require("./utils/getMinifier");
|
|
70
71
|
class InvalidRequireCallError extends Error {
|
|
@@ -94,19 +95,8 @@ function getDynamicDepsBehavior(inPackages, filename) {
|
|
|
94
95
|
throw new Error(`invalid value for dynamic deps behavior: \`${inPackages}\``);
|
|
95
96
|
}
|
|
96
97
|
}
|
|
97
|
-
const minifyCode = async (config, filename, code, source,
|
|
98
|
-
const sourceMap = (0,
|
|
99
|
-
{
|
|
100
|
-
code,
|
|
101
|
-
source,
|
|
102
|
-
map,
|
|
103
|
-
// functionMap is overridden by the serializer
|
|
104
|
-
functionMap: null,
|
|
105
|
-
path: filename,
|
|
106
|
-
// isIgnored is overriden by the serializer
|
|
107
|
-
isIgnored: false,
|
|
108
|
-
},
|
|
109
|
-
]).toMap(undefined, {});
|
|
98
|
+
const minifyCode = async (config, filename, code, source, rawMappings, reserved = []) => {
|
|
99
|
+
const sourceMap = (0, sourceMap_1.rawMappingsToEncodedMap)({ filename, source, rawMappings });
|
|
110
100
|
const minify = (0, getMinifier_1.getMinifier)(config.minifierPath);
|
|
111
101
|
try {
|
|
112
102
|
const minified = await minify({
|
|
@@ -118,7 +108,9 @@ const minifyCode = async (config, filename, code, source, map, reserved = []) =>
|
|
|
118
108
|
});
|
|
119
109
|
return {
|
|
120
110
|
code: minified.code,
|
|
121
|
-
|
|
111
|
+
sourceMap: minified.map
|
|
112
|
+
? (0, packedMap_1.packDecodedMappings)({ mappings: minified.map.mappings, names: minified.map.names })
|
|
113
|
+
: (0, packedMap_1.emptySourceMap)(),
|
|
122
114
|
};
|
|
123
115
|
}
|
|
124
116
|
catch (error) {
|
|
@@ -380,12 +372,17 @@ async function transformJS(file, { config, options }) {
|
|
|
380
372
|
sourceFileName: file.filename,
|
|
381
373
|
sourceMaps: true,
|
|
382
374
|
}, file.code);
|
|
383
|
-
//
|
|
384
|
-
|
|
375
|
+
// `rawMappings` is omitted from `@types/babel__generator`'s
|
|
376
|
+
// `GeneratorResult`, but Babel emits it whenever `sourceMaps: true`.
|
|
377
|
+
const rawMappings = result?.rawMappings ?? [];
|
|
385
378
|
let code = result.code;
|
|
379
|
+
let sourceMap;
|
|
386
380
|
// NOTE: We might want to enable this on native + hermes when tree shaking is enabled.
|
|
387
381
|
if (minify) {
|
|
388
|
-
({
|
|
382
|
+
({ sourceMap, code } = await (0, exports.minifyCode)(config, file.filename, result.code, file.code, rawMappings, reserved));
|
|
383
|
+
}
|
|
384
|
+
else {
|
|
385
|
+
sourceMap = (0, packedMap_1.packRawMappings)(rawMappings);
|
|
389
386
|
}
|
|
390
387
|
const possibleReconcile = optimize && collectDependenciesOptions
|
|
391
388
|
? {
|
|
@@ -409,7 +406,7 @@ async function transformJS(file, { config, options }) {
|
|
|
409
406
|
}
|
|
410
407
|
: undefined;
|
|
411
408
|
let lineCount;
|
|
412
|
-
({ lineCount,
|
|
409
|
+
({ lineCount, sourceMap } = (0, packedMap_1.countLinesAndTerminateSourceMap)(code, sourceMap));
|
|
413
410
|
// Clean the AST for tree shaking by stripping non-serializable values (Symbols, functions, etc.)
|
|
414
411
|
// that React Compiler and other Babel plugins may add.
|
|
415
412
|
const output = [
|
|
@@ -417,7 +414,11 @@ async function transformJS(file, { config, options }) {
|
|
|
417
414
|
data: {
|
|
418
415
|
code,
|
|
419
416
|
lineCount,
|
|
420
|
-
map
|
|
417
|
+
// Reconcile re-runs Babel codegen and replaces `data.map` via
|
|
418
|
+
// `installPackedMap` before any reader sees it, so the sourceMap emitted
|
|
419
|
+
// here would be discarded — short-circuit to an empty Array to skip
|
|
420
|
+
// the work and avoid GC pressure on optimize builds.
|
|
421
|
+
map: possibleReconcile ? [] : sourceMap,
|
|
421
422
|
functionMap: file.functionMap,
|
|
422
423
|
hasCjsExports: file.hasCjsExports,
|
|
423
424
|
reactServerReference: file.reactServerReference,
|
|
@@ -518,10 +519,10 @@ async function transformJSON(file, { options, config }) {
|
|
|
518
519
|
let code = config.unstable_disableModuleWrapping === true
|
|
519
520
|
? JsFileWrapping.jsonToCommonJS(file.code)
|
|
520
521
|
: JsFileWrapping.wrapJson(file.code, config.globalPrefix);
|
|
521
|
-
let
|
|
522
|
+
let sourceMap = (0, packedMap_1.emptySourceMap)();
|
|
522
523
|
const minify = (0, resolveOptions_1.shouldMinify)(options);
|
|
523
524
|
if (minify) {
|
|
524
|
-
({
|
|
525
|
+
({ sourceMap, code } = await (0, exports.minifyCode)(config, file.filename, code, file.code, []));
|
|
525
526
|
}
|
|
526
527
|
let jsType;
|
|
527
528
|
if (file.type === 'asset') {
|
|
@@ -534,10 +535,10 @@ async function transformJSON(file, { options, config }) {
|
|
|
534
535
|
jsType = 'js/module';
|
|
535
536
|
}
|
|
536
537
|
let lineCount;
|
|
537
|
-
({ lineCount,
|
|
538
|
+
({ lineCount, sourceMap } = (0, packedMap_1.countLinesAndTerminateSourceMap)(code, sourceMap));
|
|
538
539
|
const output = [
|
|
539
540
|
{
|
|
540
|
-
data: { code, lineCount, map, functionMap: null },
|
|
541
|
+
data: { code, lineCount, map: sourceMap, functionMap: null },
|
|
541
542
|
type: jsType,
|
|
542
543
|
},
|
|
543
544
|
];
|
|
@@ -612,6 +613,9 @@ async function transform(config, projectRoot, filename, data, options) {
|
|
|
612
613
|
};
|
|
613
614
|
return transformJSWithBabel(file, context);
|
|
614
615
|
}
|
|
616
|
+
// NOTE: Increment if cache becomes incompatible (original value would be '')
|
|
617
|
+
// 1. Added new packed source map format
|
|
618
|
+
const CACHE_VERSION = '1';
|
|
615
619
|
function getCacheKey(config, opts) {
|
|
616
620
|
const {
|
|
617
621
|
// The `expo_customTransformerPath` from `./supervising-transform-worker` should not participate be part of the cache key
|
|
@@ -643,7 +647,12 @@ function getCacheKey(config, opts) {
|
|
|
643
647
|
extendsBabelConfigPath: config.extendsBabelConfigPath,
|
|
644
648
|
})
|
|
645
649
|
: '';
|
|
646
|
-
|
|
650
|
+
const keyParts = [];
|
|
651
|
+
if (CACHE_VERSION) {
|
|
652
|
+
keyParts.push(CACHE_VERSION);
|
|
653
|
+
}
|
|
654
|
+
keyParts.push(filesKey, (0, metro_cache_1.stableHash)(remainingConfig).toString('hex'), babelTransformerCacheKey);
|
|
655
|
+
return keyParts.join('$');
|
|
647
656
|
}
|
|
648
657
|
/**
|
|
649
658
|
* Produces a Babel template that transforms an "import(...)" call into a
|