vxrn 2.13.8 → 2.13.10
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/dist/cli.mjs +3 -2
- package/dist/cli.mjs.map +1 -1
- package/dist/cli.native.js +5 -2
- package/dist/cli.native.js.map +1 -1
- package/dist/config/getBaseViteConfigOnly.mjs +3 -3
- package/dist/config/getBaseViteConfigOnly.mjs.map +1 -1
- package/dist/config/getBaseViteConfigOnly.native.js +3 -3
- package/dist/config/getBaseViteConfigOnly.native.js.map +1 -1
- package/dist/config/getOptionsFilled.mjs +24 -2
- package/dist/config/getOptionsFilled.mjs.map +1 -1
- package/dist/config/getOptionsFilled.native.js +25 -2
- package/dist/config/getOptionsFilled.native.js.map +1 -1
- package/dist/config/getServerOptionsFilled.mjs +119 -1
- package/dist/config/getServerOptionsFilled.mjs.map +1 -1
- package/dist/config/getServerOptionsFilled.native.js +137 -1
- package/dist/config/getServerOptionsFilled.native.js.map +1 -1
- package/dist/exports/build.mjs +5 -5
- package/dist/exports/build.mjs.map +1 -1
- package/dist/exports/build.native.js +5 -5
- package/dist/exports/build.native.js.map +1 -1
- package/dist/exports/dev.mjs +4 -6
- package/dist/exports/dev.mjs.map +1 -1
- package/dist/exports/dev.native.js +6 -6
- package/dist/exports/dev.native.js.map +1 -1
- package/dist/exports/prebuild.mjs +4 -4
- package/dist/exports/prebuild.mjs.map +1 -1
- package/dist/exports/prebuild.native.js +4 -4
- package/dist/exports/prebuild.native.js.map +1 -1
- package/dist/exports/prebuildWithoutExpo.mjs +95 -88
- package/dist/exports/prebuildWithoutExpo.mjs.map +1 -1
- package/dist/exports/prebuildWithoutExpo.native.js +95 -88
- package/dist/exports/prebuildWithoutExpo.native.js.map +1 -1
- package/dist/plugins/autoDepOptimizePlugin.mjs +3 -3
- package/dist/plugins/autoDepOptimizePlugin.mjs.map +1 -1
- package/dist/plugins/autoDepOptimizePlugin.native.js +3 -3
- package/dist/plugins/autoDepOptimizePlugin.native.js.map +1 -1
- package/dist/plugins/reactNativeDevAssetPlugin.mjs +4 -4
- package/dist/plugins/reactNativeDevAssetPlugin.mjs.map +1 -1
- package/dist/plugins/reactNativeDevAssetPlugin.native.js +4 -4
- package/dist/plugins/reactNativeDevAssetPlugin.native.js.map +1 -1
- package/dist/rn-commands/bundle/buildBundle.mjs +18 -5
- package/dist/rn-commands/bundle/buildBundle.mjs.map +1 -1
- package/dist/rn-commands/bundle/buildBundle.native.js +18 -5
- package/dist/rn-commands/bundle/buildBundle.native.js.map +1 -1
- package/dist/user-interface/index.mjs +1 -1
- package/dist/user-interface/index.mjs.map +1 -1
- package/dist/user-interface/index.native.js +1 -1
- package/dist/user-interface/index.native.js.map +1 -1
- package/dist/utils/env-editor.mjs +198 -0
- package/dist/utils/env-editor.mjs.map +1 -0
- package/dist/utils/env-editor.native.js +266 -0
- package/dist/utils/env-editor.native.js.map +1 -0
- package/dist/utils/fs.mjs +48 -0
- package/dist/utils/fs.mjs.map +1 -0
- package/dist/utils/fs.native.js +48 -0
- package/dist/utils/fs.native.js.map +1 -0
- package/dist/utils/getVitePath.mjs +2 -2
- package/dist/utils/getVitePath.mjs.map +1 -1
- package/dist/utils/getVitePath.native.js +2 -2
- package/dist/utils/getVitePath.native.js.map +1 -1
- package/dist/utils/patches.mjs +38 -29
- package/dist/utils/patches.mjs.map +1 -1
- package/dist/utils/patches.native.js +38 -29
- package/dist/utils/patches.native.js.map +1 -1
- package/dist/utils/scanDepsToOptimize.mjs +12 -11
- package/dist/utils/scanDepsToOptimize.mjs.map +1 -1
- package/dist/utils/scanDepsToOptimize.native.js +12 -11
- package/dist/utils/scanDepsToOptimize.native.js.map +1 -1
- package/dist/utils/state.mjs +5 -5
- package/dist/utils/state.mjs.map +1 -1
- package/dist/utils/state.native.js +5 -5
- package/dist/utils/state.native.js.map +1 -1
- package/dist/utils/utils.mjs +4 -3
- package/dist/utils/utils.mjs.map +1 -1
- package/dist/utils/utils.native.js +4 -3
- package/dist/utils/utils.native.js.map +1 -1
- package/package.json +12 -18
- package/src/cli.ts +5 -4
- package/src/config/getBaseViteConfigOnly.ts +3 -3
- package/src/config/getOptionsFilled.ts +35 -2
- package/src/config/getServerOptionsFilled.test.ts +37 -0
- package/src/config/getServerOptionsFilled.ts +57 -1
- package/src/exports/build.ts +5 -5
- package/src/exports/clean.test.ts +1 -1
- package/src/exports/dev.ts +5 -6
- package/src/exports/prebuild.ts +4 -4
- package/src/exports/prebuildWithoutExpo.ts +102 -89
- package/src/plugins/autoDepOptimizePlugin.ts +3 -3
- package/src/plugins/reactNativeDevAssetPlugin.ts +4 -4
- package/src/rn-commands/bundle/buildBundle.ts +15 -5
- package/src/user-interface/index.ts +1 -1
- package/src/utils/env-editor.LICENSE +9 -0
- package/src/utils/env-editor.ts +214 -0
- package/src/utils/fs.ts +59 -0
- package/src/utils/getVitePath.ts +2 -2
- package/src/utils/patches.test.ts +36 -36
- package/src/utils/patches.ts +39 -27
- package/src/utils/scanDepsToOptimize.test.ts +2 -2
- package/src/utils/scanDepsToOptimize.ts +6 -5
- package/src/utils/state.ts +5 -7
- package/src/utils/utils.ts +5 -5
- package/types/config/getOptionsFilled.d.ts +9 -2
- package/types/config/getOptionsFilled.d.ts.map +1 -1
- package/types/config/getServerOptionsFilled.d.ts.map +1 -1
- package/types/exports/build.d.ts +1 -1
- package/types/exports/dev.d.ts.map +1 -1
- package/types/exports/prebuildWithoutExpo.d.ts.map +1 -1
- package/types/rn-commands/bundle/buildBundle.d.ts.map +1 -1
- package/types/user-interface/index.d.ts.map +1 -1
- package/types/utils/env-editor.d.ts +9 -0
- package/types/utils/env-editor.d.ts.map +1 -0
- package/types/utils/fs.d.ts +9 -0
- package/types/utils/fs.d.ts.map +1 -0
- package/types/utils/patches.d.ts.map +1 -1
- package/types/utils/scanDepsToOptimize.d.ts.map +1 -1
- package/types/utils/state.d.ts.map +1 -1
- package/types/utils/utils.d.ts +2 -2
- package/types/utils/utils.d.ts.map +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createDebugger } from "@vxrn/debug";
|
|
2
|
-
import
|
|
2
|
+
import { realpath } from "node:fs/promises";
|
|
3
3
|
import path, { dirname, extname, join, sep } from "node:path";
|
|
4
|
+
import { pathExists, readJSON } from "./fs.mjs";
|
|
4
5
|
|
|
5
6
|
const { debug, debugDetails } = createDebugger(`vxrn:scanDepsToOptimize`);
|
|
6
7
|
function isPrebundleableEntry(file) {
|
|
@@ -78,9 +79,9 @@ const INCLUDE_LIST = [
|
|
|
78
79
|
const INCLUDE_LIST_SET = new Set(INCLUDE_LIST);
|
|
79
80
|
async function scanDepsToOptimize(packageJsonPath, options = {}) {
|
|
80
81
|
return scanDeps(packageJsonPath, options, {
|
|
81
|
-
pathExists: memoizeRead((file) =>
|
|
82
|
-
realpath: memoizeRead((file) =>
|
|
83
|
-
readJson: memoizeRead((file) =>
|
|
82
|
+
pathExists: memoizeRead((file) => pathExists(file)),
|
|
83
|
+
realpath: memoizeRead((file) => realpath(file)),
|
|
84
|
+
readJson: memoizeRead((file) => readJSON(file))
|
|
84
85
|
});
|
|
85
86
|
}
|
|
86
87
|
function memoizeRead(read) {
|
|
@@ -213,10 +214,10 @@ async function scanDeps(packageJsonPath, options, fs) {
|
|
|
213
214
|
hasNativewind
|
|
214
215
|
};
|
|
215
216
|
}
|
|
216
|
-
async function checkIfExportExists(pathIn,
|
|
217
|
+
async function checkIfExportExists(pathIn, pathExists2) {
|
|
217
218
|
const paths = [pathIn, ...extname(pathIn) ? [] : [pathIn + ".js", pathIn + sep + "index.js"]];
|
|
218
219
|
for (const path2 of paths) {
|
|
219
|
-
if (await
|
|
220
|
+
if (await pathExists2(path2)) {
|
|
220
221
|
return true;
|
|
221
222
|
}
|
|
222
223
|
}
|
|
@@ -230,11 +231,11 @@ async function readPackageJsonSafe(packageJsonPath, readJson) {
|
|
|
230
231
|
return {};
|
|
231
232
|
}
|
|
232
233
|
}
|
|
233
|
-
async function resolveDepPkgJsonPath(dep, dependent,
|
|
234
|
+
async function resolveDepPkgJsonPath(dep, dependent, pathExists2) {
|
|
234
235
|
let root = dependent;
|
|
235
236
|
while (root) {
|
|
236
237
|
const possiblePkgJson = path.join(root, "node_modules", dep, "package.json");
|
|
237
|
-
if (await
|
|
238
|
+
if (await pathExists2(possiblePkgJson)) {
|
|
238
239
|
return possiblePkgJson;
|
|
239
240
|
}
|
|
240
241
|
const nextRoot = path.dirname(root);
|
|
@@ -243,10 +244,10 @@ async function resolveDepPkgJsonPath(dep, dependent, pathExists) {
|
|
|
243
244
|
}
|
|
244
245
|
}
|
|
245
246
|
async function findDepPkgJsonPath(dep, dependent) {
|
|
246
|
-
return findDepPkgJsonPathWithFs(dep, dependent, (file) =>
|
|
247
|
+
return findDepPkgJsonPathWithFs(dep, dependent, (file) => pathExists(file));
|
|
247
248
|
}
|
|
248
|
-
async function findDepPkgJsonPathWithFs(dep, dependent,
|
|
249
|
-
const found = await resolveDepPkgJsonPath(dep, dependent,
|
|
249
|
+
async function findDepPkgJsonPathWithFs(dep, dependent, pathExists2) {
|
|
250
|
+
const found = await resolveDepPkgJsonPath(dep, dependent, pathExists2);
|
|
250
251
|
if (found) return found;
|
|
251
252
|
console.error(`[findDepPkgJsonPath] Could not find package.json for ${dep}, which is a dependency of ${dependent}`);
|
|
252
253
|
return void 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanDepsToOptimize.js","names":[],"sources":["utils/scanDepsToOptimize.js"],"sourcesContent":["import { createDebugger } from \"@vxrn/debug\";\nimport FSExtra from \"fs-extra\";\nimport path, { dirname, extname, join, sep } from \"node:path\";\nconst { debug, debugDetails } = createDebugger(`vxrn:scanDepsToOptimize`);\nfunction isPrebundleableEntry(file) {\n return !/\\.d\\.[cm]?ts$/i.test(file) && (!extname(file) || /\\.[cm]?[jt]s$/.test(file));\n}\nfunction getExportsMap(exports) {\n if (typeof exports === \"string\") return { \".\": exports };\n if (!exports || typeof exports !== \"object\" || Array.isArray(exports)) return {};\n return Object.keys(exports).some((k) => k.startsWith(\".\")) ? exports : { \".\": exports };\n}\nfunction getExportImport(target) {\n return typeof target === \"string\" ? target : target?.import;\n}\nconst EXCLUDE_LIST = [\n \"jsc-android\",\n \"react-shallow-renderer\",\n \"fsevents\",\n \"@swc/core\",\n \"@swc/core-darwin-arm64\",\n \"@swc/core-darwin-x64\",\n \"@swc/core-linux-arm-gnueabihf\",\n \"@swc/core-linux-arm64-gnu\",\n \"@swc/core-linux-arm64-musl\",\n \"@swc/core-linux-x64-gnu\",\n \"@swc/core-linux-x64-musl\",\n \"@swc/core-win32-arm64-msvc\",\n \"@swc/core-win32-ia32-msvc\",\n \"@swc/core-win32-x64-msvc\",\n \"lightningcss\",\n // this breaks fileToUrlPath in upstreams, like @discordjs/client\n \"url\",\n \"sharp\",\n \"@sentry/react-native\",\n // not used by web anyway\n // Could not read from file: /Users/n8/one/node_modules/react-native-web/dist/cjs/index.js/Libraries/Image/AssetRegistry\n // /lib/module/Platform/Platform.web.js:132:20\n \"@shopify/react-native-skia\",\n \"@react-native/virtualized-lists\",\n // Unexpected \"typeof\" in `node_modules/@react-native/virtualized-lists/index.js`\n // Native only, we don't expect SSR to use these packages.\n // Also, some of these packages might attempt to import from react-native internals, which will break in SSR while react-native is aliased to react-native-web.\n \"@vxrn/vite-native-hmr\",\n \"@vxrn/compiler\",\n \"@vxrn/vite-native-client\",\n // build-time only, and they load native .node addons the ssr dep optimizer\n // cannot parse. apps list vxrn as a dependency because it is their dev\n // server, which is exactly why it must never be pre-bundled for ssr.\n \"vxrn\",\n \"@vxrn/vite-plugin-metro\",\n \"oxc-transform\",\n \"oxc-parser\",\n \"react-native-ios-utilities\",\n \"react-native-ios-modal\",\n \"react-native-ios-context-menu\",\n \"react-native-haptic-feedback\",\n \"react-native-sortables\",\n \"react-native-image-colors\",\n \"react-native-fast-image\",\n \"react-native-fast-squircle\",\n \"react-native-device-info\",\n // CLI/scripts shouldn't be used in SSR runtime\n \"@tamagui/cli\",\n // only used by static/plugin\n \"@tamagui/static\",\n \"@tamagui/config-default\",\n \"@tamagui/vite-plugin\",\n \"@take-out/scripts\",\n \"@take-out/cli\",\n // Should be used on native only\n \"@tamagui/core/native-test\",\n \"@storybook/react\",\n // native-only or not needed in SSR\n \"@nandorojo/galeria\",\n \"react-native-pager-view\",\n \"@react-native/debugger-shell\",\n // expo's debugger is a standalone app, not an SSR runtime dependency.\n \"@expo/cli\",\n \"@expo/log-box\",\n \"@hot-updater/react-native\",\n \"@hot-updater/plugin-core\",\n \"validator\",\n \"zlib\"\n];\nconst EXCLUDE_LIST_SET = new Set(EXCLUDE_LIST);\nconst INCLUDE_LIST = [\n // ReferenceError: exports is not defined - at eval (.../node_modules/inline-style-prefixer/lib/createPrefixer.js:3:23)\n \"inline-style-prefixer\",\n \"react-native-vector-icons\",\n \"jotai\"\n];\nconst INCLUDE_LIST_SET = new Set(INCLUDE_LIST);\nasync function scanDepsToOptimize(packageJsonPath, options = {}) {\n return scanDeps(packageJsonPath, options, {\n pathExists: memoizeRead((file) => FSExtra.pathExists(file)),\n realpath: memoizeRead((file) => FSExtra.realpath(file)),\n readJson: memoizeRead((file) => FSExtra.readJson(file))\n });\n}\nfunction memoizeRead(read) {\n const pending = /* @__PURE__ */ new Map();\n return (file) => {\n const key = path.resolve(file);\n let result = pending.get(key);\n if (!result) {\n result = read(key);\n pending.set(key, result);\n }\n return result;\n };\n}\nasync function scanDeps(packageJsonPath, options, fs) {\n const { parentDepNames = [], proceededDeps = /* @__PURE__ */ new Map(), pkgJsonContent } = options;\n const isRoot = !options.parentDepNames;\n if (isRoot) {\n console.info(`[one] Scanning node_modules to auto-optimize...`);\n }\n const noExternalDeps = /* @__PURE__ */ new Set();\n const currentRoot = path.dirname(packageJsonPath);\n const pkgJson = pkgJsonContent || await readPackageJsonSafe(packageJsonPath, fs.readJson);\n const deps = Object.keys(pkgJson.dependencies || {});\n const needsWorklets = (json) => !!(json.dependencies?.[\"react-native-reanimated\"] || json.dependencies?.[\"react-native-worklets\"]);\n let hasReanimated = isRoot ? (await Promise.all(\n [\"react-native-reanimated\", \"react-native-worklets\"].map(\n (dep) => resolveDepPkgJsonPath(dep, currentRoot, fs.pathExists)\n )\n )).some(Boolean) : needsWorklets(pkgJson);\n const prebundleDeps = (await Promise.all(\n deps.map(async (dep) => {\n if (parentDepNames.includes(dep)) {\n return [];\n }\n const cachedResult = proceededDeps.get(dep);\n if (cachedResult) {\n return cachedResult;\n }\n if (EXCLUDE_LIST_SET.has(dep)) {\n return [];\n }\n const localPath = await findDepPkgJsonPathWithFs(dep, currentRoot, fs.pathExists);\n if (!localPath) return [];\n const depPkgJsonPath = await fs.realpath(localPath);\n if (options.filter && !options.filter(depPkgJsonPath)) {\n return [];\n }\n const depPkgJson = await readPackageJsonSafe(depPkgJsonPath, fs.readJson);\n if (needsWorklets(depPkgJson)) {\n hasReanimated = true;\n }\n if (depPkgJson.codegenConfig != null) {\n noExternalDeps.add(dep);\n debug?.(`${dep} skipped: declares codegenConfig (native codegen package)`);\n return [];\n }\n const subDeps = await scanDeps(\n depPkgJsonPath,\n {\n parentDepNames: [...parentDepNames, dep],\n pkgJsonContent: depPkgJson,\n proceededDeps\n },\n fs\n );\n for (const dep2 of subDeps.noExternalDeps) noExternalDeps.add(dep2);\n if (subDeps.hasReanimated) {\n hasReanimated = true;\n }\n const shouldPreBundle = subDeps.prebundleDeps.length > 0 || INCLUDE_LIST_SET.has(\n dep\n ) || hasRequiredDep(depPkgJson, \"react\") || // an optional react peer still means the package ships react\n // entrypoints (e.g. better-auth/react). left external, those load a\n // second react copy in SSR and crash hooks with a null dispatcher.\n !!depPkgJson.peerDependencies?.react || hasRequiredDep(depPkgJson, \"react-native\") || hasRequiredDep(depPkgJson, \"expo-modules-core\") || // expo packages publish extensionless ESM imports that Node cannot\n // execute directly. Keep installed Expo modules inside Vite's SSR\n // graph without making Expo a framework dependency.\n dep.startsWith(\"@expo/\") || dep.startsWith(\"expo-\");\n debug?.(`${dep} shouldPreBundle? ${shouldPreBundle}`);\n const depsToPreBundle = await (async () => {\n if (!shouldPreBundle) {\n return [];\n }\n const depPkgJsonExports = getExportsMap(depPkgJson.exports);\n const definedExports = Object.keys(depPkgJsonExports).filter((k) => {\n const imp = getExportImport(depPkgJsonExports[k]);\n if (typeof imp !== \"string\") {\n return false;\n }\n if (!isPrebundleableEntry(imp)) {\n return false;\n }\n if (!k.match(/^(\\.\\/)?[a-zA-Z0-9-_]+$/)) {\n return false;\n }\n return true;\n }).map((k) => k.replace(/^\\.\\/?/, \"\")).map((k) => `${dep}/${k}`);\n const specialExports = (() => {\n switch (dep) {\n case \"react-native-vector-icons\":\n return [\n \"AntDesign\",\n \"Entypo\",\n \"EvilIcons\",\n \"Feather\",\n \"FontAwesome\",\n \"FontAwesome5\",\n \"FontAwesome5Pro\",\n \"Fontisto\",\n \"Foundation\",\n \"Ionicons\",\n \"MaterialCommunityIcons\",\n \"MaterialIcons\",\n \"Octicons\",\n \"SimpleLineIcons\",\n \"Zocial\"\n ].map((n) => `${dep}/${n}`);\n default:\n return [];\n }\n })();\n const mainExport = [\n depPkgJson[\"main\"],\n depPkgJson[\"module\"],\n getExportImport(depPkgJsonExports[\".\"])\n ].find(\n (entry) => typeof entry === \"string\" && entry && isPrebundleableEntry(entry)\n );\n const exports = [...definedExports, ...specialExports].filter(\n (d) => !EXCLUDE_LIST_SET.has(d)\n );\n if (mainExport) {\n if (await checkIfExportExists(\n join(dirname(depPkgJsonPath), mainExport),\n fs.pathExists\n )) {\n exports.unshift(dep);\n }\n }\n return exports;\n })();\n const result = [...depsToPreBundle, ...subDeps.prebundleDeps];\n debugDetails?.(`final result ${JSON.stringify(result, null, 2)}`);\n proceededDeps.set(dep, result);\n return result;\n })\n )).flat().filter((dep, index, arr) => arr.indexOf(dep) === index);\n const hasNativewind = !!pkgJson.dependencies?.[\"nativewind\"];\n if ((hasNativewind || hasReanimated) && isRoot) {\n if (hasReanimated)\n console.info(\n `[one] Enabled babel plugins: ${[hasReanimated ? \"Reanimated\" : \"\", hasNativewind ? \"Nativewind\" : \"\"].filter(Boolean).join(\", \")}`\n );\n }\n return {\n prebundleDeps,\n noExternalDeps: [...noExternalDeps],\n hasReanimated,\n // only check if set in root, dont want to enable css mode too easily\n hasNativewind\n };\n}\nasync function checkIfExportExists(pathIn, pathExists) {\n const paths = [\n pathIn,\n ...extname(pathIn) ? [] : [pathIn + \".js\", pathIn + sep + \"index.js\"]\n ];\n for (const path2 of paths) {\n if (await pathExists(path2)) {\n return true;\n }\n }\n return false;\n}\nasync function readPackageJsonSafe(packageJsonPath, readJson) {\n try {\n return await readJson(packageJsonPath);\n } catch (e) {\n console.error(\n `[scanDepsToPreBundleForSsr] Error reading package.json from ${packageJsonPath}: ${e}`\n );\n return {};\n }\n}\nasync function resolveDepPkgJsonPath(dep, dependent, pathExists) {\n let root = dependent;\n while (root) {\n const possiblePkgJson = path.join(root, \"node_modules\", dep, \"package.json\");\n if (await pathExists(possiblePkgJson)) {\n return possiblePkgJson;\n }\n const nextRoot = path.dirname(root);\n if (nextRoot === root) break;\n root = nextRoot;\n }\n}\nasync function findDepPkgJsonPath(dep, dependent) {\n return findDepPkgJsonPathWithFs(dep, dependent, (file) => FSExtra.pathExists(file));\n}\nasync function findDepPkgJsonPathWithFs(dep, dependent, pathExists) {\n const found = await resolveDepPkgJsonPath(dep, dependent, pathExists);\n if (found) return found;\n console.error(\n `[findDepPkgJsonPath] Could not find package.json for ${dep}, which is a dependency of ${dependent}`\n );\n return void 0;\n}\nfunction hasRequiredDep(pkgJson, depName) {\n return !!(pkgJson.dependencies?.[depName] || pkgJson.peerDependencies?.[depName] && !pkgJson.peerDependenciesMeta?.[depName]?.optional);\n}\nexport {\n EXCLUDE_LIST,\n EXCLUDE_LIST_SET,\n INCLUDE_LIST,\n INCLUDE_LIST_SET,\n findDepPkgJsonPath,\n scanDepsToOptimize\n};\n//# sourceMappingURL=scanDepsToOptimize.js.map\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scanDepsToOptimize.js","names":[],"sources":["utils/scanDepsToOptimize.js"],"sourcesContent":["import { createDebugger } from \"@vxrn/debug\";\nimport { realpath } from \"node:fs/promises\";\nimport path, { dirname, extname, join, sep } from \"node:path\";\nimport { pathExists, readJSON } from \"./fs\";\nconst { debug, debugDetails } = createDebugger(`vxrn:scanDepsToOptimize`);\nfunction isPrebundleableEntry(file) {\n return !/\\.d\\.[cm]?ts$/i.test(file) && (!extname(file) || /\\.[cm]?[jt]s$/.test(file));\n}\nfunction getExportsMap(exports) {\n if (typeof exports === \"string\") return { \".\": exports };\n if (!exports || typeof exports !== \"object\" || Array.isArray(exports)) return {};\n return Object.keys(exports).some((k) => k.startsWith(\".\")) ? exports : { \".\": exports };\n}\nfunction getExportImport(target) {\n return typeof target === \"string\" ? target : target?.import;\n}\nconst EXCLUDE_LIST = [\n \"jsc-android\",\n \"react-shallow-renderer\",\n \"fsevents\",\n \"@swc/core\",\n \"@swc/core-darwin-arm64\",\n \"@swc/core-darwin-x64\",\n \"@swc/core-linux-arm-gnueabihf\",\n \"@swc/core-linux-arm64-gnu\",\n \"@swc/core-linux-arm64-musl\",\n \"@swc/core-linux-x64-gnu\",\n \"@swc/core-linux-x64-musl\",\n \"@swc/core-win32-arm64-msvc\",\n \"@swc/core-win32-ia32-msvc\",\n \"@swc/core-win32-x64-msvc\",\n \"lightningcss\",\n // this breaks fileToUrlPath in upstreams, like @discordjs/client\n \"url\",\n \"sharp\",\n \"@sentry/react-native\",\n // not used by web anyway\n // Could not read from file: /Users/n8/one/node_modules/react-native-web/dist/cjs/index.js/Libraries/Image/AssetRegistry\n // /lib/module/Platform/Platform.web.js:132:20\n \"@shopify/react-native-skia\",\n \"@react-native/virtualized-lists\",\n // Unexpected \"typeof\" in `node_modules/@react-native/virtualized-lists/index.js`\n // Native only, we don't expect SSR to use these packages.\n // Also, some of these packages might attempt to import from react-native internals, which will break in SSR while react-native is aliased to react-native-web.\n \"@vxrn/vite-native-hmr\",\n \"@vxrn/compiler\",\n \"@vxrn/vite-native-client\",\n // build-time only, and they load native .node addons the ssr dep optimizer\n // cannot parse. apps list vxrn as a dependency because it is their dev\n // server, which is exactly why it must never be pre-bundled for ssr.\n \"vxrn\",\n \"@vxrn/vite-plugin-metro\",\n \"oxc-transform\",\n \"oxc-parser\",\n \"react-native-ios-utilities\",\n \"react-native-ios-modal\",\n \"react-native-ios-context-menu\",\n \"react-native-haptic-feedback\",\n \"react-native-sortables\",\n \"react-native-image-colors\",\n \"react-native-fast-image\",\n \"react-native-fast-squircle\",\n \"react-native-device-info\",\n // CLI/scripts shouldn't be used in SSR runtime\n \"@tamagui/cli\",\n // only used by static/plugin\n \"@tamagui/static\",\n \"@tamagui/config-default\",\n \"@tamagui/vite-plugin\",\n \"@take-out/scripts\",\n \"@take-out/cli\",\n // Should be used on native only\n \"@tamagui/core/native-test\",\n \"@storybook/react\",\n // native-only or not needed in SSR\n \"@nandorojo/galeria\",\n \"react-native-pager-view\",\n \"@react-native/debugger-shell\",\n // expo's debugger is a standalone app, not an SSR runtime dependency.\n \"@expo/cli\",\n \"@expo/log-box\",\n \"@hot-updater/react-native\",\n \"@hot-updater/plugin-core\",\n \"validator\",\n \"zlib\"\n];\nconst EXCLUDE_LIST_SET = new Set(EXCLUDE_LIST);\nconst INCLUDE_LIST = [\n // ReferenceError: exports is not defined - at eval (.../node_modules/inline-style-prefixer/lib/createPrefixer.js:3:23)\n \"inline-style-prefixer\",\n \"react-native-vector-icons\",\n \"jotai\"\n];\nconst INCLUDE_LIST_SET = new Set(INCLUDE_LIST);\nasync function scanDepsToOptimize(packageJsonPath, options = {}) {\n return scanDeps(packageJsonPath, options, {\n pathExists: memoizeRead((file) => pathExists(file)),\n realpath: memoizeRead((file) => realpath(file)),\n readJson: memoizeRead((file) => readJSON(file))\n });\n}\nfunction memoizeRead(read) {\n const pending = /* @__PURE__ */ new Map();\n return (file) => {\n const key = path.resolve(file);\n let result = pending.get(key);\n if (!result) {\n result = read(key);\n pending.set(key, result);\n }\n return result;\n };\n}\nasync function scanDeps(packageJsonPath, options, fs) {\n const { parentDepNames = [], proceededDeps = /* @__PURE__ */ new Map(), pkgJsonContent } = options;\n const isRoot = !options.parentDepNames;\n if (isRoot) {\n console.info(`[one] Scanning node_modules to auto-optimize...`);\n }\n const noExternalDeps = /* @__PURE__ */ new Set();\n const currentRoot = path.dirname(packageJsonPath);\n const pkgJson = pkgJsonContent || await readPackageJsonSafe(packageJsonPath, fs.readJson);\n const deps = Object.keys(pkgJson.dependencies || {});\n const needsWorklets = (json) => !!(json.dependencies?.[\"react-native-reanimated\"] || json.dependencies?.[\"react-native-worklets\"]);\n let hasReanimated = isRoot ? (await Promise.all(\n [\"react-native-reanimated\", \"react-native-worklets\"].map(\n (dep) => resolveDepPkgJsonPath(dep, currentRoot, fs.pathExists)\n )\n )).some(Boolean) : needsWorklets(pkgJson);\n const prebundleDeps = (await Promise.all(\n deps.map(async (dep) => {\n if (parentDepNames.includes(dep)) {\n return [];\n }\n const cachedResult = proceededDeps.get(dep);\n if (cachedResult) {\n return cachedResult;\n }\n if (EXCLUDE_LIST_SET.has(dep)) {\n return [];\n }\n const localPath = await findDepPkgJsonPathWithFs(dep, currentRoot, fs.pathExists);\n if (!localPath) return [];\n const depPkgJsonPath = await fs.realpath(localPath);\n if (options.filter && !options.filter(depPkgJsonPath)) {\n return [];\n }\n const depPkgJson = await readPackageJsonSafe(depPkgJsonPath, fs.readJson);\n if (needsWorklets(depPkgJson)) {\n hasReanimated = true;\n }\n if (depPkgJson.codegenConfig != null) {\n noExternalDeps.add(dep);\n debug?.(`${dep} skipped: declares codegenConfig (native codegen package)`);\n return [];\n }\n const subDeps = await scanDeps(\n depPkgJsonPath,\n {\n parentDepNames: [...parentDepNames, dep],\n pkgJsonContent: depPkgJson,\n proceededDeps\n },\n fs\n );\n for (const dep2 of subDeps.noExternalDeps) noExternalDeps.add(dep2);\n if (subDeps.hasReanimated) {\n hasReanimated = true;\n }\n const shouldPreBundle = subDeps.prebundleDeps.length > 0 || INCLUDE_LIST_SET.has(\n dep\n ) || hasRequiredDep(depPkgJson, \"react\") || // an optional react peer still means the package ships react\n // entrypoints (e.g. better-auth/react). left external, those load a\n // second react copy in SSR and crash hooks with a null dispatcher.\n !!depPkgJson.peerDependencies?.react || hasRequiredDep(depPkgJson, \"react-native\") || hasRequiredDep(depPkgJson, \"expo-modules-core\") || // expo packages publish extensionless ESM imports that Node cannot\n // execute directly. Keep installed Expo modules inside Vite's SSR\n // graph without making Expo a framework dependency.\n dep.startsWith(\"@expo/\") || dep.startsWith(\"expo-\");\n debug?.(`${dep} shouldPreBundle? ${shouldPreBundle}`);\n const depsToPreBundle = await (async () => {\n if (!shouldPreBundle) {\n return [];\n }\n const depPkgJsonExports = getExportsMap(depPkgJson.exports);\n const definedExports = Object.keys(depPkgJsonExports).filter((k) => {\n const imp = getExportImport(depPkgJsonExports[k]);\n if (typeof imp !== \"string\") {\n return false;\n }\n if (!isPrebundleableEntry(imp)) {\n return false;\n }\n if (!k.match(/^(\\.\\/)?[a-zA-Z0-9-_]+$/)) {\n return false;\n }\n return true;\n }).map((k) => k.replace(/^\\.\\/?/, \"\")).map((k) => `${dep}/${k}`);\n const specialExports = (() => {\n switch (dep) {\n case \"react-native-vector-icons\":\n return [\n \"AntDesign\",\n \"Entypo\",\n \"EvilIcons\",\n \"Feather\",\n \"FontAwesome\",\n \"FontAwesome5\",\n \"FontAwesome5Pro\",\n \"Fontisto\",\n \"Foundation\",\n \"Ionicons\",\n \"MaterialCommunityIcons\",\n \"MaterialIcons\",\n \"Octicons\",\n \"SimpleLineIcons\",\n \"Zocial\"\n ].map((n) => `${dep}/${n}`);\n default:\n return [];\n }\n })();\n const mainExport = [\n depPkgJson[\"main\"],\n depPkgJson[\"module\"],\n getExportImport(depPkgJsonExports[\".\"])\n ].find(\n (entry) => typeof entry === \"string\" && entry && isPrebundleableEntry(entry)\n );\n const exports = [...definedExports, ...specialExports].filter(\n (d) => !EXCLUDE_LIST_SET.has(d)\n );\n if (mainExport) {\n if (await checkIfExportExists(\n join(dirname(depPkgJsonPath), mainExport),\n fs.pathExists\n )) {\n exports.unshift(dep);\n }\n }\n return exports;\n })();\n const result = [...depsToPreBundle, ...subDeps.prebundleDeps];\n debugDetails?.(`final result ${JSON.stringify(result, null, 2)}`);\n proceededDeps.set(dep, result);\n return result;\n })\n )).flat().filter((dep, index, arr) => arr.indexOf(dep) === index);\n const hasNativewind = !!pkgJson.dependencies?.[\"nativewind\"];\n if ((hasNativewind || hasReanimated) && isRoot) {\n if (hasReanimated)\n console.info(\n `[one] Enabled babel plugins: ${[hasReanimated ? \"Reanimated\" : \"\", hasNativewind ? \"Nativewind\" : \"\"].filter(Boolean).join(\", \")}`\n );\n }\n return {\n prebundleDeps,\n noExternalDeps: [...noExternalDeps],\n hasReanimated,\n // only check if set in root, dont want to enable css mode too easily\n hasNativewind\n };\n}\nasync function checkIfExportExists(pathIn, pathExists2) {\n const paths = [\n pathIn,\n ...extname(pathIn) ? [] : [pathIn + \".js\", pathIn + sep + \"index.js\"]\n ];\n for (const path2 of paths) {\n if (await pathExists2(path2)) {\n return true;\n }\n }\n return false;\n}\nasync function readPackageJsonSafe(packageJsonPath, readJson) {\n try {\n return await readJson(packageJsonPath);\n } catch (e) {\n console.error(\n `[scanDepsToPreBundleForSsr] Error reading package.json from ${packageJsonPath}: ${e}`\n );\n return {};\n }\n}\nasync function resolveDepPkgJsonPath(dep, dependent, pathExists2) {\n let root = dependent;\n while (root) {\n const possiblePkgJson = path.join(root, \"node_modules\", dep, \"package.json\");\n if (await pathExists2(possiblePkgJson)) {\n return possiblePkgJson;\n }\n const nextRoot = path.dirname(root);\n if (nextRoot === root) break;\n root = nextRoot;\n }\n}\nasync function findDepPkgJsonPath(dep, dependent) {\n return findDepPkgJsonPathWithFs(dep, dependent, (file) => pathExists(file));\n}\nasync function findDepPkgJsonPathWithFs(dep, dependent, pathExists2) {\n const found = await resolveDepPkgJsonPath(dep, dependent, pathExists2);\n if (found) return found;\n console.error(\n `[findDepPkgJsonPath] Could not find package.json for ${dep}, which is a dependency of ${dependent}`\n );\n return void 0;\n}\nfunction hasRequiredDep(pkgJson, depName) {\n return !!(pkgJson.dependencies?.[depName] || pkgJson.peerDependencies?.[depName] && !pkgJson.peerDependenciesMeta?.[depName]?.optional);\n}\nexport {\n EXCLUDE_LIST,\n EXCLUDE_LIST_SET,\n INCLUDE_LIST,\n INCLUDE_LIST_SET,\n findDepPkgJsonPath,\n scanDepsToOptimize\n};\n//# sourceMappingURL=scanDepsToOptimize.js.map\n"],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createDebugger } from "@vxrn/debug";
|
|
2
|
-
import
|
|
2
|
+
import { realpath } from "fs/promises";
|
|
3
3
|
import path, { dirname, extname, join, sep } from "path";
|
|
4
|
+
import { pathExists, readJSON } from "./fs.native.js";
|
|
4
5
|
|
|
5
6
|
var { debug, debugDetails } = createDebugger(`vxrn:scanDepsToOptimize`);
|
|
6
7
|
function isPrebundleableEntry(file) {
|
|
@@ -84,13 +85,13 @@ async function scanDepsToOptimize(packageJsonPath) {
|
|
|
84
85
|
{};
|
|
85
86
|
return scanDeps(packageJsonPath, options, {
|
|
86
87
|
pathExists: memoizeRead(function(file) {
|
|
87
|
-
return
|
|
88
|
+
return pathExists(file);
|
|
88
89
|
}),
|
|
89
90
|
realpath: memoizeRead(function(file) {
|
|
90
|
-
return
|
|
91
|
+
return realpath(file);
|
|
91
92
|
}),
|
|
92
93
|
readJson: memoizeRead(function(file) {
|
|
93
|
-
return
|
|
94
|
+
return readJSON(file);
|
|
94
95
|
})
|
|
95
96
|
});
|
|
96
97
|
}
|
|
@@ -262,13 +263,13 @@ async function scanDeps(packageJsonPath, options, fs) {
|
|
|
262
263
|
hasNativewind
|
|
263
264
|
};
|
|
264
265
|
}
|
|
265
|
-
async function checkIfExportExists(pathIn,
|
|
266
|
+
async function checkIfExportExists(pathIn, pathExists2) {
|
|
266
267
|
var paths = [pathIn, ...extname(pathIn) ? [] : [pathIn + ".js", pathIn + sep + "index.js"]];
|
|
267
268
|
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
|
|
268
269
|
try {
|
|
269
270
|
for (var _iterator = paths[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
270
271
|
var path2 = _step.value;
|
|
271
|
-
if (await
|
|
272
|
+
if (await pathExists2(path2)) {
|
|
272
273
|
return true;
|
|
273
274
|
}
|
|
274
275
|
}
|
|
@@ -296,11 +297,11 @@ async function readPackageJsonSafe(packageJsonPath, readJson) {
|
|
|
296
297
|
return {};
|
|
297
298
|
}
|
|
298
299
|
}
|
|
299
|
-
async function resolveDepPkgJsonPath(dep, dependent,
|
|
300
|
+
async function resolveDepPkgJsonPath(dep, dependent, pathExists2) {
|
|
300
301
|
var root = dependent;
|
|
301
302
|
while (root) {
|
|
302
303
|
var possiblePkgJson = path.join(root, "node_modules", dep, "package.json");
|
|
303
|
-
if (await
|
|
304
|
+
if (await pathExists2(possiblePkgJson)) {
|
|
304
305
|
return possiblePkgJson;
|
|
305
306
|
}
|
|
306
307
|
var nextRoot = path.dirname(root);
|
|
@@ -310,11 +311,11 @@ async function resolveDepPkgJsonPath(dep, dependent, pathExists) {
|
|
|
310
311
|
}
|
|
311
312
|
async function findDepPkgJsonPath(dep, dependent) {
|
|
312
313
|
return findDepPkgJsonPathWithFs(dep, dependent, function(file) {
|
|
313
|
-
return
|
|
314
|
+
return pathExists(file);
|
|
314
315
|
});
|
|
315
316
|
}
|
|
316
|
-
async function findDepPkgJsonPathWithFs(dep, dependent,
|
|
317
|
-
var found = await resolveDepPkgJsonPath(dep, dependent,
|
|
317
|
+
async function findDepPkgJsonPathWithFs(dep, dependent, pathExists2) {
|
|
318
|
+
var found = await resolveDepPkgJsonPath(dep, dependent, pathExists2);
|
|
318
319
|
if (found) return found;
|
|
319
320
|
console.error(`[findDepPkgJsonPath] Could not find package.json for ${dep}, which is a dependency of ${dependent}`);
|
|
320
321
|
return void 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanDepsToOptimize.native.js","names":[],"sources":["utils/scanDepsToOptimize.native.js"],"sourcesContent":["import { createDebugger } from \"@vxrn/debug\";\nimport FSExtra from \"fs-extra\";\nimport path, { dirname, extname, join, sep } from \"path\";\nvar { debug, debugDetails } = createDebugger(`vxrn:scanDepsToOptimize`);\nfunction isPrebundleableEntry(file) {\n return !/\\.d\\.[cm]?ts$/i.test(file) && (!extname(file) || /\\.[cm]?[jt]s$/.test(file));\n}\nfunction getExportsMap(exports) {\n if (typeof exports === \"string\") return {\n \".\": exports\n };\n if (!exports || typeof exports !== \"object\" || Array.isArray(exports)) return {};\n return Object.keys(exports).some(function(k) {\n return k.startsWith(\".\");\n }) ? exports : {\n \".\": exports\n };\n}\nfunction getExportImport(target) {\n return typeof target === \"string\" ? target : target === null || target === void 0 ? void 0 : target.import;\n}\nvar EXCLUDE_LIST = [\n \"jsc-android\",\n \"react-shallow-renderer\",\n \"fsevents\",\n \"@swc/core\",\n \"@swc/core-darwin-arm64\",\n \"@swc/core-darwin-x64\",\n \"@swc/core-linux-arm-gnueabihf\",\n \"@swc/core-linux-arm64-gnu\",\n \"@swc/core-linux-arm64-musl\",\n \"@swc/core-linux-x64-gnu\",\n \"@swc/core-linux-x64-musl\",\n \"@swc/core-win32-arm64-msvc\",\n \"@swc/core-win32-ia32-msvc\",\n \"@swc/core-win32-x64-msvc\",\n \"lightningcss\",\n // this breaks fileToUrlPath in upstreams, like @discordjs/client\n \"url\",\n \"sharp\",\n \"@sentry/react-native\",\n // not used by web anyway\n // Could not read from file: /Users/n8/one/node_modules/react-native-web/dist/cjs/index.js/Libraries/Image/AssetRegistry\n // /lib/module/Platform/Platform.web.js:132:20\n \"@shopify/react-native-skia\",\n \"@react-native/virtualized-lists\",\n // Unexpected \"typeof\" in `node_modules/@react-native/virtualized-lists/index.js`\n // Native only, we don't expect SSR to use these packages.\n // Also, some of these packages might attempt to import from react-native internals, which will break in SSR while react-native is aliased to react-native-web.\n \"@vxrn/vite-native-hmr\",\n \"@vxrn/compiler\",\n \"@vxrn/vite-native-client\",\n // build-time only, and they load native .node addons the ssr dep optimizer\n // cannot parse. apps list vxrn as a dependency because it is their dev\n // server, which is exactly why it must never be pre-bundled for ssr.\n \"vxrn\",\n \"@vxrn/vite-plugin-metro\",\n \"oxc-transform\",\n \"oxc-parser\",\n \"react-native-ios-utilities\",\n \"react-native-ios-modal\",\n \"react-native-ios-context-menu\",\n \"react-native-haptic-feedback\",\n \"react-native-sortables\",\n \"react-native-image-colors\",\n \"react-native-fast-image\",\n \"react-native-fast-squircle\",\n \"react-native-device-info\",\n // CLI/scripts shouldn't be used in SSR runtime\n \"@tamagui/cli\",\n // only used by static/plugin\n \"@tamagui/static\",\n \"@tamagui/config-default\",\n \"@tamagui/vite-plugin\",\n \"@take-out/scripts\",\n \"@take-out/cli\",\n // Should be used on native only\n \"@tamagui/core/native-test\",\n \"@storybook/react\",\n // native-only or not needed in SSR\n \"@nandorojo/galeria\",\n \"react-native-pager-view\",\n \"@react-native/debugger-shell\",\n // expo's debugger is a standalone app, not an SSR runtime dependency.\n \"@expo/cli\",\n \"@expo/log-box\",\n \"@hot-updater/react-native\",\n \"@hot-updater/plugin-core\",\n \"validator\",\n \"zlib\"\n];\nvar EXCLUDE_LIST_SET = new Set(EXCLUDE_LIST);\nvar INCLUDE_LIST = [\n // ReferenceError: exports is not defined - at eval (.../node_modules/inline-style-prefixer/lib/createPrefixer.js:3:23)\n \"inline-style-prefixer\",\n \"react-native-vector-icons\",\n \"jotai\"\n];\nvar INCLUDE_LIST_SET = new Set(INCLUDE_LIST);\nasync function scanDepsToOptimize(packageJsonPath) {\n var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : (\n /** If the content of the package.json is already read before calling this function, pass it here to avoid reading it again */\n {}\n );\n return scanDeps(packageJsonPath, options, {\n pathExists: memoizeRead(function(file) {\n return FSExtra.pathExists(file);\n }),\n realpath: memoizeRead(function(file) {\n return FSExtra.realpath(file);\n }),\n readJson: memoizeRead(function(file) {\n return FSExtra.readJson(file);\n })\n });\n}\nfunction memoizeRead(read) {\n var pending = /* @__PURE__ */ new Map();\n return function(file) {\n var key = path.resolve(file);\n var result = pending.get(key);\n if (!result) {\n result = read(key);\n pending.set(key, result);\n }\n return result;\n };\n}\nasync function scanDeps(packageJsonPath, options, fs) {\n var _pkgJson_dependencies;\n var { parentDepNames = [], proceededDeps = /* @__PURE__ */ new Map(), pkgJsonContent } = options;\n var isRoot = !options.parentDepNames;\n if (isRoot) {\n console.info(`[one] Scanning node_modules to auto-optimize...`);\n }\n var noExternalDeps = /* @__PURE__ */ new Set();\n var currentRoot = path.dirname(packageJsonPath);\n var pkgJson = pkgJsonContent || await readPackageJsonSafe(packageJsonPath, fs.readJson);\n var deps = Object.keys(pkgJson.dependencies || {});\n var needsWorklets = function needsWorklets2(json) {\n var _json_dependencies, _json_dependencies1;\n return !!(((_json_dependencies = json.dependencies) === null || _json_dependencies === void 0 ? void 0 : _json_dependencies[\"react-native-reanimated\"]) || ((_json_dependencies1 = json.dependencies) === null || _json_dependencies1 === void 0 ? void 0 : _json_dependencies1[\"react-native-worklets\"]));\n };\n var hasReanimated = isRoot ? (await Promise.all([\n \"react-native-reanimated\",\n \"react-native-worklets\"\n ].map(function(dep) {\n return resolveDepPkgJsonPath(dep, currentRoot, fs.pathExists);\n }))).some(Boolean) : needsWorklets(pkgJson);\n var prebundleDeps = (await Promise.all(deps.map(async function(dep) {\n var _depPkgJson_peerDependencies;\n if (parentDepNames.includes(dep)) {\n return [];\n }\n var cachedResult = proceededDeps.get(dep);\n if (cachedResult) {\n return cachedResult;\n }\n if (EXCLUDE_LIST_SET.has(dep)) {\n return [];\n }\n var localPath = await findDepPkgJsonPathWithFs(dep, currentRoot, fs.pathExists);\n if (!localPath) return [];\n var depPkgJsonPath = await fs.realpath(localPath);\n if (options.filter && !options.filter(depPkgJsonPath)) {\n return [];\n }\n var depPkgJson = await readPackageJsonSafe(depPkgJsonPath, fs.readJson);\n if (needsWorklets(depPkgJson)) {\n hasReanimated = true;\n }\n if (depPkgJson.codegenConfig != null) {\n noExternalDeps.add(dep);\n debug === null || debug === void 0 ? void 0 : debug(`${dep} skipped: declares codegenConfig (native codegen package)`);\n return [];\n }\n var subDeps = await scanDeps(depPkgJsonPath, {\n parentDepNames: [\n ...parentDepNames,\n dep\n ],\n pkgJsonContent: depPkgJson,\n proceededDeps\n }, fs);\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = subDeps.noExternalDeps[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var _$dep = _step.value;\n noExternalDeps.add(_$dep);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n if (subDeps.hasReanimated) {\n hasReanimated = true;\n }\n var shouldPreBundle = subDeps.prebundleDeps.length > 0 || /* If this dep is depending on other deps that need pre-bundling, then also pre-bundle this dep */\n INCLUDE_LIST_SET.has(dep) || /* If this dep is in the include list, then pre-bundle it */\n hasRequiredDep(depPkgJson, \"react\") || // an optional react peer still means the package ships react\n // entrypoints (e.g. better-auth/react). left external, those load a\n // second react copy in SSR and crash hooks with a null dispatcher.\n !!((_depPkgJson_peerDependencies = depPkgJson.peerDependencies) === null || _depPkgJson_peerDependencies === void 0 ? void 0 : _depPkgJson_peerDependencies.react) || hasRequiredDep(depPkgJson, \"react-native\") || hasRequiredDep(depPkgJson, \"expo-modules-core\") || // expo packages publish extensionless ESM imports that Node cannot\n // execute directly. Keep installed Expo modules inside Vite's SSR\n // graph without making Expo a framework dependency.\n dep.startsWith(\"@expo/\") || dep.startsWith(\"expo-\");\n debug === null || debug === void 0 ? void 0 : debug(`${dep} shouldPreBundle? ${shouldPreBundle}`);\n var depsToPreBundle = await (async function() {\n if (!shouldPreBundle) {\n return [];\n }\n var depPkgJsonExports = getExportsMap(depPkgJson.exports);\n var definedExports = Object.keys(depPkgJsonExports).filter(function(k) {\n var imp = getExportImport(depPkgJsonExports[k]);\n if (typeof imp !== \"string\") {\n return false;\n }\n if (!isPrebundleableEntry(imp)) {\n return false;\n }\n if (!k.match(/^(\\.\\/)?[a-zA-Z0-9-_]+$/)) {\n return false;\n }\n return true;\n }).map(function(k) {\n return k.replace(/^\\.\\/?/, \"\");\n }).map(function(k) {\n return `${dep}/${k}`;\n });\n var specialExports = (function() {\n switch (dep) {\n case \"react-native-vector-icons\":\n return [\n \"AntDesign\",\n \"Entypo\",\n \"EvilIcons\",\n \"Feather\",\n \"FontAwesome\",\n \"FontAwesome5\",\n \"FontAwesome5Pro\",\n \"Fontisto\",\n \"Foundation\",\n \"Ionicons\",\n \"MaterialCommunityIcons\",\n \"MaterialIcons\",\n \"Octicons\",\n \"SimpleLineIcons\",\n \"Zocial\"\n ].map(function(n) {\n return `${dep}/${n}`;\n });\n default:\n return [];\n }\n })();\n var mainExport = [\n depPkgJson[\"main\"],\n depPkgJson[\"module\"],\n getExportImport(depPkgJsonExports[\".\"])\n ].find(function(entry) {\n return typeof entry === \"string\" && entry && isPrebundleableEntry(entry);\n });\n var exports = [\n ...definedExports,\n ...specialExports\n ].filter(function(d) {\n return !EXCLUDE_LIST_SET.has(d);\n });\n if (mainExport) {\n if (await checkIfExportExists(join(dirname(depPkgJsonPath), mainExport), fs.pathExists)) {\n exports.unshift(dep);\n }\n }\n return exports;\n })();\n var result = [\n ...depsToPreBundle,\n ...subDeps.prebundleDeps\n ];\n debugDetails === null || debugDetails === void 0 ? void 0 : debugDetails(`final result ${JSON.stringify(result, null, 2)}`);\n proceededDeps.set(dep, result);\n return result;\n }))).flat().filter(function(dep, index, arr) {\n return arr.indexOf(dep) === index;\n });\n var hasNativewind = !!((_pkgJson_dependencies = pkgJson.dependencies) === null || _pkgJson_dependencies === void 0 ? void 0 : _pkgJson_dependencies[\"nativewind\"]);\n if ((hasNativewind || hasReanimated) && isRoot) {\n if (hasReanimated) console.info(`[one] Enabled babel plugins: ${[\n hasReanimated ? \"Reanimated\" : \"\",\n hasNativewind ? \"Nativewind\" : \"\"\n ].filter(Boolean).join(\", \")}`);\n }\n return {\n prebundleDeps,\n noExternalDeps: [\n ...noExternalDeps\n ],\n hasReanimated,\n // only check if set in root, dont want to enable css mode too easily\n hasNativewind\n };\n}\nasync function checkIfExportExists(pathIn, pathExists) {\n var paths = [\n pathIn,\n ...extname(pathIn) ? [] : [\n pathIn + \".js\",\n pathIn + sep + \"index.js\"\n ]\n ];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = paths[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var path2 = _step.value;\n if (await pathExists(path2)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return false;\n}\nasync function readPackageJsonSafe(packageJsonPath, readJson) {\n try {\n return await readJson(packageJsonPath);\n } catch (e) {\n console.error(`[scanDepsToPreBundleForSsr] Error reading package.json from ${packageJsonPath}: ${e}`);\n return {};\n }\n}\nasync function resolveDepPkgJsonPath(dep, dependent, pathExists) {\n var root = dependent;\n while (root) {\n var possiblePkgJson = path.join(root, \"node_modules\", dep, \"package.json\");\n if (await pathExists(possiblePkgJson)) {\n return possiblePkgJson;\n }\n var nextRoot = path.dirname(root);\n if (nextRoot === root) break;\n root = nextRoot;\n }\n}\nasync function findDepPkgJsonPath(dep, dependent) {\n return findDepPkgJsonPathWithFs(dep, dependent, function(file) {\n return FSExtra.pathExists(file);\n });\n}\nasync function findDepPkgJsonPathWithFs(dep, dependent, pathExists) {\n var found = await resolveDepPkgJsonPath(dep, dependent, pathExists);\n if (found) return found;\n console.error(`[findDepPkgJsonPath] Could not find package.json for ${dep}, which is a dependency of ${dependent}`);\n return void 0;\n}\nfunction hasRequiredDep(pkgJson, depName) {\n var _pkgJson_dependencies, _pkgJson_peerDependencies, _pkgJson_peerDependenciesMeta_depName, _pkgJson_peerDependenciesMeta;\n return !!(((_pkgJson_dependencies = pkgJson.dependencies) === null || _pkgJson_dependencies === void 0 ? void 0 : _pkgJson_dependencies[depName]) || ((_pkgJson_peerDependencies = pkgJson.peerDependencies) === null || _pkgJson_peerDependencies === void 0 ? void 0 : _pkgJson_peerDependencies[depName]) && !((_pkgJson_peerDependenciesMeta = pkgJson.peerDependenciesMeta) === null || _pkgJson_peerDependenciesMeta === void 0 ? void 0 : (_pkgJson_peerDependenciesMeta_depName = _pkgJson_peerDependenciesMeta[depName]) === null || _pkgJson_peerDependenciesMeta_depName === void 0 ? void 0 : _pkgJson_peerDependenciesMeta_depName.optional));\n}\nexport {\n EXCLUDE_LIST,\n EXCLUDE_LIST_SET,\n INCLUDE_LIST,\n INCLUDE_LIST_SET,\n findDepPkgJsonPath,\n scanDepsToOptimize\n};\n//# sourceMappingURL=scanDepsToOptimize.js.map\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scanDepsToOptimize.native.js","names":[],"sources":["utils/scanDepsToOptimize.native.js"],"sourcesContent":["import { createDebugger } from \"@vxrn/debug\";\nimport { realpath } from \"fs/promises\";\nimport path, { dirname, extname, join, sep } from \"path\";\nimport { pathExists, readJSON } from \"./fs\";\nvar { debug, debugDetails } = createDebugger(`vxrn:scanDepsToOptimize`);\nfunction isPrebundleableEntry(file) {\n return !/\\.d\\.[cm]?ts$/i.test(file) && (!extname(file) || /\\.[cm]?[jt]s$/.test(file));\n}\nfunction getExportsMap(exports) {\n if (typeof exports === \"string\") return {\n \".\": exports\n };\n if (!exports || typeof exports !== \"object\" || Array.isArray(exports)) return {};\n return Object.keys(exports).some(function(k) {\n return k.startsWith(\".\");\n }) ? exports : {\n \".\": exports\n };\n}\nfunction getExportImport(target) {\n return typeof target === \"string\" ? target : target === null || target === void 0 ? void 0 : target.import;\n}\nvar EXCLUDE_LIST = [\n \"jsc-android\",\n \"react-shallow-renderer\",\n \"fsevents\",\n \"@swc/core\",\n \"@swc/core-darwin-arm64\",\n \"@swc/core-darwin-x64\",\n \"@swc/core-linux-arm-gnueabihf\",\n \"@swc/core-linux-arm64-gnu\",\n \"@swc/core-linux-arm64-musl\",\n \"@swc/core-linux-x64-gnu\",\n \"@swc/core-linux-x64-musl\",\n \"@swc/core-win32-arm64-msvc\",\n \"@swc/core-win32-ia32-msvc\",\n \"@swc/core-win32-x64-msvc\",\n \"lightningcss\",\n // this breaks fileToUrlPath in upstreams, like @discordjs/client\n \"url\",\n \"sharp\",\n \"@sentry/react-native\",\n // not used by web anyway\n // Could not read from file: /Users/n8/one/node_modules/react-native-web/dist/cjs/index.js/Libraries/Image/AssetRegistry\n // /lib/module/Platform/Platform.web.js:132:20\n \"@shopify/react-native-skia\",\n \"@react-native/virtualized-lists\",\n // Unexpected \"typeof\" in `node_modules/@react-native/virtualized-lists/index.js`\n // Native only, we don't expect SSR to use these packages.\n // Also, some of these packages might attempt to import from react-native internals, which will break in SSR while react-native is aliased to react-native-web.\n \"@vxrn/vite-native-hmr\",\n \"@vxrn/compiler\",\n \"@vxrn/vite-native-client\",\n // build-time only, and they load native .node addons the ssr dep optimizer\n // cannot parse. apps list vxrn as a dependency because it is their dev\n // server, which is exactly why it must never be pre-bundled for ssr.\n \"vxrn\",\n \"@vxrn/vite-plugin-metro\",\n \"oxc-transform\",\n \"oxc-parser\",\n \"react-native-ios-utilities\",\n \"react-native-ios-modal\",\n \"react-native-ios-context-menu\",\n \"react-native-haptic-feedback\",\n \"react-native-sortables\",\n \"react-native-image-colors\",\n \"react-native-fast-image\",\n \"react-native-fast-squircle\",\n \"react-native-device-info\",\n // CLI/scripts shouldn't be used in SSR runtime\n \"@tamagui/cli\",\n // only used by static/plugin\n \"@tamagui/static\",\n \"@tamagui/config-default\",\n \"@tamagui/vite-plugin\",\n \"@take-out/scripts\",\n \"@take-out/cli\",\n // Should be used on native only\n \"@tamagui/core/native-test\",\n \"@storybook/react\",\n // native-only or not needed in SSR\n \"@nandorojo/galeria\",\n \"react-native-pager-view\",\n \"@react-native/debugger-shell\",\n // expo's debugger is a standalone app, not an SSR runtime dependency.\n \"@expo/cli\",\n \"@expo/log-box\",\n \"@hot-updater/react-native\",\n \"@hot-updater/plugin-core\",\n \"validator\",\n \"zlib\"\n];\nvar EXCLUDE_LIST_SET = new Set(EXCLUDE_LIST);\nvar INCLUDE_LIST = [\n // ReferenceError: exports is not defined - at eval (.../node_modules/inline-style-prefixer/lib/createPrefixer.js:3:23)\n \"inline-style-prefixer\",\n \"react-native-vector-icons\",\n \"jotai\"\n];\nvar INCLUDE_LIST_SET = new Set(INCLUDE_LIST);\nasync function scanDepsToOptimize(packageJsonPath) {\n var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : (\n /** If the content of the package.json is already read before calling this function, pass it here to avoid reading it again */\n {}\n );\n return scanDeps(packageJsonPath, options, {\n pathExists: memoizeRead(function(file) {\n return pathExists(file);\n }),\n realpath: memoizeRead(function(file) {\n return realpath(file);\n }),\n readJson: memoizeRead(function(file) {\n return readJSON(file);\n })\n });\n}\nfunction memoizeRead(read) {\n var pending = /* @__PURE__ */ new Map();\n return function(file) {\n var key = path.resolve(file);\n var result = pending.get(key);\n if (!result) {\n result = read(key);\n pending.set(key, result);\n }\n return result;\n };\n}\nasync function scanDeps(packageJsonPath, options, fs) {\n var _pkgJson_dependencies;\n var { parentDepNames = [], proceededDeps = /* @__PURE__ */ new Map(), pkgJsonContent } = options;\n var isRoot = !options.parentDepNames;\n if (isRoot) {\n console.info(`[one] Scanning node_modules to auto-optimize...`);\n }\n var noExternalDeps = /* @__PURE__ */ new Set();\n var currentRoot = path.dirname(packageJsonPath);\n var pkgJson = pkgJsonContent || await readPackageJsonSafe(packageJsonPath, fs.readJson);\n var deps = Object.keys(pkgJson.dependencies || {});\n var needsWorklets = function needsWorklets2(json) {\n var _json_dependencies, _json_dependencies1;\n return !!(((_json_dependencies = json.dependencies) === null || _json_dependencies === void 0 ? void 0 : _json_dependencies[\"react-native-reanimated\"]) || ((_json_dependencies1 = json.dependencies) === null || _json_dependencies1 === void 0 ? void 0 : _json_dependencies1[\"react-native-worklets\"]));\n };\n var hasReanimated = isRoot ? (await Promise.all([\n \"react-native-reanimated\",\n \"react-native-worklets\"\n ].map(function(dep) {\n return resolveDepPkgJsonPath(dep, currentRoot, fs.pathExists);\n }))).some(Boolean) : needsWorklets(pkgJson);\n var prebundleDeps = (await Promise.all(deps.map(async function(dep) {\n var _depPkgJson_peerDependencies;\n if (parentDepNames.includes(dep)) {\n return [];\n }\n var cachedResult = proceededDeps.get(dep);\n if (cachedResult) {\n return cachedResult;\n }\n if (EXCLUDE_LIST_SET.has(dep)) {\n return [];\n }\n var localPath = await findDepPkgJsonPathWithFs(dep, currentRoot, fs.pathExists);\n if (!localPath) return [];\n var depPkgJsonPath = await fs.realpath(localPath);\n if (options.filter && !options.filter(depPkgJsonPath)) {\n return [];\n }\n var depPkgJson = await readPackageJsonSafe(depPkgJsonPath, fs.readJson);\n if (needsWorklets(depPkgJson)) {\n hasReanimated = true;\n }\n if (depPkgJson.codegenConfig != null) {\n noExternalDeps.add(dep);\n debug === null || debug === void 0 ? void 0 : debug(`${dep} skipped: declares codegenConfig (native codegen package)`);\n return [];\n }\n var subDeps = await scanDeps(depPkgJsonPath, {\n parentDepNames: [\n ...parentDepNames,\n dep\n ],\n pkgJsonContent: depPkgJson,\n proceededDeps\n }, fs);\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = subDeps.noExternalDeps[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var _$dep = _step.value;\n noExternalDeps.add(_$dep);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n if (subDeps.hasReanimated) {\n hasReanimated = true;\n }\n var shouldPreBundle = subDeps.prebundleDeps.length > 0 || /* If this dep is depending on other deps that need pre-bundling, then also pre-bundle this dep */\n INCLUDE_LIST_SET.has(dep) || /* If this dep is in the include list, then pre-bundle it */\n hasRequiredDep(depPkgJson, \"react\") || // an optional react peer still means the package ships react\n // entrypoints (e.g. better-auth/react). left external, those load a\n // second react copy in SSR and crash hooks with a null dispatcher.\n !!((_depPkgJson_peerDependencies = depPkgJson.peerDependencies) === null || _depPkgJson_peerDependencies === void 0 ? void 0 : _depPkgJson_peerDependencies.react) || hasRequiredDep(depPkgJson, \"react-native\") || hasRequiredDep(depPkgJson, \"expo-modules-core\") || // expo packages publish extensionless ESM imports that Node cannot\n // execute directly. Keep installed Expo modules inside Vite's SSR\n // graph without making Expo a framework dependency.\n dep.startsWith(\"@expo/\") || dep.startsWith(\"expo-\");\n debug === null || debug === void 0 ? void 0 : debug(`${dep} shouldPreBundle? ${shouldPreBundle}`);\n var depsToPreBundle = await (async function() {\n if (!shouldPreBundle) {\n return [];\n }\n var depPkgJsonExports = getExportsMap(depPkgJson.exports);\n var definedExports = Object.keys(depPkgJsonExports).filter(function(k) {\n var imp = getExportImport(depPkgJsonExports[k]);\n if (typeof imp !== \"string\") {\n return false;\n }\n if (!isPrebundleableEntry(imp)) {\n return false;\n }\n if (!k.match(/^(\\.\\/)?[a-zA-Z0-9-_]+$/)) {\n return false;\n }\n return true;\n }).map(function(k) {\n return k.replace(/^\\.\\/?/, \"\");\n }).map(function(k) {\n return `${dep}/${k}`;\n });\n var specialExports = (function() {\n switch (dep) {\n case \"react-native-vector-icons\":\n return [\n \"AntDesign\",\n \"Entypo\",\n \"EvilIcons\",\n \"Feather\",\n \"FontAwesome\",\n \"FontAwesome5\",\n \"FontAwesome5Pro\",\n \"Fontisto\",\n \"Foundation\",\n \"Ionicons\",\n \"MaterialCommunityIcons\",\n \"MaterialIcons\",\n \"Octicons\",\n \"SimpleLineIcons\",\n \"Zocial\"\n ].map(function(n) {\n return `${dep}/${n}`;\n });\n default:\n return [];\n }\n })();\n var mainExport = [\n depPkgJson[\"main\"],\n depPkgJson[\"module\"],\n getExportImport(depPkgJsonExports[\".\"])\n ].find(function(entry) {\n return typeof entry === \"string\" && entry && isPrebundleableEntry(entry);\n });\n var exports = [\n ...definedExports,\n ...specialExports\n ].filter(function(d) {\n return !EXCLUDE_LIST_SET.has(d);\n });\n if (mainExport) {\n if (await checkIfExportExists(join(dirname(depPkgJsonPath), mainExport), fs.pathExists)) {\n exports.unshift(dep);\n }\n }\n return exports;\n })();\n var result = [\n ...depsToPreBundle,\n ...subDeps.prebundleDeps\n ];\n debugDetails === null || debugDetails === void 0 ? void 0 : debugDetails(`final result ${JSON.stringify(result, null, 2)}`);\n proceededDeps.set(dep, result);\n return result;\n }))).flat().filter(function(dep, index, arr) {\n return arr.indexOf(dep) === index;\n });\n var hasNativewind = !!((_pkgJson_dependencies = pkgJson.dependencies) === null || _pkgJson_dependencies === void 0 ? void 0 : _pkgJson_dependencies[\"nativewind\"]);\n if ((hasNativewind || hasReanimated) && isRoot) {\n if (hasReanimated) console.info(`[one] Enabled babel plugins: ${[\n hasReanimated ? \"Reanimated\" : \"\",\n hasNativewind ? \"Nativewind\" : \"\"\n ].filter(Boolean).join(\", \")}`);\n }\n return {\n prebundleDeps,\n noExternalDeps: [\n ...noExternalDeps\n ],\n hasReanimated,\n // only check if set in root, dont want to enable css mode too easily\n hasNativewind\n };\n}\nasync function checkIfExportExists(pathIn, pathExists2) {\n var paths = [\n pathIn,\n ...extname(pathIn) ? [] : [\n pathIn + \".js\",\n pathIn + sep + \"index.js\"\n ]\n ];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = paths[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var path2 = _step.value;\n if (await pathExists2(path2)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return false;\n}\nasync function readPackageJsonSafe(packageJsonPath, readJson) {\n try {\n return await readJson(packageJsonPath);\n } catch (e) {\n console.error(`[scanDepsToPreBundleForSsr] Error reading package.json from ${packageJsonPath}: ${e}`);\n return {};\n }\n}\nasync function resolveDepPkgJsonPath(dep, dependent, pathExists2) {\n var root = dependent;\n while (root) {\n var possiblePkgJson = path.join(root, \"node_modules\", dep, \"package.json\");\n if (await pathExists2(possiblePkgJson)) {\n return possiblePkgJson;\n }\n var nextRoot = path.dirname(root);\n if (nextRoot === root) break;\n root = nextRoot;\n }\n}\nasync function findDepPkgJsonPath(dep, dependent) {\n return findDepPkgJsonPathWithFs(dep, dependent, function(file) {\n return pathExists(file);\n });\n}\nasync function findDepPkgJsonPathWithFs(dep, dependent, pathExists2) {\n var found = await resolveDepPkgJsonPath(dep, dependent, pathExists2);\n if (found) return found;\n console.error(`[findDepPkgJsonPath] Could not find package.json for ${dep}, which is a dependency of ${dependent}`);\n return void 0;\n}\nfunction hasRequiredDep(pkgJson, depName) {\n var _pkgJson_dependencies, _pkgJson_peerDependencies, _pkgJson_peerDependenciesMeta_depName, _pkgJson_peerDependenciesMeta;\n return !!(((_pkgJson_dependencies = pkgJson.dependencies) === null || _pkgJson_dependencies === void 0 ? void 0 : _pkgJson_dependencies[depName]) || ((_pkgJson_peerDependencies = pkgJson.peerDependencies) === null || _pkgJson_peerDependencies === void 0 ? void 0 : _pkgJson_peerDependencies[depName]) && !((_pkgJson_peerDependenciesMeta = pkgJson.peerDependenciesMeta) === null || _pkgJson_peerDependenciesMeta === void 0 ? void 0 : (_pkgJson_peerDependenciesMeta_depName = _pkgJson_peerDependenciesMeta[depName]) === null || _pkgJson_peerDependenciesMeta_depName === void 0 ? void 0 : _pkgJson_peerDependenciesMeta_depName.optional));\n}\nexport {\n EXCLUDE_LIST,\n EXCLUDE_LIST_SET,\n INCLUDE_LIST,\n INCLUDE_LIST_SET,\n findDepPkgJsonPath,\n scanDepsToOptimize\n};\n//# sourceMappingURL=scanDepsToOptimize.js.map\n"],"mappings":"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"}
|
package/dist/utils/state.mjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import FSExtra from "fs-extra";
|
|
2
1
|
import { randomUUID } from "node:crypto";
|
|
3
|
-
import { rename, rm } from "node:fs/promises";
|
|
2
|
+
import { mkdir, rename, rm } from "node:fs/promises";
|
|
4
3
|
import { join } from "node:path";
|
|
4
|
+
import { pathExists, readJSON, writeJSON } from "./fs.mjs";
|
|
5
5
|
|
|
6
6
|
async function readState(cacheDir) {
|
|
7
7
|
const statePath = join(cacheDir, "state.json");
|
|
8
8
|
try {
|
|
9
|
-
const state = await
|
|
9
|
+
const state = await pathExists(statePath) ? await readJSON(statePath) : {};
|
|
10
10
|
return state;
|
|
11
11
|
} catch {
|
|
12
12
|
return {};
|
|
@@ -15,9 +15,9 @@ async function readState(cacheDir) {
|
|
|
15
15
|
async function writeState(cacheDir, state) {
|
|
16
16
|
const statePath = join(cacheDir, "state.json");
|
|
17
17
|
const pendingStatePath = `${statePath}.${process.pid}.${randomUUID()}.tmp`;
|
|
18
|
-
await
|
|
18
|
+
await mkdir(cacheDir, { recursive: true });
|
|
19
19
|
try {
|
|
20
|
-
await
|
|
20
|
+
await writeJSON(pendingStatePath, state);
|
|
21
21
|
await rename(pendingStatePath, statePath);
|
|
22
22
|
} finally {
|
|
23
23
|
await rm(pendingStatePath, { force: true });
|
package/dist/utils/state.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","names":[],"sources":["utils/state.js"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"state.js","names":[],"sources":["utils/state.js"],"sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { mkdir, rename, rm } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport { pathExists, readJSON, writeJSON } from \"./fs\";\nasync function readState(cacheDir) {\n const statePath = join(cacheDir, \"state.json\");\n try {\n const state = await pathExists(statePath) ? await readJSON(statePath) : {};\n return state;\n } catch {\n return {};\n }\n}\nasync function writeState(cacheDir, state) {\n const statePath = join(cacheDir, \"state.json\");\n const pendingStatePath = `${statePath}.${process.pid}.${randomUUID()}.tmp`;\n await mkdir(cacheDir, { recursive: true });\n try {\n await writeJSON(pendingStatePath, state);\n await rename(pendingStatePath, statePath);\n } finally {\n await rm(pendingStatePath, { force: true });\n }\n}\nexport {\n readState,\n writeState\n};\n//# sourceMappingURL=state.js.map\n"],"mappings":";;;;;;AAIA,eAAe,UAAU,UAAU;CACjC,MAAM,YAAY,KAAK,UAAU,YAAY;CAC7C,IAAI;EACF,MAAM,QAAQ,MAAM,WAAW,SAAS,IAAI,MAAM,SAAS,SAAS,IAAI,CAAC;EACzE,OAAO;CACT,QAAQ;EACN,OAAO,CAAC;CACV;AACF;AACA,eAAe,WAAW,UAAU,OAAO;CACzC,MAAM,YAAY,KAAK,UAAU,YAAY;CAC7C,MAAM,mBAAmB,GAAG,UAAU,GAAG,QAAQ,IAAI,GAAG,WAAW,EAAE;CACrE,MAAM,MAAM,UAAU,EAAE,WAAW,KAAK,CAAC;CACzC,IAAI;EACF,MAAM,UAAU,kBAAkB,KAAK;EACvC,MAAM,OAAO,kBAAkB,SAAS;CAC1C,UAAU;EACR,MAAM,GAAG,kBAAkB,EAAE,OAAO,KAAK,CAAC;CAC5C;AACF"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import FSExtra from "fs-extra";
|
|
2
1
|
import { randomUUID } from "crypto";
|
|
3
|
-
import { rename, rm } from "fs/promises";
|
|
2
|
+
import { mkdir, rename, rm } from "fs/promises";
|
|
4
3
|
import { join } from "path";
|
|
4
|
+
import { pathExists, readJSON, writeJSON } from "./fs.native.js";
|
|
5
5
|
|
|
6
6
|
async function readState(cacheDir) {
|
|
7
7
|
var statePath = join(cacheDir, "state.json");
|
|
8
8
|
try {
|
|
9
|
-
var state = await
|
|
9
|
+
var state = await pathExists(statePath) ? await readJSON(statePath) : {};
|
|
10
10
|
return state;
|
|
11
11
|
} catch (unused) {
|
|
12
12
|
return {};
|
|
@@ -15,9 +15,9 @@ async function readState(cacheDir) {
|
|
|
15
15
|
async function writeState(cacheDir, state) {
|
|
16
16
|
var statePath = join(cacheDir, "state.json");
|
|
17
17
|
var pendingStatePath = `${statePath}.${process.pid}.${randomUUID()}.tmp`;
|
|
18
|
-
await
|
|
18
|
+
await mkdir(cacheDir, { recursive: true });
|
|
19
19
|
try {
|
|
20
|
-
await
|
|
20
|
+
await writeJSON(pendingStatePath, state);
|
|
21
21
|
await rename(pendingStatePath, statePath);
|
|
22
22
|
} finally {
|
|
23
23
|
await rm(pendingStatePath, { force: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.native.js","names":[],"sources":["utils/state.native.js"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"state.native.js","names":[],"sources":["utils/state.native.js"],"sourcesContent":["import { randomUUID } from \"crypto\";\nimport { mkdir, rename, rm } from \"fs/promises\";\nimport { join } from \"path\";\nimport { pathExists, readJSON, writeJSON } from \"./fs\";\nasync function readState(cacheDir) {\n var statePath = join(cacheDir, \"state.json\");\n try {\n var state = await pathExists(statePath) ? await readJSON(statePath) : {};\n return state;\n } catch (unused) {\n return {};\n }\n}\nasync function writeState(cacheDir, state) {\n var statePath = join(cacheDir, \"state.json\");\n var pendingStatePath = `${statePath}.${process.pid}.${randomUUID()}.tmp`;\n await mkdir(cacheDir, {\n recursive: true\n });\n try {\n await writeJSON(pendingStatePath, state);\n await rename(pendingStatePath, statePath);\n } finally {\n await rm(pendingStatePath, {\n force: true\n });\n }\n}\nexport {\n readState,\n writeState\n};\n//# sourceMappingURL=state.js.map\n"],"mappings":";;;;;;AAIA,eAAe,UAAU,UAAU;CACjC,IAAI,YAAY,KAAK,UAAU,YAAY;CAC3C,IAAI;EACF,IAAI,QAAQ,MAAM,WAAW,SAAS,IAAI,MAAM,SAAS,SAAS,IAAI,CAAC;EACvE,OAAO;CACT,SAAS,QAAQ;EACf,OAAO,CAAC;CACV;AACF;AACA,eAAe,WAAW,UAAU,OAAO;CACzC,IAAI,YAAY,KAAK,UAAU,YAAY;CAC3C,IAAI,mBAAmB,GAAG,UAAU,GAAG,QAAQ,IAAI,GAAG,WAAW,EAAE;CACnE,MAAM,MAAM,UAAU,EACpB,WAAW,KACb,CAAC;CACD,IAAI;EACF,MAAM,UAAU,kBAAkB,KAAK;EACvC,MAAM,OAAO,kBAAkB,SAAS;CAC1C,UAAU;EACR,MAAM,GAAG,kBAAkB,EACzB,OAAO,KACT,CAAC;CACH;AACF"}
|
package/dist/utils/utils.mjs
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { statSync } from "node:fs";
|
|
2
|
+
import { readFile } from "node:fs/promises";
|
|
2
3
|
import path from "node:path";
|
|
3
4
|
import { createHash } from "node:crypto";
|
|
4
5
|
|
|
5
6
|
function tryStatSync(file) {
|
|
6
7
|
try {
|
|
7
|
-
return
|
|
8
|
+
return statSync(file, { throwIfNoEntry: false });
|
|
8
9
|
} catch {}
|
|
9
10
|
}
|
|
10
11
|
async function lookupFile(dir, fileNames) {
|
|
@@ -24,7 +25,7 @@ function getHash(text, length = 8) {
|
|
|
24
25
|
return h.padEnd(length, "_");
|
|
25
26
|
}
|
|
26
27
|
async function getFileHash(path2) {
|
|
27
|
-
const content = await
|
|
28
|
+
const content = await readFile(path2, "utf-8");
|
|
28
29
|
return getHash(content);
|
|
29
30
|
}
|
|
30
31
|
|
package/dist/utils/utils.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":[],"sources":["utils/utils.js"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"utils.js","names":[],"sources":["utils/utils.js"],"sourcesContent":["import { statSync } from \"node:fs\";\nimport { readFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { createHash } from \"node:crypto\";\nfunction tryStatSync(file) {\n try {\n return statSync(file, { throwIfNoEntry: false });\n } catch {\n }\n}\nasync function lookupFile(dir, fileNames) {\n while (dir) {\n for (const fileName of fileNames) {\n const fullPath = path.join(dir, fileName);\n if (tryStatSync(fullPath)?.isFile()) return fullPath;\n }\n const parentDir = path.dirname(dir);\n if (parentDir === dir) return;\n dir = parentDir;\n }\n}\nfunction getHash(text, length = 8) {\n const h = createHash(\"sha256\").update(text).digest(\"hex\").substring(0, length);\n if (length <= 64) return h;\n return h.padEnd(length, \"_\");\n}\nasync function getFileHash(path2) {\n const content = await readFile(path2, \"utf-8\");\n return getHash(content);\n}\nexport {\n getFileHash,\n getHash,\n lookupFile,\n tryStatSync\n};\n//# sourceMappingURL=utils.js.map\n"],"mappings":";;;;;;AAIA,SAAS,YAAY,MAAM;CACzB,IAAI;EACF,OAAO,SAAS,MAAM,EAAE,gBAAgB,MAAM,CAAC;CACjD,QAAQ,CACR;AACF;AACA,eAAe,WAAW,KAAK,WAAW;CACxC,OAAO,KAAK;EACV,KAAK,MAAM,YAAY,WAAW;GAChC,MAAM,WAAW,KAAK,KAAK,KAAK,QAAQ;GACxC,IAAI,YAAY,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO;EAC9C;EACA,MAAM,YAAY,KAAK,QAAQ,GAAG;EAClC,IAAI,cAAc,KAAK;EACvB,MAAM;CACR;AACF;AACA,SAAS,QAAQ,MAAM,SAAS,GAAG;CACjC,MAAM,IAAI,WAAW,QAAQ,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,UAAU,GAAG,MAAM;CAC7E,IAAI,UAAU,IAAI,OAAO;CACzB,OAAO,EAAE,OAAO,QAAQ,GAAG;AAC7B;AACA,eAAe,YAAY,OAAO;CAChC,MAAM,UAAU,MAAM,SAAS,OAAO,OAAO;CAC7C,OAAO,QAAQ,OAAO;AACxB"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { statSync } from "fs";
|
|
2
|
+
import { readFile } from "fs/promises";
|
|
2
3
|
import path from "path";
|
|
3
4
|
import { createHash } from "crypto";
|
|
4
5
|
|
|
5
6
|
function tryStatSync(file) {
|
|
6
7
|
try {
|
|
7
|
-
return
|
|
8
|
+
return statSync(file, { throwIfNoEntry: false });
|
|
8
9
|
} catch (unused) {}
|
|
9
10
|
}
|
|
10
11
|
async function lookupFile(dir, fileNames) {
|
|
@@ -43,7 +44,7 @@ function getHash(text) {
|
|
|
43
44
|
return h.padEnd(length, "_");
|
|
44
45
|
}
|
|
45
46
|
async function getFileHash(path2) {
|
|
46
|
-
var content = await
|
|
47
|
+
var content = await readFile(path2, "utf-8");
|
|
47
48
|
return getHash(content);
|
|
48
49
|
}
|
|
49
50
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.native.js","names":[],"sources":["utils/utils.native.js"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"utils.native.js","names":[],"sources":["utils/utils.native.js"],"sourcesContent":["import { statSync } from \"fs\";\nimport { readFile } from \"fs/promises\";\nimport path from \"path\";\nimport { createHash } from \"crypto\";\nfunction tryStatSync(file) {\n try {\n return statSync(file, {\n throwIfNoEntry: false\n });\n } catch (unused) {\n }\n}\nasync function lookupFile(dir, fileNames) {\n while (dir) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = fileNames[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var fileName = _step.value;\n var _tryStatSync;\n var fullPath = path.join(dir, fileName);\n if ((_tryStatSync = tryStatSync(fullPath)) === null || _tryStatSync === void 0 ? void 0 : _tryStatSync.isFile()) return fullPath;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var parentDir = path.dirname(dir);\n if (parentDir === dir) return;\n dir = parentDir;\n }\n}\nfunction getHash(text) {\n var length = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 8;\n var h = createHash(\"sha256\").update(text).digest(\"hex\").substring(0, length);\n if (length <= 64) return h;\n return h.padEnd(length, \"_\");\n}\nasync function getFileHash(path2) {\n var content = await readFile(path2, \"utf-8\");\n return getHash(content);\n}\nexport {\n getFileHash,\n getHash,\n lookupFile,\n tryStatSync\n};\n//# sourceMappingURL=utils.js.map\n"],"mappings":";;;;;;AAIA,SAAS,YAAY,MAAM;CACzB,IAAI;EACF,OAAO,SAAS,MAAM,EACpB,gBAAgB,MAClB,CAAC;CACH,SAAS,QAAQ,CACjB;AACF;AACA,eAAe,WAAW,KAAK,WAAW;CACxC,OAAO,KAAK;EACV,IAAI,4BAA4B,MAAM,oBAAoB,OAAO,iBAAiB,KAAK;EACvF,IAAI;GACF,KAAK,IAAI,YAAY,UAAU,OAAO,SAAS,CAAC,GAAG,OAAO,EAAE,6BAA6B,QAAQ,UAAU,KAAK,EAAC,CAAE,OAAO,4BAA4B,MAAM;IAC1J,IAAI,WAAW,MAAM;IACrB,IAAI;IACJ,IAAI,WAAW,KAAK,KAAK,KAAK,QAAQ;IACtC,KAAK,eAAe,YAAY,QAAQ,OAAO,QAAQ,iBAAiB,KAAK,IAAI,KAAK,IAAI,aAAa,OAAO,GAAG,OAAO;GAC1H;EACF,SAAS,KAAK;GACZ,oBAAoB;GACpB,iBAAiB;EACnB,UAAU;GACR,IAAI;IACF,IAAI,CAAC,6BAA6B,UAAU,UAAU,MAAM;KAC1D,UAAU,OAAO;IACnB;GACF,UAAU;IACR,IAAI,mBAAmB;KACrB,MAAM;IACR;GACF;EACF;EACA,IAAI,YAAY,KAAK,QAAQ,GAAG;EAChC,IAAI,cAAc,KAAK;EACvB,MAAM;CACR;AACF;AACA,SAAS,QAAQ,MAAM;CACrB,IAAI,SAAS,UAAU,SAAS,KAAK,UAAU,OAAO,KAAK,IAAI,UAAU,KAAK;CAC9E,IAAI,IAAI,WAAW,QAAQ,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,UAAU,GAAG,MAAM;CAC3E,IAAI,UAAU,IAAI,OAAO;CACzB,OAAO,EAAE,OAAO,QAAQ,GAAG;AAC7B;AACA,eAAe,YAAY,OAAO;CAChC,IAAI,UAAU,MAAM,SAAS,OAAO,OAAO;CAC3C,OAAO,QAAQ,OAAO;AACxB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vxrn",
|
|
3
|
-
"version": "2.13.
|
|
3
|
+
"version": "2.13.10",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -80,18 +80,17 @@
|
|
|
80
80
|
"@react-native-community/cli": "^20.2.0",
|
|
81
81
|
"@react-native-community/cli-config": "^20.2.0",
|
|
82
82
|
"@react-native/dev-middleware": "^0.88.0",
|
|
83
|
-
"@vxrn/compiler": "2.13.
|
|
84
|
-
"@vxrn/debug": "2.13.
|
|
85
|
-
"@vxrn/query-string": "2.13.
|
|
86
|
-
"@vxrn/resolve": "2.13.
|
|
87
|
-
"@vxrn/url-parse": "2.13.
|
|
88
|
-
"@vxrn/utils": "2.13.
|
|
89
|
-
"@vxrn/vendor": "2.13.
|
|
90
|
-
"@vxrn/vite-flow": "2.13.
|
|
83
|
+
"@vxrn/compiler": "2.13.10",
|
|
84
|
+
"@vxrn/debug": "2.13.10",
|
|
85
|
+
"@vxrn/query-string": "2.13.10",
|
|
86
|
+
"@vxrn/resolve": "2.13.10",
|
|
87
|
+
"@vxrn/url-parse": "2.13.10",
|
|
88
|
+
"@vxrn/utils": "2.13.10",
|
|
89
|
+
"@vxrn/vendor": "2.13.10",
|
|
90
|
+
"@vxrn/vite-flow": "2.13.10",
|
|
91
91
|
"citty": "^0.1.6",
|
|
92
92
|
"dotenv": "^17.2.1",
|
|
93
93
|
"dotenv-expand": "^12.0.2",
|
|
94
|
-
"env-editor": "^1.1.0",
|
|
95
94
|
"es-module-lexer": "^1.3.0",
|
|
96
95
|
"oxc-parser": "^0.112.0",
|
|
97
96
|
"oxc-transform": "^0.148.0",
|
|
@@ -100,13 +99,9 @@
|
|
|
100
99
|
"image-size": "2.0.3",
|
|
101
100
|
"magic-string": "^0.30.21",
|
|
102
101
|
"micromatch": "^4.0.8",
|
|
103
|
-
"find-node-modules": "^2.1.3",
|
|
104
|
-
"fs-extra": "^11.2.0",
|
|
105
|
-
"get-port-please": "^3.1.2",
|
|
106
102
|
"hono": "^4.13.11",
|
|
107
103
|
"perfect-debounce": "^1.0.0",
|
|
108
104
|
"picocolors": "^1.0.0",
|
|
109
|
-
"pkg-types": "^1.0.3",
|
|
110
105
|
"rolldown": "^1.2.8",
|
|
111
106
|
"semver": "^7.6.3",
|
|
112
107
|
"sharp": "^0.35.5",
|
|
@@ -118,7 +113,6 @@
|
|
|
118
113
|
"@biomejs/biome": "2.5.15",
|
|
119
114
|
"@jridgewell/gen-mapping": "^0.3.5",
|
|
120
115
|
"@tamagui/build": "3.2.3",
|
|
121
|
-
"@types/find-node-modules": "^2.1.2",
|
|
122
116
|
"@types/node": "^24.10.0",
|
|
123
117
|
"@types/ws": "^8.18.1",
|
|
124
118
|
"depcheck": "^1.4.7",
|
|
@@ -127,20 +121,20 @@
|
|
|
127
121
|
"react-native": "0.88.0",
|
|
128
122
|
"typescript": "7.0.2",
|
|
129
123
|
"vitest": "^4.1.0",
|
|
130
|
-
"@vxrn/vite-plugin-metro": "2.13.
|
|
124
|
+
"@vxrn/vite-plugin-metro": "2.13.10"
|
|
131
125
|
},
|
|
132
126
|
"publishConfig": {
|
|
133
127
|
"access": "public"
|
|
134
128
|
},
|
|
135
129
|
"peerDependencies": {
|
|
136
|
-
"@vxrn/vite-plugin-metro": "2.13.
|
|
130
|
+
"@vxrn/vite-plugin-metro": "2.13.10"
|
|
137
131
|
},
|
|
138
132
|
"peerDependenciesMeta": {
|
|
139
133
|
"@vxrn/vite-plugin-metro": {
|
|
140
134
|
"optional": true
|
|
141
135
|
}
|
|
142
136
|
},
|
|
143
|
-
"releaseSourceCommit": "
|
|
137
|
+
"releaseSourceCommit": "10ae059cc30ab9f70a12d9711ba8346d596d61d2",
|
|
144
138
|
"repository": {
|
|
145
139
|
"type": "git",
|
|
146
140
|
"url": "git+https://github.com/onejs/one.git",
|
package/src/cli.ts
CHANGED
|
@@ -22,10 +22,11 @@ function lastValue<T>(arg: T | T[]): T | undefined {
|
|
|
22
22
|
return arg
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
const [nodeMajor, nodeMinor] = process.versions.node.split('.').map((part) => Number(part))
|
|
26
|
+
if (
|
|
27
|
+
!((nodeMajor === 20 && nodeMinor >= 19) || (nodeMajor === 22 && nodeMinor >= 12) || nodeMajor > 22)
|
|
28
|
+
) {
|
|
29
|
+
console.error('One requires Node ^20.19.0 || >=22.12.0')
|
|
29
30
|
process.exit(1)
|
|
30
31
|
}
|
|
31
32
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { InlineConfig } from 'vite'
|
|
2
2
|
import { resolvePath } from '@vxrn/resolve'
|
|
3
|
-
import FSExtra from 'fs-extra'
|
|
4
3
|
import { join } from 'node:path'
|
|
4
|
+
import { pathExists, readJSON } from '../utils/fs'
|
|
5
5
|
import type { VXRNOptionsFilled } from './getOptionsFilled'
|
|
6
6
|
|
|
7
7
|
// essentially base web config not base everything
|
|
@@ -52,7 +52,7 @@ export async function getBaseViteConfig(
|
|
|
52
52
|
const postCSSConfigPath = (
|
|
53
53
|
await Promise.all(
|
|
54
54
|
postCSSPaths.map(async (x) => {
|
|
55
|
-
if (await
|
|
55
|
+
if (await pathExists(x)) {
|
|
56
56
|
return x
|
|
57
57
|
}
|
|
58
58
|
})
|
|
@@ -60,7 +60,7 @@ export async function getBaseViteConfig(
|
|
|
60
60
|
).find((x) => typeof x === 'string')
|
|
61
61
|
|
|
62
62
|
const reactNativePackageJsonPath = resolvePath('react-native/package.json', root)
|
|
63
|
-
const { version } = await
|
|
63
|
+
const { version } = await readJSON(reactNativePackageJsonPath)
|
|
64
64
|
|
|
65
65
|
return {
|
|
66
66
|
mode,
|