@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.
- package/build/ExpoMetroConfig.d.ts +4 -4
- package/build/ExpoMetroConfig.js +18 -7
- package/build/ExpoMetroConfig.js.map +1 -1
- package/build/build-cache-store.d.ts +12 -0
- package/build/build-cache-store.js +46 -0
- package/build/build-cache-store.js.map +1 -0
- package/build/cache-vary/LruCache.d.ts +8 -0
- package/build/cache-vary/LruCache.js +39 -0
- package/build/cache-vary/LruCache.js.map +1 -0
- package/build/cache-vary/VaryingCacheStore.d.ts +34 -0
- package/build/cache-vary/VaryingCacheStore.js +265 -0
- package/build/cache-vary/VaryingCacheStore.js.map +1 -0
- package/build/cache-vary/ambient.d.ts +15 -0
- package/build/cache-vary/ambient.js +90 -0
- package/build/cache-vary/ambient.js.map +1 -0
- package/build/env.d.ts +4 -0
- package/build/env.js +6 -0
- package/build/env.js.map +1 -1
- package/build/serializer/environmentVariableSerializerPlugin.js +4 -2
- package/build/serializer/environmentVariableSerializerPlugin.js.map +1 -1
- package/build/serializer/jsOutput.d.ts +5 -6
- package/build/serializer/jsOutput.js.map +1 -1
- package/build/serializer/reconcileTransformSerializerPlugin.js +14 -15
- package/build/serializer/reconcileTransformSerializerPlugin.js.map +1 -1
- package/build/serializer/sourceMap.d.ts +40 -4
- package/build/serializer/sourceMap.js +85 -155
- package/build/serializer/sourceMap.js.map +1 -1
- package/build/transform-worker/metro-transform-worker.d.ts +2 -3
- package/build/transform-worker/metro-transform-worker.js +48 -42
- package/build/transform-worker/metro-transform-worker.js.map +1 -1
- package/build/transform-worker/noxcturnal/noxcturnal-transformer.d.ts +2 -1
- package/build/transform-worker/noxcturnal/noxcturnal-transformer.js +5 -0
- package/build/transform-worker/noxcturnal/noxcturnal-transformer.js.map +1 -1
- package/build/transform-worker/noxcturnal/plugins/cache-vary.d.ts +7 -0
- package/build/transform-worker/noxcturnal/plugins/cache-vary.js +49 -0
- package/build/transform-worker/noxcturnal/plugins/cache-vary.js.map +1 -0
- package/build/transform-worker/noxcturnal/plugins/define.js +7 -0
- package/build/transform-worker/noxcturnal/plugins/define.js.map +1 -1
- package/build/transform-worker/noxcturnal/plugins/metro-dependency.js +1 -1
- package/build/transform-worker/noxcturnal/plugins/metro-dependency.js.map +1 -1
- package/build/transform-worker/noxcturnal/plugins/process-env.js +7 -0
- package/build/transform-worker/noxcturnal/plugins/process-env.js.map +1 -1
- package/build/transform-worker/transform-worker.js.map +1 -1
- package/build/transform-worker/transformShim.js +3 -4
- package/build/transform-worker/transformShim.js.map +1 -1
- package/build/transform-worker/types.d.ts +4 -0
- package/package.json +4 -4
- package/build/serializer/packedMap.d.ts +0 -48
- package/build/serializer/packedMap.js +0 -440
- package/build/serializer/packedMap.js.map +0 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ConfigT as MetroConfig } from '@expo/metro/metro-config';
|
|
2
2
|
import type { MixedOutput, Module, ReadOnlyGraph } from '@expo/metro/metro/DeltaBundler/types';
|
|
3
3
|
import { FileStore } from './binary-file-store';
|
|
4
|
+
import { BuildCacheStore } from './build-cache-store';
|
|
4
5
|
import { INTERNAL_CALLSITES_REGEX } from './customizeFrame';
|
|
5
6
|
export interface DefaultConfigOptions {
|
|
6
7
|
/** @deprecated */
|
|
@@ -56,7 +57,7 @@ export declare function getDefaultConfig(projectRoot: string, { mode, isCSSEnabl
|
|
|
56
57
|
nodeModulesPaths: string[];
|
|
57
58
|
blockList: RegExp[];
|
|
58
59
|
};
|
|
59
|
-
cacheStores: FileStore<any>[];
|
|
60
|
+
cacheStores: BuildCacheStore<any>[] | FileStore<any>[];
|
|
60
61
|
watcher: {
|
|
61
62
|
additionalExts: string[];
|
|
62
63
|
};
|
|
@@ -85,15 +86,14 @@ export declare function getDefaultConfig(projectRoot: string, { mode, isCSSEnabl
|
|
|
85
86
|
readonly column: null | undefined | number;
|
|
86
87
|
readonly methodName: null | undefined | string;
|
|
87
88
|
}) => (null | undefined | {
|
|
88
|
-
readonly collapse?: boolean;
|
|
89
|
+
readonly collapse?: boolean | undefined;
|
|
89
90
|
}) | Promise<null | undefined | {
|
|
90
|
-
readonly collapse?: boolean;
|
|
91
|
+
readonly collapse?: boolean | undefined;
|
|
91
92
|
}>;
|
|
92
93
|
};
|
|
93
94
|
transformerPath: string;
|
|
94
95
|
transformer: {
|
|
95
96
|
unstable_workerThreads: true;
|
|
96
|
-
unstable_renameRequire: false;
|
|
97
97
|
_expoRouterPath: string | undefined;
|
|
98
98
|
postcssHash: string | null;
|
|
99
99
|
browserslistHash: string | null;
|
package/build/ExpoMetroConfig.js
CHANGED
|
@@ -94,6 +94,7 @@ function _resolvefrom() {
|
|
|
94
94
|
return data;
|
|
95
95
|
}
|
|
96
96
|
const _binaryfilestore = require("./binary-file-store");
|
|
97
|
+
const _buildcachestore = require("./build-cache-store");
|
|
97
98
|
const _customizeFrame = require("./customizeFrame");
|
|
98
99
|
const _env = require("./env");
|
|
99
100
|
const _events = require("./events");
|
|
@@ -277,9 +278,22 @@ function getDefaultConfig(projectRoot, { mode, isCSSEnabled = true, unstable_bef
|
|
|
277
278
|
console.log();
|
|
278
279
|
}
|
|
279
280
|
const metroDefaultValues = getDefaultMetroConfig.getDefaultValues(projectRoot);
|
|
280
|
-
const
|
|
281
|
-
|
|
282
|
-
|
|
281
|
+
const restoredRoot = _env.env.EXPO_METRO_CACHE_RESTORE_DIR;
|
|
282
|
+
const outputRoot = _env.env.EXPO_METRO_CACHE_OUTPUT_DIR;
|
|
283
|
+
// The build runner supplies separate absolute directories and starts each job with
|
|
284
|
+
// an empty output directory. Keep output across Metro invocations in the same job.
|
|
285
|
+
// After bundling processes exit, archive only output to exclude unused restored entries.
|
|
286
|
+
// One store keeps these directories together when projects reorder cacheStores.
|
|
287
|
+
const cacheStores = restoredRoot && outputRoot ? [
|
|
288
|
+
new _buildcachestore.BuildCacheStore({
|
|
289
|
+
restoredRoot,
|
|
290
|
+
outputRoot
|
|
291
|
+
})
|
|
292
|
+
] : [
|
|
293
|
+
new _binaryfilestore.FileStore({
|
|
294
|
+
root: outputRoot || _path().default.join(_os().default.tmpdir(), 'metro-cache')
|
|
295
|
+
})
|
|
296
|
+
];
|
|
283
297
|
const serverRoot = (0, _paths().getMetroServerRoot)(projectRoot);
|
|
284
298
|
const routerPackageRoot = _resolvefrom().default.silent(projectRoot, 'expo-router');
|
|
285
299
|
const expoMetroConfig = asMetroConfigInput({
|
|
@@ -347,9 +361,7 @@ function getDefaultConfig(projectRoot, { mode, isCSSEnabled = true, unstable_bef
|
|
|
347
361
|
/^(?:android[\\/]app[\\/]build|android[\\/]\.gradle|ios[\\/]Pods)$/
|
|
348
362
|
]
|
|
349
363
|
},
|
|
350
|
-
cacheStores
|
|
351
|
-
cacheStore
|
|
352
|
-
],
|
|
364
|
+
cacheStores,
|
|
353
365
|
watcher: {
|
|
354
366
|
// strip starting dot from env files. We only support watching development variants of env files as production is inlined using a different system.
|
|
355
367
|
additionalExts: [
|
|
@@ -415,7 +427,6 @@ function getDefaultConfig(projectRoot, { mode, isCSSEnabled = true, unstable_bef
|
|
|
415
427
|
transformer: {
|
|
416
428
|
unstable_workerThreads: true,
|
|
417
429
|
// Custom: These are passed to `getCacheKey` and ensure invalidation when the version changes.
|
|
418
|
-
unstable_renameRequire: false,
|
|
419
430
|
_expoRouterPath: routerPackageRoot ? _path().default.relative(serverRoot, routerPackageRoot) : undefined,
|
|
420
431
|
postcssHash: (0, _postcss.getPostcssConfigHash)(projectRoot),
|
|
421
432
|
browserslistHash: pkg?.browserslist ? (0, _metrocache().stableHash)(JSON.stringify(pkg?.browserslist)).toString('hex') : null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ExpoMetroConfig.ts"],"sourcesContent":[null],"names":["EXPO_DEBUG","INTERNAL_CALLSITES_REGEX","createStableModuleIdFactory","getDefaultConfig","internal_supervisingTransformerPath","unstable_transformerPath","hasWarnedAboutReactNative","getReactNativeHostPackage","platform","getReactNativeHostPath","projectRoot","hostPackage","path","dirname","resolveFrom","silent","patchMetroGraphToSupportUncachedModules","Graph","require","original_traverseDependencies","prototype","traverseDependencies","__patched","paths","options","dependencies","forEach","dependency","output","find","file","data","css","skipCache","includes","setOnReadonly","unstable_transformResultKey","push","call","createNumericModuleIdFactory","fileToIdMap","Map","nextId","modulePath","id","get","set","memoize","fn","cache","args","key","JSON","stringify","has","result","asMetroConfigInput","config","root","getModulePath","scope","isVirtualModule","isAbsolute","toPosixPath","relative","memoizedGetModulePath","context","env","environment","Error","mode","isCSSEnabled","unstable_beforeAssetSerializationPlugins","getDefaultMetroConfig","mergeConfig","reactNativePath","console","log","chalk","yellow","sourceExtsConfig","isTS","isReact","isModern","sourceExts","getBareExtensions","reanimatedVersion","getPkgVersion","workletsVersion","babelRuntimeVersion","sassVersion","pkg","getPackageJson","error","name","watchFolders","getWatchFolders","nodeModulesPaths","getModulesPaths","version","join","metroDefaultValues","getDefaultValues","cacheStore","FileStore","os","tmpdir","serverRoot","getMetroServerRoot","routerPackageRoot","expoMetroConfig","reporter","update","resolver","unstable_conditionsByPlatform","ios","android","tvos","macos","web","resolverMainFields","platforms","assetExts","concat","filter","assetExt","blockList","exclusionList","cacheStores","watcher","additionalExts","serializer","isThirdPartyModule","module","test","match","createModuleIdFactory","EXPO_USE_METRO_REQUIRE","bind","getModulesRunBeforeMainModule","preModules","resolve","stdRuntime","event","metroRuntime","getExpoMetroRuntimeOptional","getPolyfills","server","rewriteRequestUrl","getRewriteRequestUrl","port","Number","RCT_METRO_PORT","unstable_serverRoot","symbolicator","customizeFrame","getDefaultCustomizeFrame","transformerPath","transformer","unstable_workerThreads","unstable_renameRequire","_expoRouterPath","undefined","postcssHash","getPostcssConfigHash","browserslistHash","browserslist","stableHash","toString","_expoRelativeProjectRoot","unstable_allowRequireContext","allowOptionalDependencies","babelTransformerPath","asyncRequireModulePath","getExpoOptional","assetRegistryPath","enableBabelRuntime","enableBabelRCLookup","getTransformOptions","transform","experimentalImportSupport","inlineRequires","metroConfig","useWatchman","withExpoSerializers","subModule","EXPO_METRO_RUNTIME","baseExpoRouter","baseExpo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["ExpoMetroConfig.ts"],"sourcesContent":[null],"names":["EXPO_DEBUG","INTERNAL_CALLSITES_REGEX","createStableModuleIdFactory","getDefaultConfig","internal_supervisingTransformerPath","unstable_transformerPath","hasWarnedAboutReactNative","getReactNativeHostPackage","platform","getReactNativeHostPath","projectRoot","hostPackage","path","dirname","resolveFrom","silent","patchMetroGraphToSupportUncachedModules","Graph","require","original_traverseDependencies","prototype","traverseDependencies","__patched","paths","options","dependencies","forEach","dependency","output","find","file","data","css","skipCache","includes","setOnReadonly","unstable_transformResultKey","push","call","createNumericModuleIdFactory","fileToIdMap","Map","nextId","modulePath","id","get","set","memoize","fn","cache","args","key","JSON","stringify","has","result","asMetroConfigInput","config","root","getModulePath","scope","isVirtualModule","isAbsolute","toPosixPath","relative","memoizedGetModulePath","context","env","environment","Error","mode","isCSSEnabled","unstable_beforeAssetSerializationPlugins","getDefaultMetroConfig","mergeConfig","reactNativePath","console","log","chalk","yellow","sourceExtsConfig","isTS","isReact","isModern","sourceExts","getBareExtensions","reanimatedVersion","getPkgVersion","workletsVersion","babelRuntimeVersion","sassVersion","pkg","getPackageJson","error","name","watchFolders","getWatchFolders","nodeModulesPaths","getModulesPaths","version","join","metroDefaultValues","getDefaultValues","restoredRoot","EXPO_METRO_CACHE_RESTORE_DIR","outputRoot","EXPO_METRO_CACHE_OUTPUT_DIR","cacheStores","BuildCacheStore","FileStore","os","tmpdir","serverRoot","getMetroServerRoot","routerPackageRoot","expoMetroConfig","reporter","update","resolver","unstable_conditionsByPlatform","ios","android","tvos","macos","web","resolverMainFields","platforms","assetExts","concat","filter","assetExt","blockList","exclusionList","watcher","additionalExts","serializer","isThirdPartyModule","module","test","match","createModuleIdFactory","EXPO_USE_METRO_REQUIRE","bind","getModulesRunBeforeMainModule","preModules","resolve","stdRuntime","event","metroRuntime","getExpoMetroRuntimeOptional","getPolyfills","server","rewriteRequestUrl","getRewriteRequestUrl","port","Number","RCT_METRO_PORT","unstable_serverRoot","symbolicator","customizeFrame","getDefaultCustomizeFrame","transformerPath","transformer","unstable_workerThreads","_expoRouterPath","undefined","postcssHash","getPostcssConfigHash","browserslistHash","browserslist","stableHash","toString","_expoRelativeProjectRoot","unstable_allowRequireContext","allowOptionalDependencies","babelTransformerPath","asyncRequireModulePath","getExpoOptional","assetRegistryPath","enableBabelRuntime","enableBabelRCLookup","getTransformOptions","transform","experimentalImportSupport","inlineRequires","metroConfig","useWatchman","withExpoSerializers","subModule","EXPO_METRO_RUNTIME","baseExpoRouter","baseExpo"],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Collects only results used by this build in the output directory. */
|
|
2
|
+
export declare class BuildCacheStore<T> {
|
|
3
|
+
private readonly output;
|
|
4
|
+
private readonly restored;
|
|
5
|
+
constructor({ restoredRoot, outputRoot }: {
|
|
6
|
+
restoredRoot: string;
|
|
7
|
+
outputRoot: string;
|
|
8
|
+
});
|
|
9
|
+
get(key: Buffer): Promise<T | null | undefined>;
|
|
10
|
+
set(key: Buffer, value: T): Promise<void>;
|
|
11
|
+
clear(): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "BuildCacheStore", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return BuildCacheStore;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _binaryfilestore = require("./binary-file-store");
|
|
12
|
+
class BuildCacheStore {
|
|
13
|
+
output;
|
|
14
|
+
restored;
|
|
15
|
+
constructor({ restoredRoot, outputRoot }){
|
|
16
|
+
// The build runner creates an empty output directory once per job.
|
|
17
|
+
// Do not clear it here: multiple Metro processes can share the same job.
|
|
18
|
+
this.output = new _binaryfilestore.FileStore({
|
|
19
|
+
root: outputRoot
|
|
20
|
+
});
|
|
21
|
+
this.restored = new _binaryfilestore.FileStore({
|
|
22
|
+
root: restoredRoot
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
async get(key) {
|
|
26
|
+
const current = await this.output.get(key);
|
|
27
|
+
if (current != null) {
|
|
28
|
+
return current;
|
|
29
|
+
}
|
|
30
|
+
const previous = await this.restored.get(key);
|
|
31
|
+
if (previous != null) {
|
|
32
|
+
// Complete promotion here, even if Metro does not call set after a hit.
|
|
33
|
+
await this.output.set(key, previous);
|
|
34
|
+
}
|
|
35
|
+
return previous;
|
|
36
|
+
}
|
|
37
|
+
set(key, value) {
|
|
38
|
+
return this.output.set(key, value);
|
|
39
|
+
}
|
|
40
|
+
clear() {
|
|
41
|
+
this.output.clear();
|
|
42
|
+
this.restored.clear();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=build-cache-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["build-cache-store.ts"],"sourcesContent":[null],"names":["BuildCacheStore","output","restored","restoredRoot","outputRoot","FileStore","root","get","key","current","previous","set","value","clear"],"mappings":";;;;+BAGaA;;;eAAAA;;;iCAHa;AAGnB,MAAMA;IACMC,OAAqB;IACrBC,SAAuB;IAExC,YAAY,EAAEC,YAAY,EAAEC,UAAU,EAAgD,CAAE;QACtF,mEAAmE;QACnE,yEAAyE;QACzE,IAAI,CAACH,MAAM,GAAG,IAAII,0BAAS,CAAI;YAAEC,MAAMF;QAAW;QAClD,IAAI,CAACF,QAAQ,GAAG,IAAIG,0BAAS,CAAI;YAAEC,MAAMH;QAAa;IACxD;IAEA,MAAMI,IAAIC,GAAW,EAAiC;QACpD,MAAMC,UAAU,MAAM,IAAI,CAACR,MAAM,CAACM,GAAG,CAACC;QACtC,IAAIC,WAAW,MAAM;YACnB,OAAOA;QACT;QACA,MAAMC,WAAW,MAAM,IAAI,CAACR,QAAQ,CAACK,GAAG,CAACC;QACzC,IAAIE,YAAY,MAAM;YACpB,wEAAwE;YACxE,MAAM,IAAI,CAACT,MAAM,CAACU,GAAG,CAACH,KAAKE;QAC7B;QACA,OAAOA;IACT;IAEAC,IAAIH,GAAW,EAAEI,KAAQ,EAAiB;QACxC,OAAO,IAAI,CAACX,MAAM,CAACU,GAAG,CAACH,KAAKI;IAC9B;IAEAC,QAAc;QACZ,IAAI,CAACZ,MAAM,CAACY,KAAK;QACjB,IAAI,CAACX,QAAQ,CAACW,KAAK;IACrB;AACF"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "LruCache", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return LruCache;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
class LruCache {
|
|
12
|
+
#map = new Map();
|
|
13
|
+
#capacity;
|
|
14
|
+
constructor(capacity){
|
|
15
|
+
this.#capacity = capacity;
|
|
16
|
+
}
|
|
17
|
+
get(key) {
|
|
18
|
+
if (!this.#map.has(key)) return undefined;
|
|
19
|
+
const value = this.#map.get(key);
|
|
20
|
+
this.#map.delete(key);
|
|
21
|
+
this.#map.set(key, value);
|
|
22
|
+
return value;
|
|
23
|
+
}
|
|
24
|
+
set(key, value) {
|
|
25
|
+
this.#map.delete(key);
|
|
26
|
+
this.#map.set(key, value);
|
|
27
|
+
if (this.#map.size > this.#capacity) {
|
|
28
|
+
this.#map.delete(this.#map.keys().next().value);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
delete(key) {
|
|
32
|
+
this.#map.delete(key);
|
|
33
|
+
}
|
|
34
|
+
clear() {
|
|
35
|
+
this.#map.clear();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=LruCache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["cache-vary/LruCache.ts"],"sourcesContent":[null],"names":["LruCache","Map","capacity","get","key","has","undefined","value","delete","set","size","keys","next","clear"],"mappings":";;;;+BAAaA;;;eAAAA;;;AAAN,MAAMA;IACX,CAAA,GAAI,GAAG,IAAIC,MAAY;IACvB,CAAA,QAAS,CAAS;IAElB,YAAYC,QAAgB,CAAE;QAC5B,IAAI,CAAC,CAAA,QAAS,GAAGA;IACnB;IAEAC,IAAIC,GAAM,EAAiB;QACzB,IAAI,CAAC,IAAI,CAAC,CAAA,GAAI,CAACC,GAAG,CAACD,MAAM,OAAOE;QAChC,MAAMC,QAAQ,IAAI,CAAC,CAAA,GAAI,CAACJ,GAAG,CAACC;QAC5B,IAAI,CAAC,CAAA,GAAI,CAACI,MAAM,CAACJ;QACjB,IAAI,CAAC,CAAA,GAAI,CAACK,GAAG,CAACL,KAAKG;QACnB,OAAOA;IACT;IAEAE,IAAIL,GAAM,EAAEG,KAAQ,EAAQ;QAC1B,IAAI,CAAC,CAAA,GAAI,CAACC,MAAM,CAACJ;QACjB,IAAI,CAAC,CAAA,GAAI,CAACK,GAAG,CAACL,KAAKG;QACnB,IAAI,IAAI,CAAC,CAAA,GAAI,CAACG,IAAI,GAAG,IAAI,CAAC,CAAA,QAAS,EAAE;YACnC,IAAI,CAAC,CAAA,GAAI,CAACF,MAAM,CAAC,IAAI,CAAC,CAAA,GAAI,CAACG,IAAI,GAAGC,IAAI,GAAGL,KAAK;QAChD;IACF;IAEAC,OAAOJ,GAAM,EAAQ;QACnB,IAAI,CAAC,CAAA,GAAI,CAACI,MAAM,CAACJ;IACnB;IAEAS,QAAc;QACZ,IAAI,CAAC,CAAA,GAAI,CAACA,KAAK;IACjB;AACF"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { CacheStore } from '@expo/metro/metro-cache';
|
|
2
|
+
export type { AmbientVaryScheme } from './ambient';
|
|
3
|
+
/**
|
|
4
|
+
* A cache-store decorator that keeps transform results separate when they depend on ambient
|
|
5
|
+
* values such as environment variables.
|
|
6
|
+
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* Metro supplies a cache key for a transform. The first result for that key is stored unchanged in
|
|
9
|
+
* the base slot at that key. The result's `expoCacheVary` metadata records the ambient names that
|
|
10
|
+
* affected the transform and the fingerprints of their values at transform time.
|
|
11
|
+
*
|
|
12
|
+
* On a read, this store recomputes the fingerprints for those names. If they match, it returns the
|
|
13
|
+
* base result with one store read. If they differ, it derives a variant key from Metro's key and
|
|
14
|
+
* the current fingerprints, then reads the matching result from that key. Each distinct set of
|
|
15
|
+
* ambient values can therefore have its own cached transform.
|
|
16
|
+
*
|
|
17
|
+
* A transform should consistently report the same ambient names for one Metro key. If it does not,
|
|
18
|
+
* this store wraps the base result in a small registry containing the other reported name sets.
|
|
19
|
+
* Reads try those name sets as fallbacks. This preserves cache entries produced by different
|
|
20
|
+
* versions or by a producer that violated the name-set contract.
|
|
21
|
+
*
|
|
22
|
+
* Metro normally follows a cache miss with a write. A small in-memory LRU carries the observed base
|
|
23
|
+
* state between those calls, avoiding another base read. It is only an optimization: if the
|
|
24
|
+
* observation is missing or evicted, `set()` derives the same state from the stored base value.
|
|
25
|
+
*
|
|
26
|
+
* @typeParam T - The value type accepted by the wrapped Metro cache store.
|
|
27
|
+
*/
|
|
28
|
+
export declare class VaryingCacheStore<T> implements CacheStore<T> {
|
|
29
|
+
#private;
|
|
30
|
+
constructor(inner: CacheStore<T>);
|
|
31
|
+
get(key: Buffer): Promise<T | null>;
|
|
32
|
+
set(key: Buffer, value: T): Promise<void>;
|
|
33
|
+
clear(): void | Promise<void>;
|
|
34
|
+
}
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "VaryingCacheStore", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return VaryingCacheStore;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
function _nodecrypto() {
|
|
12
|
+
const data = /*#__PURE__*/ _interop_require_default(require("node:crypto"));
|
|
13
|
+
_nodecrypto = function() {
|
|
14
|
+
return data;
|
|
15
|
+
};
|
|
16
|
+
return data;
|
|
17
|
+
}
|
|
18
|
+
const _LruCache = require("./LruCache");
|
|
19
|
+
const _ambient = require("./ambient");
|
|
20
|
+
function _interop_require_default(obj) {
|
|
21
|
+
return obj && obj.__esModule ? obj : {
|
|
22
|
+
default: obj
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
const VARY_REGISTRY_VERSION = 1;
|
|
26
|
+
const OBSERVATION_LIMIT = 1_000;
|
|
27
|
+
const REGISTRY_TAG = 'expoVaryHead';
|
|
28
|
+
const NO_NAME_SETS = [];
|
|
29
|
+
const NO_DIMS = [];
|
|
30
|
+
const VACANT_BASE = Symbol('vacantBase');
|
|
31
|
+
class VaryingCacheStore {
|
|
32
|
+
#inner;
|
|
33
|
+
#observedBasesByKey = new _LruCache.LruCache(OBSERVATION_LIMIT);
|
|
34
|
+
constructor(inner){
|
|
35
|
+
this.#inner = inner;
|
|
36
|
+
}
|
|
37
|
+
async get(key) {
|
|
38
|
+
const stored = await this.#inner.get(key);
|
|
39
|
+
if (stored == null) {
|
|
40
|
+
this.#rememberBase(key, VACANT_BASE);
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
const registry = readVaryRegistry(stored);
|
|
44
|
+
if (hasRegistryTag(stored) && registry == null) {
|
|
45
|
+
// Do not expose an invalid registry as a transform result.
|
|
46
|
+
this.#rememberBase(key, VACANT_BASE);
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
const value = registry ? registry.value : stored;
|
|
50
|
+
const nameSets = registry ? registry.nameSets : NO_NAME_SETS;
|
|
51
|
+
const baseDims = readEmbeddedVaryDims(value);
|
|
52
|
+
if (baseDims == null) {
|
|
53
|
+
// Malformed vary metadata is an unusable cache entry, not a build error.
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
// Try the base value, then any variants described by its registry.
|
|
57
|
+
const resolved = await this.#resolve(key, value, baseDims, nameSets);
|
|
58
|
+
if (resolved != null) {
|
|
59
|
+
return resolved;
|
|
60
|
+
} else {
|
|
61
|
+
// Carry the observed name sets to the write that normally follows this miss.
|
|
62
|
+
this.#rememberBase(key, collectNameSetIds(baseDims, nameSets));
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
async set(key, value) {
|
|
67
|
+
const data = value?.output?.[0]?.data;
|
|
68
|
+
if (data?.css?.skipCache) {
|
|
69
|
+
return this.#inner.set(key, value);
|
|
70
|
+
}
|
|
71
|
+
const observedBase = await this.#takeBaseObservation(key);
|
|
72
|
+
if (observedBase === VACANT_BASE) {
|
|
73
|
+
// The first result claims Metro's normal cache key as the base value.
|
|
74
|
+
return this.#inner.set(key, value);
|
|
75
|
+
}
|
|
76
|
+
const dims = Array.isArray(data?.expoCacheVary) ? data.expoCacheVary : [];
|
|
77
|
+
const nameSetId = (0, _ambient.canonicalDimNames)(dims);
|
|
78
|
+
if (observedBase.has(nameSetId)) {
|
|
79
|
+
// Known dimension names can go straight to their fingerprint-derived key.
|
|
80
|
+
await this.#inner.set(variantKey(key, dims), value);
|
|
81
|
+
} else {
|
|
82
|
+
// NOTE(@kitten): A transform is expected to report stable dimension names for a Metro key.
|
|
83
|
+
// Record an unexpected name set so entries from version skew or a producer bug remain usable.
|
|
84
|
+
await this.#registerNameSet(key, value, dims);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
#rememberBase(key, observation) {
|
|
88
|
+
this.#observedBasesByKey.set(cacheKeyId(key), observation);
|
|
89
|
+
}
|
|
90
|
+
async #takeBaseObservation(key) {
|
|
91
|
+
const id = cacheKeyId(key);
|
|
92
|
+
const observation = this.#observedBasesByKey.get(id);
|
|
93
|
+
if (observation != undefined) {
|
|
94
|
+
// Observations are consumed by one write; later writes must inspect the base again.
|
|
95
|
+
this.#observedBasesByKey.delete(id);
|
|
96
|
+
return observation;
|
|
97
|
+
}
|
|
98
|
+
const stored = await this.#inner.get(key);
|
|
99
|
+
if (stored == null) {
|
|
100
|
+
return VACANT_BASE;
|
|
101
|
+
}
|
|
102
|
+
const registry = readVaryRegistry(stored);
|
|
103
|
+
if (hasRegistryTag(stored) && registry == null) {
|
|
104
|
+
// A later write can replace an invalid base entry with a valid result.
|
|
105
|
+
return VACANT_BASE;
|
|
106
|
+
}
|
|
107
|
+
const value = registry ? registry.value : stored;
|
|
108
|
+
const baseDims = readEmbeddedVaryDims(value);
|
|
109
|
+
if (baseDims != null) {
|
|
110
|
+
return collectNameSetIds(baseDims, registry ? registry.nameSets : NO_NAME_SETS);
|
|
111
|
+
} else {
|
|
112
|
+
return VACANT_BASE;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
async #registerNameSet(key, value, dims) {
|
|
116
|
+
// Write the variant first so the registry never points at a value that was not written.
|
|
117
|
+
await this.#inner.set(variantKey(key, dims), value);
|
|
118
|
+
const stored = await this.#inner.get(key);
|
|
119
|
+
const registry = readVaryRegistry(stored);
|
|
120
|
+
if (stored == null || hasRegistryTag(stored) && registry == null) {
|
|
121
|
+
// The base disappeared or became invalid while the variant was being written; reclaim it.
|
|
122
|
+
await this.#inner.set(key, value);
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
const baseValue = registry ? registry.value : stored;
|
|
126
|
+
const registeredNameSets = registry ? registry.nameSets : NO_NAME_SETS;
|
|
127
|
+
const dimNames = dims.map(({ scheme, name })=>({
|
|
128
|
+
scheme,
|
|
129
|
+
name
|
|
130
|
+
}));
|
|
131
|
+
const nameSets = mergeNameSets(embeddedVaryDims(baseValue), registeredNameSets, dimNames);
|
|
132
|
+
// NOTE(@kitten): Reaching this path means transforms for one Metro key unexpectedly reported
|
|
133
|
+
// different dimension names. Keep the base value and record the extra set silently so cache
|
|
134
|
+
// entries from version skew or a producer bug remain resolvable.
|
|
135
|
+
const nextRegistry = {
|
|
136
|
+
expoVaryHead: VARY_REGISTRY_VERSION,
|
|
137
|
+
value: baseValue,
|
|
138
|
+
nameSets
|
|
139
|
+
};
|
|
140
|
+
await this.#inner.set(key, nextRegistry);
|
|
141
|
+
}
|
|
142
|
+
async #resolve(key, value, baseDims, nameSets) {
|
|
143
|
+
if (!baseDims.length && !nameSets.length) return value;
|
|
144
|
+
// The value in the base slot is the cheapest hit: it needs no second store read.
|
|
145
|
+
const currentBaseDims = baseDims.length ? await currentDims(baseDims) : null;
|
|
146
|
+
if (currentBaseDims && sameDims(baseDims, currentBaseDims)) {
|
|
147
|
+
return value;
|
|
148
|
+
} else if (currentBaseDims) {
|
|
149
|
+
// The usual miss path uses the same names as the base with different fingerprints.
|
|
150
|
+
const variant = await this.#readVariant(key, currentBaseDims);
|
|
151
|
+
if (variant != null) {
|
|
152
|
+
return variant;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// NOTE(@kitten): Registered name sets are an exceptional fallback. They only exist when
|
|
156
|
+
// transforms for one Metro key unexpectedly reported different dimension names.
|
|
157
|
+
for (const names of nameSets){
|
|
158
|
+
if (!names.length) continue;
|
|
159
|
+
const dims = await currentDims(names);
|
|
160
|
+
if (!dims) continue;
|
|
161
|
+
const variant = await this.#readVariant(key, dims);
|
|
162
|
+
if (variant != null) return variant;
|
|
163
|
+
}
|
|
164
|
+
if (nameSets.some((names)=>names.length === 0)) {
|
|
165
|
+
// NOTE(@kitten): An empty registered set is the same exceptional case for a transform that
|
|
166
|
+
// unexpectedly reported no varying dimensions.
|
|
167
|
+
const variant = await this.#readVariant(key, []);
|
|
168
|
+
if (variant != null) return variant;
|
|
169
|
+
}
|
|
170
|
+
return baseDims.length ? null : value;
|
|
171
|
+
}
|
|
172
|
+
async #readVariant(key, dims) {
|
|
173
|
+
const variant = await this.#inner.get(variantKey(key, dims));
|
|
174
|
+
return variant != null && !hasRegistryTag(variant) ? variant : null;
|
|
175
|
+
}
|
|
176
|
+
clear() {
|
|
177
|
+
this.#observedBasesByKey.clear();
|
|
178
|
+
return this.#inner.clear();
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
const readVaryRegistry = (stored)=>{
|
|
182
|
+
if (!hasRegistryTag(stored)) {
|
|
183
|
+
return null;
|
|
184
|
+
}
|
|
185
|
+
const registry = stored;
|
|
186
|
+
if (registry.expoVaryHead !== VARY_REGISTRY_VERSION || !('value' in registry) || !Array.isArray(registry.nameSets) || !registry.nameSets.every(isDimNameSet)) {
|
|
187
|
+
return null;
|
|
188
|
+
} else {
|
|
189
|
+
return registry;
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
const hasRegistryTag = (stored)=>typeof stored === 'object' && stored != null && REGISTRY_TAG in stored;
|
|
193
|
+
function readEmbeddedVaryDims(value) {
|
|
194
|
+
const dims = value?.output?.[0]?.data?.expoCacheVary;
|
|
195
|
+
if (dims === undefined) return NO_DIMS;
|
|
196
|
+
return Array.isArray(dims) && dims.every(isEmbeddedVaryDim) ? dims : null;
|
|
197
|
+
}
|
|
198
|
+
function embeddedVaryDims(value) {
|
|
199
|
+
return readEmbeddedVaryDims(value) ?? NO_DIMS;
|
|
200
|
+
}
|
|
201
|
+
function isDimNameSet(value) {
|
|
202
|
+
return Array.isArray(value) && value.every(isCacheVaryDim);
|
|
203
|
+
}
|
|
204
|
+
function isCacheVaryDim(value) {
|
|
205
|
+
if (typeof value !== 'object' || value == null) return false;
|
|
206
|
+
const dim = value;
|
|
207
|
+
return typeof dim.scheme === 'string' && typeof dim.name === 'string';
|
|
208
|
+
}
|
|
209
|
+
function isEmbeddedVaryDim(value) {
|
|
210
|
+
if (typeof value !== 'object' || value == null) {
|
|
211
|
+
return false;
|
|
212
|
+
} else {
|
|
213
|
+
const dim = value;
|
|
214
|
+
return typeof dim.scheme === 'string' && typeof dim.name === 'string' && typeof dim.fp === 'string';
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
async function currentDims(names) {
|
|
218
|
+
const dims = [];
|
|
219
|
+
for (const { scheme, name } of names){
|
|
220
|
+
const fp = await (0, _ambient.currentFingerprint)(scheme, name);
|
|
221
|
+
if (fp == null) return null;
|
|
222
|
+
dims.push({
|
|
223
|
+
scheme,
|
|
224
|
+
name,
|
|
225
|
+
fp
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
return dims;
|
|
229
|
+
}
|
|
230
|
+
function collectNameSetIds(baseNames, nameSets) {
|
|
231
|
+
const ids = new Set([
|
|
232
|
+
(0, _ambient.canonicalDimNames)(baseNames)
|
|
233
|
+
]);
|
|
234
|
+
for (const names of nameSets){
|
|
235
|
+
ids.add((0, _ambient.canonicalDimNames)(names));
|
|
236
|
+
}
|
|
237
|
+
return ids;
|
|
238
|
+
}
|
|
239
|
+
function mergeNameSets(baseNames, nameSets, nextNames) {
|
|
240
|
+
const seen = new Set([
|
|
241
|
+
(0, _ambient.canonicalDimNames)(baseNames)
|
|
242
|
+
]);
|
|
243
|
+
const merged = [];
|
|
244
|
+
for (const names of [
|
|
245
|
+
...nameSets,
|
|
246
|
+
nextNames
|
|
247
|
+
]){
|
|
248
|
+
const canonical = (0, _ambient.canonicalDimNames)(names);
|
|
249
|
+
if (seen.has(canonical)) continue;
|
|
250
|
+
seen.add(canonical);
|
|
251
|
+
merged.push(names);
|
|
252
|
+
}
|
|
253
|
+
return merged;
|
|
254
|
+
}
|
|
255
|
+
function variantKey(key, dims) {
|
|
256
|
+
return _nodecrypto().default.createHash('sha1').update(key).update('\0expo-vary\0' + (0, _ambient.canonicalDims)(dims)).digest();
|
|
257
|
+
}
|
|
258
|
+
function cacheKeyId(key) {
|
|
259
|
+
return key.toString('hex');
|
|
260
|
+
}
|
|
261
|
+
function sameDims(a, b) {
|
|
262
|
+
return (0, _ambient.canonicalDims)(a) === (0, _ambient.canonicalDims)(b);
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
//# sourceMappingURL=VaryingCacheStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["cache-vary/VaryingCacheStore.ts"],"sourcesContent":[null],"names":["VaryingCacheStore","VARY_REGISTRY_VERSION","OBSERVATION_LIMIT","REGISTRY_TAG","NO_NAME_SETS","NO_DIMS","VACANT_BASE","Symbol","LruCache","inner","get","key","stored","registry","readVaryRegistry","hasRegistryTag","value","nameSets","baseDims","readEmbeddedVaryDims","resolved","collectNameSetIds","set","data","output","css","skipCache","observedBase","dims","Array","isArray","expoCacheVary","nameSetId","canonicalDimNames","has","variantKey","observation","cacheKeyId","id","undefined","delete","baseValue","registeredNameSets","dimNames","map","scheme","name","mergeNameSets","embeddedVaryDims","nextRegistry","expoVaryHead","length","currentBaseDims","currentDims","sameDims","variant","names","some","clear","every","isDimNameSet","isEmbeddedVaryDim","isCacheVaryDim","dim","fp","currentFingerprint","push","baseNames","ids","Set","add","nextNames","seen","merged","canonical","crypto","createHash","update","canonicalDims","digest","toString","a","b"],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type AmbientVaryScheme = 'env';
|
|
2
|
+
export declare function isAmbientVaryScheme(scheme: string): scheme is AmbientVaryScheme;
|
|
3
|
+
export declare function readAmbientVaryValue(scheme: AmbientVaryScheme, name: string): string | undefined;
|
|
4
|
+
export type CacheVaryDim = {
|
|
5
|
+
scheme: string;
|
|
6
|
+
name: string;
|
|
7
|
+
};
|
|
8
|
+
export interface EmbeddedVaryDim extends CacheVaryDim {
|
|
9
|
+
fp: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function currentFingerprint(scheme: string, name: string): Promise<string | null>;
|
|
12
|
+
export declare function embedCurrentFingerprints(dims: readonly CacheVaryDim[] | undefined): Promise<EmbeddedVaryDim[] | undefined>;
|
|
13
|
+
export declare const dimId: (dim: CacheVaryDim) => string;
|
|
14
|
+
export declare function canonicalDimNames(dims: readonly CacheVaryDim[]): string;
|
|
15
|
+
export declare function canonicalDims(dims: readonly EmbeddedVaryDim[]): string;
|