@expo/config 55.0.14 → 55.0.16
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/Config.types.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Config.types.js","names":["ProjectPrivacy","exports"],"sources":["../src/Config.types.ts"],"sourcesContent":["import type { ModConfig } from '@expo/config-plugins';\nimport type { ExpoConfig } from '@expo/config-types';\n\nexport type {\n ExpoConfig,\n Web as ExpoConfigWeb,\n Android as ExpoConfigAndroid,\n IOS as ExpoConfigIOS,\n Splash as ExpoConfigSplash,\n IOSIcons as ExpoConfigIOSIcons,\n AndroidIntentFiltersData as ExpoConfigAndroidIntentFiltersData,\n} from '@expo/config-types';\n\nexport type PackageJSONConfig = { dependencies?: Record<string, string>; [key: string]: any };\n\nexport interface ProjectConfig {\n /**\n * Fully evaluated Expo config with default values injected.\n */\n exp: ExpoConfig;\n /**\n * Dynamic config for processing native files during the generation process.\n */\n mods?: ModConfig | null;\n /**\n * Project package.json object with default values injected.\n */\n pkg: PackageJSONConfig;\n /**\n * Unaltered static config (app.config.json, app.json, or custom json config).\n * For legacy, an empty object will be returned even if no static config exists.\n */\n rootConfig: AppJSONConfig;\n /**\n * Path to the static json config file if it exists.\n * If a project has an app.config.js and an app.json then app.json will be returned.\n * If a project has an app.config.json and an app.json then app.config.json will be returned.\n * Returns null if no static config file exists.\n */\n staticConfigPath: string | null;\n /**\n * Path to an app.config.js or app.config.ts.\n * Returns null if no dynamic config file exists.\n */\n dynamicConfigPath: string | null;\n\n /**\n * Returns the type of the value exported from the dynamic config.\n * This can be used to determine if the dynamic config is potentially extending a static config when (v === 'function').\n * Returns null if no dynamic config file exists.\n */\n dynamicConfigObjectType: string | null;\n /**\n * Returns true if both a static and dynamic config are present, and the dynamic config is applied on top of the static.\n * This is only used for expo-doctor diagnostic warnings. This flag may be true even in cases where all static config values are used.\n * It only checks against a typical pattern for layering static and dynamic config, e.g.,:\n * module.exports = ({ config }) => {\n return {\n ...config,\n name: 'name overridden by dynamic config',\n };\n };\n */\n hasUnusedStaticConfig: boolean;\n}\nexport type AppJSONConfig = { expo: ExpoConfig; [key: string]: any };\nexport type BareAppConfig = { name: string; [key: string]: any };\nexport type HookArguments = {\n config: any;\n url: any;\n exp: ExpoConfig;\n iosBundle: string | Uint8Array;\n iosSourceMap: string | null;\n iosManifest: any;\n iosManifestUrl: string;\n androidBundle: string | Uint8Array;\n androidSourceMap: string | null;\n androidManifest: any;\n androidManifestUrl: string;\n projectRoot: string;\n log: (msg: any) => void;\n};\n\nexport type ExpoGoConfig = {\n mainModuleName: string;\n debuggerHost: string;\n developer: {\n tool: string | null;\n projectRoot?: string;\n };\n packagerOpts: {\n [key: string]: any;\n };\n};\n\nexport type EASConfig = {\n projectId?: string;\n};\n\nexport type ClientScopingConfig = {\n scopeKey?: string;\n};\n\nexport interface ExpoUpdatesManifestAsset {\n url: string;\n key: string;\n contentType: string;\n hash?: string;\n}\n\nexport interface ExpoUpdatesManifest {\n id: string;\n createdAt: string;\n runtimeVersion: string;\n launchAsset: ExpoUpdatesManifestAsset;\n assets: ExpoUpdatesManifestAsset[];\n metadata: { [key: string]: string };\n extra: ClientScopingConfig & {\n expoClient?: ExpoConfig & {\n /**\n * Only present during development using @expo/cli.\n */\n hostUri?: string;\n };\n expoGo?: ExpoGoConfig;\n eas?: EASConfig;\n };\n}\n\nexport type Hook = {\n file: string;\n config: any;\n};\n\nexport type HookType = 'postPublish' | 'postExport';\n\nexport enum ProjectPrivacy {\n PUBLIC = 'public',\n UNLISTED = 'unlisted',\n}\n\nexport type Platform = 'android' | 'ios' | 'web';\nexport type ProjectTarget = 'managed' | 'bare';\n\nexport type ConfigErrorCode =\n | 'NO_APP_JSON'\n | 'NOT_OBJECT'\n | 'NO_EXPO'\n | 'MODULE_NOT_FOUND'\n | 'DEPRECATED'\n | 'INVALID_MODE'\n | 'INVALID_FORMAT'\n | 'INVALID_PLUGIN'\n | 'INVALID_CONFIG'\n | 'ENTRY_NOT_FOUND';\n\nexport type ConfigContext = {\n projectRoot: string;\n /**\n * The static config path either app.json, app.config.json, or a custom user-defined config.\n */\n staticConfigPath: string | null;\n packageJsonPath: string | null;\n config: Partial<ExpoConfig>;\n};\n\nexport type GetConfigOptions = {\n isPublicConfig?: boolean;\n /**\n * Should the config `mods` be preserved in the config? Used for compiling mods in the eject command.\n *\n * @default false\n */\n isModdedConfig?: boolean;\n skipSDKVersionRequirement?: boolean;\n /**\n * Dangerously skip resolving plugins.\n */\n skipPlugins?: boolean;\n strict?: boolean;\n};\n\nexport type WriteConfigOptions = { dryRun?: boolean };\n\nexport type ConfigFilePaths = { staticConfigPath: string | null; dynamicConfigPath: string | null };\n"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"Config.types.js","names":["ProjectPrivacy","exports"],"sources":["../src/Config.types.ts"],"sourcesContent":["import type { ModConfig } from '@expo/config-plugins';\nimport type { ExpoConfig } from '@expo/config-types';\n\nexport type {\n ExpoConfig,\n Web as ExpoConfigWeb,\n Android as ExpoConfigAndroid,\n IOS as ExpoConfigIOS,\n Splash as ExpoConfigSplash,\n IOSIcons as ExpoConfigIOSIcons,\n AndroidIntentFiltersData as ExpoConfigAndroidIntentFiltersData,\n} from '@expo/config-types';\n\nexport type PackageJSONConfig = { dependencies?: Record<string, string>; [key: string]: any };\n\nexport interface ProjectConfig {\n /**\n * Fully evaluated Expo config with default values injected.\n */\n exp: ExpoConfig;\n /**\n * Dynamic config for processing native files during the generation process.\n */\n mods?: ModConfig | null;\n /**\n * Project package.json object with default values injected.\n */\n pkg: PackageJSONConfig;\n /**\n * Unaltered static config (app.config.json, app.json, or custom json config).\n * For legacy, an empty object will be returned even if no static config exists.\n */\n rootConfig: AppJSONConfig;\n /**\n * Path to the static json config file if it exists.\n * If a project has an app.config.js and an app.json then app.json will be returned.\n * If a project has an app.config.json and an app.json then app.config.json will be returned.\n * Returns null if no static config file exists.\n */\n staticConfigPath: string | null;\n /**\n * Path to an app.config.js or app.config.ts.\n * Returns null if no dynamic config file exists.\n */\n dynamicConfigPath: string | null;\n\n /**\n * Returns the type of the value exported from the dynamic config.\n * This can be used to determine if the dynamic config is potentially extending a static config when (v === 'function').\n * Returns null if no dynamic config file exists.\n */\n dynamicConfigObjectType: string | null;\n /**\n * Returns true if both a static and dynamic config are present, and the dynamic config is applied on top of the static.\n * This is only used for expo-doctor diagnostic warnings. This flag may be true even in cases where all static config values are used.\n * It only checks against a typical pattern for layering static and dynamic config, e.g.,:\n * module.exports = ({ config }) => {\n return {\n ...config,\n name: 'name overridden by dynamic config',\n };\n };\n */\n hasUnusedStaticConfig: boolean;\n}\nexport type AppJSONConfig = { expo: ExpoConfig; [key: string]: any };\nexport type BareAppConfig = { name: string; [key: string]: any };\nexport type HookArguments = {\n config: any;\n url: any;\n exp: ExpoConfig;\n iosBundle: string | Uint8Array;\n iosSourceMap: string | null;\n iosManifest: any;\n iosManifestUrl: string;\n androidBundle: string | Uint8Array;\n androidSourceMap: string | null;\n androidManifest: any;\n androidManifestUrl: string;\n projectRoot: string;\n log: (msg: any) => void;\n};\n\nexport type ExpoGoConfig = {\n mainModuleName: string;\n debuggerHost: string;\n developer: {\n tool: string | null;\n projectRoot?: string;\n };\n packagerOpts: {\n [key: string]: any;\n };\n username?: string;\n};\n\nexport type EASConfig = {\n projectId?: string;\n};\n\nexport type ClientScopingConfig = {\n scopeKey?: string;\n};\n\nexport interface ExpoUpdatesManifestAsset {\n url: string;\n key: string;\n contentType: string;\n hash?: string;\n}\n\nexport interface ExpoUpdatesManifest {\n id: string;\n createdAt: string;\n runtimeVersion: string;\n launchAsset: ExpoUpdatesManifestAsset;\n assets: ExpoUpdatesManifestAsset[];\n metadata: { [key: string]: string };\n extra: ClientScopingConfig & {\n expoClient?: ExpoConfig & {\n /**\n * Only present during development using @expo/cli.\n */\n hostUri?: string;\n };\n expoGo?: ExpoGoConfig;\n eas?: EASConfig;\n };\n}\n\nexport type Hook = {\n file: string;\n config: any;\n};\n\nexport type HookType = 'postPublish' | 'postExport';\n\nexport enum ProjectPrivacy {\n PUBLIC = 'public',\n UNLISTED = 'unlisted',\n}\n\nexport type Platform = 'android' | 'ios' | 'web';\nexport type ProjectTarget = 'managed' | 'bare';\n\nexport type ConfigErrorCode =\n | 'NO_APP_JSON'\n | 'NOT_OBJECT'\n | 'NO_EXPO'\n | 'MODULE_NOT_FOUND'\n | 'DEPRECATED'\n | 'INVALID_MODE'\n | 'INVALID_FORMAT'\n | 'INVALID_PLUGIN'\n | 'INVALID_CONFIG'\n | 'ENTRY_NOT_FOUND';\n\nexport type ConfigContext = {\n projectRoot: string;\n /**\n * The static config path either app.json, app.config.json, or a custom user-defined config.\n */\n staticConfigPath: string | null;\n packageJsonPath: string | null;\n config: Partial<ExpoConfig>;\n};\n\nexport type GetConfigOptions = {\n isPublicConfig?: boolean;\n /**\n * Should the config `mods` be preserved in the config? Used for compiling mods in the eject command.\n *\n * @default false\n */\n isModdedConfig?: boolean;\n skipSDKVersionRequirement?: boolean;\n /**\n * Dangerously skip resolving plugins.\n */\n skipPlugins?: boolean;\n strict?: boolean;\n};\n\nexport type WriteConfigOptions = { dryRun?: boolean };\n\nexport type ConfigFilePaths = { staticConfigPath: string | null; dynamicConfigPath: string | null };\n"],"mappings":";;;;;;IAyIYA,cAAc,GAAAC,OAAA,CAAAD,cAAA,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA","ignoreList":[]}
|
package/build/paths/paths.js
CHANGED
|
@@ -192,9 +192,27 @@ function convertEntryPointToRelative(projectRoot, absolutePath, extname = '.js')
|
|
|
192
192
|
let serverRoot = getMetroServerRoot(projectRoot);
|
|
193
193
|
try {
|
|
194
194
|
const realServerRoot = _fs().default.realpathSync(serverRoot);
|
|
195
|
-
|
|
195
|
+
// If the absolute path already starts with the resolved server root, use it directly
|
|
196
|
+
if (absolutePath.startsWith(realServerRoot + _path().default.sep)) {
|
|
196
197
|
serverRoot = realServerRoot;
|
|
197
|
-
|
|
198
|
+
} else if (absolutePath.startsWith(serverRoot + _path().default.sep)) {
|
|
199
|
+
// If the absolute path starts with the (possibly symlinked) server root, preserve it as-is
|
|
200
|
+
} else {
|
|
201
|
+
// Otherwise, resolve the absolute path to check if it matches the real server root.
|
|
202
|
+
// This is only needed when absolutePath doesn't match either root representation,
|
|
203
|
+
// and absolutePath may not be valid (e.g. non-existent file)
|
|
204
|
+
try {
|
|
205
|
+
const realAbsolutePath = _fs().default.realpathSync(absolutePath);
|
|
206
|
+
if (realAbsolutePath.startsWith(realServerRoot + _path().default.sep)) {
|
|
207
|
+
serverRoot = realServerRoot;
|
|
208
|
+
absolutePath = realAbsolutePath;
|
|
209
|
+
} else if (realServerRoot !== serverRoot || realAbsolutePath !== absolutePath) {
|
|
210
|
+
// Last resort: fall back to the legacy behavior of using the realpath for both,
|
|
211
|
+
// without knowing if the resulting relative path will be valid
|
|
212
|
+
serverRoot = realServerRoot;
|
|
213
|
+
absolutePath = realAbsolutePath;
|
|
214
|
+
}
|
|
215
|
+
} catch {}
|
|
198
216
|
}
|
|
199
217
|
} catch {
|
|
200
218
|
// NOTE: `fs.realpathSync` can fail if `projectRoot` doesn't exist (e.g. mocked folder)
|
package/build/paths/paths.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","names":["_requireUtils","data","require","_fs","_interopRequireDefault","_path","_resolveWorkspaceRoot","_env","_extensions","_Config","_Errors","e","__esModule","default","ensureSlash","inputPath","needsSlash","hasSlash","endsWith","substring","length","getPossibleProjectRoot","fs","realpathSync","process","cwd","nativePlatforms","resolveEntryPoint","projectRoot","platform","pkg","getPackageJson","platforms","includes","extensions","getBareExtensions","main","entry","resolveFrom","ConfigError","getFileWithExtensions","fromDirectory","moduleId","modulePath","path","join","existsSync","extension","_metroServerRootCache","Map","getMetroServerRoot","env","EXPO_NO_METRO_WORKSPACE_ROOT","resolve","serverRoot","get","resolveWorkspaceRoot","set","getMetroWorkspaceGlobs","monorepoRoot","getWorkspaceGlobs","toPosixPath","filePath","replace","convertEntryPointToRelative","absolutePath","extname","isAbsolute","realServerRoot","relative","slice","resolveRelativeEntryPoint","options","exports"],"sources":["../../src/paths/paths.ts"],"sourcesContent":["import { resolveFrom } from '@expo/require-utils';\nimport fs from 'fs';\nimport path from 'path';\nimport { getWorkspaceGlobs, resolveWorkspaceRoot } from 'resolve-workspace-root';\n\nimport { env } from './env';\nimport { getBareExtensions } from './extensions';\nimport { getPackageJson } from '../Config';\nimport { PackageJSONConfig } from '../Config.types';\nimport { ConfigError } from '../Errors';\n\n// https://github.com/facebook/create-react-app/blob/9750738cce89a967cc71f28390daf5d4311b193c/packages/react-scripts/config/paths.js#L22\nexport function ensureSlash(inputPath: string, needsSlash: boolean): string {\n const hasSlash = inputPath.endsWith('/');\n if (hasSlash && !needsSlash) {\n return inputPath.substring(0, inputPath.length - 1);\n } else if (!hasSlash && needsSlash) {\n return `${inputPath}/`;\n } else {\n return inputPath;\n }\n}\n\nexport function getPossibleProjectRoot(): string {\n return fs.realpathSync(process.cwd());\n}\n\nconst nativePlatforms = ['ios', 'android'];\n\n/** @returns the absolute entry file for an Expo project. */\nexport function resolveEntryPoint(\n projectRoot: string,\n {\n platform,\n pkg = getPackageJson(projectRoot),\n }: {\n platform?: string;\n pkg?: PackageJSONConfig;\n } = {}\n): string {\n const platforms = !platform\n ? []\n : nativePlatforms.includes(platform)\n ? [platform, 'native']\n : [platform];\n const extensions = getBareExtensions(platforms);\n\n // If the config doesn't define a custom entry then we want to look at the `package.json`s `main` field, and try again.\n const { main } = pkg;\n if (main && typeof main === 'string') {\n // Allow for paths like: `{ \"main\": \"expo/AppEntry\" }`\n const entry = resolveFrom(projectRoot, main, { extensions });\n if (!entry) {\n throw new ConfigError(\n `Cannot resolve entry file: The \\`main\\` field defined in your \\`package.json\\` points to an unresolvable or non-existent path.`,\n 'ENTRY_NOT_FOUND'\n );\n }\n return entry;\n }\n\n // Check for a root index.* file in the project root.\n let entry = resolveFrom(projectRoot, './index', { extensions });\n if (entry) {\n return entry;\n }\n\n // If none of the default files exist then we will attempt to use the main Expo entry point.\n // This requires `expo` to be installed in the project to work as it will use `node_module/expo/AppEntry.js`\n // Doing this enables us to create a bare minimum Expo project.\n\n // TODO(Bacon): We may want to do a check against `./App` and `expo` in the `package.json` `dependencies` as we can more accurately ensure that the project is expo-min without needing the modules installed.\n entry = resolveFrom(projectRoot, 'expo/AppEntry', { extensions });\n if (!entry) {\n throw new ConfigError(\n `The project entry file could not be resolved. Define it in the \\`main\\` field of the \\`package.json\\`, create an \\`index.js\\`, or install the \\`expo\\` package.`,\n 'ENTRY_NOT_FOUND'\n );\n }\n\n return entry;\n}\n\n// Statically attempt to resolve a module but with the ability to resolve like a bundler.\n// This won't use node module resolution.\n/** @deprecated */\nexport function getFileWithExtensions(\n fromDirectory: string,\n moduleId: string,\n extensions: string[]\n): string | null {\n const modulePath = path.join(fromDirectory, moduleId);\n if (fs.existsSync(modulePath)) {\n return modulePath;\n }\n for (const extension of extensions) {\n const modulePath = path.join(fromDirectory, `${moduleId}.${extension}`);\n if (fs.existsSync(modulePath)) {\n return modulePath;\n }\n }\n return null;\n}\n\nconst _metroServerRootCache = new Map<string, string>();\n\n/** Get the Metro server root, when working in monorepos */\nexport function getMetroServerRoot(projectRoot: string): string {\n if (env.EXPO_NO_METRO_WORKSPACE_ROOT) {\n return projectRoot;\n }\n\n projectRoot = path.resolve(projectRoot);\n\n let serverRoot: string | null | undefined = _metroServerRootCache.get(projectRoot);\n if (serverRoot != null) {\n return serverRoot;\n }\n\n serverRoot = resolveWorkspaceRoot(projectRoot);\n if (serverRoot != null) {\n serverRoot = path.resolve(serverRoot);\n _metroServerRootCache.set(projectRoot, serverRoot);\n }\n\n return serverRoot ?? projectRoot;\n}\n\n/**\n * Get the workspace globs for Metro's watchFolders.\n * @note This does not traverse the monorepo, and should be used with `getMetroServerRoot`\n */\nexport function getMetroWorkspaceGlobs(monorepoRoot: string): string[] | null {\n return getWorkspaceGlobs(monorepoRoot);\n}\n\nfunction toPosixPath(filePath: string): string {\n return filePath.replace(/\\\\/g, '/');\n}\n\n// TODO: Move to internals\n/**\n * Convert an absolute entry point to a server or project root relative filepath.\n * This is useful on Android where the entry point is an absolute path.\n * @deprecated\n */\nexport function convertEntryPointToRelative(\n projectRoot: string,\n absolutePath: string,\n extname: string | null = '.js'\n) {\n if (!path.isAbsolute(absolutePath)) {\n absolutePath = path.resolve(process.cwd(), projectRoot, absolutePath);\n }\n\n // The project root could be using a different root on MacOS (`/var` vs `/private/var`)\n // We need to make sure to get the non-symlinked path to the server or project root.\n let serverRoot = getMetroServerRoot(projectRoot);\n try {\n const realServerRoot = fs.realpathSync(serverRoot);\n if (realServerRoot !== serverRoot) {\n serverRoot = realServerRoot;\n absolutePath = fs.realpathSync(absolutePath);\n }\n } catch {\n // NOTE: `fs.realpathSync` can fail if `projectRoot` doesn't exist (e.g. mocked folder)\n }\n\n let entry = toPosixPath(path.relative(serverRoot, absolutePath));\n\n // Strip extname, if it's set and trivially resolvable by Metro\n if (extname != null) {\n if (extname[0] !== '.') {\n extname = `.${extname}`;\n }\n if (entry.endsWith(extname)) {\n entry = entry.slice(0, -extname.length);\n }\n }\n\n return entry;\n}\n\n// TODO: Move to internals\n/**\n * Resolve the entry point relative to either the server or project root.\n * This relative entry path should be used to pass non-absolute paths to Metro,\n * accounting for possible monorepos and keeping the cache sharable (no absolute paths).\n * @deprecated\n */\nexport const resolveRelativeEntryPoint: typeof resolveEntryPoint = (projectRoot, options) => {\n return convertEntryPointToRelative(projectRoot, resolveEntryPoint(projectRoot, options));\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"paths.js","names":["_requireUtils","data","require","_fs","_interopRequireDefault","_path","_resolveWorkspaceRoot","_env","_extensions","_Config","_Errors","e","__esModule","default","ensureSlash","inputPath","needsSlash","hasSlash","endsWith","substring","length","getPossibleProjectRoot","fs","realpathSync","process","cwd","nativePlatforms","resolveEntryPoint","projectRoot","platform","pkg","getPackageJson","platforms","includes","extensions","getBareExtensions","main","entry","resolveFrom","ConfigError","getFileWithExtensions","fromDirectory","moduleId","modulePath","path","join","existsSync","extension","_metroServerRootCache","Map","getMetroServerRoot","env","EXPO_NO_METRO_WORKSPACE_ROOT","resolve","serverRoot","get","resolveWorkspaceRoot","set","getMetroWorkspaceGlobs","monorepoRoot","getWorkspaceGlobs","toPosixPath","filePath","replace","convertEntryPointToRelative","absolutePath","extname","isAbsolute","realServerRoot","startsWith","sep","realAbsolutePath","relative","slice","resolveRelativeEntryPoint","options","exports"],"sources":["../../src/paths/paths.ts"],"sourcesContent":["import { resolveFrom } from '@expo/require-utils';\nimport fs from 'fs';\nimport path from 'path';\nimport { getWorkspaceGlobs, resolveWorkspaceRoot } from 'resolve-workspace-root';\n\nimport { env } from './env';\nimport { getBareExtensions } from './extensions';\nimport { getPackageJson } from '../Config';\nimport { PackageJSONConfig } from '../Config.types';\nimport { ConfigError } from '../Errors';\n\n// https://github.com/facebook/create-react-app/blob/9750738cce89a967cc71f28390daf5d4311b193c/packages/react-scripts/config/paths.js#L22\nexport function ensureSlash(inputPath: string, needsSlash: boolean): string {\n const hasSlash = inputPath.endsWith('/');\n if (hasSlash && !needsSlash) {\n return inputPath.substring(0, inputPath.length - 1);\n } else if (!hasSlash && needsSlash) {\n return `${inputPath}/`;\n } else {\n return inputPath;\n }\n}\n\nexport function getPossibleProjectRoot(): string {\n return fs.realpathSync(process.cwd());\n}\n\nconst nativePlatforms = ['ios', 'android'];\n\n/** @returns the absolute entry file for an Expo project. */\nexport function resolveEntryPoint(\n projectRoot: string,\n {\n platform,\n pkg = getPackageJson(projectRoot),\n }: {\n platform?: string;\n pkg?: PackageJSONConfig;\n } = {}\n): string {\n const platforms = !platform\n ? []\n : nativePlatforms.includes(platform)\n ? [platform, 'native']\n : [platform];\n const extensions = getBareExtensions(platforms);\n\n // If the config doesn't define a custom entry then we want to look at the `package.json`s `main` field, and try again.\n const { main } = pkg;\n if (main && typeof main === 'string') {\n // Allow for paths like: `{ \"main\": \"expo/AppEntry\" }`\n const entry = resolveFrom(projectRoot, main, { extensions });\n if (!entry) {\n throw new ConfigError(\n `Cannot resolve entry file: The \\`main\\` field defined in your \\`package.json\\` points to an unresolvable or non-existent path.`,\n 'ENTRY_NOT_FOUND'\n );\n }\n return entry;\n }\n\n // Check for a root index.* file in the project root.\n let entry = resolveFrom(projectRoot, './index', { extensions });\n if (entry) {\n return entry;\n }\n\n // If none of the default files exist then we will attempt to use the main Expo entry point.\n // This requires `expo` to be installed in the project to work as it will use `node_module/expo/AppEntry.js`\n // Doing this enables us to create a bare minimum Expo project.\n\n // TODO(Bacon): We may want to do a check against `./App` and `expo` in the `package.json` `dependencies` as we can more accurately ensure that the project is expo-min without needing the modules installed.\n entry = resolveFrom(projectRoot, 'expo/AppEntry', { extensions });\n if (!entry) {\n throw new ConfigError(\n `The project entry file could not be resolved. Define it in the \\`main\\` field of the \\`package.json\\`, create an \\`index.js\\`, or install the \\`expo\\` package.`,\n 'ENTRY_NOT_FOUND'\n );\n }\n\n return entry;\n}\n\n// Statically attempt to resolve a module but with the ability to resolve like a bundler.\n// This won't use node module resolution.\n/** @deprecated */\nexport function getFileWithExtensions(\n fromDirectory: string,\n moduleId: string,\n extensions: string[]\n): string | null {\n const modulePath = path.join(fromDirectory, moduleId);\n if (fs.existsSync(modulePath)) {\n return modulePath;\n }\n for (const extension of extensions) {\n const modulePath = path.join(fromDirectory, `${moduleId}.${extension}`);\n if (fs.existsSync(modulePath)) {\n return modulePath;\n }\n }\n return null;\n}\n\nconst _metroServerRootCache = new Map<string, string>();\n\n/** Get the Metro server root, when working in monorepos */\nexport function getMetroServerRoot(projectRoot: string): string {\n if (env.EXPO_NO_METRO_WORKSPACE_ROOT) {\n return projectRoot;\n }\n\n projectRoot = path.resolve(projectRoot);\n\n let serverRoot: string | null | undefined = _metroServerRootCache.get(projectRoot);\n if (serverRoot != null) {\n return serverRoot;\n }\n\n serverRoot = resolveWorkspaceRoot(projectRoot);\n if (serverRoot != null) {\n serverRoot = path.resolve(serverRoot);\n _metroServerRootCache.set(projectRoot, serverRoot);\n }\n\n return serverRoot ?? projectRoot;\n}\n\n/**\n * Get the workspace globs for Metro's watchFolders.\n * @note This does not traverse the monorepo, and should be used with `getMetroServerRoot`\n */\nexport function getMetroWorkspaceGlobs(monorepoRoot: string): string[] | null {\n return getWorkspaceGlobs(monorepoRoot);\n}\n\nfunction toPosixPath(filePath: string): string {\n return filePath.replace(/\\\\/g, '/');\n}\n\n// TODO: Move to internals\n/**\n * Convert an absolute entry point to a server or project root relative filepath.\n * This is useful on Android where the entry point is an absolute path.\n * @deprecated\n */\nexport function convertEntryPointToRelative(\n projectRoot: string,\n absolutePath: string,\n extname: string | null = '.js'\n) {\n if (!path.isAbsolute(absolutePath)) {\n absolutePath = path.resolve(process.cwd(), projectRoot, absolutePath);\n }\n\n // The project root could be using a different root on MacOS (`/var` vs `/private/var`)\n // We need to make sure to get the non-symlinked path to the server or project root.\n let serverRoot = getMetroServerRoot(projectRoot);\n try {\n const realServerRoot = fs.realpathSync(serverRoot);\n // If the absolute path already starts with the resolved server root, use it directly\n if (absolutePath.startsWith(realServerRoot + path.sep)) {\n serverRoot = realServerRoot;\n } else if (absolutePath.startsWith(serverRoot + path.sep)) {\n // If the absolute path starts with the (possibly symlinked) server root, preserve it as-is\n } else {\n // Otherwise, resolve the absolute path to check if it matches the real server root.\n // This is only needed when absolutePath doesn't match either root representation,\n // and absolutePath may not be valid (e.g. non-existent file)\n try {\n const realAbsolutePath = fs.realpathSync(absolutePath);\n if (realAbsolutePath.startsWith(realServerRoot + path.sep)) {\n serverRoot = realServerRoot;\n absolutePath = realAbsolutePath;\n } else if (realServerRoot !== serverRoot || realAbsolutePath !== absolutePath) {\n // Last resort: fall back to the legacy behavior of using the realpath for both,\n // without knowing if the resulting relative path will be valid\n serverRoot = realServerRoot;\n absolutePath = realAbsolutePath;\n }\n } catch {}\n }\n } catch {\n // NOTE: `fs.realpathSync` can fail if `projectRoot` doesn't exist (e.g. mocked folder)\n }\n\n let entry = toPosixPath(path.relative(serverRoot, absolutePath));\n\n // Strip extname, if it's set and trivially resolvable by Metro\n if (extname != null) {\n if (extname[0] !== '.') {\n extname = `.${extname}`;\n }\n if (entry.endsWith(extname)) {\n entry = entry.slice(0, -extname.length);\n }\n }\n\n return entry;\n}\n\n// TODO: Move to internals\n/**\n * Resolve the entry point relative to either the server or project root.\n * This relative entry path should be used to pass non-absolute paths to Metro,\n * accounting for possible monorepos and keeping the cache sharable (no absolute paths).\n * @deprecated\n */\nexport const resolveRelativeEntryPoint: typeof resolveEntryPoint = (projectRoot, options) => {\n return convertEntryPointToRelative(projectRoot, resolveEntryPoint(projectRoot, options));\n};\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expo/config",
|
|
3
|
-
"version": "55.0.
|
|
3
|
+
"version": "55.0.16",
|
|
4
4
|
"description": "A library for interacting with the app.json",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -35,8 +35,8 @@
|
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@expo/config-plugins": "~55.0.8",
|
|
37
37
|
"@expo/config-types": "^55.0.5",
|
|
38
|
-
"@expo/json-file": "^10.0.
|
|
39
|
-
"@expo/require-utils": "^55.0.
|
|
38
|
+
"@expo/json-file": "^10.0.14",
|
|
39
|
+
"@expo/require-utils": "^55.0.5",
|
|
40
40
|
"deepmerge": "^4.3.1",
|
|
41
41
|
"getenv": "^2.0.0",
|
|
42
42
|
"glob": "^13.0.0",
|
|
@@ -51,5 +51,5 @@
|
|
|
51
51
|
"publishConfig": {
|
|
52
52
|
"access": "public"
|
|
53
53
|
},
|
|
54
|
-
"gitHead": "
|
|
54
|
+
"gitHead": "7c081282cf88968f81732feb67a71840e769a40f"
|
|
55
55
|
}
|