vxrn 1.12.2 → 1.12.4
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/createServer.mjs +10 -6
- package/dist/exports/createServer.mjs.map +1 -1
- package/dist/exports/createServer.native.js +4 -2
- package/dist/exports/createServer.native.js.map +1 -1
- package/dist/index.js +22 -39
- package/dist/index.js.map +1 -6
- package/dist/patches/builtInDepPatches.mjs +0 -8
- package/dist/patches/builtInDepPatches.mjs.map +1 -1
- package/dist/patches/builtInDepPatches.native.js +0 -10
- package/dist/patches/builtInDepPatches.native.js.map +1 -1
- package/dist/serve/node.mjs +27 -11
- package/dist/serve/node.mjs.map +1 -1
- package/dist/serve/node.native.js +32 -14
- package/dist/serve/node.native.js.map +1 -1
- package/package.json +13 -13
- package/src/exports/createServer.ts +8 -1
- package/src/patches/builtInDepPatches.ts +0 -15
- package/src/serve/node.ts +36 -10
- package/types/exports/createServer.d.ts.map +1 -1
- package/types/patches/builtInDepPatches.d.ts.map +1 -1
- package/types/serve/node.d.ts +2 -0
- package/types/serve/node.d.ts.map +1 -1
- package/dist/cli.js +0 -224
- package/dist/cli.js.map +0 -6
- package/dist/config/getAdditionalViteConfig.js +0 -41
- package/dist/config/getAdditionalViteConfig.js.map +0 -6
- package/dist/config/getBaseViteConfigOnly.js +0 -110
- package/dist/config/getBaseViteConfigOnly.js.map +0 -6
- package/dist/config/getBaseViteConfigWithPlugins.js +0 -12
- package/dist/config/getBaseViteConfigWithPlugins.js.map +0 -6
- package/dist/config/getBaseVitePlugins.js +0 -84
- package/dist/config/getBaseVitePlugins.js.map +0 -6
- package/dist/config/getNonCliModeOnlyVitePlugins.js +0 -11
- package/dist/config/getNonCliModeOnlyVitePlugins.js.map +0 -6
- package/dist/config/getOptimizeDeps.js +0 -150
- package/dist/config/getOptimizeDeps.js.map +0 -6
- package/dist/config/getOptionsFilled.js +0 -52
- package/dist/config/getOptionsFilled.js.map +0 -6
- package/dist/config/getReactNativeBuildConfig.js +0 -217
- package/dist/config/getReactNativeBuildConfig.js.map +0 -6
- package/dist/config/getReactNativePlugins.js +0 -37
- package/dist/config/getReactNativePlugins.js.map +0 -6
- package/dist/config/getServerOptionsFilled.js +0 -28
- package/dist/config/getServerOptionsFilled.js.map +0 -6
- package/dist/config/getViteServerConfig.js +0 -35
- package/dist/config/getViteServerConfig.js.map +0 -6
- package/dist/config/mergeUserConfig.js +0 -46
- package/dist/config/mergeUserConfig.js.map +0 -6
- package/dist/config/mergeUserConfig.test.js +0 -80
- package/dist/config/mergeUserConfig.test.js.map +0 -6
- package/dist/constants/defaults.js +0 -39
- package/dist/constants/defaults.js.map +0 -6
- package/dist/constants.js +0 -20
- package/dist/constants.js.map +0 -6
- package/dist/exports/build.js +0 -250
- package/dist/exports/build.js.map +0 -6
- package/dist/exports/clean.js +0 -31
- package/dist/exports/clean.js.map +0 -6
- package/dist/exports/createServer.js +0 -32
- package/dist/exports/createServer.js.map +0 -6
- package/dist/exports/dev.js +0 -86
- package/dist/exports/dev.js.map +0 -6
- package/dist/exports/loadEnv.js +0 -60
- package/dist/exports/loadEnv.js.map +0 -6
- package/dist/exports/patch.js +0 -11
- package/dist/exports/patch.js.map +0 -6
- package/dist/exports/prebuild.js +0 -131
- package/dist/exports/prebuild.js.map +0 -6
- package/dist/exports/prebuildWithoutExpo.js +0 -45
- package/dist/exports/prebuildWithoutExpo.js.map +0 -6
- package/dist/exports/runAndroid.js +0 -6
- package/dist/exports/runAndroid.js.map +0 -6
- package/dist/exports/runIos.js +0 -6
- package/dist/exports/runIos.js.map +0 -6
- package/dist/exports/serve.js +0 -28
- package/dist/exports/serve.js.map +0 -6
- package/dist/exports/serveStaticAssets.js +0 -23
- package/dist/exports/serveStaticAssets.js.map +0 -6
- package/dist/patches/builtInDepPatches.js +0 -462
- package/dist/patches/builtInDepPatches.js.map +0 -6
- package/dist/plugins/applyBuiltInPatchesPlugin.js +0 -17
- package/dist/plugins/applyBuiltInPatchesPlugin.js.map +0 -6
- package/dist/plugins/autoDepOptimizePlugin.js +0 -93
- package/dist/plugins/autoDepOptimizePlugin.js.map +0 -6
- package/dist/plugins/autoDepOptimizePlugin.test.js +0 -19
- package/dist/plugins/autoDepOptimizePlugin.test.js.map +0 -6
- package/dist/plugins/clientInjectPlugin.js +0 -61
- package/dist/plugins/clientInjectPlugin.js.map +0 -6
- package/dist/plugins/defaultDepOptimizePlugin.js +0 -29
- package/dist/plugins/defaultDepOptimizePlugin.js.map +0 -6
- package/dist/plugins/expoManifestRequestHandlerPlugin.js +0 -140
- package/dist/plugins/expoManifestRequestHandlerPlugin.js.map +0 -6
- package/dist/plugins/getResolvedConfigSubset.js +0 -14
- package/dist/plugins/getResolvedConfigSubset.js.map +0 -6
- package/dist/plugins/reactNativeCommonJsPlugin.js +0 -227
- package/dist/plugins/reactNativeCommonJsPlugin.js.map +0 -6
- package/dist/plugins/reactNativeDevAssetPlugin.js +0 -103
- package/dist/plugins/reactNativeDevAssetPlugin.js.map +0 -6
- package/dist/plugins/reactNativeDevServer.js +0 -141
- package/dist/plugins/reactNativeDevServer.js.map +0 -6
- package/dist/plugins/reactNativeHMRPlugin.js +0 -139
- package/dist/plugins/reactNativeHMRPlugin.js.map +0 -6
- package/dist/plugins/resolveIdScan.test.js +0 -20
- package/dist/plugins/resolveIdScan.test.js.map +0 -6
- package/dist/plugins/rollupRemoveUnusedImports.js +0 -13
- package/dist/plugins/rollupRemoveUnusedImports.js.map +0 -6
- package/dist/plugins/serverExtensions.test.js +0 -54
- package/dist/plugins/serverExtensions.test.js.map +0 -6
- package/dist/rn-commands/bundle/buildBundle.js +0 -75
- package/dist/rn-commands/bundle/buildBundle.js.map +0 -6
- package/dist/serve/node.js +0 -40
- package/dist/serve/node.js.map +0 -6
- package/dist/types.js +0 -1
- package/dist/types.js.map +0 -6
- package/dist/user-interface/index.js +0 -257
- package/dist/user-interface/index.js.map +0 -6
- package/dist/utils/assert.js +0 -13
- package/dist/utils/assert.js.map +0 -6
- package/dist/utils/bindKeypressInput.js +0 -47
- package/dist/utils/bindKeypressInput.js.map +0 -6
- package/dist/utils/coerceToArray.js +0 -7
- package/dist/utils/coerceToArray.js.map +0 -6
- package/dist/utils/connectedNativeClients.js +0 -13
- package/dist/utils/connectedNativeClients.js.map +0 -6
- package/dist/utils/dispose.js +0 -12
- package/dist/utils/dispose.js.map +0 -6
- package/dist/utils/environmentUtils.js +0 -19
- package/dist/utils/environmentUtils.js.map +0 -6
- package/dist/utils/execSync.js +0 -9
- package/dist/utils/execSync.js.map +0 -6
- package/dist/utils/expoRun.js +0 -35
- package/dist/utils/expoRun.js.map +0 -6
- package/dist/utils/filterPluginsForNative.js +0 -29
- package/dist/utils/filterPluginsForNative.js.map +0 -6
- package/dist/utils/filterViteServerResolvedUrls.js +0 -19
- package/dist/utils/filterViteServerResolvedUrls.js.map +0 -6
- package/dist/utils/getCacheDir.js +0 -8
- package/dist/utils/getCacheDir.js.map +0 -6
- package/dist/utils/getReactNativeBundle.js +0 -124
- package/dist/utils/getReactNativeBundle.js.map +0 -6
- package/dist/utils/getServerEntry.js +0 -13
- package/dist/utils/getServerEntry.js.map +0 -6
- package/dist/utils/getVitePath.js +0 -37
- package/dist/utils/getVitePath.js.map +0 -6
- package/dist/utils/globDir.js +0 -13
- package/dist/utils/globDir.js.map +0 -6
- package/dist/utils/hotUpdateCache.js +0 -5
- package/dist/utils/hotUpdateCache.js.map +0 -6
- package/dist/utils/isBuildingNativeBundle.js +0 -9
- package/dist/utils/isBuildingNativeBundle.js.map +0 -6
- package/dist/utils/isWithin.js +0 -9
- package/dist/utils/isWithin.js.map +0 -6
- package/dist/utils/patches.js +0 -173
- package/dist/utils/patches.js.map +0 -6
- package/dist/utils/printServerUrls.js +0 -12
- package/dist/utils/printServerUrls.js.map +0 -6
- package/dist/utils/removeUndefined.js +0 -10
- package/dist/utils/removeUndefined.js.map +0 -6
- package/dist/utils/scanDepsToOptimize.js +0 -199
- package/dist/utils/scanDepsToOptimize.js.map +0 -6
- package/dist/utils/state.js +0 -19
- package/dist/utils/state.js.map +0 -6
- package/dist/utils/swapPrebuiltReactModules.js +0 -205
- package/dist/utils/swapPrebuiltReactModules.js.map +0 -6
- package/dist/utils/uniq.js +0 -7
- package/dist/utils/uniq.js.map +0 -6
- package/dist/utils/utils.js +0 -35
- package/dist/utils/utils.js.map +0 -6
- package/dist/vendor/debugger-app/index.js +0 -1
- package/dist/vendor/debugger-app/index.js.map +0 -6
- package/dist/vendor/debugger-app/src/debuggerWorker.js +0 -1
- package/dist/vendor/debugger-app/src/debuggerWorker.js.map +0 -6
- package/dist/vendor/debugger-app/src/index.js +0 -1
- package/dist/vendor/debugger-app/src/index.js.map +0 -6
- package/dist/vxrn-vite-plugin.js +0 -47
- package/dist/vxrn-vite-plugin.js.map +0 -6
- package/dist/worker.js +0 -49
- package/dist/worker.js.map +0 -6
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import path from "node:path";
|
|
2
|
-
import { isNativeEnvironment } from "../utils/environmentUtils";
|
|
3
|
-
import { getResolvedConfig, setResolvedConfig } from "./getResolvedConfigSubset";
|
|
4
|
-
const isObject = (x) => x && typeof x == "object";
|
|
5
|
-
function getServerConfigPlugin() {
|
|
6
|
-
return {
|
|
7
|
-
name: "get-server-config",
|
|
8
|
-
configResolved(conf) {
|
|
9
|
-
setResolvedConfig({
|
|
10
|
-
base: conf.base,
|
|
11
|
-
mode: conf.mode,
|
|
12
|
-
server: conf.server,
|
|
13
|
-
define: conf.define
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
function nativeClientInjectPlugin() {
|
|
19
|
-
let injectConfigValues;
|
|
20
|
-
return {
|
|
21
|
-
name: "vite:native-client-inject",
|
|
22
|
-
async buildStart() {
|
|
23
|
-
const config = getResolvedConfig(), resolvedServerHostname = config.server.host || "127.0.0.1", resolvedServerPort = config.server.port || 5173, devBase = config.base || "/", serverHost = `${resolvedServerHostname}:${resolvedServerPort}${devBase}`;
|
|
24
|
-
let hmrConfig = config.server.hmr;
|
|
25
|
-
hmrConfig = isObject(hmrConfig) ? hmrConfig : void 0;
|
|
26
|
-
const host = hmrConfig?.host || null, protocol = hmrConfig?.protocol || null, timeout = hmrConfig?.timeout || 3e4, overlay = hmrConfig?.overlay !== !1, isHmrServerSpecified = !!hmrConfig?.server;
|
|
27
|
-
let port = hmrConfig?.clientPort || hmrConfig?.port || null;
|
|
28
|
-
config.server.middlewareMode && !isHmrServerSpecified && (port ||= 24678);
|
|
29
|
-
let directTarget = hmrConfig?.host || resolvedServerHostname;
|
|
30
|
-
directTarget += `:${hmrConfig?.port || resolvedServerPort}`, directTarget += devBase;
|
|
31
|
-
let hmrBase = devBase;
|
|
32
|
-
hmrConfig?.path && (hmrBase = path.posix.join(hmrBase, hmrConfig.path));
|
|
33
|
-
const serializedDefines = serializeDefine(config.define || {}), modeReplacement = escapeReplacement(config.mode), baseReplacement = escapeReplacement(devBase), definesReplacement = () => serializedDefines, serverHostReplacement = escapeReplacement(serverHost), hmrProtocolReplacement = escapeReplacement(protocol), hmrHostnameReplacement = escapeReplacement(host), hmrPortReplacement = escapeReplacement(port), hmrDirectTargetReplacement = escapeReplacement(directTarget), hmrBaseReplacement = escapeReplacement(hmrBase), hmrTimeoutReplacement = escapeReplacement(timeout), hmrEnableOverlayReplacement = escapeReplacement(overlay);
|
|
34
|
-
injectConfigValues = (code) => code.replace("__MODE__", modeReplacement).replace(/__BASE__/g, baseReplacement).replace("__DEFINES__", definesReplacement).replace("__SERVER_HOST__", serverHostReplacement).replace("__HMR_PROTOCOL__", hmrProtocolReplacement).replace("__HMR_HOSTNAME__", hmrHostnameReplacement).replace("__HMR_PORT__", hmrPortReplacement).replace("__HMR_DIRECT_TARGET__", hmrDirectTargetReplacement).replace("__HMR_BASE__", hmrBaseReplacement).replace("__HMR_TIMEOUT__", hmrTimeoutReplacement).replace("__HMR_ENABLE_OVERLAY__", hmrEnableOverlayReplacement);
|
|
35
|
-
},
|
|
36
|
-
applyToEnvironment(environment) {
|
|
37
|
-
return isNativeEnvironment(environment);
|
|
38
|
-
},
|
|
39
|
-
transform(code, id) {
|
|
40
|
-
if (id.includes("vite-native-client/dist/esm/client."))
|
|
41
|
-
return injectConfigValues(code);
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
function escapeReplacement(value) {
|
|
46
|
-
const jsonValue = JSON.stringify(value);
|
|
47
|
-
return () => jsonValue;
|
|
48
|
-
}
|
|
49
|
-
function serializeDefine(define) {
|
|
50
|
-
let res = "{";
|
|
51
|
-
for (const key in define) {
|
|
52
|
-
const val = define[key];
|
|
53
|
-
res += `${JSON.stringify(key)}: ${typeof val == "string" ? `(${val})` : JSON.stringify(val)}, `;
|
|
54
|
-
}
|
|
55
|
-
return res + "}";
|
|
56
|
-
}
|
|
57
|
-
export {
|
|
58
|
-
getServerConfigPlugin,
|
|
59
|
-
nativeClientInjectPlugin
|
|
60
|
-
};
|
|
61
|
-
//# sourceMappingURL=clientInjectPlugin.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/plugins/clientInjectPlugin.ts"],
|
|
4
|
-
"mappings": "AAAA,OAAO,UAAU;AAGjB,SAAS,2BAA2B;AACpC,SAAS,mBAAmB,yBAAyB;AAIrD,MAAM,WAAW,CAAC,MAAwB,KAAK,OAAO,KAAM;AAErD,SAAS,wBAAwB;AACtC,SAAO;AAAA,IACL,MAAM;AAAA,IAEN,eAAe,MAAM;AACnB,wBAAkB;AAAA,QAChB,MAAM,KAAK;AAAA,QACX,MAAM,KAAK;AAAA,QACX,QAAQ,KAAK;AAAA,QACb,QAAQ,KAAK;AAAA,MACf,CAAC;AAAA,IACH;AAAA,EACF;AACF;AAMO,SAAS,2BAAmC;AACjD,MAAI;AAEJ,SAAO;AAAA,IACL,MAAM;AAAA,IAEN,MAAM,aAAa;AACjB,YAAM,SAAS,kBAAkB,GAE3B,yBAAyB,OAAO,OAAO,QAAQ,aAC/C,qBAAqB,OAAO,OAAQ,QAAS,MAC7C,UAAU,OAAO,QAAQ,KAEzB,aAAa,GAAG,sBAAsB,IAAI,kBAAkB,GAAG,OAAO;AAE5E,UAAI,YAAY,OAAO,OAAQ;AAC/B,kBAAY,SAAS,SAAS,IAAK,YAA2B;AAE9D,YAAM,OAAO,WAAW,QAAQ,MAC1B,WAAW,WAAW,YAAY,MAClC,UAAU,WAAW,WAAW,KAChC,UAAU,WAAW,YAAY,IACjC,uBAAuB,CAAC,CAAC,WAAW;AAI1C,UAAI,OAAO,WAAW,cAAc,WAAW,QAAQ;AACvD,MAAI,OAAO,OAAO,kBAAkB,CAAC,yBACnC,SAAS;AAGX,UAAI,eAAe,WAAW,QAAQ;AACtC,sBAAgB,IAAI,WAAW,QAAQ,kBAAkB,IACzD,gBAAgB;AAEhB,UAAI,UAAU;AACd,MAAI,WAAW,SACb,UAAU,KAAK,MAAM,KAAK,SAAS,UAAU,IAAI;AAGnD,YAAM,oBAAoB,gBAAgB,OAAO,UAAU,CAAC,CAAC,GAEvD,kBAAkB,kBAAkB,OAAO,IAAK,GAChD,kBAAkB,kBAAkB,OAAO,GAC3C,qBAAqB,MAAM,mBAC3B,wBAAwB,kBAAkB,UAAU,GACpD,yBAAyB,kBAAkB,QAAQ,GACnD,yBAAyB,kBAAkB,IAAI,GAC/C,qBAAqB,kBAAkB,IAAI,GAC3C,6BAA6B,kBAAkB,YAAY,GAC3D,qBAAqB,kBAAkB,OAAO,GAC9C,wBAAwB,kBAAkB,OAAO,GACjD,8BAA8B,kBAAkB,OAAO;AAE7D,2BAAqB,CAAC,SACb,KACJ,QAAQ,YAAY,eAAe,EACnC,QAAQ,aAAa,eAAe,EACpC,QAAQ,eAAe,kBAAkB,EACzC,QAAQ,mBAAmB,qBAAqB,EAChD,QAAQ,oBAAoB,sBAAsB,EAClD,QAAQ,oBAAoB,sBAAsB,EAClD,QAAQ,gBAAgB,kBAAkB,EAC1C,QAAQ,yBAAyB,0BAA0B,EAC3D,QAAQ,gBAAgB,kBAAkB,EAC1C,QAAQ,mBAAmB,qBAAqB,EAChD,QAAQ,0BAA0B,2BAA2B;AAAA,IAEpE;AAAA,IAEA,mBAAmB,aAAa;AAC9B,aAAO,oBAAoB,WAAW;AAAA,IACxC;AAAA,IAEA,UAAU,MAAM,IAAI;AAClB,UAAI,GAAG,SAAS,qCAAqC;AACnD,eAAO,mBAAmB,IAAI;AAAA,IAElC;AAAA,EACF;AACF;AAEA,SAAS,kBAAkB,OAAyC;AAClE,QAAM,YAAY,KAAK,UAAU,KAAK;AACtC,SAAO,MAAM;AACf;AAEA,SAAS,gBAAgB,QAAqC;AAC5D,MAAI,MAAM;AACV,aAAW,OAAO,QAAQ;AACxB,UAAM,MAAM,OAAO,GAAG;AACtB,WAAO,GAAG,KAAK,UAAU,GAAG,CAAC,KAAK,OAAO,OAAQ,WAAW,IAAI,GAAG,MAAM,KAAK,UAAU,GAAG,CAAC;AAAA,EAC9F;AACA,SAAO,MAAM;AACf;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { getOptimizeDeps } from "../config/getOptimizeDeps";
|
|
2
|
-
import { deepMergeOptimizeDeps } from "../config/mergeUserConfig";
|
|
3
|
-
const pluginName = "vxrn:default-dep-optimize";
|
|
4
|
-
function defaultDepOptimizePlugin() {
|
|
5
|
-
return {
|
|
6
|
-
name: pluginName,
|
|
7
|
-
enforce: "pre",
|
|
8
|
-
config(config, env) {
|
|
9
|
-
if (env.command !== "build" && env.command !== "serve")
|
|
10
|
-
throw new Error(
|
|
11
|
-
`[${pluginName}]: Unknown env.command "${env.command}". This plugin should only be used in "build" or "serve" modes.`
|
|
12
|
-
);
|
|
13
|
-
const { optimizeDeps } = getOptimizeDeps(env.command);
|
|
14
|
-
return config.ssr || (config.ssr = {}), deepMergeOptimizeDeps(config.ssr, {}, optimizeDeps), {
|
|
15
|
-
environments: {
|
|
16
|
-
ssr: {
|
|
17
|
-
optimizeDeps: {
|
|
18
|
-
rolldownOptions: optimizeDeps.rolldownOptions
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
export {
|
|
27
|
-
defaultDepOptimizePlugin
|
|
28
|
-
};
|
|
29
|
-
//# sourceMappingURL=defaultDepOptimizePlugin.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/plugins/defaultDepOptimizePlugin.ts"],
|
|
4
|
-
"mappings": "AAEA,SAAS,uBAAuB;AAChC,SAAS,6BAA6B;AAEtC,MAAM,aAAa;AAUZ,SAAS,2BAAmC;AACjD,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,OAAO,QAAQ,KAAK;AAClB,UAAI,IAAI,YAAY,WAAW,IAAI,YAAY;AAC7C,cAAM,IAAI;AAAA,UACR,IAAI,UAAU,2BAA2B,IAAI,OAAO;AAAA,QACtD;AAGF,YAAM,EAAE,aAAa,IAAI,gBAAgB,IAAI,OAAO;AAUpD,aAAK,OAAO,QAAK,OAAO,MAAM,CAAC,IAE/B,sBAAsB,OAAO,KAAK,CAAC,GAAG,YAAY,GAK3C;AAAA,QACL,cAAc;AAAA,UACZ,KAAK;AAAA,YACH,cAAc;AAAA,cACZ,iBAAiB,aAAa;AAAA,YAChC;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
import { join } from "node:path";
|
|
2
|
-
import module from "node:module";
|
|
3
|
-
import { TLSSocket } from "node:tls";
|
|
4
|
-
import colors from "picocolors";
|
|
5
|
-
function expoManifestRequestHandlerPlugin(options) {
|
|
6
|
-
return {
|
|
7
|
-
name: "vxrn:expo-manifest-request-handler",
|
|
8
|
-
configureServer(server) {
|
|
9
|
-
const projectRoot = server.config.root, port = server.config.server.port, { logger } = server.config, defaultLogOptions = { timestamp: !0 };
|
|
10
|
-
server.middlewares.use(async (req, res, next) => {
|
|
11
|
-
if (!req.headers["expo-platform"])
|
|
12
|
-
return next();
|
|
13
|
-
const protocol = req.socket instanceof TLSSocket && req.socket.encrypted ? "https" : "http", host = `${req.headers["x-forwarded-host"] || req.headers.host || "127.0.0.1"}`;
|
|
14
|
-
let ExpoGoManifestHandlerMiddleware, expoGoManifestHandlerMiddlewareImportError;
|
|
15
|
-
try {
|
|
16
|
-
ExpoGoManifestHandlerMiddleware = (await import(module.createRequire(projectRoot).resolve(
|
|
17
|
-
"@expo/cli/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js",
|
|
18
|
-
{ paths: [projectRoot] }
|
|
19
|
-
))).default.ExpoGoManifestHandlerMiddleware;
|
|
20
|
-
} catch (e) {
|
|
21
|
-
expoGoManifestHandlerMiddlewareImportError = e;
|
|
22
|
-
}
|
|
23
|
-
if (!ExpoGoManifestHandlerMiddleware) {
|
|
24
|
-
expoGoManifestHandlerMiddlewareImportError instanceof Error && expoGoManifestHandlerMiddlewareImportError.code === "MODULE_NOT_FOUND" ? logger.warn(
|
|
25
|
-
colors.yellow(
|
|
26
|
-
`Failed to locate Expo SDK in your project: ${expoGoManifestHandlerMiddlewareImportError}`
|
|
27
|
-
),
|
|
28
|
-
defaultLogOptions
|
|
29
|
-
) : logger.warn(
|
|
30
|
-
colors.yellow(
|
|
31
|
-
`Failed to import Expo SDK from your project: ${expoGoManifestHandlerMiddlewareImportError}`
|
|
32
|
-
),
|
|
33
|
-
defaultLogOptions
|
|
34
|
-
), logger.warn(
|
|
35
|
-
"Ignoring the error and responding with preset manifest, this may not work with Expo Go or your development build.",
|
|
36
|
-
defaultLogOptions
|
|
37
|
-
), logger.warn(
|
|
38
|
-
colors.yellow(
|
|
39
|
-
`Is this a Expo project, or are you using a supported version of Expo SDK? (${projectRoot})`
|
|
40
|
-
),
|
|
41
|
-
defaultLogOptions
|
|
42
|
-
);
|
|
43
|
-
const json = getIndexJsonResponse({ projectRoot, port });
|
|
44
|
-
res.setHeader("content-type", "application/json"), res.write(JSON.stringify(json)), res.end();
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
const manifestHandlerMiddleware = new ExpoGoManifestHandlerMiddleware(
|
|
48
|
-
projectRoot,
|
|
49
|
-
{
|
|
50
|
-
constructUrl: () => `${protocol}://${host}`
|
|
51
|
-
}
|
|
52
|
-
), origGetBundleUrl = manifestHandlerMiddleware._getBundleUrl.bind(
|
|
53
|
-
manifestHandlerMiddleware
|
|
54
|
-
);
|
|
55
|
-
manifestHandlerMiddleware._getBundleUrl = (...args) => {
|
|
56
|
-
const origBundleUrl = origGetBundleUrl(...args);
|
|
57
|
-
let url = new URL(origBundleUrl);
|
|
58
|
-
return host && (url.host = host), url.protocol = protocol, url.pathname = "/index.bundle", url.toString();
|
|
59
|
-
}, manifestHandlerMiddleware._origGetManifestResponseAsync = manifestHandlerMiddleware._getManifestResponseAsync, manifestHandlerMiddleware._getManifestResponseAsync = async (...args) => {
|
|
60
|
-
try {
|
|
61
|
-
const results = await manifestHandlerMiddleware._origGetManifestResponseAsync(
|
|
62
|
-
...args
|
|
63
|
-
), [, beforeBodyJson, bodyJson, afterBodyJson] = results.body.match(/([^{]*)({.*})([^}]*)/) || [];
|
|
64
|
-
if (!bodyJson)
|
|
65
|
-
throw new Error(`Unrecognized manifest response from expo: ${results.body}`);
|
|
66
|
-
const parsedBody = JSON.parse(bodyJson);
|
|
67
|
-
return parsedBody.extra || (parsedBody.extra = {}), parsedBody.extra.expoClient || (parsedBody.extra.expoClient = {}), typeof parsedBody.extra.expoClient.hostUri == "string" && (parsedBody.extra.expoClient.hostUri = parsedBody.extra.expoClient.hostUri.replace(/^https?:\/\//, "")), typeof parsedBody.extra.expoGo.debuggerHost == "string" && (parsedBody.extra.expoGo.debuggerHost = parsedBody.extra.expoGo.debuggerHost.replace(/^https?:\/\//, "")), parsedBody.extra.expoClient.iconUrl = "https://github.com/user-attachments/assets/6894506b-df81-417c-a4cd-9c125c7ba37f", parsedBody.extra.expoClient.splash = {
|
|
68
|
-
image: "__vxrn_unstable_internal/icon.png",
|
|
69
|
-
resizeMode: "contain",
|
|
70
|
-
backgroundColor: "#000000",
|
|
71
|
-
imageUrl: "https://github.com/user-attachments/assets/e816c207-e7d2-4c2e-8aa5-0d4cbaa622bf"
|
|
72
|
-
// TODO: Host this image somewhere.
|
|
73
|
-
}, results.body = beforeBodyJson + JSON.stringify(parsedBody) + afterBodyJson, results;
|
|
74
|
-
} catch (e) {
|
|
75
|
-
throw e instanceof Error ? (e.message = `[vxrn:expo-manifest-request-handler] Failed to parse the Expo manifest response from expo: ${e.message}`, e) : new Error(
|
|
76
|
-
`[vxrn:expo-manifest-request-handler] Failed to parse the Expo manifest response from expo: ${e}`
|
|
77
|
-
);
|
|
78
|
-
}
|
|
79
|
-
}, manifestHandlerMiddleware.handleRequestAsync(req, res, next);
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
function getIndexJsonResponse({
|
|
85
|
-
port,
|
|
86
|
-
projectRoot
|
|
87
|
-
}) {
|
|
88
|
-
return {
|
|
89
|
-
name: "myapp",
|
|
90
|
-
slug: "myapp",
|
|
91
|
-
scheme: "myapp",
|
|
92
|
-
version: "1.0.0",
|
|
93
|
-
jsEngine: "jsc",
|
|
94
|
-
orientation: "portrait",
|
|
95
|
-
icon: "./assets/icon.png",
|
|
96
|
-
userInterfaceStyle: "light",
|
|
97
|
-
splash: {
|
|
98
|
-
image: "./assets/splash.png",
|
|
99
|
-
resizeMode: "contain",
|
|
100
|
-
backgroundColor: "#ffffff",
|
|
101
|
-
imageUrl: "http://127.0.0.1:8081/assets/./assets/splash.png"
|
|
102
|
-
},
|
|
103
|
-
updates: { fallbackToCacheTimeout: 0 },
|
|
104
|
-
assetBundlePatterns: ["**/*"],
|
|
105
|
-
ios: { supportsTablet: !0, bundleIdentifier: "com.natew.myapp" },
|
|
106
|
-
android: {
|
|
107
|
-
package: "com.tamagui.myapp",
|
|
108
|
-
adaptiveIcon: {
|
|
109
|
-
foregroundImage: "./assets/adaptive-icon.png",
|
|
110
|
-
backgroundColor: "#FFFFFF",
|
|
111
|
-
foregroundImageUrl: "http://127.0.0.1:8081/assets/./assets/adaptive-icon.png"
|
|
112
|
-
}
|
|
113
|
-
},
|
|
114
|
-
web: { favicon: "./assets/favicon.png" },
|
|
115
|
-
extra: { eas: { projectId: "061b4470-78c7-4d6a-b850-8167fb0a3434" } },
|
|
116
|
-
_internal: {
|
|
117
|
-
isDebug: !1,
|
|
118
|
-
projectRoot,
|
|
119
|
-
dynamicConfigPath: null,
|
|
120
|
-
staticConfigPath: join(projectRoot, "app.json"),
|
|
121
|
-
packageJsonPath: join(projectRoot, "package.json")
|
|
122
|
-
},
|
|
123
|
-
sdkVersion: "50.0.0",
|
|
124
|
-
platforms: ["ios", "android", "web"],
|
|
125
|
-
iconUrl: `http://127.0.0.1:${port}/assets/./assets/icon.png`,
|
|
126
|
-
debuggerHost: `127.0.0.1:${port}`,
|
|
127
|
-
logUrl: `http://127.0.0.1:${port}/logs`,
|
|
128
|
-
developer: { tool: "expo-cli", projectRoot },
|
|
129
|
-
packagerOpts: { dev: !0 },
|
|
130
|
-
mainModuleName: "index",
|
|
131
|
-
__flipperHack: "React Native packager is running",
|
|
132
|
-
hostUri: `127.0.0.1:${port}`,
|
|
133
|
-
bundleUrl: `http://127.0.0.1:${port}/index.bundle?platform=ios&dev=true&hot=false&lazy=true`,
|
|
134
|
-
id: "@anonymous/myapp-473c4543-3c36-4786-9db1-c66a62ac9b78"
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
export {
|
|
138
|
-
expoManifestRequestHandlerPlugin
|
|
139
|
-
};
|
|
140
|
-
//# sourceMappingURL=expoManifestRequestHandlerPlugin.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/plugins/expoManifestRequestHandlerPlugin.ts"],
|
|
4
|
-
"mappings": "AAAA,SAAS,YAAY;AACrB,OAAO,YAAY;AACnB,SAAS,iBAAiB;AAG1B,OAAO,YAAY;AAYZ,SAAS,iCACd,SACQ;AACR,SAAO;AAAA,IACL,MAAM;AAAA,IAEN,gBAAgB,QAAQ;AACtB,YAAM,cAAc,OAAO,OAAO,MAC5B,OAAO,OAAO,OAAO,OAAO,MAC5B,EAAE,OAAO,IAAI,OAAO,QACpB,oBAAoB,EAAE,WAAW,GAAK;AAG5C,aAAO,YAAY,IAAI,OAAO,KAAK,KAAK,SAAS;AAC/C,YAAI,CAAC,IAAI,QAAQ,eAAe;AAE9B,iBAAO,KAAK;AAGd,cAAM,WACJ,IAAI,kBAAkB,aAAa,IAAI,OAAO,YAAY,UAAU,QAChE,OAAO,GAAG,IAAI,QAAQ,kBAAkB,KAAK,IAAI,QAAQ,QAAQ,WAAW;AAGlF,YAAI,iCACA;AACJ,YAAI;AAOF,6CAAmC,MAAM,OALzB,OAAO,cAAc,WAAW,EACrB;AAAA,YACzB;AAAA,YACA,EAAE,OAAO,CAAC,WAAW,EAAE;AAAA,UACzB,IAC6D,QAC1D;AAAA,QACL,SAAS,GAAG;AACV,uDAA6C;AAAA,QAC/C;AAGA,YAAI,CAAC,iCAAiC;AACpC,UACE,sDAAsD,SACrD,2CAAmD,SAClD,qBAEF,OAAO;AAAA,YACL,OAAO;AAAA,cACL,8CAA8C,0CAA0C;AAAA,YAC1F;AAAA,YACA;AAAA,UACF,IAEA,OAAO;AAAA,YACL,OAAO;AAAA,cACL,gDAAgD,0CAA0C;AAAA,YAC5F;AAAA,YACA;AAAA,UACF,GAGF,OAAO;AAAA,YACL;AAAA,YACA;AAAA,UACF,GACA,OAAO;AAAA,YACL,OAAO;AAAA,cACL,8EAA8E,WAAW;AAAA,YAC3F;AAAA,YACA;AAAA,UACF;AAEA,gBAAM,OAAO,qBAAqB,EAAE,aAAa,KAAK,CAAC;AAEvD,cAAI,UAAU,gBAAgB,kBAAkB,GAChD,IAAI,MAAM,KAAK,UAAU,IAAI,CAAC,GAC9B,IAAI,IAAI;AAGR;AAAA,QACF;AAEA,cAAM,4BAA4B,IAAI;AAAA,UACpC;AAAA,UACA;AAAA,YACE,cAAc,MACL,GAAG,QAAQ,MAAM,IAAI;AAAA,UAEhC;AAAA,QACF,GAGM,mBAAmB,0BAA0B,cAAc;AAAA,UAC/D;AAAA,QACF;AACA,kCAA0B,gBAAgB,IAAI,SAAS;AAErD,gBAAM,gBAAgB,iBAAiB,GAAG,IAAI;AAE9C,cAAI,MAAM,IAAI,IAAI,aAAa;AAC/B,iBAAI,SAAM,IAAI,OAAO,OACrB,IAAI,WAAW,UAGf,IAAI,WAAW,iBAER,IAAI,SAAS;AAAA,QACtB,GAEA,0BAA0B,gCACxB,0BAA0B,2BAE5B,0BAA0B,4BAA4B,UAAU,SAAS;AACvE,cAAI;AACF,kBAAM,UAAU,MAAM,0BAA0B;AAAA,cAC9C,GAAG;AAAA,YACL,GAGM,CAAC,EAAE,gBAAgB,UAAU,aAAa,IAC9C,QAAQ,KAAK,MAAM,sBAAsB,KAAK,CAAC;AACjD,gBAAI,CAAC;AACH,oBAAM,IAAI,MAAM,6CAA6C,QAAQ,IAAI,EAAE;AAG7E,kBAAM,aAAa,KAAK,MAAM,QAAQ;AACtC,mBAAK,WAAW,UACd,WAAW,QAAQ,CAAC,IAEjB,WAAW,MAAM,eACpB,WAAW,MAAM,aAAa,CAAC,IAG7B,OAAO,WAAW,MAAM,WAAW,WAAY,aACjD,WAAW,MAAM,WAAW,UAC1B,WAAW,MAAM,WAAW,QAAQ,QAAQ,gBAAgB,EAAE,IAE9D,OAAO,WAAW,MAAM,OAAO,gBAAiB,aAClD,WAAW,MAAM,OAAO,eACtB,WAAW,MAAM,OAAO,aAAa,QAAQ,gBAAgB,EAAE,IAInE,WAAW,MAAM,WAAW,UAC1B,mFACF,WAAW,MAAM,WAAW,SAAS;AAAA,cACnC,OAAO;AAAA,cACP,YAAY;AAAA,cACZ,iBAAiB;AAAA,cACjB,UACE;AAAA;AAAA,YACJ,GACA,QAAQ,OAAO,iBAAiB,KAAK,UAAU,UAAU,IAAI,eAEtD;AAAA,UACT,SAAS,GAAG;AACV,kBAAI,aAAa,SACf,EAAE,UAAU,8FAA8F,EAAE,OAAO,IAC7G,KAGF,IAAI;AAAA,cACR,8FAA8F,CAAC;AAAA,YACjG;AAAA,UACF;AAAA,QACF,GAGA,0BAA0B,mBAAmB,KAAK,KAAK,IAAI;AAAA,MAC7D,CAAC;AAAA,IACH;AAAA,EACF;AACF;AAEA,SAAS,qBAAqB;AAAA,EAC5B;AAAA,EACA;AACF,GAGG;AACD,SAAO;AAAA,IACL,MAAM;AAAA,IACN,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aAAa;AAAA,IACb,MAAM;AAAA,IACN,oBAAoB;AAAA,IACpB,QAAQ;AAAA,MACN,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,iBAAiB;AAAA,MACjB,UAAU;AAAA,IACZ;AAAA,IACA,SAAS,EAAE,wBAAwB,EAAE;AAAA,IACrC,qBAAqB,CAAC,MAAM;AAAA,IAC5B,KAAK,EAAE,gBAAgB,IAAM,kBAAkB,kBAAkB;AAAA,IACjE,SAAS;AAAA,MACP,SAAS;AAAA,MACT,cAAc;AAAA,QACZ,iBAAiB;AAAA,QACjB,iBAAiB;AAAA,QACjB,oBAAoB;AAAA,MACtB;AAAA,IACF;AAAA,IACA,KAAK,EAAE,SAAS,uBAAuB;AAAA,IACvC,OAAO,EAAE,KAAK,EAAE,WAAW,uCAAuC,EAAE;AAAA,IACpE,WAAW;AAAA,MACT,SAAS;AAAA,MACT;AAAA,MACA,mBAAmB;AAAA,MACnB,kBAAkB,KAAK,aAAa,UAAU;AAAA,MAC9C,iBAAiB,KAAK,aAAa,cAAc;AAAA,IACnD;AAAA,IACA,YAAY;AAAA,IACZ,WAAW,CAAC,OAAO,WAAW,KAAK;AAAA,IACnC,SAAS,oBAAoB,IAAI;AAAA,IACjC,cAAc,aAAa,IAAI;AAAA,IAC/B,QAAQ,oBAAoB,IAAI;AAAA,IAChC,WAAW,EAAE,MAAM,YAAY,YAAyB;AAAA,IACxD,cAAc,EAAE,KAAK,GAAK;AAAA,IAC1B,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,SAAS,aAAa,IAAI;AAAA,IAC1B,WAAW,oBAAoB,IAAI;AAAA,IACnC,IAAI;AAAA,EACN;AACF;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
let config;
|
|
2
|
-
function setResolvedConfig(_) {
|
|
3
|
-
config = JSON.parse(JSON.stringify(_));
|
|
4
|
-
}
|
|
5
|
-
function getResolvedConfig() {
|
|
6
|
-
if (!config)
|
|
7
|
-
throw new Error("Must call setConfig first");
|
|
8
|
-
return config;
|
|
9
|
-
}
|
|
10
|
-
export {
|
|
11
|
-
getResolvedConfig,
|
|
12
|
-
setResolvedConfig
|
|
13
|
-
};
|
|
14
|
-
//# sourceMappingURL=getResolvedConfigSubset.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/plugins/getResolvedConfigSubset.ts"],
|
|
4
|
-
"mappings": "AAQA,IAAI;AAEG,SAAS,kBAAkB,GAAiB;AACjD,WAAS,KAAK,MAAM,KAAK,UAAU,CAAC,CAAC;AACvC;AAEO,SAAS,oBAAoB;AAClC,MAAI,CAAC;AACH,UAAM,IAAI,MAAM,2BAA2B;AAE7C,SAAO;AACT;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
@@ -1,227 +0,0 @@
|
|
|
1
|
-
import { parse } from "es-module-lexer";
|
|
2
|
-
import { mergeConfig } from "vite";
|
|
3
|
-
import { isNativeEnvironment } from "../utils/environmentUtils";
|
|
4
|
-
const getNativeExtensions = (platform) => [
|
|
5
|
-
`.${platform}.tsx`,
|
|
6
|
-
`.${platform}.ts`,
|
|
7
|
-
`.${platform}.jsx`,
|
|
8
|
-
`.${platform}.js`,
|
|
9
|
-
".native.js",
|
|
10
|
-
".native.ts",
|
|
11
|
-
".native.tsx",
|
|
12
|
-
".tsx",
|
|
13
|
-
".ts",
|
|
14
|
-
".js",
|
|
15
|
-
".jsx",
|
|
16
|
-
".json"
|
|
17
|
-
], conditions = ["react-native", "import", "require"], mainFields = ["react-native", "module", "jsnext:main", "jsnext"];
|
|
18
|
-
function reactNativeCommonJsPlugin(options) {
|
|
19
|
-
return {
|
|
20
|
-
name: "native",
|
|
21
|
-
enforce: "pre",
|
|
22
|
-
config: async () => {
|
|
23
|
-
const sharedNativeConfig = {
|
|
24
|
-
// Subfolder bases are not supported, and shouldn't be needed because we're embedding everything
|
|
25
|
-
base: void 0,
|
|
26
|
-
define: {
|
|
27
|
-
"process.env.REACT_NATIVE_SERVER_PUBLIC_PORT": JSON.stringify(
|
|
28
|
-
`${options.port}`
|
|
29
|
-
)
|
|
30
|
-
},
|
|
31
|
-
build: {
|
|
32
|
-
modulePreload: {
|
|
33
|
-
polyfill: !1
|
|
34
|
-
},
|
|
35
|
-
// Ensures that even very large assets are inlined in your JavaScript.
|
|
36
|
-
assetsInlineLimit: 1e8,
|
|
37
|
-
// Avoid warnings about large chunks
|
|
38
|
-
chunkSizeWarningLimit: 1e8,
|
|
39
|
-
// Emit all CSS as a single file, which `vite-plugin-singlefile` can then inline
|
|
40
|
-
cssCodeSplit: !1,
|
|
41
|
-
// Avoids the extra step of testing Brotli compression, which isn't really pertinent to a file served locally
|
|
42
|
-
reportCompressedSize: !1,
|
|
43
|
-
rolldownOptions: {
|
|
44
|
-
treeshake: !1,
|
|
45
|
-
output: {
|
|
46
|
-
preserveModules: !0,
|
|
47
|
-
manualChunks: void 0,
|
|
48
|
-
// Ensure that as many resources as possible are inlined.
|
|
49
|
-
// inlineDynamicImports: true,
|
|
50
|
-
// this fixes some warnings but breaks import { default as config }
|
|
51
|
-
exports: "named",
|
|
52
|
-
// ensures we have clean names for our require paths
|
|
53
|
-
entryFileNames: () => "[name].js"
|
|
54
|
-
},
|
|
55
|
-
plugins: [
|
|
56
|
-
{
|
|
57
|
-
name: "force-export-all",
|
|
58
|
-
async transform(code, id) {
|
|
59
|
-
if (isNativeEnvironment(this.environment) && !id.includes("?commonjs"))
|
|
60
|
-
try {
|
|
61
|
-
const [foundImports, foundExports] = parse(code), idToModule = {};
|
|
62
|
-
for (const imp of foundImports)
|
|
63
|
-
if (imp.n) {
|
|
64
|
-
const line = code.slice(imp.ss, imp.se), imports = getAllImportedIdentifiers(line);
|
|
65
|
-
for (const id2 of imports)
|
|
66
|
-
idToModule[id2] = imp.n;
|
|
67
|
-
}
|
|
68
|
-
const toReExport = {};
|
|
69
|
-
for (const exp of foundExports) {
|
|
70
|
-
const expName = exp.ln || exp.n;
|
|
71
|
-
if (RESERVED_WORDS.has(expName))
|
|
72
|
-
continue;
|
|
73
|
-
const moduleName = idToModule[expName];
|
|
74
|
-
moduleName && (toReExport[moduleName] ||= [], toReExport[moduleName].push(expName));
|
|
75
|
-
}
|
|
76
|
-
let forceExports = "", found = 0;
|
|
77
|
-
for (const line of code.split(`
|
|
78
|
-
`))
|
|
79
|
-
if (line.startsWith("export * from")) {
|
|
80
|
-
const [_, exportedName] = line.match(/export \* from ['"]([^'"]+)['"]/) || [];
|
|
81
|
-
if (exportedName) {
|
|
82
|
-
found++;
|
|
83
|
-
const name = `__vxrnExp${found}`;
|
|
84
|
-
forceExports += `
|
|
85
|
-
import * as ${name} from '${exportedName}';
|
|
86
|
-
globalThis.__forceExport${name} = ${name}
|
|
87
|
-
Object.assign(exports, globalThis.__forceExport${name});
|
|
88
|
-
`;
|
|
89
|
-
continue;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
return forceExports += Object.keys(toReExport).map((path) => {
|
|
93
|
-
const exportedNames = toReExport[path];
|
|
94
|
-
found++;
|
|
95
|
-
const name = `__vxrnExp${found}`;
|
|
96
|
-
return `
|
|
97
|
-
import * as ${name} from '${path}';
|
|
98
|
-
globalThis.__forceExport${name} = [${exportedNames.map((n) => n === "default" ? name : `${name}.${n}`).join(",")}]
|
|
99
|
-
`;
|
|
100
|
-
}).join(";"), {
|
|
101
|
-
code: code + `
|
|
102
|
-
` + forceExports,
|
|
103
|
-
moduleSideEffects: "no-treeshake"
|
|
104
|
-
};
|
|
105
|
-
} catch {
|
|
106
|
-
console.warn("Error forcing exports, probably ok", id);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
]
|
|
111
|
-
}
|
|
112
|
-
},
|
|
113
|
-
optimizeDeps: {
|
|
114
|
-
noDiscovery: !0,
|
|
115
|
-
include: void 0,
|
|
116
|
-
rolldownOptions: {
|
|
117
|
-
moduleTypes: {
|
|
118
|
-
".js": "jsx"
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
};
|
|
123
|
-
return {
|
|
124
|
-
environments: {
|
|
125
|
-
ios: mergeConfig(sharedNativeConfig, {
|
|
126
|
-
define: {
|
|
127
|
-
"process.env.REACT_NATIVE_PLATFORM": JSON.stringify("ios")
|
|
128
|
-
},
|
|
129
|
-
resolve: {
|
|
130
|
-
extensions: getNativeExtensions("ios"),
|
|
131
|
-
conditions,
|
|
132
|
-
mainFields
|
|
133
|
-
},
|
|
134
|
-
optimizeDeps: {
|
|
135
|
-
rolldownOptions: {
|
|
136
|
-
resolve: {
|
|
137
|
-
extensions: getNativeExtensions("ios")
|
|
138
|
-
},
|
|
139
|
-
plugins: [
|
|
140
|
-
{
|
|
141
|
-
name: "react-native-assets",
|
|
142
|
-
resolveId(source) {
|
|
143
|
-
if (/\.(png|jpg|gif|webp)$/.test(source))
|
|
144
|
-
return { id: "", external: !0 };
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
]
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
}),
|
|
151
|
-
android: mergeConfig(sharedNativeConfig, {
|
|
152
|
-
define: {
|
|
153
|
-
"process.env.REACT_NATIVE_PLATFORM": JSON.stringify("android")
|
|
154
|
-
},
|
|
155
|
-
resolve: {
|
|
156
|
-
extensions: getNativeExtensions("android"),
|
|
157
|
-
conditions,
|
|
158
|
-
mainFields
|
|
159
|
-
},
|
|
160
|
-
optimizeDeps: {
|
|
161
|
-
rolldownOptions: {
|
|
162
|
-
resolve: {
|
|
163
|
-
extensions: getNativeExtensions("android")
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
})
|
|
168
|
-
}
|
|
169
|
-
};
|
|
170
|
-
}
|
|
171
|
-
};
|
|
172
|
-
}
|
|
173
|
-
function getAllImportedIdentifiers(importStatement) {
|
|
174
|
-
const importRegex = /{([^}]+)}/, match = importStatement.match(importRegex);
|
|
175
|
-
return match ? match[1].split(",").map((name) => {
|
|
176
|
-
const parts = name.split(/\s+as\s+/);
|
|
177
|
-
return parts[parts.length - 1].trim();
|
|
178
|
-
}).filter(Boolean) : [];
|
|
179
|
-
}
|
|
180
|
-
const RESERVED_WORDS = /* @__PURE__ */ new Set([
|
|
181
|
-
"toString",
|
|
182
|
-
"break",
|
|
183
|
-
"case",
|
|
184
|
-
"catch",
|
|
185
|
-
"class",
|
|
186
|
-
"const",
|
|
187
|
-
"continue",
|
|
188
|
-
"debugger",
|
|
189
|
-
"default",
|
|
190
|
-
"delete",
|
|
191
|
-
"do",
|
|
192
|
-
"else",
|
|
193
|
-
"export",
|
|
194
|
-
"extends",
|
|
195
|
-
"false",
|
|
196
|
-
"finally",
|
|
197
|
-
"for",
|
|
198
|
-
"function",
|
|
199
|
-
"if",
|
|
200
|
-
"import",
|
|
201
|
-
"in",
|
|
202
|
-
"instanceof",
|
|
203
|
-
"new",
|
|
204
|
-
"null",
|
|
205
|
-
"return",
|
|
206
|
-
"super",
|
|
207
|
-
"switch",
|
|
208
|
-
"this",
|
|
209
|
-
"throw",
|
|
210
|
-
"true",
|
|
211
|
-
"try",
|
|
212
|
-
"typeof",
|
|
213
|
-
"var",
|
|
214
|
-
"void",
|
|
215
|
-
"while",
|
|
216
|
-
"with",
|
|
217
|
-
"let",
|
|
218
|
-
"static",
|
|
219
|
-
"yield",
|
|
220
|
-
"enum"
|
|
221
|
-
]);
|
|
222
|
-
export {
|
|
223
|
-
conditions,
|
|
224
|
-
mainFields,
|
|
225
|
-
reactNativeCommonJsPlugin
|
|
226
|
-
};
|
|
227
|
-
//# sourceMappingURL=reactNativeCommonJsPlugin.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/plugins/reactNativeCommonJsPlugin.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": ["id"]
|
|
6
|
-
}
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import path from "node:path";
|
|
2
|
-
import FSExtra from "fs-extra";
|
|
3
|
-
import colors from "picocolors";
|
|
4
|
-
import { isNativeEnvironment } from "../utils/environmentUtils";
|
|
5
|
-
const IMAGE_ASSET_EXTS = [
|
|
6
|
-
"png",
|
|
7
|
-
"jpg",
|
|
8
|
-
"jpeg",
|
|
9
|
-
"bmp",
|
|
10
|
-
"gif",
|
|
11
|
-
"webp",
|
|
12
|
-
"psd",
|
|
13
|
-
"svg",
|
|
14
|
-
"tiff",
|
|
15
|
-
"ktx"
|
|
16
|
-
], IMAGE_ASSET_EXTS_SET = new Set(IMAGE_ASSET_EXTS), ASSET_DEST_DIR = "assets", DEV_ASSET_DEST_PATH = "__vxrn_dev_native_assets";
|
|
17
|
-
function reactNativeDevAssetPlugin(options) {
|
|
18
|
-
const { assetExts } = options, assetExtsRegExp = new RegExp(`\\.(${assetExts.join("|")})$`), isAssetFile = (id) => assetExtsRegExp.test(id);
|
|
19
|
-
let config;
|
|
20
|
-
async function getAssetData(id) {
|
|
21
|
-
const projectRoot = config.root, relativeAssetPath = path.relative(projectRoot, id);
|
|
22
|
-
let assetUrlPath = relativeAssetPath;
|
|
23
|
-
path.sep === "\\" && (assetUrlPath = assetUrlPath.replaceAll("\\", "/"));
|
|
24
|
-
const relativeAssetDir = path.dirname(relativeAssetPath), assetBasename = path.basename(relativeAssetPath), assetExt = path.extname(assetBasename).slice(1), assetName = assetBasename.slice(
|
|
25
|
-
0,
|
|
26
|
-
-(assetExt.length + 1)
|
|
27
|
-
);
|
|
28
|
-
return {
|
|
29
|
-
__packager_asset: !0,
|
|
30
|
-
fileSystemLocation: path.dirname(id),
|
|
31
|
-
relativeFileSystemLocation: relativeAssetDir,
|
|
32
|
-
httpServerLocation: `/${options.mode === "dev" ? DEV_ASSET_DEST_PATH : ASSET_DEST_DIR}/${assetUrlPath.slice(
|
|
33
|
-
0,
|
|
34
|
-
-(assetBasename.length + 1)
|
|
35
|
-
/* removing the `/filename.ext` at the end */
|
|
36
|
-
)}`,
|
|
37
|
-
scales: [1],
|
|
38
|
-
// TODO
|
|
39
|
-
name: assetName,
|
|
40
|
-
type: assetExt
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
return {
|
|
44
|
-
name: "vxrn:react-native-dev-asset",
|
|
45
|
-
enforce: "pre",
|
|
46
|
-
configResolved(resolvedConfig) {
|
|
47
|
-
config = resolvedConfig;
|
|
48
|
-
},
|
|
49
|
-
// resolveId(source, importer, options) {
|
|
50
|
-
// if (!isNativeEnvironment(this.environment)) return
|
|
51
|
-
// if (!isAssetFile(source)) return
|
|
52
|
-
// // TODO: May need to handle platform specific extensions here.
|
|
53
|
-
// },
|
|
54
|
-
async load(id, _options) {
|
|
55
|
-
if (!isNativeEnvironment(this.environment) || !isAssetFile(id)) return;
|
|
56
|
-
const assetData = await getAssetData(id);
|
|
57
|
-
if (options.mode === "prod" && options.assetsDest) {
|
|
58
|
-
const assetsDestDir = path.join(
|
|
59
|
-
options.assetsDest,
|
|
60
|
-
ASSET_DEST_DIR,
|
|
61
|
-
assetData.relativeFileSystemLocation
|
|
62
|
-
);
|
|
63
|
-
await FSExtra.ensureDir(assetsDestDir), await FSExtra.copyFile(
|
|
64
|
-
id,
|
|
65
|
-
path.join(assetsDestDir, `${assetData.name}.${assetData.type}`)
|
|
66
|
-
);
|
|
67
|
-
}
|
|
68
|
-
return `
|
|
69
|
-
import { AssetRegistry } from 'react-native';
|
|
70
|
-
|
|
71
|
-
export const asset = AssetRegistry.registerAsset(${JSON.stringify(assetData, null, 2)});
|
|
72
|
-
|
|
73
|
-
export default asset;
|
|
74
|
-
`;
|
|
75
|
-
},
|
|
76
|
-
/**
|
|
77
|
-
* Extend the dev server to serve assets during development.
|
|
78
|
-
*/
|
|
79
|
-
configureServer(server) {
|
|
80
|
-
const { logger } = server.config, defaultLogOptions = { timestamp: !0 };
|
|
81
|
-
server.middlewares.use(async (req, res, next) => {
|
|
82
|
-
if (!req.url?.startsWith(`/${DEV_ASSET_DEST_PATH}/`))
|
|
83
|
-
return next();
|
|
84
|
-
const assetPath = "./" + new URL("http://example.com" + req.url).pathname.slice(`/${DEV_ASSET_DEST_PATH}/`.length).replace(/\.*$/, "");
|
|
85
|
-
try {
|
|
86
|
-
const asset = await FSExtra.readFile(assetPath);
|
|
87
|
-
res.setHeader("content-type", "image/png"), res.write(asset), res.end();
|
|
88
|
-
} catch (e) {
|
|
89
|
-
logger.error(
|
|
90
|
-
colors.red(
|
|
91
|
-
`[vxrn] Failed to serve asset: ${assetPath}: ${e instanceof Error ? e.message : "unknown error"}`
|
|
92
|
-
),
|
|
93
|
-
defaultLogOptions
|
|
94
|
-
), res.statusCode = e instanceof Error && e.code === "ENOENT" ? 404 : 500, res.end();
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
export {
|
|
101
|
-
reactNativeDevAssetPlugin
|
|
102
|
-
};
|
|
103
|
-
//# sourceMappingURL=reactNativeDevAssetPlugin.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/plugins/reactNativeDevAssetPlugin.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|