vxrn 2.0.0-beta.51.1 → 2.0.0-beta.53.1
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/exports/loadEnv.mjs +9 -3
- package/dist/exports/loadEnv.mjs.map +1 -1
- package/dist/exports/loadEnv.native.js +28 -5
- package/dist/exports/loadEnv.native.js.map +1 -1
- package/dist/runtime/native-prelude.mjs +1 -0
- package/dist/runtime/native-prelude.mjs.map +1 -1
- package/dist/runtime/native-prelude.native.js +1 -0
- package/dist/runtime/native-prelude.native.js.map +1 -1
- package/dist/utils/createNativeDevEngine.mjs +9 -2
- package/dist/utils/createNativeDevEngine.mjs.map +1 -1
- package/dist/utils/createNativeDevEngine.native.js +14 -22
- package/dist/utils/createNativeDevEngine.native.js.map +1 -1
- package/package.json +11 -11
- package/src/exports/loadEnv.test.ts +22 -0
- package/src/exports/loadEnv.ts +20 -11
- package/src/runtime/native-prelude.ts +1 -0
- package/src/utils/createNativeDevEngine.test.ts +23 -7
- package/src/utils/createNativeDevEngine.ts +9 -10
- package/types/exports/loadEnv.d.ts +1 -3
- package/types/exports/loadEnv.d.ts.map +1 -1
- package/types/runtime/native-prelude.d.ts.map +1 -1
- package/types/utils/createNativeDevEngine.d.ts.map +1 -1
package/dist/exports/loadEnv.mjs
CHANGED
|
@@ -4,8 +4,9 @@ import { join } from "node:path";
|
|
|
4
4
|
import { parse } from "dotenv";
|
|
5
5
|
import { expand } from "dotenv-expand";
|
|
6
6
|
import { normalizePath } from "vite";
|
|
7
|
+
import { withExpoPublicEnvAliases } from "@vxrn/utils/publicEnv";
|
|
7
8
|
|
|
8
|
-
const DEFAULT_PREFIX = /^(ONE|VITE|TAMAGUI)_/;
|
|
9
|
+
const DEFAULT_PREFIX = /^(ONE|VITE|TAMAGUI)_|^EXPO_PUBLIC_/;
|
|
9
10
|
async function loadEnv(mode, root = process.cwd(), userPrefix) {
|
|
10
11
|
const loadedEnv = await loadJustEnvFiles(mode);
|
|
11
12
|
const prefix = userPrefix ? Array.isArray(userPrefix) ? userPrefix : [userPrefix] : [];
|
|
@@ -18,7 +19,7 @@ async function loadEnv(mode, root = process.cwd(), userPrefix) {
|
|
|
18
19
|
loaded[key] = val;
|
|
19
20
|
process.env[key] = val;
|
|
20
21
|
}
|
|
21
|
-
const clientEnv = Object.fromEntries(Object.entries({
|
|
22
|
+
const clientEnv = withExpoPublicEnvAliases(Object.fromEntries(Object.entries({
|
|
22
23
|
...process.env,
|
|
23
24
|
...loaded
|
|
24
25
|
}).flatMap(([key, value]) => {
|
|
@@ -26,7 +27,12 @@ async function loadEnv(mode, root = process.cwd(), userPrefix) {
|
|
|
26
27
|
return [[key, value]];
|
|
27
28
|
}
|
|
28
29
|
return [];
|
|
29
|
-
}));
|
|
30
|
+
})));
|
|
31
|
+
for (const [key, value] of Object.entries(clientEnv)) {
|
|
32
|
+
if (process.env[key] === void 0 && value !== void 0) {
|
|
33
|
+
process.env[key] = value;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
30
36
|
return {
|
|
31
37
|
serverEnv: loadedEnv,
|
|
32
38
|
clientEnv,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadEnv.js","names":[],"sources":["exports/loadEnv.js"],"sourcesContent":["import { statSync } from \"node:fs\";\nimport { readFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport { parse } from \"dotenv\";\nimport { expand } from \"dotenv-expand\";\nimport { normalizePath } from \"vite\";\nconst DEFAULT_PREFIX = /^(ONE|VITE|TAMAGUI)_/;\nasync function loadEnv(mode, root = process.cwd(), userPrefix) {\n const loadedEnv = await loadJustEnvFiles(mode);\n const prefix = userPrefix ? Array.isArray(userPrefix) ? userPrefix : [userPrefix] : [];\n const isPublicKey = (key) => {\n return prefix.some((p) => key.startsWith(p)) || DEFAULT_PREFIX.test(key);\n };\n const loaded = {};\n for (const key in loadedEnv) {\n const val = process.env[key] || loadedEnv[key];\n loaded[key] = val;\n process.env[key] = val;\n }\n const clientEnv = Object.fromEntries(\n
|
|
1
|
+
{"version":3,"file":"loadEnv.js","names":[],"sources":["exports/loadEnv.js"],"sourcesContent":["import { statSync } from \"node:fs\";\nimport { readFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport { parse } from \"dotenv\";\nimport { expand } from \"dotenv-expand\";\nimport { normalizePath } from \"vite\";\nimport { withExpoPublicEnvAliases } from \"@vxrn/utils/publicEnv\";\nconst DEFAULT_PREFIX = /^(ONE|VITE|TAMAGUI)_|^EXPO_PUBLIC_/;\nasync function loadEnv(mode, root = process.cwd(), userPrefix) {\n const loadedEnv = await loadJustEnvFiles(mode);\n const prefix = userPrefix ? Array.isArray(userPrefix) ? userPrefix : [userPrefix] : [];\n const isPublicKey = (key) => {\n return prefix.some((p) => key.startsWith(p)) || DEFAULT_PREFIX.test(key);\n };\n const loaded = {};\n for (const key in loadedEnv) {\n const val = process.env[key] || loadedEnv[key];\n loaded[key] = val;\n process.env[key] = val;\n }\n const clientEnv = withExpoPublicEnvAliases(\n Object.fromEntries(\n Object.entries({\n ...process.env,\n ...loaded\n }).flatMap(([key, value]) => {\n if (isPublicKey(key)) {\n return [[key, value]];\n }\n return [];\n })\n )\n );\n for (const [key, value] of Object.entries(clientEnv)) {\n if (process.env[key] === void 0 && value !== void 0) {\n process.env[key] = value;\n }\n }\n return {\n serverEnv: loadedEnv,\n clientEnv,\n clientEnvDefine: Object.fromEntries(\n Object.entries(clientEnv).flatMap(([key, val]) => {\n const stringified = JSON.stringify(val);\n return [\n [`process.env.${key}`, stringified],\n [`import.meta.env.${key}`, stringified]\n ];\n })\n )\n };\n}\nfunction getEnvFilesForMode(mode) {\n return [`.env`, `.env.local`, `.env.${mode}`, `.env.${mode}.local`].map(\n (file) => normalizePath(join(\".\", file))\n );\n}\nasync function loadJustEnvFiles(mode) {\n const envFiles = getEnvFilesForMode(mode);\n const parsed = Object.fromEntries(\n (await Promise.all(\n envFiles.map(async (filePath) => {\n if (!tryStatSync(filePath)?.isFile()) return [];\n const contents = await readFile(filePath, \"utf-8\");\n return Object.entries(parse(contents));\n })\n )).flat()\n );\n const processEnv = { ...process.env };\n expand({ parsed, processEnv });\n return parsed;\n}\nfunction tryStatSync(file) {\n try {\n return statSync(file, { throwIfNoEntry: false });\n } catch {\n }\n}\nexport {\n loadEnv\n};\n//# sourceMappingURL=loadEnv.js.map\n"],"mappings":";;;;;;;;;AAOA,MAAM,iBAAiB;AACvB,eAAe,QAAQ,MAAM,OAAO,QAAQ,IAAI,GAAG,YAAY;CAC7D,MAAM,YAAY,MAAM,iBAAiB,IAAI;CAC7C,MAAM,SAAS,aAAa,MAAM,QAAQ,UAAU,IAAI,aAAa,CAAC,UAAU,IAAI,CAAC;CACrF,MAAM,eAAe,QAAQ;EAC3B,OAAO,OAAO,MAAM,MAAM,IAAI,WAAW,CAAC,CAAC,KAAK,eAAe,KAAK,GAAG;CACzE;CACA,MAAM,SAAS,CAAC;CAChB,KAAK,MAAM,OAAO,WAAW;EAC3B,MAAM,MAAM,QAAQ,IAAI,QAAQ,UAAU;EAC1C,OAAO,OAAO;EACd,QAAQ,IAAI,OAAO;CACrB;CACA,MAAM,YAAY,yBAChB,OAAO,YACL,OAAO,QAAQ;EACb,GAAG,QAAQ;EACX,GAAG;CACL,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,WAAW;EAC3B,IAAI,YAAY,GAAG,GAAG;GACpB,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC;EACtB;EACA,OAAO,CAAC;CACV,CAAC,CACH,CACF;CACA,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,SAAS,GAAG;EACpD,IAAI,QAAQ,IAAI,SAAS,KAAK,KAAK,UAAU,KAAK,GAAG;GACnD,QAAQ,IAAI,OAAO;EACrB;CACF;CACA,OAAO;EACL,WAAW;EACX;EACA,iBAAiB,OAAO,YACtB,OAAO,QAAQ,SAAS,CAAC,CAAC,SAAS,CAAC,KAAK,SAAS;GAChD,MAAM,cAAc,KAAK,UAAU,GAAG;GACtC,OAAO,CACL,CAAC,eAAe,OAAO,WAAW,GAClC,CAAC,mBAAmB,OAAO,WAAW,CACxC;EACF,CAAC,CACH;CACF;AACF;AACA,SAAS,mBAAmB,MAAM;CAChC,OAAO;EAAC;EAAQ;EAAc,QAAQ;EAAQ,QAAQ,KAAK;CAAO,CAAC,CAAC,KACjE,SAAS,cAAc,KAAK,KAAK,IAAI,CAAC,CACzC;AACF;AACA,eAAe,iBAAiB,MAAM;CACpC,MAAM,WAAW,mBAAmB,IAAI;CACxC,MAAM,SAAS,OAAO,aACnB,MAAM,QAAQ,IACb,SAAS,IAAI,OAAO,aAAa;EAC/B,IAAI,CAAC,YAAY,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;EAC9C,MAAM,WAAW,MAAM,SAAS,UAAU,OAAO;EACjD,OAAO,OAAO,QAAQ,MAAM,QAAQ,CAAC;CACvC,CAAC,CACH,EAAC,CAAE,KAAK,CACV;CACA,MAAM,aAAa,EAAE,GAAG,QAAQ,IAAI;CACpC,OAAO;EAAE;EAAQ;CAAW,CAAC;CAC7B,OAAO;AACT;AACA,SAAS,YAAY,MAAM;CACzB,IAAI;EACF,OAAO,SAAS,MAAM,EAAE,gBAAgB,MAAM,CAAC;CACjD,QAAQ,CACR;AACF"}
|
|
@@ -4,8 +4,9 @@ import { join } from "path";
|
|
|
4
4
|
import { parse } from "dotenv";
|
|
5
5
|
import { expand } from "dotenv-expand";
|
|
6
6
|
import { normalizePath } from "vite";
|
|
7
|
+
import { withExpoPublicEnvAliases } from "@vxrn/utils/publicEnv";
|
|
7
8
|
|
|
8
|
-
var DEFAULT_PREFIX = /^(ONE|VITE|TAMAGUI)_/;
|
|
9
|
+
var DEFAULT_PREFIX = /^(ONE|VITE|TAMAGUI)_|^EXPO_PUBLIC_/;
|
|
9
10
|
async function loadEnv(mode) {
|
|
10
11
|
var root = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : process.cwd(), userPrefix = arguments.length > 2 ? arguments[2] : void 0;
|
|
11
12
|
var loadedEnv = await loadJustEnvFiles(mode);
|
|
@@ -21,16 +22,38 @@ async function loadEnv(mode) {
|
|
|
21
22
|
loaded[key] = val;
|
|
22
23
|
process.env[key] = val;
|
|
23
24
|
}
|
|
24
|
-
var clientEnv = Object.fromEntries(Object.entries({
|
|
25
|
+
var clientEnv = withExpoPublicEnvAliases(Object.fromEntries(Object.entries({
|
|
25
26
|
...process.env,
|
|
26
27
|
...loaded
|
|
27
28
|
}).flatMap(function(param) {
|
|
28
|
-
var [key2,
|
|
29
|
+
var [key2, value2] = param;
|
|
29
30
|
if (isPublicKey(key2)) {
|
|
30
|
-
return [[key2,
|
|
31
|
+
return [[key2, value2]];
|
|
31
32
|
}
|
|
32
33
|
return [];
|
|
33
|
-
}));
|
|
34
|
+
})));
|
|
35
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
|
|
36
|
+
try {
|
|
37
|
+
for (var _iterator = Object.entries(clientEnv)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
38
|
+
var [key1, value] = _step.value;
|
|
39
|
+
if (process.env[key1] === void 0 && value !== void 0) {
|
|
40
|
+
process.env[key1] = value;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
} catch (err) {
|
|
44
|
+
_didIteratorError = true;
|
|
45
|
+
_iteratorError = err;
|
|
46
|
+
} finally {
|
|
47
|
+
try {
|
|
48
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
49
|
+
_iterator.return();
|
|
50
|
+
}
|
|
51
|
+
} finally {
|
|
52
|
+
if (_didIteratorError) {
|
|
53
|
+
throw _iteratorError;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
34
57
|
return {
|
|
35
58
|
serverEnv: loadedEnv,
|
|
36
59
|
clientEnv,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadEnv.native.js","names":[],"sources":["exports/loadEnv.native.js"],"sourcesContent":["import { statSync } from \"fs\";\nimport { readFile } from \"fs/promises\";\nimport { join } from \"path\";\nimport { parse } from \"dotenv\";\nimport { expand } from \"dotenv-expand\";\nimport { normalizePath } from \"vite\";\nvar DEFAULT_PREFIX = /^(ONE|VITE|TAMAGUI)_/;\nasync function loadEnv(mode) {\n var root = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : process.cwd(), userPrefix = arguments.length > 2 ? arguments[2] : void 0;\n var loadedEnv = await loadJustEnvFiles(mode);\n var prefix = userPrefix ? Array.isArray(userPrefix) ? userPrefix : [\n userPrefix\n ] : [];\n var isPublicKey = function(key2) {\n return prefix.some(function(p) {\n return key2.startsWith(p);\n }) || DEFAULT_PREFIX.test(key2);\n };\n var loaded = {};\n for (var key in loadedEnv) {\n var val = process.env[key] || loadedEnv[key];\n loaded[key] = val;\n process.env[key] = val;\n }\n var clientEnv = Object.fromEntries(Object.entries({\n ...process.env,\n ...loaded\n }).flatMap(function(param) {\n var [key2,
|
|
1
|
+
{"version":3,"file":"loadEnv.native.js","names":[],"sources":["exports/loadEnv.native.js"],"sourcesContent":["import { statSync } from \"fs\";\nimport { readFile } from \"fs/promises\";\nimport { join } from \"path\";\nimport { parse } from \"dotenv\";\nimport { expand } from \"dotenv-expand\";\nimport { normalizePath } from \"vite\";\nimport { withExpoPublicEnvAliases } from \"@vxrn/utils/publicEnv\";\nvar DEFAULT_PREFIX = /^(ONE|VITE|TAMAGUI)_|^EXPO_PUBLIC_/;\nasync function loadEnv(mode) {\n var root = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : process.cwd(), userPrefix = arguments.length > 2 ? arguments[2] : void 0;\n var loadedEnv = await loadJustEnvFiles(mode);\n var prefix = userPrefix ? Array.isArray(userPrefix) ? userPrefix : [\n userPrefix\n ] : [];\n var isPublicKey = function(key2) {\n return prefix.some(function(p) {\n return key2.startsWith(p);\n }) || DEFAULT_PREFIX.test(key2);\n };\n var loaded = {};\n for (var key in loadedEnv) {\n var val = process.env[key] || loadedEnv[key];\n loaded[key] = val;\n process.env[key] = val;\n }\n var clientEnv = withExpoPublicEnvAliases(Object.fromEntries(Object.entries({\n ...process.env,\n ...loaded\n }).flatMap(function(param) {\n var [key2, value2] = param;\n if (isPublicKey(key2)) {\n return [\n [\n key2,\n value2\n ]\n ];\n }\n return [];\n })));\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = Object.entries(clientEnv)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var [key1, value] = _step.value;\n if (process.env[key1] === void 0 && value !== void 0) {\n process.env[key1] = value;\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 {\n serverEnv: loadedEnv,\n clientEnv,\n clientEnvDefine: Object.fromEntries(Object.entries(clientEnv).flatMap(function(param) {\n var [key2, val2] = param;\n var stringified = JSON.stringify(val2);\n return [\n [\n `process.env.${key2}`,\n stringified\n ],\n [\n `import.meta.env.${key2}`,\n stringified\n ]\n ];\n }))\n };\n}\nfunction getEnvFilesForMode(mode) {\n return [\n `.env`,\n `.env.local`,\n `.env.${mode}`,\n `.env.${mode}.local`\n ].map(function(file) {\n return normalizePath(join(\".\", file));\n });\n}\nasync function loadJustEnvFiles(mode) {\n var envFiles = getEnvFilesForMode(mode);\n var parsed = Object.fromEntries((await Promise.all(envFiles.map(async function(filePath) {\n var _tryStatSync;\n if (!((_tryStatSync = tryStatSync(filePath)) === null || _tryStatSync === void 0 ? void 0 : _tryStatSync.isFile())) return [];\n var contents = await readFile(filePath, \"utf-8\");\n return Object.entries(parse(contents));\n }))).flat());\n var processEnv = {\n ...process.env\n };\n expand({\n parsed,\n processEnv\n });\n return parsed;\n}\nfunction tryStatSync(file) {\n try {\n return statSync(file, {\n throwIfNoEntry: false\n });\n } catch (unused) {\n }\n}\nexport {\n loadEnv\n};\n//# sourceMappingURL=loadEnv.js.map\n"],"mappings":"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"}
|
|
@@ -43,6 +43,7 @@ if (typeof process === 'undefined') {
|
|
|
43
43
|
}
|
|
44
44
|
process.env.NODE_ENV = ${JSON.stringify(options.dev ? "development" : "production")};
|
|
45
45
|
process.env.ONE_PLATFORM = ${JSON.stringify(options.platform)};
|
|
46
|
+
process.env.EXPO_OS = ${JSON.stringify(options.platform)};
|
|
46
47
|
process.env.TAMAGUI_TARGET = 'native';
|
|
47
48
|
${options.serverUrl ? `process.env.ONE_SERVER_URL = ${JSON.stringify(options.serverUrl)};` : ""}
|
|
48
49
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-prelude.js","names":[],"sources":["runtime/native-prelude.js"],"sourcesContent":["function getNativePrelude(options) {\n\treturn `\nvar __BUNDLE_START_TIME__ = globalThis.nativePerformanceNow ? nativePerformanceNow() : Date.now();\n\nvar global = typeof globalThis !== 'undefined' ? globalThis\n : typeof global !== 'undefined' ? global\n : typeof window !== 'undefined' ? window\n : this;\n\nglobalThis.global = global;\nglobalThis.__DEV__ = ${options.dev};\n\n// react native polyfills\nglobal.__FUSEBOX_HAS_FULL_CONSOLE_SUPPORT__ = false;\nglobal.Event = global.Event || function() { return this; };\nglobal.dispatchEvent = global.dispatchEvent || function() {};\nglobal.window = global.window || global;\nglobal.self = global.self || global;\nglobal.navigator = global.navigator || { product: 'ReactNative', userAgent: '' };\nglobal.performance = global.performance || { now: function() { return Date.now(); } };\n\n// hermes can expose addEventListener without the matching removal API. browser\n// libraries use addEventListener as their capability check, then crash during\n// cleanup. keep the incomplete host API from advertising browser event support.\nif (typeof global.addEventListener === 'function' && typeof global.removeEventListener !== 'function') {\n global.addEventListener = undefined;\n}\n\n// ErrorUtils - used by RN's error handling system\nif (!global.ErrorUtils) {\n var _handler = null;\n global.ErrorUtils = {\n setGlobalHandler: function(h) { _handler = h; },\n getGlobalHandler: function() { return _handler; },\n reportFatalError: function(e) { if (_handler) _handler(e, true); else throw e; },\n reportError: function(e) { if (_handler) _handler(e, false); },\n applyWithGuard: function(fn, ctx, args) { try { return fn.apply(ctx, args); } catch(e) { this.reportError(e); } },\n };\n}\n\nif (typeof process === 'undefined') {\n globalThis.process = { env: {} };\n}\nprocess.env.NODE_ENV = ${JSON.stringify(options.dev ? \"development\" : \"production\")};\nprocess.env.ONE_PLATFORM = ${JSON.stringify(options.platform)};\nprocess.env.TAMAGUI_TARGET = 'native';\n${options.serverUrl ? `process.env.ONE_SERVER_URL = ${JSON.stringify(options.serverUrl)};` : \"\"}\n\n// polyfill setImmediate (used by react-native internals)\nif (typeof globalThis.setImmediate === 'undefined') {\n globalThis.setImmediate = function(fn) { return setTimeout(fn, 0); };\n globalThis.clearImmediate = function(id) { clearTimeout(id); };\n}\n\n// polyfill URLSearchParams early (before whatwg-fetch checks for it)\n// RN's polyfillGlobal sets this up later but some modules check at import time\nif (typeof globalThis.URLSearchParams === 'undefined') {\n // minimal URLSearchParams polyfill - will be overridden by RN's proper one\n globalThis.URLSearchParams = function URLSearchParams(init) {\n this._params = {};\n if (typeof init === 'string') {\n init.replace(/^\\\\?/, '').split('&').forEach(function(p) {\n var kv = p.split('=');\n if (kv[0]) this._params[decodeURIComponent(kv[0])] = decodeURIComponent(kv[1] || '');\n }.bind(this));\n }\n };\n globalThis.URLSearchParams.prototype.get = function(k) { return this._params[k] || null; };\n globalThis.URLSearchParams.prototype.toString = function() {\n return Object.keys(this._params).map(function(k) { return encodeURIComponent(k) + '=' + encodeURIComponent(this._params[k]); }.bind(this)).join('&');\n };\n}\n\n// ensure console exists before any library prelude touches it in release bundles\nglobalThis.console = globalThis.console || {};\nvar console = globalThis.console;\nconsole.log = console.log || function() {};\nconsole.info = console.info || function() {};\nconsole.warn = console.warn || function() {};\nconsole.error = console.error || function() {};\nconsole.debug = console.debug || function() {};\nconsole.trace = console.trace || function() {};\n\n// reanimated compat - these console methods must exist to avoid EXC_BAD_ACCESS crash\nconsole.assert = console.assert || function() {};\nconsole.clear = console.clear || function() {};\nconsole.dir = console.dir || function() {};\nconsole.dirxml = console.dirxml || function() {};\nconsole.profile = console.profile || function() {};\nconsole.profileEnd = console.profileEnd || function() {};\nconsole.table = console.table || function() {};\n\n// react refresh stubs (overridden by react-refresh plugin in dev)\n${options.dev ? `\nvar $RefreshReg$ = function() {};\nvar $RefreshSig$ = function() { return function(v) { return v; }; };\n` : \"\"}\n`.trim();\n}\n\nexport { getNativePrelude };"],"mappings":";AAAA,SAAS,iBAAiB,SAAS;CAClC,OAAO;;;;;;;;;uBASe,QAAQ,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAiCV,KAAK,UAAU,QAAQ,MAAM,gBAAgB,YAAY,EAAE;6BACvD,KAAK,UAAU,QAAQ,QAAQ,EAAE;;
|
|
1
|
+
{"version":3,"file":"native-prelude.js","names":[],"sources":["runtime/native-prelude.js"],"sourcesContent":["function getNativePrelude(options) {\n\treturn `\nvar __BUNDLE_START_TIME__ = globalThis.nativePerformanceNow ? nativePerformanceNow() : Date.now();\n\nvar global = typeof globalThis !== 'undefined' ? globalThis\n : typeof global !== 'undefined' ? global\n : typeof window !== 'undefined' ? window\n : this;\n\nglobalThis.global = global;\nglobalThis.__DEV__ = ${options.dev};\n\n// react native polyfills\nglobal.__FUSEBOX_HAS_FULL_CONSOLE_SUPPORT__ = false;\nglobal.Event = global.Event || function() { return this; };\nglobal.dispatchEvent = global.dispatchEvent || function() {};\nglobal.window = global.window || global;\nglobal.self = global.self || global;\nglobal.navigator = global.navigator || { product: 'ReactNative', userAgent: '' };\nglobal.performance = global.performance || { now: function() { return Date.now(); } };\n\n// hermes can expose addEventListener without the matching removal API. browser\n// libraries use addEventListener as their capability check, then crash during\n// cleanup. keep the incomplete host API from advertising browser event support.\nif (typeof global.addEventListener === 'function' && typeof global.removeEventListener !== 'function') {\n global.addEventListener = undefined;\n}\n\n// ErrorUtils - used by RN's error handling system\nif (!global.ErrorUtils) {\n var _handler = null;\n global.ErrorUtils = {\n setGlobalHandler: function(h) { _handler = h; },\n getGlobalHandler: function() { return _handler; },\n reportFatalError: function(e) { if (_handler) _handler(e, true); else throw e; },\n reportError: function(e) { if (_handler) _handler(e, false); },\n applyWithGuard: function(fn, ctx, args) { try { return fn.apply(ctx, args); } catch(e) { this.reportError(e); } },\n };\n}\n\nif (typeof process === 'undefined') {\n globalThis.process = { env: {} };\n}\nprocess.env.NODE_ENV = ${JSON.stringify(options.dev ? \"development\" : \"production\")};\nprocess.env.ONE_PLATFORM = ${JSON.stringify(options.platform)};\nprocess.env.EXPO_OS = ${JSON.stringify(options.platform)};\nprocess.env.TAMAGUI_TARGET = 'native';\n${options.serverUrl ? `process.env.ONE_SERVER_URL = ${JSON.stringify(options.serverUrl)};` : \"\"}\n\n// polyfill setImmediate (used by react-native internals)\nif (typeof globalThis.setImmediate === 'undefined') {\n globalThis.setImmediate = function(fn) { return setTimeout(fn, 0); };\n globalThis.clearImmediate = function(id) { clearTimeout(id); };\n}\n\n// polyfill URLSearchParams early (before whatwg-fetch checks for it)\n// RN's polyfillGlobal sets this up later but some modules check at import time\nif (typeof globalThis.URLSearchParams === 'undefined') {\n // minimal URLSearchParams polyfill - will be overridden by RN's proper one\n globalThis.URLSearchParams = function URLSearchParams(init) {\n this._params = {};\n if (typeof init === 'string') {\n init.replace(/^\\\\?/, '').split('&').forEach(function(p) {\n var kv = p.split('=');\n if (kv[0]) this._params[decodeURIComponent(kv[0])] = decodeURIComponent(kv[1] || '');\n }.bind(this));\n }\n };\n globalThis.URLSearchParams.prototype.get = function(k) { return this._params[k] || null; };\n globalThis.URLSearchParams.prototype.toString = function() {\n return Object.keys(this._params).map(function(k) { return encodeURIComponent(k) + '=' + encodeURIComponent(this._params[k]); }.bind(this)).join('&');\n };\n}\n\n// ensure console exists before any library prelude touches it in release bundles\nglobalThis.console = globalThis.console || {};\nvar console = globalThis.console;\nconsole.log = console.log || function() {};\nconsole.info = console.info || function() {};\nconsole.warn = console.warn || function() {};\nconsole.error = console.error || function() {};\nconsole.debug = console.debug || function() {};\nconsole.trace = console.trace || function() {};\n\n// reanimated compat - these console methods must exist to avoid EXC_BAD_ACCESS crash\nconsole.assert = console.assert || function() {};\nconsole.clear = console.clear || function() {};\nconsole.dir = console.dir || function() {};\nconsole.dirxml = console.dirxml || function() {};\nconsole.profile = console.profile || function() {};\nconsole.profileEnd = console.profileEnd || function() {};\nconsole.table = console.table || function() {};\n\n// react refresh stubs (overridden by react-refresh plugin in dev)\n${options.dev ? `\nvar $RefreshReg$ = function() {};\nvar $RefreshSig$ = function() { return function(v) { return v; }; };\n` : \"\"}\n`.trim();\n}\n\nexport { getNativePrelude };"],"mappings":";AAAA,SAAS,iBAAiB,SAAS;CAClC,OAAO;;;;;;;;;uBASe,QAAQ,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAiCV,KAAK,UAAU,QAAQ,MAAM,gBAAgB,YAAY,EAAE;6BACvD,KAAK,UAAU,QAAQ,QAAQ,EAAE;wBACtC,KAAK,UAAU,QAAQ,QAAQ,EAAE;;EAEvD,QAAQ,YAAY,gCAAgC,KAAK,UAAU,QAAQ,SAAS,EAAE,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+C9F,QAAQ,MAAM;;;IAGZ,GAAG;EACL,KAAK;AACP"}
|
|
@@ -43,6 +43,7 @@ if (typeof process === 'undefined') {
|
|
|
43
43
|
}
|
|
44
44
|
process.env.NODE_ENV = ${JSON.stringify(options.dev ? "development" : "production")};
|
|
45
45
|
process.env.ONE_PLATFORM = ${JSON.stringify(options.platform)};
|
|
46
|
+
process.env.EXPO_OS = ${JSON.stringify(options.platform)};
|
|
46
47
|
process.env.TAMAGUI_TARGET = 'native';
|
|
47
48
|
${options.serverUrl ? `process.env.ONE_SERVER_URL = ${JSON.stringify(options.serverUrl)};` : ""}
|
|
48
49
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-prelude.native.js","names":[],"sources":["runtime/native-prelude.native.js"],"sourcesContent":["function getNativePrelude(options) {\n\treturn `\nvar __BUNDLE_START_TIME__ = globalThis.nativePerformanceNow ? nativePerformanceNow() : Date.now();\n\nvar global = typeof globalThis !== 'undefined' ? globalThis\n : typeof global !== 'undefined' ? global\n : typeof window !== 'undefined' ? window\n : this;\n\nglobalThis.global = global;\nglobalThis.__DEV__ = ${options.dev};\n\n// react native polyfills\nglobal.__FUSEBOX_HAS_FULL_CONSOLE_SUPPORT__ = false;\nglobal.Event = global.Event || function() { return this; };\nglobal.dispatchEvent = global.dispatchEvent || function() {};\nglobal.window = global.window || global;\nglobal.self = global.self || global;\nglobal.navigator = global.navigator || { product: 'ReactNative', userAgent: '' };\nglobal.performance = global.performance || { now: function() { return Date.now(); } };\n\n// hermes can expose addEventListener without the matching removal API. browser\n// libraries use addEventListener as their capability check, then crash during\n// cleanup. keep the incomplete host API from advertising browser event support.\nif (typeof global.addEventListener === 'function' && typeof global.removeEventListener !== 'function') {\n global.addEventListener = undefined;\n}\n\n// ErrorUtils - used by RN's error handling system\nif (!global.ErrorUtils) {\n var _handler = null;\n global.ErrorUtils = {\n setGlobalHandler: function(h) { _handler = h; },\n getGlobalHandler: function() { return _handler; },\n reportFatalError: function(e) { if (_handler) _handler(e, true); else throw e; },\n reportError: function(e) { if (_handler) _handler(e, false); },\n applyWithGuard: function(fn, ctx, args) { try { return fn.apply(ctx, args); } catch(e) { this.reportError(e); } },\n };\n}\n\nif (typeof process === 'undefined') {\n globalThis.process = { env: {} };\n}\nprocess.env.NODE_ENV = ${JSON.stringify(options.dev ? \"development\" : \"production\")};\nprocess.env.ONE_PLATFORM = ${JSON.stringify(options.platform)};\nprocess.env.TAMAGUI_TARGET = 'native';\n${options.serverUrl ? `process.env.ONE_SERVER_URL = ${JSON.stringify(options.serverUrl)};` : \"\"}\n\n// polyfill setImmediate (used by react-native internals)\nif (typeof globalThis.setImmediate === 'undefined') {\n globalThis.setImmediate = function(fn) { return setTimeout(fn, 0); };\n globalThis.clearImmediate = function(id) { clearTimeout(id); };\n}\n\n// polyfill URLSearchParams early (before whatwg-fetch checks for it)\n// RN's polyfillGlobal sets this up later but some modules check at import time\nif (typeof globalThis.URLSearchParams === 'undefined') {\n // minimal URLSearchParams polyfill - will be overridden by RN's proper one\n globalThis.URLSearchParams = function URLSearchParams(init) {\n this._params = {};\n if (typeof init === 'string') {\n init.replace(/^\\\\?/, '').split('&').forEach(function(p) {\n var kv = p.split('=');\n if (kv[0]) this._params[decodeURIComponent(kv[0])] = decodeURIComponent(kv[1] || '');\n }.bind(this));\n }\n };\n globalThis.URLSearchParams.prototype.get = function(k) { return this._params[k] || null; };\n globalThis.URLSearchParams.prototype.toString = function() {\n return Object.keys(this._params).map(function(k) { return encodeURIComponent(k) + '=' + encodeURIComponent(this._params[k]); }.bind(this)).join('&');\n };\n}\n\n// ensure console exists before any library prelude touches it in release bundles\nglobalThis.console = globalThis.console || {};\nvar console = globalThis.console;\nconsole.log = console.log || function() {};\nconsole.info = console.info || function() {};\nconsole.warn = console.warn || function() {};\nconsole.error = console.error || function() {};\nconsole.debug = console.debug || function() {};\nconsole.trace = console.trace || function() {};\n\n// reanimated compat - these console methods must exist to avoid EXC_BAD_ACCESS crash\nconsole.assert = console.assert || function() {};\nconsole.clear = console.clear || function() {};\nconsole.dir = console.dir || function() {};\nconsole.dirxml = console.dirxml || function() {};\nconsole.profile = console.profile || function() {};\nconsole.profileEnd = console.profileEnd || function() {};\nconsole.table = console.table || function() {};\n\n// react refresh stubs (overridden by react-refresh plugin in dev)\n${options.dev ? `\nvar $RefreshReg$ = function() {};\nvar $RefreshSig$ = function() { return function(v) { return v; }; };\n` : \"\"}\n`.trim();\n}\n\nexport { getNativePrelude };"],"mappings":";AAAA,SAAS,iBAAiB,SAAS;CAClC,OAAO;;;;;;;;;uBASe,QAAQ,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAiCV,KAAK,UAAU,QAAQ,MAAM,gBAAgB,YAAY,EAAE;6BACvD,KAAK,UAAU,QAAQ,QAAQ,EAAE;;
|
|
1
|
+
{"version":3,"file":"native-prelude.native.js","names":[],"sources":["runtime/native-prelude.native.js"],"sourcesContent":["function getNativePrelude(options) {\n\treturn `\nvar __BUNDLE_START_TIME__ = globalThis.nativePerformanceNow ? nativePerformanceNow() : Date.now();\n\nvar global = typeof globalThis !== 'undefined' ? globalThis\n : typeof global !== 'undefined' ? global\n : typeof window !== 'undefined' ? window\n : this;\n\nglobalThis.global = global;\nglobalThis.__DEV__ = ${options.dev};\n\n// react native polyfills\nglobal.__FUSEBOX_HAS_FULL_CONSOLE_SUPPORT__ = false;\nglobal.Event = global.Event || function() { return this; };\nglobal.dispatchEvent = global.dispatchEvent || function() {};\nglobal.window = global.window || global;\nglobal.self = global.self || global;\nglobal.navigator = global.navigator || { product: 'ReactNative', userAgent: '' };\nglobal.performance = global.performance || { now: function() { return Date.now(); } };\n\n// hermes can expose addEventListener without the matching removal API. browser\n// libraries use addEventListener as their capability check, then crash during\n// cleanup. keep the incomplete host API from advertising browser event support.\nif (typeof global.addEventListener === 'function' && typeof global.removeEventListener !== 'function') {\n global.addEventListener = undefined;\n}\n\n// ErrorUtils - used by RN's error handling system\nif (!global.ErrorUtils) {\n var _handler = null;\n global.ErrorUtils = {\n setGlobalHandler: function(h) { _handler = h; },\n getGlobalHandler: function() { return _handler; },\n reportFatalError: function(e) { if (_handler) _handler(e, true); else throw e; },\n reportError: function(e) { if (_handler) _handler(e, false); },\n applyWithGuard: function(fn, ctx, args) { try { return fn.apply(ctx, args); } catch(e) { this.reportError(e); } },\n };\n}\n\nif (typeof process === 'undefined') {\n globalThis.process = { env: {} };\n}\nprocess.env.NODE_ENV = ${JSON.stringify(options.dev ? \"development\" : \"production\")};\nprocess.env.ONE_PLATFORM = ${JSON.stringify(options.platform)};\nprocess.env.EXPO_OS = ${JSON.stringify(options.platform)};\nprocess.env.TAMAGUI_TARGET = 'native';\n${options.serverUrl ? `process.env.ONE_SERVER_URL = ${JSON.stringify(options.serverUrl)};` : \"\"}\n\n// polyfill setImmediate (used by react-native internals)\nif (typeof globalThis.setImmediate === 'undefined') {\n globalThis.setImmediate = function(fn) { return setTimeout(fn, 0); };\n globalThis.clearImmediate = function(id) { clearTimeout(id); };\n}\n\n// polyfill URLSearchParams early (before whatwg-fetch checks for it)\n// RN's polyfillGlobal sets this up later but some modules check at import time\nif (typeof globalThis.URLSearchParams === 'undefined') {\n // minimal URLSearchParams polyfill - will be overridden by RN's proper one\n globalThis.URLSearchParams = function URLSearchParams(init) {\n this._params = {};\n if (typeof init === 'string') {\n init.replace(/^\\\\?/, '').split('&').forEach(function(p) {\n var kv = p.split('=');\n if (kv[0]) this._params[decodeURIComponent(kv[0])] = decodeURIComponent(kv[1] || '');\n }.bind(this));\n }\n };\n globalThis.URLSearchParams.prototype.get = function(k) { return this._params[k] || null; };\n globalThis.URLSearchParams.prototype.toString = function() {\n return Object.keys(this._params).map(function(k) { return encodeURIComponent(k) + '=' + encodeURIComponent(this._params[k]); }.bind(this)).join('&');\n };\n}\n\n// ensure console exists before any library prelude touches it in release bundles\nglobalThis.console = globalThis.console || {};\nvar console = globalThis.console;\nconsole.log = console.log || function() {};\nconsole.info = console.info || function() {};\nconsole.warn = console.warn || function() {};\nconsole.error = console.error || function() {};\nconsole.debug = console.debug || function() {};\nconsole.trace = console.trace || function() {};\n\n// reanimated compat - these console methods must exist to avoid EXC_BAD_ACCESS crash\nconsole.assert = console.assert || function() {};\nconsole.clear = console.clear || function() {};\nconsole.dir = console.dir || function() {};\nconsole.dirxml = console.dirxml || function() {};\nconsole.profile = console.profile || function() {};\nconsole.profileEnd = console.profileEnd || function() {};\nconsole.table = console.table || function() {};\n\n// react refresh stubs (overridden by react-refresh plugin in dev)\n${options.dev ? `\nvar $RefreshReg$ = function() {};\nvar $RefreshSig$ = function() { return function(v) { return v; }; };\n` : \"\"}\n`.trim();\n}\n\nexport { getNativePrelude };"],"mappings":";AAAA,SAAS,iBAAiB,SAAS;CAClC,OAAO;;;;;;;;;uBASe,QAAQ,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAiCV,KAAK,UAAU,QAAQ,MAAM,gBAAgB,YAAY,EAAE;6BACvD,KAAK,UAAU,QAAQ,QAAQ,EAAE;wBACtC,KAAK,UAAU,QAAQ,QAAQ,EAAE;;EAEvD,QAAQ,YAAY,gCAAgC,KAAK,UAAU,QAAQ,SAAS,EAAE,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+C9F,QAAQ,MAAM;;;IAGZ,GAAG;EACL,KAAK;AACP"}
|
|
@@ -6,6 +6,7 @@ import micromatch from "micromatch";
|
|
|
6
6
|
import { loadEnv, normalizePath } from "vite";
|
|
7
7
|
import { shouldStripFlow, transformHermesAsync } from "@vxrn/compiler";
|
|
8
8
|
import { resolvePath } from "@vxrn/resolve";
|
|
9
|
+
import { withExpoPublicEnvAliases } from "@vxrn/utils/publicEnv";
|
|
9
10
|
import { DEFAULT_ASSET_EXTS } from "../constants/defaults.mjs";
|
|
10
11
|
import { getNativePrelude } from "../runtime/native-prelude.mjs";
|
|
11
12
|
import { rnCodegenPlugin } from "../plugins/rnCodegenPlugin.mjs";
|
|
@@ -93,8 +94,11 @@ function getNativeTransformConfig(platform, dev, root) {
|
|
|
93
94
|
const userDefines = {};
|
|
94
95
|
for (const [key, value] of Object.entries(globalThis.__vxrnNativeUserDefine || {})) userDefines[key] = typeof value === "string" ? value : JSON.stringify(value);
|
|
95
96
|
const mode = dev ? "development" : "production";
|
|
96
|
-
|
|
97
|
-
|
|
97
|
+
const publicEnv = withExpoPublicEnvAliases(loadEnv(mode, root, [
|
|
98
|
+
"VITE_",
|
|
99
|
+
"ONE_PUBLIC_",
|
|
100
|
+
"EXPO_PUBLIC_"
|
|
101
|
+
]));
|
|
98
102
|
const envDefines = {};
|
|
99
103
|
for (const [key, value] of Object.entries(publicEnv)) {
|
|
100
104
|
envDefines[`import.meta.env.${key}`] = JSON.stringify(value);
|
|
@@ -109,6 +113,7 @@ function getNativeTransformConfig(platform, dev, root) {
|
|
|
109
113
|
VITE_ENVIRONMENT: platform,
|
|
110
114
|
VITE_NATIVE: "1",
|
|
111
115
|
ONE_PLATFORM: platform,
|
|
116
|
+
EXPO_OS: platform,
|
|
112
117
|
TAMAGUI_TARGET: "native",
|
|
113
118
|
TAMAGUI_ENVIRONMENT: platform
|
|
114
119
|
};
|
|
@@ -122,6 +127,7 @@ function getNativeTransformConfig(platform, dev, root) {
|
|
|
122
127
|
"process.env.VITE_ENVIRONMENT": JSON.stringify(platform),
|
|
123
128
|
"process.env.VITE_NATIVE": "\"1\"",
|
|
124
129
|
"process.env.ONE_PLATFORM": JSON.stringify(platform),
|
|
130
|
+
"process.env.EXPO_OS": JSON.stringify(platform),
|
|
125
131
|
"process.env.TAMAGUI_TARGET": "\"native\"",
|
|
126
132
|
"process.env.TAMAGUI_ENVIRONMENT": JSON.stringify(platform),
|
|
127
133
|
__DEV__: dev ? "true" : "false",
|
|
@@ -133,6 +139,7 @@ function getNativeTransformConfig(platform, dev, root) {
|
|
|
133
139
|
"import.meta.env.VITE_ENVIRONMENT": JSON.stringify(platform),
|
|
134
140
|
"import.meta.env.VITE_NATIVE": "\"1\"",
|
|
135
141
|
"import.meta.env.ONE_PLATFORM": JSON.stringify(platform),
|
|
142
|
+
"import.meta.env.EXPO_OS": JSON.stringify(platform),
|
|
136
143
|
"import.meta.env.TAMAGUI_TARGET": "\"native\"",
|
|
137
144
|
"import.meta.env.TAMAGUI_ENVIRONMENT": JSON.stringify(platform),
|
|
138
145
|
...setupFileDefines
|