@expo/require-utils 56.1.2 → 57.0.0-canary-20260526-13e89ca

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.
@@ -1,6 +1,12 @@
1
1
  declare module 'node:module' {
2
2
  function _nodeModulePaths(base: string): readonly string[];
3
- function _resolveFilename(mod: string, parent?: Partial<Module>): string;
3
+ function _resolveFilename(request: string, parent?: {
4
+ id: string;
5
+ filename: string;
6
+ paths: string[];
7
+ } | string | null, isMain?: boolean, options?: {
8
+ paths?: string[];
9
+ }): string;
4
10
  const _extensions: Record<string, unknown>;
5
11
  }
6
12
  export interface ResolveFromParams {
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","names":["_nodeFs","data","_interopRequireDefault","require","_nodeModule","_nodePath","e","__esModule","default","resolveFrom","fromDirectory","moduleId","params","isJSON","endsWith","exts","extensions","Object","keys","Module","_extensions","skipNodePath","followSymlinks","resolved","path","resolve","resolveType","resolveTypeSync","ResolveType","FILE","ext","withExt","isFileSpecifier","test","isAbsolute","DIR","join","resolvedDir","moduleDirs","_nodeModulePaths","modulesDir","candidate","ENOENT","dirname","fs","existsSync","candidateWithExt","maybeResolve","nativeResolveFrom","fromFile","_resolveFilename","id","filename","paths","isRealpathFileSync","target","realpath","realpathSync","lstatSync","throwIfNoEntry","isFile","stat","isSymbolicLink","isDirectory","process","cwd"],"sources":["../src/resolve.ts"],"sourcesContent":["import fs from 'node:fs';\nimport Module from 'node:module';\nimport path from 'node:path';\n\ndeclare module 'node:module' {\n export function _nodeModulePaths(base: string): readonly string[];\n export function _resolveFilename(mod: string, parent?: Partial<Module>): string;\n export const _extensions: Record<string, unknown>;\n}\n\nexport interface ResolveFromParams {\n followSymlinks?: boolean;\n skipNodePath?: boolean;\n extensions?: readonly string[];\n}\n\nexport function resolveFrom(\n fromDirectory: string,\n moduleId: string,\n params?: ResolveFromParams\n): string | null {\n // We exclude extension resolution, if we're resolving a plain JSON file\n const isJSON = moduleId.endsWith('.json');\n const exts = !isJSON ? (params?.extensions ?? Object.keys(Module._extensions)) : [];\n\n const skipNodePath = !!params?.skipNodePath;\n const followSymlinks = params?.followSymlinks ?? skipNodePath;\n\n let resolved = path.resolve(fromDirectory, moduleId);\n\n // (1) check direct path / exact match\n const resolveType = resolveTypeSync(resolved);\n if (resolveType === ResolveType.FILE) {\n return resolved;\n }\n\n // (2) check against direct path matches with extensions\n for (let ext of exts) {\n ext = ext[0] !== '.' ? `.${ext}` : ext;\n const withExt = resolved + ext;\n if (resolveTypeSync(withExt) === ResolveType.FILE) {\n return withExt;\n }\n }\n\n const isFileSpecifier = /^\\.\\.?(?:$|[/\\\\])/.test(moduleId) || path.isAbsolute(moduleId);\n\n // (2.2) check against `/index` paths if we've disabled Node resolution or if we're resolving a relative path directly\n if ((isFileSpecifier || skipNodePath) && !isJSON && resolveType === ResolveType.DIR) {\n resolved = path.join(resolved, 'index');\n for (let ext of exts) {\n ext = ext[0] !== '.' ? `.${ext}` : ext;\n const withExt = resolved + ext;\n if (resolveTypeSync(withExt) === ResolveType.FILE) {\n // NOTE(@kitten): Like above, we don't resolve symlinks when we're not in a node_modules resolution path\n return withExt;\n }\n }\n }\n\n // We won't need to continue with Node resolution if we're only resolving paths\n if (isFileSpecifier) {\n return null;\n }\n\n // (3) if we're not following symlinks, we try to resolve against `node_modules` folders unresolved\n if (!followSymlinks || skipNodePath) {\n const resolvedDir = path.resolve(fromDirectory);\n const moduleDirs = Module._nodeModulePaths(resolvedDir);\n for (const modulesDir of moduleDirs) {\n let candidate = path.join(modulesDir, moduleId);\n const resolveType = resolveTypeSync(candidate);\n // (3.1) direct match\n if (resolveType === ResolveType.FILE) {\n return candidate;\n } else if (resolveType === ResolveType.ENOENT) {\n // Optimization: If the directory itself doesn't exist, there's no point in us continuing\n // to check for more files in this directory\n const dirname = path.dirname(candidate);\n if (dirname !== modulesDir && !fs.existsSync(dirname)) {\n continue;\n }\n }\n // (3.2) check against match with extensions\n for (let ext of exts) {\n ext = ext[0] !== '.' ? `.${ext}` : ext;\n const candidateWithExt = candidate + ext;\n if (resolveTypeSync(candidateWithExt) === ResolveType.FILE) {\n return followSymlinks ? maybeResolve(candidateWithExt) : candidateWithExt;\n }\n }\n // (3.3) check against `/index` paths\n if (!isJSON && resolveType === ResolveType.DIR) {\n candidate = path.join(candidate, 'index');\n for (let ext of exts) {\n ext = ext[0] !== '.' ? `.${ext}` : ext;\n const candidateWithExt = candidate + ext;\n if (resolveTypeSync(candidateWithExt) === ResolveType.FILE) {\n return followSymlinks ? maybeResolve(candidateWithExt) : candidateWithExt;\n }\n }\n }\n }\n }\n\n // (4): Fallback to native Node resolution, if `skipNodePath` is disabled\n return !skipNodePath ? nativeResolveFrom(fromDirectory, moduleId) : null;\n}\n\nfunction nativeResolveFrom(fromDirectory: string, moduleId: string): string | null {\n try {\n const resolvedDir = maybeResolve(fromDirectory);\n const fromFile = path.join(resolvedDir, 'index.js');\n return Module._resolveFilename(moduleId, {\n id: fromFile,\n filename: fromFile,\n paths: [...Module._nodeModulePaths(resolvedDir)],\n });\n } catch {\n return null;\n }\n}\n\nfunction isRealpathFileSync(target: string): boolean {\n try {\n const realpath = fs.realpathSync(target);\n return !!fs.lstatSync(realpath, { throwIfNoEntry: false })?.isFile();\n } catch {\n return false;\n }\n}\n\nconst enum ResolveType {\n FILE = 1,\n DIR = 2,\n ENOENT = 0,\n}\n\nfunction resolveTypeSync(target: string): ResolveType {\n try {\n const stat = fs.lstatSync(target, { throwIfNoEntry: false });\n if (stat) {\n if (stat.isSymbolicLink()) {\n return isRealpathFileSync(target) ? ResolveType.FILE : ResolveType.ENOENT;\n } else if (stat.isFile()) {\n return ResolveType.FILE;\n } else if (stat.isDirectory()) {\n // NOTE(@kitten): We don't support symlinked directories for resolution\n // Realistically, when we disable Node resolution, symlinked directory resolution\n // for `/index` is rare, and can be used to exploit symlinks\n return ResolveType.DIR;\n } else {\n return ResolveType.ENOENT;\n }\n } else {\n return ResolveType.ENOENT;\n }\n } catch {\n return ResolveType.ENOENT;\n }\n}\n\nfunction maybeResolve(target: string): string {\n target = path.resolve(process.cwd(), target);\n try {\n return fs.realpathSync(target);\n } catch {\n return target;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"resolve.js","names":["_nodeFs","data","_interopRequireDefault","require","_nodeModule","_nodePath","e","__esModule","default","resolveFrom","fromDirectory","moduleId","params","isJSON","endsWith","exts","extensions","Object","keys","Module","_extensions","skipNodePath","followSymlinks","resolved","path","resolve","resolveType","resolveTypeSync","ResolveType","FILE","ext","withExt","isFileSpecifier","test","isAbsolute","DIR","join","resolvedDir","moduleDirs","_nodeModulePaths","modulesDir","candidate","ENOENT","dirname","fs","existsSync","candidateWithExt","maybeResolve","nativeResolveFrom","fromFile","_resolveFilename","id","filename","paths","isRealpathFileSync","target","realpath","realpathSync","lstatSync","throwIfNoEntry","isFile","stat","isSymbolicLink","isDirectory","process","cwd"],"sources":["../src/resolve.ts"],"sourcesContent":["import fs from 'node:fs';\nimport Module from 'node:module';\nimport path from 'node:path';\n\ndeclare module 'node:module' {\n export function _nodeModulePaths(base: string): readonly string[];\n export function _resolveFilename(\n request: string,\n parent?: { id: string; filename: string; paths: string[] } | string | null,\n isMain?: boolean,\n options?: { paths?: string[] }\n ): string;\n export const _extensions: Record<string, unknown>;\n}\n\nexport interface ResolveFromParams {\n followSymlinks?: boolean;\n skipNodePath?: boolean;\n extensions?: readonly string[];\n}\n\nexport function resolveFrom(\n fromDirectory: string,\n moduleId: string,\n params?: ResolveFromParams\n): string | null {\n // We exclude extension resolution, if we're resolving a plain JSON file\n const isJSON = moduleId.endsWith('.json');\n const exts = !isJSON ? (params?.extensions ?? Object.keys(Module._extensions)) : [];\n\n const skipNodePath = !!params?.skipNodePath;\n const followSymlinks = params?.followSymlinks ?? skipNodePath;\n\n let resolved = path.resolve(fromDirectory, moduleId);\n\n // (1) check direct path / exact match\n const resolveType = resolveTypeSync(resolved);\n if (resolveType === ResolveType.FILE) {\n return resolved;\n }\n\n // (2) check against direct path matches with extensions\n for (let ext of exts) {\n ext = ext[0] !== '.' ? `.${ext}` : ext;\n const withExt = resolved + ext;\n if (resolveTypeSync(withExt) === ResolveType.FILE) {\n return withExt;\n }\n }\n\n const isFileSpecifier = /^\\.\\.?(?:$|[/\\\\])/.test(moduleId) || path.isAbsolute(moduleId);\n\n // (2.2) check against `/index` paths if we've disabled Node resolution or if we're resolving a relative path directly\n if ((isFileSpecifier || skipNodePath) && !isJSON && resolveType === ResolveType.DIR) {\n resolved = path.join(resolved, 'index');\n for (let ext of exts) {\n ext = ext[0] !== '.' ? `.${ext}` : ext;\n const withExt = resolved + ext;\n if (resolveTypeSync(withExt) === ResolveType.FILE) {\n // NOTE(@kitten): Like above, we don't resolve symlinks when we're not in a node_modules resolution path\n return withExt;\n }\n }\n }\n\n // We won't need to continue with Node resolution if we're only resolving paths\n if (isFileSpecifier) {\n return null;\n }\n\n // (3) if we're not following symlinks, we try to resolve against `node_modules` folders unresolved\n if (!followSymlinks || skipNodePath) {\n const resolvedDir = path.resolve(fromDirectory);\n const moduleDirs = Module._nodeModulePaths(resolvedDir);\n for (const modulesDir of moduleDirs) {\n let candidate = path.join(modulesDir, moduleId);\n const resolveType = resolveTypeSync(candidate);\n // (3.1) direct match\n if (resolveType === ResolveType.FILE) {\n return candidate;\n } else if (resolveType === ResolveType.ENOENT) {\n // Optimization: If the directory itself doesn't exist, there's no point in us continuing\n // to check for more files in this directory\n const dirname = path.dirname(candidate);\n if (dirname !== modulesDir && !fs.existsSync(dirname)) {\n continue;\n }\n }\n // (3.2) check against match with extensions\n for (let ext of exts) {\n ext = ext[0] !== '.' ? `.${ext}` : ext;\n const candidateWithExt = candidate + ext;\n if (resolveTypeSync(candidateWithExt) === ResolveType.FILE) {\n return followSymlinks ? maybeResolve(candidateWithExt) : candidateWithExt;\n }\n }\n // (3.3) check against `/index` paths\n if (!isJSON && resolveType === ResolveType.DIR) {\n candidate = path.join(candidate, 'index');\n for (let ext of exts) {\n ext = ext[0] !== '.' ? `.${ext}` : ext;\n const candidateWithExt = candidate + ext;\n if (resolveTypeSync(candidateWithExt) === ResolveType.FILE) {\n return followSymlinks ? maybeResolve(candidateWithExt) : candidateWithExt;\n }\n }\n }\n }\n }\n\n // (4): Fallback to native Node resolution, if `skipNodePath` is disabled\n return !skipNodePath ? nativeResolveFrom(fromDirectory, moduleId) : null;\n}\n\nfunction nativeResolveFrom(fromDirectory: string, moduleId: string): string | null {\n try {\n const resolvedDir = maybeResolve(fromDirectory);\n const fromFile = path.join(resolvedDir, 'index.js');\n return Module._resolveFilename(moduleId, {\n id: fromFile,\n filename: fromFile,\n paths: [...Module._nodeModulePaths(resolvedDir)],\n });\n } catch {\n return null;\n }\n}\n\nfunction isRealpathFileSync(target: string): boolean {\n try {\n const realpath = fs.realpathSync(target);\n return !!fs.lstatSync(realpath, { throwIfNoEntry: false })?.isFile();\n } catch {\n return false;\n }\n}\n\nconst enum ResolveType {\n FILE = 1,\n DIR = 2,\n ENOENT = 0,\n}\n\nfunction resolveTypeSync(target: string): ResolveType {\n try {\n const stat = fs.lstatSync(target, { throwIfNoEntry: false });\n if (stat) {\n if (stat.isSymbolicLink()) {\n return isRealpathFileSync(target) ? ResolveType.FILE : ResolveType.ENOENT;\n } else if (stat.isFile()) {\n return ResolveType.FILE;\n } else if (stat.isDirectory()) {\n // NOTE(@kitten): We don't support symlinked directories for resolution\n // Realistically, when we disable Node resolution, symlinked directory resolution\n // for `/index` is rare, and can be used to exploit symlinks\n return ResolveType.DIR;\n } else {\n return ResolveType.ENOENT;\n }\n } else {\n return ResolveType.ENOENT;\n }\n } catch {\n return ResolveType.ENOENT;\n }\n}\n\nfunction maybeResolve(target: string): string {\n target = path.resolve(process.cwd(), target);\n try {\n return fs.realpathSync(target);\n } catch {\n return target;\n }\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expo/require-utils",
3
- "version": "56.1.2",
3
+ "version": "57.0.0-canary-20260526-13e89ca",
4
4
  "description": "Reusable require and Node resolution utilities library for Expo",
5
5
  "license": "MIT",
6
6
  "main": "./build/index.js",
@@ -41,7 +41,7 @@
41
41
  "publishConfig": {
42
42
  "access": "public"
43
43
  },
44
- "gitHead": "c4c9867a0bcbb188e55ecaec4998e38d33108a5d",
44
+ "gitHead": "13e89ca478346ab94722b7cd56933576a642b9ad",
45
45
  "scripts": {
46
46
  "build": "tsc --emitDeclarationOnly && babel src --out-dir build --extensions \".ts\" --source-maps --ignore \"src/**/__mocks__/*\",\"src/**/__tests__/*\"",
47
47
  "clean": "expo-module clean",