@expo/fingerprint 0.21.5 → 0.21.7
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/ExpoConfig.d.ts +5 -3
- package/build/ExpoConfig.js +7 -3
- package/build/ExpoConfig.js.map +1 -1
- package/build/ExpoConfigLoader.d.ts +17 -7
- package/build/ExpoConfigLoader.js +32 -1
- package/build/ExpoConfigLoader.js.map +1 -1
- package/build/utils/LinkedDependencies.d.ts +6 -0
- package/build/utils/LinkedDependencies.js +76 -0
- package/build/utils/LinkedDependencies.js.map +1 -0
- package/package.json +6 -6
package/build/ExpoConfig.d.ts
CHANGED
|
@@ -12,7 +12,9 @@ export declare function getExpoConfigAsync(projectRoot: string, options: Normali
|
|
|
12
12
|
* Keep only the config-plugin modules attributable to applying plugins.
|
|
13
13
|
*
|
|
14
14
|
* Anything that also loads when plugins are skipped is the config-loading framework and is dropped.
|
|
15
|
-
* In-repo files are always kept regardless of the diff, so a local
|
|
16
|
-
* `app.config` (which loads during config evaluation,
|
|
15
|
+
* In-repo files and files of linked dependencies are always kept regardless of the diff, so a local
|
|
16
|
+
* or workspace plugin imported at the top of `app.config` (which loads during config evaluation,
|
|
17
|
+
* not plugin application) is never lost. `isLinkedDependencyFile` runs only for a file the diff
|
|
18
|
+
* would drop.
|
|
17
19
|
*/
|
|
18
|
-
export declare function diffLoadedModules(withPlugins: LoadedModuleSource[], withoutPlugins: LoadedModuleSource[]): LoadedModuleSource[];
|
|
20
|
+
export declare function diffLoadedModules(withPlugins: LoadedModuleSource[], withoutPlugins: LoadedModuleSource[], isLinkedDependencyFile?: (relativePosixPath: string) => boolean): LoadedModuleSource[];
|
package/build/ExpoConfig.js
CHANGED
|
@@ -56,6 +56,7 @@ function _resolvefrom() {
|
|
|
56
56
|
return data;
|
|
57
57
|
}
|
|
58
58
|
const _ExpoConfigLoader = require("./ExpoConfigLoader");
|
|
59
|
+
const _LinkedDependencies = require("./utils/LinkedDependencies");
|
|
59
60
|
const _SpawnIPC = require("./utils/SpawnIPC");
|
|
60
61
|
function _interop_require_default(obj) {
|
|
61
62
|
return obj && obj.__esModule ? obj : {
|
|
@@ -79,7 +80,7 @@ async function getExpoConfigAsync(projectRoot, options) {
|
|
|
79
80
|
spawnConfigLoaderAsync(projectRoot, ignoredFile, /* skipPlugins */ true)
|
|
80
81
|
]);
|
|
81
82
|
result.config = config;
|
|
82
|
-
result.loadedModules = diffLoadedModules(modulesWithPlugins ?? [], modulesWithoutPlugins ?? []);
|
|
83
|
+
result.loadedModules = diffLoadedModules(modulesWithPlugins ?? [], modulesWithoutPlugins ?? [], (0, _LinkedDependencies.createLinkedDependencyMatcher)(_path().default.resolve(projectRoot)));
|
|
83
84
|
} catch (e) {
|
|
84
85
|
if (e instanceof Error) {
|
|
85
86
|
console.warn(`Cannot get Expo config from an Expo project - ${e.message}: `, e.stack);
|
|
@@ -114,9 +115,12 @@ async function spawnConfigLoaderAsync(projectRoot, ignoredFile, skipPlugins) {
|
|
|
114
115
|
});
|
|
115
116
|
return JSON.parse(message);
|
|
116
117
|
}
|
|
117
|
-
function diffLoadedModules(withPlugins, withoutPlugins) {
|
|
118
|
+
function diffLoadedModules(withPlugins, withoutPlugins, isLinkedDependencyFile = ()=>false) {
|
|
118
119
|
const skippedKeys = new Set(withoutPlugins.map(getLoadedModuleKey));
|
|
119
|
-
return withPlugins.filter((source)=>
|
|
120
|
+
return withPlugins.filter((source)=>{
|
|
121
|
+
const key = getLoadedModuleKey(source);
|
|
122
|
+
return isInRepoLoadedModule(source) || !skippedKeys.has(key) || source.type === 'file' && isLinkedDependencyFile(key);
|
|
123
|
+
});
|
|
120
124
|
}
|
|
121
125
|
/** Stable identity of a loaded module: its file path, or its id for a virtual module. */ function getLoadedModuleKey(source) {
|
|
122
126
|
return source.type === 'file' ? source.path : source.id;
|
package/build/ExpoConfig.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ExpoConfig.ts"],"sourcesContent":[null],"names":["diffLoadedModules","getExpoConfigAsync","FINGERPRINT_ENV_MODE","projectRoot","options","result","config","loadedModules","resolveFrom","silent","path","resolve","tmpDir","fs","mkdtemp","join","os","tmpdir","ignoredFile","createTempIgnoredFileAsync","modulesWithPlugins","modulesWithoutPlugins","Promise","all","spawnConfigLoaderAsync","e","Error","console","warn","message","stack","rm","recursive","skipPlugins","args","getExpoConfigLoaderPath","push","childEnv","setNodeEnv","systemEnv","getOriginalEnv","__EXPO_CONFIG_MODE","spawnWithIpcAsync","cwd","env","JSON","parse","withPlugins","withoutPlugins","skippedKeys","Set","map","getLoadedModuleKey","filter","source","isInRepoLoadedModule","has","type","id","
|
|
1
|
+
{"version":3,"sources":["ExpoConfig.ts"],"sourcesContent":[null],"names":["diffLoadedModules","getExpoConfigAsync","FINGERPRINT_ENV_MODE","projectRoot","options","result","config","loadedModules","resolveFrom","silent","path","resolve","tmpDir","fs","mkdtemp","join","os","tmpdir","ignoredFile","createTempIgnoredFileAsync","modulesWithPlugins","modulesWithoutPlugins","Promise","all","spawnConfigLoaderAsync","createLinkedDependencyMatcher","e","Error","console","warn","message","stack","rm","recursive","skipPlugins","args","getExpoConfigLoaderPath","push","childEnv","setNodeEnv","systemEnv","getOriginalEnv","__EXPO_CONFIG_MODE","spawnWithIpcAsync","cwd","env","JSON","parse","withPlugins","withoutPlugins","isLinkedDependencyFile","skippedKeys","Set","map","getLoadedModuleKey","filter","source","key","isInRepoLoadedModule","has","type","id","startsWith","includes","ignorePaths","ignorePathMatchObjects","match","pattern","writeFile"],"mappings":"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"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* A helper script to load the Expo config and loaded plugins from a project
|
|
3
3
|
*/
|
|
4
|
+
import module from 'module';
|
|
4
5
|
/**
|
|
5
|
-
* A
|
|
6
|
+
* A module observed while `installModuleCaptureHook()` was active.
|
|
6
7
|
*/
|
|
7
8
|
export interface CapturedModule {
|
|
8
|
-
/** The
|
|
9
|
+
/** The CommonJS cache key, or an ES module's filename. May diverge from `filename` if virtual. */
|
|
9
10
|
id: string;
|
|
10
11
|
/** The filename Node compiled the module under. Authoritative even for transpiled sources. */
|
|
11
12
|
filename: string;
|
|
12
|
-
/** The source content Node
|
|
13
|
+
/** The source content Node received for the module, before Node strips any types. */
|
|
13
14
|
content: string;
|
|
14
15
|
}
|
|
15
16
|
/**
|
|
@@ -27,15 +28,24 @@ export type LoadedModuleSource = {
|
|
|
27
28
|
contents: string;
|
|
28
29
|
};
|
|
29
30
|
/**
|
|
30
|
-
* Observe
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
31
|
+
* Observe the JavaScript and TypeScript modules that `require()` evaluates while the hook is
|
|
32
|
+
* installed.
|
|
33
|
+
* We hook `Module.prototype._compile` to keep each CommonJS module's authoritative filename and
|
|
34
|
+
* source content. Every argument is forwarded: Node 22.18+ passes a `format` argument that tells it
|
|
35
|
+
* to strip types from a `.ts` file.
|
|
36
|
+
* The ES modules that an ES module imports never reach `_compile`, so a `module.registerHooks`
|
|
37
|
+
* load hook (Node 22.15+) records each ES module file that Node's loader evaluates.
|
|
34
38
|
*/
|
|
35
39
|
export declare function installModuleCaptureHook(): {
|
|
36
40
|
getCapturedModules: () => CapturedModule[];
|
|
37
41
|
uninstall: () => void;
|
|
38
42
|
};
|
|
43
|
+
/**
|
|
44
|
+
* A `module.registerHooks` load hook that records each ES module loaded from a file.
|
|
45
|
+
* CommonJS is left to the `_compile` hook, which also sees a module that a transpiler compiles
|
|
46
|
+
* from a string.
|
|
47
|
+
*/
|
|
48
|
+
export declare function createESModuleLoadHook(capturedModules: CapturedModule[]): module.LoadHookSync;
|
|
39
49
|
/**
|
|
40
50
|
* Turn captured modules into config-plugin sources, dropping ignored paths.
|
|
41
51
|
* A real file becomes a `file` source; a module with no file on disk (virtual / compiled from a
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
0 && (module.exports = {
|
|
8
|
+
createESModuleLoadHook: null,
|
|
8
9
|
getExpoConfigLoaderPath: null,
|
|
9
10
|
installModuleCaptureHook: null,
|
|
10
11
|
resolveLoadedModuleSourcesAsync: null
|
|
@@ -16,6 +17,9 @@ function _export(target, all) {
|
|
|
16
17
|
});
|
|
17
18
|
}
|
|
18
19
|
_export(exports, {
|
|
20
|
+
get createESModuleLoadHook () {
|
|
21
|
+
return createESModuleLoadHook;
|
|
22
|
+
},
|
|
19
23
|
get getExpoConfigLoaderPath () {
|
|
20
24
|
return getExpoConfigLoaderPath;
|
|
21
25
|
},
|
|
@@ -68,6 +72,13 @@ function _resolvefrom() {
|
|
|
68
72
|
};
|
|
69
73
|
return data;
|
|
70
74
|
}
|
|
75
|
+
function _url() {
|
|
76
|
+
const data = require("url");
|
|
77
|
+
_url = function() {
|
|
78
|
+
return data;
|
|
79
|
+
};
|
|
80
|
+
return data;
|
|
81
|
+
}
|
|
71
82
|
const _Options = require("./Options");
|
|
72
83
|
const _Path = require("./utils/Path");
|
|
73
84
|
function _interop_require_default(obj) {
|
|
@@ -154,8 +165,11 @@ if (require.main?.filename === __filename) {
|
|
|
154
165
|
return ignorePaths;
|
|
155
166
|
}
|
|
156
167
|
function installModuleCaptureHook() {
|
|
157
|
-
const moduleProto = _module().default.prototype;
|
|
158
168
|
const capturedModules = [];
|
|
169
|
+
const loadHooks = typeof _module().default.registerHooks === 'function' ? _module().default.registerHooks({
|
|
170
|
+
load: createESModuleLoadHook(capturedModules)
|
|
171
|
+
}) : null;
|
|
172
|
+
const moduleProto = _module().default.prototype;
|
|
159
173
|
const originalCompile = moduleProto._compile;
|
|
160
174
|
moduleProto._compile = function(content, filename, ...rest) {
|
|
161
175
|
capturedModules.push({
|
|
@@ -169,7 +183,24 @@ function installModuleCaptureHook() {
|
|
|
169
183
|
getCapturedModules: ()=>capturedModules,
|
|
170
184
|
uninstall: ()=>{
|
|
171
185
|
moduleProto._compile = originalCompile;
|
|
186
|
+
loadHooks?.deregister();
|
|
187
|
+
}
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
function createESModuleLoadHook(capturedModules) {
|
|
191
|
+
return (url, context, nextLoad)=>{
|
|
192
|
+
const result = nextLoad(url, context);
|
|
193
|
+
const isESModule = result.format === 'module' || result.format === 'module-typescript';
|
|
194
|
+
if (isESModule && url.startsWith('file:') && result.source != null) {
|
|
195
|
+
const filename = (0, _url().fileURLToPath)(url);
|
|
196
|
+
const content = typeof result.source === 'string' ? result.source : new TextDecoder().decode(result.source);
|
|
197
|
+
capturedModules.push({
|
|
198
|
+
id: filename,
|
|
199
|
+
filename,
|
|
200
|
+
content
|
|
201
|
+
});
|
|
172
202
|
}
|
|
203
|
+
return result;
|
|
173
204
|
};
|
|
174
205
|
}
|
|
175
206
|
async function resolveLoadedModuleSourcesAsync(capturedModules, projectRoot, ignoredPaths) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ExpoConfigLoader.ts"],"sourcesContent":[null],"names":["getExpoConfigLoaderPath","installModuleCaptureHook","resolveLoadedModuleSourcesAsync","runAsync","programName","args","console","log","projectRoot","path","resolve","skipPlugins","includes","ignoredFileArg","startsWith","ignoredFile","modeFlagIndex","indexOf","mode","undefined","Error","consumeConfigEnvMode","globalThis","__DEV__","loadProjectEnv","getCapturedModules","uninstall","config","getConfig","require","resolveFrom","skipSDKVersionRequirement","ignoredPaths","DEFAULT_CONFIG_LOADING_IGNORE_PATHS","loadIgnoredPathsAsync","loadedModules","result","JSON","stringify","process","send","main","filename","__filename","programIndex","argv","findIndex","arg","slice","e","error","exit","DEFAULT_IGNORE_PATHS","ignorePaths","fingerprintIgnore","fs","readFile","fingerprintIgnoreLines","split","line","trimmedLine","trim","push","
|
|
1
|
+
{"version":3,"sources":["ExpoConfigLoader.ts"],"sourcesContent":[null],"names":["createESModuleLoadHook","getExpoConfigLoaderPath","installModuleCaptureHook","resolveLoadedModuleSourcesAsync","runAsync","programName","args","console","log","projectRoot","path","resolve","skipPlugins","includes","ignoredFileArg","startsWith","ignoredFile","modeFlagIndex","indexOf","mode","undefined","Error","consumeConfigEnvMode","globalThis","__DEV__","loadProjectEnv","getCapturedModules","uninstall","config","getConfig","require","resolveFrom","skipSDKVersionRequirement","ignoredPaths","DEFAULT_CONFIG_LOADING_IGNORE_PATHS","loadIgnoredPathsAsync","loadedModules","result","JSON","stringify","process","send","main","filename","__filename","programIndex","argv","findIndex","arg","slice","e","error","exit","DEFAULT_IGNORE_PATHS","ignorePaths","fingerprintIgnore","fs","readFile","fingerprintIgnoreLines","split","line","trimmedLine","trim","push","capturedModules","loadHooks","module","registerHooks","load","moduleProto","prototype","originalCompile","_compile","content","rest","id","call","deregister","url","context","nextLoad","isESModule","format","source","fileURLToPath","TextDecoder","decode","seen","Set","ignoredPathMatchObjects","buildPathMatchObjects","candidates","map","relativePath","toPosixPath","relative","filter","has","isIgnoredPathWithMatchObjects","add","sources","Promise","all","stat","isFile","type","code","contents","join","__dirname"],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create a test for a file of a dependency that the project declares and that lives outside
|
|
3
|
+
* `node_modules`, such as a linked workspace package in a monorepo. The nearest `package.json`
|
|
4
|
+
* above the file names its package. Lookups are cached per directory.
|
|
5
|
+
*/
|
|
6
|
+
export declare function createLinkedDependencyMatcher(projectRoot: string): (relativePosixPath: string) => boolean;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "createLinkedDependencyMatcher", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return createLinkedDependencyMatcher;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
function _fs() {
|
|
12
|
+
const data = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
13
|
+
_fs = function() {
|
|
14
|
+
return data;
|
|
15
|
+
};
|
|
16
|
+
return data;
|
|
17
|
+
}
|
|
18
|
+
function _path() {
|
|
19
|
+
const data = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
20
|
+
_path = function() {
|
|
21
|
+
return data;
|
|
22
|
+
};
|
|
23
|
+
return data;
|
|
24
|
+
}
|
|
25
|
+
function _interop_require_default(obj) {
|
|
26
|
+
return obj && obj.__esModule ? obj : {
|
|
27
|
+
default: obj
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
const DEPENDENCY_FIELDS = [
|
|
31
|
+
'dependencies',
|
|
32
|
+
'devDependencies',
|
|
33
|
+
'peerDependencies',
|
|
34
|
+
'optionalDependencies'
|
|
35
|
+
];
|
|
36
|
+
function createLinkedDependencyMatcher(projectRoot) {
|
|
37
|
+
const dependencyNames = new Set(readDependencyNames(projectRoot));
|
|
38
|
+
const packageNameCache = new Map();
|
|
39
|
+
return (relativePosixPath)=>{
|
|
40
|
+
if (dependencyNames.size === 0 || relativePosixPath.split('/').includes('node_modules')) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
const dir = _path().default.dirname(_path().default.resolve(projectRoot, relativePosixPath));
|
|
44
|
+
const packageName = findPackageName(dir, packageNameCache);
|
|
45
|
+
return packageName !== null && dependencyNames.has(packageName);
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
function readDependencyNames(projectRoot) {
|
|
49
|
+
let packageJson;
|
|
50
|
+
try {
|
|
51
|
+
packageJson = JSON.parse(_fs().default.readFileSync(_path().default.join(projectRoot, 'package.json'), 'utf8'));
|
|
52
|
+
} catch {
|
|
53
|
+
return [];
|
|
54
|
+
}
|
|
55
|
+
return DEPENDENCY_FIELDS.flatMap((field)=>Object.keys(packageJson[field] ?? {}));
|
|
56
|
+
}
|
|
57
|
+
function findPackageName(dir, cache) {
|
|
58
|
+
const cached = cache.get(dir);
|
|
59
|
+
if (cached !== undefined) {
|
|
60
|
+
return cached;
|
|
61
|
+
}
|
|
62
|
+
let packageName = null;
|
|
63
|
+
try {
|
|
64
|
+
// The sync read is fine: the result is cached per directory and few files reach this point.
|
|
65
|
+
const { name } = JSON.parse(_fs().default.readFileSync(_path().default.join(dir, 'package.json'), 'utf8'));
|
|
66
|
+
packageName = typeof name === 'string' ? name : null;
|
|
67
|
+
} catch {}
|
|
68
|
+
const parentDir = _path().default.dirname(dir);
|
|
69
|
+
if (packageName === null && parentDir !== dir) {
|
|
70
|
+
packageName = findPackageName(parentDir, cache);
|
|
71
|
+
}
|
|
72
|
+
cache.set(dir, packageName);
|
|
73
|
+
return packageName;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
//# sourceMappingURL=LinkedDependencies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["utils/LinkedDependencies.ts"],"sourcesContent":[null],"names":["createLinkedDependencyMatcher","DEPENDENCY_FIELDS","projectRoot","dependencyNames","Set","readDependencyNames","packageNameCache","Map","relativePosixPath","size","split","includes","dir","path","dirname","resolve","packageName","findPackageName","has","packageJson","JSON","parse","fs","readFileSync","join","flatMap","field","Object","keys","cache","cached","get","undefined","name","parentDir","set"],"mappings":";;;;+BAegBA;;;eAAAA;;;;gEAfD;;;;;;;gEACE;;;;;;;;;;;AAEjB,MAAMC,oBAAoB;IACxB;IACA;IACA;IACA;CACD;AAOM,SAASD,8BACdE,WAAmB;IAEnB,MAAMC,kBAAkB,IAAIC,IAAIC,oBAAoBH;IACpD,MAAMI,mBAAmB,IAAIC;IAC7B,OAAO,CAACC;QACN,IAAIL,gBAAgBM,IAAI,KAAK,KAAKD,kBAAkBE,KAAK,CAAC,KAAKC,QAAQ,CAAC,iBAAiB;YACvF,OAAO;QACT;QACA,MAAMC,MAAMC,eAAI,CAACC,OAAO,CAACD,eAAI,CAACE,OAAO,CAACb,aAAaM;QACnD,MAAMQ,cAAcC,gBAAgBL,KAAKN;QACzC,OAAOU,gBAAgB,QAAQb,gBAAgBe,GAAG,CAACF;IACrD;AACF;AAEA,SAASX,oBAAoBH,WAAmB;IAC9C,IAAIiB;IACJ,IAAI;QACFA,cAAcC,KAAKC,KAAK,CAACC,aAAE,CAACC,YAAY,CAACV,eAAI,CAACW,IAAI,CAACtB,aAAa,iBAAiB;IACnF,EAAE,OAAM;QACN,OAAO,EAAE;IACX;IACA,OAAOD,kBAAkBwB,OAAO,CAAC,CAACC,QAAUC,OAAOC,IAAI,CAACT,WAAW,CAACO,MAAM,IAAI,CAAC;AACjF;AAEA,SAAST,gBAAgBL,GAAW,EAAEiB,KAAiC;IACrE,MAAMC,SAASD,MAAME,GAAG,CAACnB;IACzB,IAAIkB,WAAWE,WAAW;QACxB,OAAOF;IACT;IACA,IAAId,cAA6B;IACjC,IAAI;QACF,4FAA4F;QAC5F,MAAM,EAAEiB,IAAI,EAAE,GAAGb,KAAKC,KAAK,CAACC,aAAE,CAACC,YAAY,CAACV,eAAI,CAACW,IAAI,CAACZ,KAAK,iBAAiB;QAC5EI,cAAc,OAAOiB,SAAS,WAAWA,OAAO;IAClD,EAAE,OAAM,CAAC;IACT,MAAMC,YAAYrB,eAAI,CAACC,OAAO,CAACF;IAC/B,IAAII,gBAAgB,QAAQkB,cAActB,KAAK;QAC7CI,cAAcC,gBAAgBiB,WAAWL;IAC3C;IACAA,MAAMM,GAAG,CAACvB,KAAKI;IACf,OAAOA;AACT"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expo/fingerprint",
|
|
3
|
-
"version": "0.21.
|
|
3
|
+
"version": "0.21.7",
|
|
4
4
|
"description": "A library to generate a fingerprint from a React Native project",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"expo",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"main": "build/index.js",
|
|
32
32
|
"types": "build/index.d.ts",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@expo/env": "^2.5.
|
|
34
|
+
"@expo/env": "^2.5.3",
|
|
35
35
|
"@expo/spawn-async": "^1.8.0",
|
|
36
36
|
"arg": "^5.0.2",
|
|
37
37
|
"chalk": "^4.1.2",
|
|
@@ -44,15 +44,15 @@
|
|
|
44
44
|
"semver": "^7.7.4"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"@expo/config": "~58.0.
|
|
48
|
-
"@expo/internal-scripts": "58.0.
|
|
49
|
-
"@expo/require-utils": "~58.0.
|
|
47
|
+
"@expo/config": "~58.0.8",
|
|
48
|
+
"@expo/internal-scripts": "58.0.4",
|
|
49
|
+
"@expo/require-utils": "~58.0.4",
|
|
50
50
|
"@types/debug": "^4.1.5",
|
|
51
51
|
"@types/getenv": "^1.0.3",
|
|
52
52
|
"@types/node": "^22.14.0",
|
|
53
53
|
"@types/require-from-string": "^1.2.3",
|
|
54
54
|
"@types/semver": "^7.7.1",
|
|
55
|
-
"expo-splash-screen": "58.0.
|
|
55
|
+
"expo-splash-screen": "58.0.11",
|
|
56
56
|
"memfs": "^3.6.0",
|
|
57
57
|
"require-from-string": "^2.0.2",
|
|
58
58
|
"temp-dir": "^2.0.0"
|