one
Version:
One is a React framework for web, iOS, and Android apps.
841 lines (839 loc) • 37.6 kB
JavaScript
;
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all) __defProp(target, name, {
get: all[name],
enumerable: true
});
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
get: () => from[key],
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
});
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
value: mod,
enumerable: true
}) : target, mod));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var one_exports = {};
__export(one_exports, { one: () => one });
module.exports = __toCommonJS(one_exports);
var import_compiler = require("@vxrn/compiler");
var import_resolve = require("@vxrn/resolve");
var import_vite_plugin_metro = require("@vxrn/vite-plugin-metro");
var import_events = __toESM(require("events"), 1);
var import_fs = require("fs");
var import_path = __toESM(require("path"), 1);
var import_filter = require("rolldown/filter");
var import_vite = require("vite");
var import_vxrn = require("vxrn");
var import_vite_plugin = __toESM(require("vxrn/vite-plugin"), 1);
var import_constants = require("../constants.native.js");
var import_getViteMetroPluginOptions = require("../metro-config/getViteMetroPluginOptions.native.js");
var import_setServerGlobals = require("../server/setServerGlobals.native.js");
var import_getRouterRootFromOneOptions = require("../utils/getRouterRootFromOneOptions.native.js");
var import_routeIndex = require("../utils/routeIndex.native.js");
var import_absorbedPackages = require("../utils/absorbedPackages.native.js");
var import_ensureTsConfig = require("./ensureTsConfig.native.js");
var import_loadConfig = require("./loadConfig.native.js");
var import_nativeBundler = require("./nativeBundler.native.js");
var import_bundledDevPlugin = require("./plugins/bundledDevPlugin.native.js");
var import_clientTreeShakePlugin = require("./plugins/clientTreeShakePlugin.native.js");
var import_devtoolsPlugin = require("./plugins/devtoolsPlugin.native.js");
var import_fileSystemRouterPlugin = require("./plugins/fileSystemRouterPlugin.native.js");
var import_fixDependenciesPlugin = require("./plugins/fixDependenciesPlugin.native.js");
var import_generateFileSystemRouteTypesPlugin = require("./plugins/generateFileSystemRouteTypesPlugin.native.js");
var import_criticalCSSPlugin = require("./plugins/criticalCSSPlugin.native.js");
var import_imageDataPlugin = require("./plugins/imageDataPlugin.native.js");
var import_routeModuleHmrPlugin = require("./plugins/routeModuleHmrPlugin.native.js");
var import_sourceInspectorPlugin = require("./plugins/sourceInspectorPlugin.native.js");
var import_swiftPackagePlugin = require("./plugins/swiftPackagePlugin.native.js");
var import_kotlinSourcePlugin = require("./plugins/kotlinSourcePlugin.native.js");
var import_SSRCSSPlugin = require("./plugins/SSRCSSPlugin.native.js");
var import_virtualEntryConstants = require("./plugins/virtualEntryConstants.native.js");
var import_virtualEntryPlugin = require("./plugins/virtualEntryPlugin.native.js");
var import_environmentGuardPlugin = require("./plugins/environmentGuardPlugin.native.js");
var import_cloudflareWranglerConfig = require("./cloudflareWranglerConfig.native.js");
var RN_DEEP_IMPORT_RE = /^react-native\/Libraries\/|react-native-web(-lite)?\/.*\/Libraries\//;
import_events.default.setMaxListeners(1e3);
globalThis.__vxrnEnableNativeEnv = true;
function one() {
var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
var _ref;
var _nativeOptions_app, _options_config, _options_react, _options_ssr, _options_ssr1, _options_web, _options_config1, _options_router, _options_web1;
(0, import_setServerGlobals.setServerGlobals)();
var routerRoot = (0, import_getRouterRootFromOneOptions.getRouterRootFromOneOptions)(options);
var nativeDisabled = options.native === false;
var nativeOptions = options.native === false ? void 0 : options.native;
var nativeAppName = (nativeOptions === null || nativeOptions === void 0 ? void 0 : (_nativeOptions_app = nativeOptions.app) === null || _nativeOptions_app === void 0 ? void 0 : _nativeOptions_app.name) || (nativeOptions === null || nativeOptions === void 0 ? void 0 : nativeOptions.key);
var nativeApp = nativeOptions === null || nativeOptions === void 0 ? void 0 : nativeOptions.app;
var nativeAppVersion = nativeApp === null || nativeApp === void 0 ? void 0 : nativeApp.version;
if (nativeDisabled) {
globalThis.__vxrnEnableNativeEnv = false;
}
var metroOptions = (function() {
var _nativeOptions_bundlerOptions_argv, _nativeOptions_bundlerOptions, _options_router3, _options_router12, _nativeOptions_bundlerOptions1, _options_react2, _options_react1;
if (nativeDisabled) return null;
if ((0, import_nativeBundler.resolveNativeBundler)({ bundler: nativeOptions === null || nativeOptions === void 0 ? void 0 : nativeOptions.bundler }) !== "metro") {
var dropped = nativeOptions === null || nativeOptions === void 0 ? void 0 : nativeOptions.bundlerOptions;
if ((dropped === null || dropped === void 0 ? void 0 : dropped.babelConfig) || (dropped === null || dropped === void 0 ? void 0 : dropped.babelConfigOverrides)) {
console.warn(`[one] native.bundlerOptions configures babel plugins, but native.bundler is "${nativeOptions === null || nativeOptions === void 0 ? void 0 : nativeOptions.bundler}", which runs no babel. Those plugins will not run and whatever they were rewriting will reach the bundle untransformed.`);
}
return null;
}
if (process.env.ONE_METRO_MODE) {
console.info("ONE_METRO_MODE environment variable is set, enabling Metro mode");
}
var routerRoot2 = (0, import_getRouterRootFromOneOptions.getRouterRootFromOneOptions)(options);
var defaultMetroOptions = (0, import_getViteMetroPluginOptions.getViteMetroPluginOptions)({
projectRoot: (nativeOptions === null || nativeOptions === void 0 ? void 0 : (_nativeOptions_bundlerOptions = nativeOptions.bundlerOptions) === null || _nativeOptions_bundlerOptions === void 0 ? void 0 : (_nativeOptions_bundlerOptions_argv = _nativeOptions_bundlerOptions.argv) === null || _nativeOptions_bundlerOptions_argv === void 0 ? void 0 : _nativeOptions_bundlerOptions_argv.projectRoot) || process.cwd(),
relativeRouterRoot: routerRoot2,
ignoredRouteFiles: (_options_router3 = options.router) === null || _options_router3 === void 0 ? void 0 : _options_router3.ignoredRouteFiles,
linking: (_options_router12 = options.router) === null || _options_router12 === void 0 ? void 0 : _options_router12.linking,
userDefaultConfigOverrides: nativeOptions === null || nativeOptions === void 0 ? void 0 : (_nativeOptions_bundlerOptions1 = nativeOptions.bundlerOptions) === null || _nativeOptions_bundlerOptions1 === void 0 ? void 0 : _nativeOptions_bundlerOptions1.defaultConfigOverrides,
setupFile: options.setupFile
});
var userMetroOptions = nativeOptions === null || nativeOptions === void 0 ? void 0 : nativeOptions.bundlerOptions;
var babelConfig = {
...defaultMetroOptions === null || defaultMetroOptions === void 0 ? void 0 : defaultMetroOptions.babelConfig,
...userMetroOptions === null || userMetroOptions === void 0 ? void 0 : userMetroOptions.babelConfig
};
return {
...defaultMetroOptions,
...userMetroOptions,
defaultConfigOverrides: defaultMetroOptions === null || defaultMetroOptions === void 0 ? void 0 : defaultMetroOptions.defaultConfigOverrides,
argv: {
...defaultMetroOptions === null || defaultMetroOptions === void 0 ? void 0 : defaultMetroOptions.argv,
...userMetroOptions === null || userMetroOptions === void 0 ? void 0 : userMetroOptions.argv
},
babelConfig: {
...babelConfig,
plugins: [...babelConfig.plugins || [], ...((_options_react2 = options.react) === null || _options_react2 === void 0 ? void 0 : _options_react2.compiler) === true || ((_options_react1 = options.react) === null || _options_react1 === void 0 ? void 0 : _options_react1.compiler) === "native" ? ["babel-plugin-react-compiler"] : []]
},
mainModuleName: "one/metro-entry",
startup: process.env.ONE_METRO_LAZY ? "lazy" : userMetroOptions === null || userMetroOptions === void 0 ? void 0 : userMetroOptions.startup
};
})();
var vxrnPlugins = [];
if (!process.env.IS_VXRN_CLI) {
console.warn("Experimental: running VxRN as a Vite plugin. This is not yet stable.");
vxrnPlugins.push((0, import_vite_plugin.default)({
metro: metroOptions,
disableNative: nativeDisabled
}));
} else {
if (!globalThis.__oneOptions) {
(0, import_loadConfig.setOneOptions)(options);
globalThis["__vxrnPluginConfig__"] = options;
globalThis["__vxrnMetroOptions__"] = metroOptions;
return [];
}
}
if (((_options_config = options.config) === null || _options_config === void 0 ? void 0 : _options_config.ensureTSConfig) !== false) {
void (0, import_ensureTsConfig.ensureTSConfig)();
}
var vxrnOptions = (0, import_vxrn.getOptionsFilled)();
var root = (vxrnOptions === null || vxrnOptions === void 0 ? void 0 : vxrnOptions.root) || process.cwd();
var compiler = (_options_react = options.react) === null || _options_react === void 0 ? void 0 : _options_react.compiler;
if (compiler) {
(0, import_compiler.configureVXRNCompilerPlugin)({ enableCompiler: typeof compiler === "object" || typeof compiler === "function" ? compiler : compiler === "native" ? ["ios", "android"] : compiler === "web" ? ["ssr", "client"] : true });
}
var autoDepsOptions = (_options_ssr = options.ssr) === null || _options_ssr === void 0 ? void 0 : _options_ssr.autoDepsOptimization;
var dedupeSymlinks = (_ref = (_options_ssr1 = options.ssr) === null || _options_ssr1 === void 0 ? void 0 : _options_ssr1.dedupeSymlinkedModules) !== null && _ref !== void 0 ? _ref : false;
var ssrDedup_optimizedPackages = null;
var ssrDedup_projectRoot = "";
var ssrSymlinkDedupPlugin = {
name: "one:ssr-symlink-dedup",
enforce: "pre",
configResolved(config) {
var _config_ssr_optimizeDeps, _config_ssr;
if (!dedupeSymlinks) return;
ssrDedup_projectRoot = config.root || process.cwd();
var ssrInclude = (_config_ssr = config.ssr) === null || _config_ssr === void 0 ? void 0 : (_config_ssr_optimizeDeps = _config_ssr.optimizeDeps) === null || _config_ssr_optimizeDeps === void 0 ? void 0 : _config_ssr_optimizeDeps.include;
if (!(ssrInclude === null || ssrInclude === void 0 ? void 0 : ssrInclude.length)) return;
ssrDedup_optimizedPackages = /* @__PURE__ */ new Set();
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
try {
for (var _iterator = ssrInclude[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var entry = _step.value;
if (entry.startsWith("@")) {
var parts = entry.split("/");
ssrDedup_optimizedPackages.add(`${parts[0]}/${parts[1]}`);
} else {
ssrDedup_optimizedPackages.add(entry.split("/")[0]);
}
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return != null) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
},
async resolveId(source, importer, options2) {
if (!dedupeSymlinks) return;
if (source[0] === "." || source[0] === "/") return;
var pkgName;
var subpath = null;
if (source.startsWith("@")) {
var parts = source.split("/");
pkgName = parts.length >= 2 ? `${parts[0]}/${parts[1]}` : source;
if (parts.length > 2) subpath = `./${parts.slice(2).join("/")}`;
} else {
var parts1 = source.split("/");
pkgName = parts1[0];
if (parts1.length > 1) subpath = `./${parts1.slice(1).join("/")}`;
}
var resolved = await this.resolve(source, importer, {
...options2,
skipSelf: true
});
if (!(resolved === null || resolved === void 0 ? void 0 : resolved.id)) return;
if (resolved.id.includes("/node_modules/")) return;
var _$path = await import("path");
var fs = await import("fs");
var { join, dirname } = _$path;
var { realpathSync, existsSync: existsSync2, readFileSync: readFileSync2 } = fs;
var dir = ssrDedup_projectRoot;
while (dir !== dirname(dir)) {
var nmPkgDir = join(dir, "node_modules", pkgName);
if (existsSync2(nmPkgDir)) {
if (subpath) {
try {
var _pkg_exports;
var pkg = JSON.parse(readFileSync2(join(nmPkgDir, "package.json"), "utf8"));
var exportEntry = (_pkg_exports = pkg.exports) === null || _pkg_exports === void 0 ? void 0 : _pkg_exports[subpath];
if (exportEntry && typeof exportEntry === "object") {
var target = exportEntry.import || exportEntry.module || exportEntry.default;
if (target) {
var fullPath = join(nmPkgDir, target);
if (existsSync2(fullPath)) return {
id: (0, import_vite.normalizePath)(fullPath),
external: resolved.external
};
}
}
} catch (unused) {}
}
var realPkgDir = (0, import_vite.normalizePath)(realpathSync(nmPkgDir));
if (resolved.id.startsWith(realPkgDir)) {
var relativePart = resolved.id.slice(realPkgDir.length);
return {
id: (0, import_vite.normalizePath)(nmPkgDir) + relativePart,
external: resolved.external
};
}
break;
}
dir = dirname(dir);
}
}
};
var withAbsorbedAliases = function withAbsorbedAliases2(alias) {
var root2 = process.cwd();
return {
...alias,
native: {
...(0, import_absorbedPackages.absorbedPackageAliases)(root2, "native"),
...alias === null || alias === void 0 ? void 0 : alias.native
}
};
};
var createAliasPlugin = function createAliasPlugin2(alias, nativePlatform) {
var resolveMap = function resolveMap2(map) {
if (!map) return null;
var out = {};
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
try {
for (var _iterator = Object.entries(map)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var [key, value] = _step.value;
try {
out[key] = import_path.default.isAbsolute(value) ? value : (0, import_resolve.resolvePath)(value);
} catch (unused) {
out[key] = value;
}
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return != null) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
return out;
};
var resolved = {
web: resolveMap(alias.web),
native: resolveMap(alias.native),
client: resolveMap(alias.client),
ssr: resolveMap(alias.ssr),
ios: resolveMap(alias.ios),
android: resolveMap(alias.android)
};
var aliasKeys = [...new Set(Object.values(resolved).flatMap(function(m) {
return m ? Object.keys(m) : [];
}))];
var aliasFilter = aliasKeys.length ? new RegExp(`^(?:${aliasKeys.map(function(k) {
return k.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
}).join("|")})$`) : /(?!)/;
return {
name: "one:alias",
enforce: "pre",
config: nativePlatform ? void 0 : function() {
return { resolve: { alias: Object.entries((0, import_absorbedPackages.absorbedPackageAliases)(process.cwd(), "web")).map(function(param) {
var [name, replacement] = param;
return {
find: new RegExp(`^${name}$`),
replacement
};
}) } };
},
resolveId: {
filter: { id: aliasFilter },
handler(source) {
var _this_environment;
var env = nativePlatform !== null && nativePlatform !== void 0 ? nativePlatform : (_this_environment = this.environment) === null || _this_environment === void 0 ? void 0 : _this_environment.name;
var specific = env ? resolved[env] : null;
if (specific && source in specific) {
var id = specific[source];
return {
id,
external: false,
packageJsonPath: (0, import_vxrn.nearestPackageJson)(id)
};
}
var isWeb = !env || env === "client" || env === "ssr";
var general = isWeb ? resolved.web : resolved.native;
if (general && source in general) {
var id1 = general[source];
return {
id: id1,
external: false,
packageJsonPath: (0, import_vxrn.nearestPackageJson)(id1)
};
}
}
}
};
};
var devAndProdPlugins = [
{
name: "one:config",
__get: options
},
{
name: "one:env-prefix",
config(userConfig) {
if (userConfig.envPrefix) return;
return { envPrefix: [
"VITE_",
"ONE_PUBLIC_",
"EXPO_PUBLIC_"
] };
}
},
(0, import_bundledDevPlugin.bundledDevPlugin)(!!((_options_web = options.web) === null || _options_web === void 0 ? void 0 : _options_web.experimentalBundledDev)),
(0, import_environmentGuardPlugin.environmentGuardPlugin)(options.environmentGuards),
(0, import_criticalCSSPlugin.criticalCSSPlugin)(),
(0, import_imageDataPlugin.imageDataPlugin)(),
{
name: "one-define-client-env",
async config(userConfig, env) {
var _ref2, _ref1, _ref22;
var clientEnvDefine = options.skipEnv ? {} : (await (0, import_vxrn.loadEnv)((_ref2 = (_ref1 = (_ref22 = vxrnOptions === null || vxrnOptions === void 0 ? void 0 : vxrnOptions.mode) !== null && _ref22 !== void 0 ? _ref22 : userConfig === null || userConfig === void 0 ? void 0 : userConfig.mode) !== null && _ref1 !== void 0 ? _ref1 : env === null || env === void 0 ? void 0 : env.mode) !== null && _ref2 !== void 0 ? _ref2 : "development", process.cwd(), userConfig === null || userConfig === void 0 ? void 0 : userConfig.envPrefix)).clientEnvDefine;
return { define: {
...clientEnvDefine,
...process.env.ONE_DEBUG_ROUTER && { "process.env.ONE_DEBUG_ROUTER": JSON.stringify(process.env.ONE_DEBUG_ROUTER) }
} };
}
},
...autoDepsOptions === false ? [] : [(0, import_vxrn.autoDepOptimizePlugin)({
onScannedDeps(param) {
var { hasReanimated, hasNativewind } = param;
var _ref2;
(0, import_compiler.configureVXRNCompilerPlugin)({
enableReanimated: hasReanimated,
enableNativeCSS: (_ref2 = nativeOptions === null || nativeOptions === void 0 ? void 0 : nativeOptions.css) !== null && _ref2 !== void 0 ? _ref2 : hasNativewind,
enableNativewind: hasNativewind
});
},
root,
include: /node_modules/,
...autoDepsOptions === true ? {} : autoDepsOptions
})],
...((_options_config1 = options.config) === null || _options_config1 === void 0 ? void 0 : _options_config1.tsConfigPaths) === false ? [] : [(function() {
var mappings = [];
function loadMappings(resolvedRoot) {
try {
var _config_compilerOptions, _config_compilerOptions1;
var configPath = import_path.default.resolve(resolvedRoot, "tsconfig.json");
if (!(0, import_fs.existsSync)(configPath)) return;
var raw = (0, import_fs.readFileSync)(configPath, "utf-8");
var stripped = raw.replace(/\\"|"(?:\\"|[^"])*"|(\/\/.*|\/\*[\s\S]*?\*\/)/g, function(m, g) {
return g ? "" : m;
});
var config = JSON.parse(stripped);
var paths = config === null || config === void 0 ? void 0 : (_config_compilerOptions = config.compilerOptions) === null || _config_compilerOptions === void 0 ? void 0 : _config_compilerOptions.paths;
var baseUrl = (config === null || config === void 0 ? void 0 : (_config_compilerOptions1 = config.compilerOptions) === null || _config_compilerOptions1 === void 0 ? void 0 : _config_compilerOptions1.baseUrl) || ".";
if (!paths) return;
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
try {
for (var _iterator = Object.entries(paths)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var [pattern, targets] = _step.value;
var target = targets[0];
if (!target) continue;
if (pattern.endsWith("/*")) {
var resolved = import_path.default.resolve(resolvedRoot, baseUrl, target.slice(0, -1));
mappings.push({
prefix: pattern.slice(0, -1),
replacement: resolved.endsWith("/") ? resolved : resolved + "/",
wildcard: true
});
} else {
mappings.push({
prefix: pattern,
replacement: import_path.default.resolve(resolvedRoot, baseUrl, target),
wildcard: false
});
}
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return != null) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
} catch (unused) {}
}
loadMappings(root);
var tsconfigPathsFilter = mappings.length ? new RegExp(mappings.map(function(m) {
return `^${m.prefix.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}${m.wildcard ? "" : "$"}`;
}).join("|")) : /^[^./]/;
return {
name: "one:tsconfig-paths",
enforce: "pre",
config() {
return { resolve: { tsconfigPaths: true } };
},
configResolved(config) {
if (mappings.length === 0) {
loadMappings(config.root);
}
},
resolveId: {
filter: { id: tsconfigPathsFilter },
handler(source) {
var resolved = function resolved2(id) {
return {
id,
packageJsonPath: (0, import_vxrn.nearestPackageJson)(id)
};
};
var jsExts = [
".ts",
".tsx",
".js",
".jsx",
".mts",
".mjs",
".cjs",
".cts"
];
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
try {
for (var _iterator = mappings[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var m = _step.value;
var candidate = void 0;
if (m.wildcard) {
if (source.startsWith(m.prefix)) {
candidate = m.replacement + source.slice(m.prefix.length);
}
} else if (source === m.prefix) {
candidate = m.replacement;
}
if (!candidate) continue;
if (jsExts.includes(import_path.default.extname(candidate))) return resolved(candidate);
var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
try {
for (var _iterator1 = jsExts[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
var e = _step1.value;
if ((0, import_fs.existsSync)(candidate + e)) return resolved(candidate + e);
}
} catch (err) {
_didIteratorError1 = true;
_iteratorError1 = err;
} finally {
try {
if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
_iterator1.return();
}
} finally {
if (_didIteratorError1) {
throw _iteratorError1;
}
}
}
var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;
try {
for (var _iterator2 = jsExts[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
var e1 = _step2.value;
if ((0, import_fs.existsSync)(candidate + "/index" + e1)) return resolved(candidate + "/index" + e1);
}
} catch (err) {
_didIteratorError2 = true;
_iteratorError2 = err;
} finally {
try {
if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
_iterator2.return();
}
} finally {
if (_didIteratorError2) {
throw _iteratorError2;
}
}
}
return resolved(candidate);
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return != null) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
}
}
};
})()],
createAliasPlugin(withAbsorbedAliases(options.alias)),
{
name: "one:redirect-rn-deep-imports",
enforce: "pre",
resolveId: {
filter: { id: RN_DEEP_IMPORT_RE },
handler(source) {
var _this_environment, _this_environment1, _this_environment2;
if (((_this_environment = this.environment) === null || _this_environment === void 0 ? void 0 : _this_environment.name) === "client" || ((_this_environment1 = this.environment) === null || _this_environment1 === void 0 ? void 0 : _this_environment1.name) === "ssr" || ((_this_environment2 = this.environment) === null || _this_environment2 === void 0 ? void 0 : _this_environment2.name) === "worker") {
return "\0rn-empty-module";
}
}
},
load: {
filter: { id: (0, import_filter.exactRegex)("\0rn-empty-module") },
handler() {
return "export default {}; export {};";
}
}
},
{
name: "one-aliases",
enforce: "pre",
config() {
var tslibLitePath = "";
try {
tslibLitePath = (0, import_resolve.resolvePath)("@vxrn/tslib-lite", process.cwd());
} catch (err) {
console.info(`Can't find tslib-lite, falling back to tslib`);
if (process.env.DEBUG) {
console.error(err);
}
}
return { resolve: { alias: { ...tslibLitePath && { tslib: tslibLitePath } } } };
}
},
{
name: "one:init-config",
config() {
var _options_web2, _options_web12, _options_web22, _options_web3;
var setupFileDefines = (function() {
if (!options.setupFile) return {};
var setupFiles;
if (typeof options.setupFile === "string") {
setupFiles = {
client: options.setupFile,
server: options.setupFile,
ios: options.setupFile,
android: options.setupFile
};
} else if ("native" in options.setupFile) {
setupFiles = {
client: options.setupFile.client,
server: options.setupFile.server,
ios: options.setupFile.native,
android: options.setupFile.native
};
} else {
setupFiles = options.setupFile;
}
return {
...setupFiles.client && { "process.env.ONE_SETUP_FILE_CLIENT": JSON.stringify(setupFiles.client) },
...setupFiles.server && { "process.env.ONE_SETUP_FILE_SERVER": JSON.stringify(setupFiles.server) },
...setupFiles.ios && { "process.env.ONE_SETUP_FILE_IOS": JSON.stringify(setupFiles.ios) },
...setupFiles.android && { "process.env.ONE_SETUP_FILE_ANDROID": JSON.stringify(setupFiles.android) }
};
})();
var serverURL = process.env.ONE_SERVER_URL || (vxrnOptions === null || vxrnOptions === void 0 ? void 0 : vxrnOptions.server.url);
return {
define: {
...(0, import_vite_plugin_metro.getPlatformEnvDefine)("client"),
...setupFileDefines,
...((_options_web2 = options.web) === null || _options_web2 === void 0 ? void 0 : _options_web2.defaultRenderMode) && {
"process.env.ONE_DEFAULT_RENDER_MODE": JSON.stringify(options.web.defaultRenderMode),
"import.meta.env.ONE_DEFAULT_RENDER_MODE": JSON.stringify(options.web.defaultRenderMode)
},
...process.env.NODE_ENV !== "production" && serverURL && {
"process.env.ONE_SERVER_URL": JSON.stringify(serverURL),
"import.meta.env.ONE_SERVER_URL": JSON.stringify(serverURL)
},
...((_options_web12 = options.web) === null || _options_web12 === void 0 ? void 0 : _options_web12.linkPrefetch) && { "process.env.ONE_LINK_PREFETCH": JSON.stringify(options.web.linkPrefetch) },
...((_options_web22 = options.web) === null || _options_web22 === void 0 ? void 0 : _options_web22.skewProtection) !== void 0 && { "process.env.ONE_SKEW_PROTECTION": JSON.stringify(options.web.skewProtection === true ? "true" : options.web.skewProtection === false ? "false" : options.web.skewProtection) },
...((_options_web3 = options.web) === null || _options_web3 === void 0 ? void 0 : _options_web3.suspendRoutes) !== void 0 && { "process.env.ONE_SUSPEND_ROUTES": JSON.stringify(options.web.suspendRoutes ? "1" : "0") }
},
environments: {
ssr: { define: (0, import_vite_plugin_metro.getPlatformEnvDefine)("ssr") },
ios: { define: {
...(0, import_vite_plugin_metro.getPlatformEnvDefine)("ios"),
...(nativeOptions === null || nativeOptions === void 0 ? void 0 : nativeOptions.suspendRoutes) !== void 0 && { "process.env.ONE_SUSPEND_ROUTES_NATIVE": JSON.stringify(nativeOptions.suspendRoutes ? "1" : "0") }
} },
android: { define: {
...(0, import_vite_plugin_metro.getPlatformEnvDefine)("android"),
...(nativeOptions === null || nativeOptions === void 0 ? void 0 : nativeOptions.suspendRoutes) !== void 0 && { "process.env.ONE_SUSPEND_ROUTES_NATIVE": JSON.stringify(nativeOptions.suspendRoutes ? "1" : "0") }
} }
},
ssr: { noExternal: ["server-only", "client-only"] }
};
}
},
{
name: "one:tamagui",
config() {
return {
define: { "process.env.TAMAGUI_REACT_19": "\"1\"" },
environments: {
ssr: { define: {
"process.env.TAMAGUI_IS_SERVER": "\"1\"",
"process.env.TAMAGUI_KEEP_THEMES": "\"1\""
} },
ios: { define: { "process.env.TAMAGUI_KEEP_THEMES": "\"1\"" } },
android: { define: { "process.env.TAMAGUI_KEEP_THEMES": "\"1\"" } }
}
};
}
},
(0, import_routeModuleHmrPlugin.createRouteModuleHmrPlugin)(routerRoot),
{
name: "one:optimize-dev-deps",
config(_, env) {
if (env.mode === "development") {
return { optimizeDeps: { include: ["react/jsx-dev-runtime", "react/compiler-runtime"] } };
}
}
},
{
name: "one:remove-server-from-client",
enforce: "pre",
transform: {
filter: {
id: /one-server-only/,
code: "import { AsyncLocalStorage } from \"node:async_hooks\""
},
handler(code) {
if (this.environment.name !== "client") return;
return code.replace(`import { AsyncLocalStorage } from "node:async_hooks"`, `class AsyncLocalStorage {}`);
}
}
},
{
name: "one:ssr-dedupe-prebundle",
config(config) {
var _config_resolve;
if (!dedupeSymlinks) return;
var dedupeList = (_config_resolve = config.resolve) === null || _config_resolve === void 0 ? void 0 : _config_resolve.dedupe;
if (!Array.isArray(dedupeList) || dedupeList.length === 0) return;
return { ssr: {
optimizeDeps: { include: [...dedupeList] },
noExternal: [...dedupeList]
} };
}
},
...dedupeSymlinks ? [ssrSymlinkDedupPlugin] : []
];
var nativeWebDevAndProdPlugsin = [(0, import_clientTreeShakePlugin.clientTreeShakePlugin)({ routerRoot })];
var nativeFormPlugins = [];
var nativeFormPluginsCapture = {
name: "one:native-form-plugins",
configResolved(config) {
nativeFormPlugins = config.plugins.filter(function(plugin) {
var _plugin_api;
return (_plugin_api = plugin.api) === null || _plugin_api === void 0 ? void 0 : _plugin_api.vxrnNative;
});
}
};
if (!nativeDisabled) {
var viteBundlerOptions = (nativeOptions === null || nativeOptions === void 0 ? void 0 : nativeOptions.bundler) === "metro" ? void 0 : nativeOptions === null || nativeOptions === void 0 ? void 0 : nativeOptions.bundlerOptions;
globalThis.__vxrnAddNativePlugins = function(platform) {
var _ref2;
var listed = [
(0, import_vxrn.backgroundComputationPlugin)("native"),
(0, import_vxrn.workletImportsPlugin)({}),
...nativeApp ? [{
name: "one:externalize-expo-for-native-app",
resolveId(source) {
if (/^(?:expo(?:-[^/]+)?|@expo\/[^/]+)(?:\/|$)/.test(source)) {
return {
id: source,
external: true
};
}
}
}] : [],
createAliasPlugin(withAbsorbedAliases(options.alias), platform),
(0, import_clientTreeShakePlugin.clientTreeShakePlugin)({
runtime: "rolldown",
routerRoot
}),
...(_ref2 = viteBundlerOptions === null || viteBundlerOptions === void 0 ? void 0 : viteBundlerOptions.plugins) !== null && _ref2 !== void 0 ? _ref2 : []
];
var listedNames = new Set(listed.map(function(plugin) {
return plugin.name;
}));
return [
...listed,
...nativeFormPlugins.filter(function(plugin) {
return !listedNames.has(plugin.name);
}),
(0, import_swiftPackagePlugin.swiftPackagePlugin)(platform, root),
(0, import_kotlinSourcePlugin.kotlinSourcePlugin)(platform, root)
];
};
globalThis.__vxrnNativeUserDefine = {
...viteBundlerOptions === null || viteBundlerOptions === void 0 ? void 0 : viteBundlerOptions.define,
...nativeAppName && {
"process.env.ONE_APP_NAME": JSON.stringify(nativeAppName),
"import.meta.env.ONE_APP_NAME": JSON.stringify(nativeAppName)
}
};
}
globalThis.__vxrnAddWebPluginsProd = devAndProdPlugins;
var flags = {};
var routeIndex = (0, import_routeIndex.createRouteIndex)({
routerRoot: import_path.default.resolve(root, routerRoot),
ignoredRouteFiles: (_options_router = options.router) === null || _options_router === void 0 ? void 0 : _options_router.ignoredRouteFiles
});
if (!nativeDisabled) {
var _options_router1, _options_router2;
globalThis.__vxrnNativeEntryConfig = {
routerRoot,
ignoredRouteFiles: (_options_router1 = options.router) === null || _options_router1 === void 0 ? void 0 : _options_router1.ignoredRouteFiles,
linking: (_options_router2 = options.router) === null || _options_router2 === void 0 ? void 0 : _options_router2.linking,
setupFile: options.setupFile,
flags,
app: nativeApp
};
}
var inspectorPlugins = (function() {
var _options_devtools, _devtools_inspector;
var devtools = (_options_devtools = options.devtools) !== null && _options_devtools !== void 0 ? _options_devtools : true;
var inspector = devtools === true || devtools !== false && ((_devtools_inspector = devtools.inspector) !== null && _devtools_inspector !== void 0 ? _devtools_inspector : true);
var editor = devtools !== true && devtools !== false ? devtools.editor : void 0;
return inspector ? (0, import_sourceInspectorPlugin.sourceInspectorPlugin)({ editor }) : [];
})();
var workerdDevPlugins = (0, import_cloudflareWranglerConfig.shouldEnableWorkerdDev)((_options_web1 = options.web) === null || _options_web1 === void 0 ? void 0 : _options_web1.deploy, root) ? import("./plugins/workerdDevPlugin.native.js").then(function(param) {
var { createWorkerdDevPlugins } = param;
return createWorkerdDevPlugins(options, root, routeIndex);
}) : [];
return [
(0, import_vxrn.backgroundComputationPlugin)("web"),
{
name: "one:background-worker-build",
config(config) {
var _config_worker;
var plugins = (_config_worker = config.worker) === null || _config_worker === void 0 ? void 0 : _config_worker.plugins;
return { worker: { plugins: function plugins1() {
var _ref2;
return [...(_ref2 = plugins === null || plugins === void 0 ? void 0 : plugins()) !== null && _ref2 !== void 0 ? _ref2 : [], (0, import_vxrn.backgroundComputationPlugin)("web")];
} } };
}
},
workerdDevPlugins,
...vxrnPlugins,
...devAndProdPlugins,
...inspectorPlugins,
...nativeWebDevAndProdPlugsin,
...nativeDisabled ? [] : [nativeFormPluginsCapture],
(0, import_fileSystemRouterPlugin.createFileSystemRouterPlugin)(options, routeIndex),
(0, import_generateFileSystemRouteTypesPlugin.generateFileSystemRouteTypesPlugin)(options, routeIndex),
(0, import_fixDependenciesPlugin.fixDependenciesPlugin)(options.patches),
(0, import_virtualEntryPlugin.createVirtualEntry)({
...options,
flags,
root: routerRoot,
routeIndex
}),
{
name: "one-define-environment",
config() {
return { define: {
...nativeAppName && {
"process.env.ONE_APP_NAME": JSON.stringify(nativeAppName),
"import.meta.env.ONE_APP_NAME": JSON.stringify(nativeAppName)
},
...nativeAppVersion && {
"process.env.ONE_APP_VERSION": JSON.stringify(nativeAppVersion),
"import.meta.env.ONE_APP_VERSION": JSON.stringify(nativeAppVersion)
},
"process.env.ONE_CACHE_KEY": JSON.stringify(import_constants.CACHE_KEY),
"import.meta.env.ONE_CACHE_KEY": JSON.stringify(import_constants.CACHE_KEY)
} };
}
},
(0, import_SSRCSSPlugin.SSRCSSPlugin)({ entries: [import_virtualEntryConstants.virtualEntryId] }),
...(function() {
var _options_devtools;
var devtools = (_options_devtools = options.devtools) !== null && _options_devtools !== void 0 ? _options_devtools : true;
var includeUI = devtools !== false;
return [(0, import_devtoolsPlugin.createDevtoolsPlugin)({ includeUI })];
})()
];
}