one 1.2.45 → 1.2.47
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/cjs/babel-plugins/remove-server-code.cjs +105 -0
- package/dist/cjs/babel-plugins/remove-server-code.js +125 -0
- package/dist/cjs/babel-plugins/remove-server-code.js.map +6 -0
- package/dist/cjs/babel-plugins/remove-server-code.native.js +153 -0
- package/dist/cjs/babel-plugins/remove-server-code.native.js.map +1 -0
- package/dist/cjs/cli/buildPage.cjs +16 -7
- package/dist/cjs/cli/buildPage.js +14 -5
- package/dist/cjs/cli/buildPage.js.map +1 -1
- package/dist/cjs/cli/buildPage.native.js +17 -8
- package/dist/cjs/cli/buildPage.native.js.map +1 -1
- package/dist/cjs/metro-config/getViteMetroPluginOptions.cjs +8 -3
- package/dist/cjs/metro-config/getViteMetroPluginOptions.js +9 -1
- package/dist/cjs/metro-config/getViteMetroPluginOptions.js.map +1 -1
- package/dist/cjs/metro-config/getViteMetroPluginOptions.native.js +8 -3
- package/dist/cjs/metro-config/getViteMetroPluginOptions.native.js.map +1 -1
- package/dist/cjs/polyfills-mobile.cjs +3 -1
- package/dist/cjs/polyfills-mobile.js +2 -1
- package/dist/cjs/polyfills-mobile.js.map +2 -2
- package/dist/cjs/polyfills-mobile.native.js +8 -4
- package/dist/cjs/polyfills-mobile.native.js.map +1 -1
- package/dist/cjs/router/router.cjs +3 -1
- package/dist/cjs/router/router.js +2 -1
- package/dist/cjs/router/router.js.map +1 -1
- package/dist/cjs/router/router.native.js +7 -3
- package/dist/cjs/router/router.native.js.map +1 -1
- package/dist/cjs/server/oneServe.cjs +10 -2
- package/dist/cjs/server/oneServe.js +12 -1
- package/dist/cjs/server/oneServe.js.map +1 -1
- package/dist/cjs/server/oneServe.native.js +10 -3
- package/dist/cjs/server/oneServe.native.js.map +1 -1
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.cjs +1 -0
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js +2 -0
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js +1 -0
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.cjs +7 -3
- package/dist/cjs/vite/plugins/virtualEntryPlugin.js +4 -3
- package/dist/cjs/vite/plugins/virtualEntryPlugin.js.map +1 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js +5 -2
- package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
- package/dist/esm/babel-plugins/remove-server-code.js +102 -0
- package/dist/esm/babel-plugins/remove-server-code.js.map +6 -0
- package/dist/esm/babel-plugins/remove-server-code.mjs +71 -0
- package/dist/esm/babel-plugins/remove-server-code.mjs.map +1 -0
- package/dist/esm/babel-plugins/remove-server-code.native.js +116 -0
- package/dist/esm/babel-plugins/remove-server-code.native.js.map +1 -0
- package/dist/esm/cli/buildPage.js +14 -4
- package/dist/esm/cli/buildPage.js.map +1 -1
- package/dist/esm/cli/buildPage.mjs +16 -7
- package/dist/esm/cli/buildPage.mjs.map +1 -1
- package/dist/esm/cli/buildPage.native.js +17 -8
- package/dist/esm/cli/buildPage.native.js.map +1 -1
- package/dist/esm/metro-config/getViteMetroPluginOptions.js +9 -1
- package/dist/esm/metro-config/getViteMetroPluginOptions.js.map +1 -1
- package/dist/esm/metro-config/getViteMetroPluginOptions.mjs +7 -2
- package/dist/esm/metro-config/getViteMetroPluginOptions.mjs.map +1 -1
- package/dist/esm/metro-config/getViteMetroPluginOptions.native.js +7 -2
- package/dist/esm/metro-config/getViteMetroPluginOptions.native.js.map +1 -1
- package/dist/esm/polyfills-mobile.js +2 -0
- package/dist/esm/polyfills-mobile.js.map +1 -1
- package/dist/esm/polyfills-mobile.mjs +2 -0
- package/dist/esm/polyfills-mobile.mjs.map +1 -1
- package/dist/esm/polyfills-mobile.native.js +5 -3
- package/dist/esm/polyfills-mobile.native.js.map +1 -1
- package/dist/esm/router/router.js +2 -1
- package/dist/esm/router/router.js.map +1 -1
- package/dist/esm/router/router.mjs +3 -1
- package/dist/esm/router/router.mjs.map +1 -1
- package/dist/esm/router/router.native.js +7 -3
- package/dist/esm/router/router.native.js.map +1 -1
- package/dist/esm/server/oneServe.js +12 -1
- package/dist/esm/server/oneServe.js.map +1 -1
- package/dist/esm/server/oneServe.mjs +10 -2
- package/dist/esm/server/oneServe.mjs.map +1 -1
- package/dist/esm/server/oneServe.native.js +10 -3
- package/dist/esm/server/oneServe.native.js.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.js +2 -0
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs +1 -0
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js +1 -0
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.js +4 -2
- package/dist/esm/vite/plugins/virtualEntryPlugin.js.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.mjs +6 -2
- package/dist/esm/vite/plugins/virtualEntryPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.native.js +4 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
- package/package.json +15 -9
- package/src/babel-plugins/remove-server-code.ts +227 -0
- package/src/cli/buildPage.ts +23 -4
- package/src/metro-config/getViteMetroPluginOptions.ts +10 -2
- package/src/polyfills-mobile.ts +7 -0
- package/src/router/router.ts +1 -1
- package/src/server/oneServe.ts +16 -1
- package/src/vite/plugins/fileSystemRouterPlugin.tsx +5 -0
- package/src/vite/plugins/virtualEntryPlugin.ts +6 -0
- package/types/babel-plugins/remove-server-code.d.ts +23 -0
- package/types/babel-plugins/remove-server-code.d.ts.map +1 -0
- package/types/cli/buildPage.d.ts.map +1 -1
- package/types/metro-config/getViteMetroPluginOptions.d.ts.map +1 -1
- package/types/polyfills-mobile.d.ts.map +1 -1
- package/types/server/oneServe.d.ts.map +1 -1
- package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
- package/types/vite/plugins/virtualEntryPlugin.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["join","Readable","debounce","createServerModuleRunner","getSpaHeaderElements","createHandleRequest","getRouterRootFromOneOptions","isResponse","isStatusRedirect","promiseWithResolvers","LoaderDataCache","replaceLoader","setServerContext","virtalEntryIdClient","virtualEntryId","_instanceof","left","right","Symbol","hasInstance","_type_of","obj","constructor","debugRouter","process","env","ONE_DEBUG_ROUTER","USE_SERVER_ENV","createFileSystemRouterPlugin","options","preloads","runner","server","handleRequest","createRequestHandler","renderPromise","routerRoot","handlePage","param","route","url","loaderProps","console","info","type","isNotFound","file","slice","serverContext","mode","promise","resolve","_globalThis___vxrnresetState","_globalThis","_exported_loader","routeFile","clearCache","globalThis","__vxrnresetState","call","exported","import","loaderData","loader","eval","entry","render","default","is404","html","path","Response","status","headers","err","error","href","title","pathname","message","Error","stack","isDuplicateReactError","test","subMessage","handleLoader","param2","request","route2","url2","loaderProps2","_this","_exported_loader2","routeFile2","transformedJS","transformRequest","code","exported2","loaderData2","platform","searchParams","get","environment","environments","nativeTransformedJS","JSON","stringify","handleAPI","loadMiddleware","contextKey","name","enforce","apply","config","userConfig","_options_optimization","_options_optimization_autoEntriesScanning","setting","optimization","autoEntriesScanning","manifest","pageRoutes","routesAndLayouts","Set","flatMap","_route_layouts","split","filter","x","startsWith","length","layouts","layout","optimizeDeps","entries","configureServer","serverIn","ssr","appDir","cwd","fileWatcherChangeListener","watcher","addListener","middlewares","use","req","res","next","_options_web","redirects","web","URL","host","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_loop","redirect","_step","value","regexStr","source","replace","match","RegExp","destination","params","forEach","index","writeHead","permanent","Location","end","v","_iterator","iterator","done","_ret","return","reply","handler","convertIncomingMessageToRequest"],"sources":["../../../../src/vite/plugins/fileSystemRouterPlugin.tsx"],"sourcesContent":[null],"mappings":"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
|
|
1
|
+
{"version":3,"names":["join","Readable","debounce","createServerModuleRunner","getSpaHeaderElements","createHandleRequest","getRouterRootFromOneOptions","isResponse","isStatusRedirect","promiseWithResolvers","LoaderDataCache","replaceLoader","setServerContext","virtalEntryIdClient","virtualEntryId","_instanceof","left","right","Symbol","hasInstance","_type_of","obj","constructor","debugRouter","process","env","ONE_DEBUG_ROUTER","USE_SERVER_ENV","createFileSystemRouterPlugin","options","preloads","runner","server","handleRequest","createRequestHandler","renderPromise","routerRoot","handlePage","param","route","url","loaderProps","console","info","type","isNotFound","file","slice","serverContext","mode","promise","resolve","_globalThis___vxrnresetState","_globalThis","_exported_loader","routeFile","clearCache","globalThis","__vxrnresetState","call","exported","import","loaderData","loader","eval","entry","render","default","is404","html","path","Response","status","headers","err","error","href","title","pathname","message","Error","stack","isDuplicateReactError","test","subMessage","handleLoader","param2","request","route2","url2","loaderProps2","_this","_exported_loader2","routeFile2","transformedJS","transformRequest","code","exported2","loaderData2","platform","searchParams","get","environment","environments","nativeTransformedJS","JSON","stringify","handleAPI","loadMiddleware","contextKey","name","enforce","apply","config","userConfig","_options_optimization","_options_optimization_autoEntriesScanning","setting","optimization","autoEntriesScanning","manifest","pageRoutes","routesAndLayouts","Set","flatMap","_route_layouts","split","filter","x","startsWith","length","layouts","layout","optimizeDeps","entries","configureServer","serverIn","ssr","appDir","cwd","fileWatcherChangeListener","watcher","addListener","middlewares","use","req","res","next","_options_web","redirects","web","URL","host","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_loop","redirect","_step","value","regexStr","source","replace","match","RegExp","destination","params","forEach","index","writeHead","permanent","Location","end","v","_iterator","iterator","done","_ret","return","reply","handler","convertIncomingMessageToRequest"],"sources":["../../../../src/vite/plugins/fileSystemRouterPlugin.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { configuration } from "@vxrn/compiler";
|
|
1
2
|
import { isNativeEnvironment } from "vxrn";
|
|
2
3
|
import {
|
|
3
4
|
API_ROUTE_GLOB_PATTERN,
|
|
@@ -62,9 +63,10 @@ function createVirtualEntry(options) {
|
|
|
62
63
|
},
|
|
63
64
|
load(id) {
|
|
64
65
|
if (id === resolvedVirtualEntryId) {
|
|
65
|
-
const isNative = isNativeEnvironment(this.environment);
|
|
66
|
+
const isNative = isNativeEnvironment(this.environment), prependCode = getSetupFileImport(this.environment.name, setupFiles, isNative), nativewindImport = configuration.enableNativewind ? "import 'react-native-css-interop/dist/runtime/components'" : "";
|
|
66
67
|
return `
|
|
67
|
-
${
|
|
68
|
+
${prependCode}
|
|
69
|
+
${nativewindImport}
|
|
68
70
|
|
|
69
71
|
import { createApp, registerPreloadedRoute as _registerPreloadedRoute } from 'one'
|
|
70
72
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/vite/plugins/virtualEntryPlugin.ts"],
|
|
4
|
-
"mappings": "
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { configuration } from "@vxrn/compiler";
|
|
1
2
|
import { isNativeEnvironment } from "vxrn";
|
|
2
3
|
import { API_ROUTE_GLOB_PATTERN, ROUTE_GLOB_PATTERN, ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS, ROUTE_WEB_EXCLUSION_GLOB_PATTERNS } from "../../router/glob-patterns.mjs";
|
|
3
4
|
import { resolvedVirtualEntryId, resolvedVirtualEntryIdNative, virtualEntryId, virtualEntryIdNative } from "./virtualEntryConstants.mjs";
|
|
@@ -47,9 +48,12 @@ function createVirtualEntry(options) {
|
|
|
47
48
|
},
|
|
48
49
|
load(id) {
|
|
49
50
|
if (id === resolvedVirtualEntryId) {
|
|
50
|
-
const isNative = isNativeEnvironment(this.environment)
|
|
51
|
+
const isNative = isNativeEnvironment(this.environment),
|
|
52
|
+
prependCode = getSetupFileImport(this.environment.name, setupFiles, isNative),
|
|
53
|
+
nativewindImport = configuration.enableNativewind ? "import 'react-native-css-interop/dist/runtime/components'" : "";
|
|
51
54
|
return `
|
|
52
|
-
${
|
|
55
|
+
${prependCode}
|
|
56
|
+
${nativewindImport}
|
|
53
57
|
|
|
54
58
|
import { createApp, registerPreloadedRoute as _registerPreloadedRoute } from 'one'
|
|
55
59
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isNativeEnvironment","API_ROUTE_GLOB_PATTERN","ROUTE_GLOB_PATTERN","ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS","ROUTE_WEB_EXCLUSION_GLOB_PATTERNS","resolvedVirtualEntryId","resolvedVirtualEntryIdNative","virtualEntryId","virtualEntryIdNative","normalizeSetupFile","setupFile","client","server","ios","android","native","sf","getSetupFileImport","environmentName","setupFiles","useStaticImport","key","ssr","JSON","stringify","createVirtualEntry","options","routeGlobs","root","router","ignoredRouteFiles","map","pattern","apiRouteGlobs","name","enforce","resolveId","id","load","isNative","environment","p","flags"],"sources":["../../../../src/vite/plugins/virtualEntryPlugin.ts"],"sourcesContent":[null],"mappings":"
|
|
1
|
+
{"version":3,"names":["configuration","isNativeEnvironment","API_ROUTE_GLOB_PATTERN","ROUTE_GLOB_PATTERN","ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS","ROUTE_WEB_EXCLUSION_GLOB_PATTERNS","resolvedVirtualEntryId","resolvedVirtualEntryIdNative","virtualEntryId","virtualEntryIdNative","normalizeSetupFile","setupFile","client","server","ios","android","native","sf","getSetupFileImport","environmentName","setupFiles","useStaticImport","key","ssr","JSON","stringify","createVirtualEntry","options","routeGlobs","root","router","ignoredRouteFiles","map","pattern","apiRouteGlobs","name","enforce","resolveId","id","load","isNative","environment","prependCode","nativewindImport","enableNativewind","p","flags"],"sources":["../../../../src/vite/plugins/virtualEntryPlugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { configuration } from "@vxrn/compiler";
|
|
1
2
|
import { isNativeEnvironment } from "vxrn";
|
|
2
3
|
import { API_ROUTE_GLOB_PATTERN, ROUTE_GLOB_PATTERN, ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS, ROUTE_WEB_EXCLUSION_GLOB_PATTERNS } from "../../router/glob-patterns.native.js";
|
|
3
4
|
import { resolvedVirtualEntryId, resolvedVirtualEntryIdNative, virtualEntryId, virtualEntryIdNative } from "./virtualEntryConstants.native.js";
|
|
@@ -53,9 +54,11 @@ function createVirtualEntry(options) {
|
|
|
53
54
|
load(id) {
|
|
54
55
|
if (id === resolvedVirtualEntryId) {
|
|
55
56
|
var isNative = isNativeEnvironment(this.environment),
|
|
56
|
-
prependCode = getSetupFileImport(this.environment.name, setupFiles, isNative)
|
|
57
|
+
prependCode = getSetupFileImport(this.environment.name, setupFiles, isNative),
|
|
58
|
+
nativewindImport = configuration.enableNativewind ? "import 'react-native-css-interop/dist/runtime/components'" : "";
|
|
57
59
|
return `
|
|
58
60
|
${prependCode}
|
|
61
|
+
${nativewindImport}
|
|
59
62
|
|
|
60
63
|
import { createApp, registerPreloadedRoute as _registerPreloadedRoute } from 'one'
|
|
61
64
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isNativeEnvironment","API_ROUTE_GLOB_PATTERN","ROUTE_GLOB_PATTERN","ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS","ROUTE_WEB_EXCLUSION_GLOB_PATTERNS","resolvedVirtualEntryId","resolvedVirtualEntryIdNative","virtualEntryId","virtualEntryIdNative","normalizeSetupFile","setupFile","client","server","ios","android","native","sf","getSetupFileImport","environmentName","setupFiles","useStaticImport","envMap","ssr","key","JSON","stringify","createVirtualEntry","options","_options_router_ignoredRouteFiles","_options_router","routeGlobs","root","router","ignoredRouteFiles","map","pattern","apiRouteGlobs","name","enforce","resolveId","id","load","isNative","environment","prependCode","p","flags","isNative1","prependCode1"],"sources":["../../../../src/vite/plugins/virtualEntryPlugin.ts"],"sourcesContent":[null],"mappings":"
|
|
1
|
+
{"version":3,"names":["configuration","isNativeEnvironment","API_ROUTE_GLOB_PATTERN","ROUTE_GLOB_PATTERN","ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS","ROUTE_WEB_EXCLUSION_GLOB_PATTERNS","resolvedVirtualEntryId","resolvedVirtualEntryIdNative","virtualEntryId","virtualEntryIdNative","normalizeSetupFile","setupFile","client","server","ios","android","native","sf","getSetupFileImport","environmentName","setupFiles","useStaticImport","envMap","ssr","key","JSON","stringify","createVirtualEntry","options","_options_router_ignoredRouteFiles","_options_router","routeGlobs","root","router","ignoredRouteFiles","map","pattern","apiRouteGlobs","name","enforce","resolveId","id","load","isNative","environment","prependCode","nativewindImport","enableNativewind","p","flags","isNative1","prependCode1"],"sources":["../../../../src/vite/plugins/virtualEntryPlugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "one",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.47",
|
|
4
4
|
"license": "BSD-3-Clause",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"setup.mjs",
|
|
@@ -70,6 +70,11 @@
|
|
|
70
70
|
"import": "./dist/esm/babel-plugins/one-router-metro.mjs",
|
|
71
71
|
"require": "./dist/cjs/babel-plugins/one-router-metro.cjs"
|
|
72
72
|
},
|
|
73
|
+
"./babel-plugin-remove-server-code": {
|
|
74
|
+
"types": "./types/babel-plugins/remove-server-code.d.ts",
|
|
75
|
+
"import": "./dist/esm/babel-plugins/remove-server-code.mjs",
|
|
76
|
+
"require": "./dist/cjs/babel-plugins/remove-server-code.cjs"
|
|
77
|
+
},
|
|
73
78
|
"./getViteMetroPluginOptions": {
|
|
74
79
|
"types": "./types/metro-config/getViteMetroPluginOptions.d.ts",
|
|
75
80
|
"import": "./dist/esm/metro-config/getViteMetroPluginOptions.mjs",
|
|
@@ -115,6 +120,7 @@
|
|
|
115
120
|
"@babel/parser": "^7.28.5",
|
|
116
121
|
"@babel/traverse": "^7.28.5",
|
|
117
122
|
"@babel/types": "^7.28.5",
|
|
123
|
+
"@bacons/text-decoder": "^0.0.0",
|
|
118
124
|
"@radix-ui/react-slot": "^1.0.2",
|
|
119
125
|
"@react-native-masked-view/masked-view": "^0.3.2",
|
|
120
126
|
"@react-navigation/bottom-tabs": "~7.7.3",
|
|
@@ -124,17 +130,17 @@
|
|
|
124
130
|
"@react-navigation/routers": "~7.5.1",
|
|
125
131
|
"@swc/core": "^1.14.0",
|
|
126
132
|
"@ungap/structured-clone": "^1.2.0",
|
|
127
|
-
"@vxrn/color-scheme": "1.2.
|
|
128
|
-
"@vxrn/compiler": "1.2.
|
|
129
|
-
"@vxrn/resolve": "1.2.
|
|
130
|
-
"@vxrn/tslib-lite": "1.2.
|
|
131
|
-
"@vxrn/use-isomorphic-layout-effect": "1.2.
|
|
132
|
-
"@vxrn/vite-plugin-metro": "1.2.
|
|
133
|
+
"@vxrn/color-scheme": "1.2.47",
|
|
134
|
+
"@vxrn/compiler": "1.2.47",
|
|
135
|
+
"@vxrn/resolve": "1.2.47",
|
|
136
|
+
"@vxrn/tslib-lite": "1.2.47",
|
|
137
|
+
"@vxrn/use-isomorphic-layout-effect": "1.2.47",
|
|
138
|
+
"@vxrn/vite-plugin-metro": "1.2.47",
|
|
133
139
|
"babel-dead-code-elimination": "^1.0.10",
|
|
134
140
|
"babel-plugin-module-resolver": "^5.0.2",
|
|
135
141
|
"citty": "^0.1.6",
|
|
136
142
|
"core-js": "^3.38.1",
|
|
137
|
-
"create-vxrn": "1.2.
|
|
143
|
+
"create-vxrn": "1.2.47",
|
|
138
144
|
"escape-string-regexp": "^5.0.0",
|
|
139
145
|
"expo-linking": "~8.0.8",
|
|
140
146
|
"expo-modules-core": "~3.0.24",
|
|
@@ -160,7 +166,7 @@
|
|
|
160
166
|
"vite": "^7.1.12",
|
|
161
167
|
"vite-plugin-barrel": "^0.4.1",
|
|
162
168
|
"vite-tsconfig-paths": "^5.1.4",
|
|
163
|
-
"vxrn": "1.2.
|
|
169
|
+
"vxrn": "1.2.47",
|
|
164
170
|
"ws": "^8.18.0",
|
|
165
171
|
"xxhashjs": "^0.2.2"
|
|
166
172
|
},
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Babel plugin to remove server-only code (loader, generateStaticParams) from native bundles.
|
|
3
|
+
*
|
|
4
|
+
* This plugin transforms route files to remove server-only exports so they don't
|
|
5
|
+
* get included in the native bundle. It's the Metro equivalent of clientTreeShakePlugin.
|
|
6
|
+
*
|
|
7
|
+
* What it does:
|
|
8
|
+
* 1. Captures referenced identifiers BEFORE removing exports
|
|
9
|
+
* 2. Removes `export function loader() { ... }` and `export const loader = ...`
|
|
10
|
+
* 3. Removes `export function generateStaticParams() { ... }` and `export const generateStaticParams = ...`
|
|
11
|
+
* 4. Runs dead code elimination to remove imports that were only used by removed functions
|
|
12
|
+
* 5. Adds empty stubs back to prevent "missing export" errors
|
|
13
|
+
*
|
|
14
|
+
* Options:
|
|
15
|
+
* - routerRoot: The router root directory (e.g., 'app'). Only files in this directory are transformed.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import type { NodePath, PluginObj } from '@babel/core'
|
|
19
|
+
import * as t from '@babel/types'
|
|
20
|
+
import { deadCodeElimination, findReferencedIdentifiers } from 'babel-dead-code-elimination'
|
|
21
|
+
|
|
22
|
+
const SERVER_EXPORTS = ['loader', 'generateStaticParams'] as const
|
|
23
|
+
|
|
24
|
+
type ServerExport = (typeof SERVER_EXPORTS)[number]
|
|
25
|
+
|
|
26
|
+
type PluginOptions = {
|
|
27
|
+
routerRoot?: string
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function removeServerCodePlugin(_: unknown, options: PluginOptions): PluginObj {
|
|
31
|
+
const { routerRoot = 'app' } = options
|
|
32
|
+
|
|
33
|
+
return {
|
|
34
|
+
name: 'one-remove-server-code',
|
|
35
|
+
visitor: {
|
|
36
|
+
Program: {
|
|
37
|
+
enter(path: NodePath<t.Program>, state: { filename?: string; referenced?: Set<string> }) {
|
|
38
|
+
const filename = state.filename
|
|
39
|
+
|
|
40
|
+
// Only process route files in the router root
|
|
41
|
+
if (!filename) {
|
|
42
|
+
return
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Check if file is in the router root directory
|
|
46
|
+
const routerRootPattern = new RegExp(`[/\\\\]${routerRoot}[/\\\\]`)
|
|
47
|
+
if (!routerRootPattern.test(filename)) {
|
|
48
|
+
return
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Skip node_modules
|
|
52
|
+
if (filename.includes('node_modules')) {
|
|
53
|
+
return
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// Quick check if file even has these exports
|
|
57
|
+
const code = path.toString()
|
|
58
|
+
if (!/generateStaticParams|loader/.test(code)) {
|
|
59
|
+
return
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// Capture referenced identifiers BEFORE removing exports
|
|
63
|
+
// This is critical for dead code elimination to work
|
|
64
|
+
try {
|
|
65
|
+
state.referenced = findReferencedIdentifiers(path.node as any) as any
|
|
66
|
+
} catch (error) {
|
|
67
|
+
console.warn(
|
|
68
|
+
`[one/metro] Skipping tree shaking for ${filename} due to identifier analysis error:`,
|
|
69
|
+
error instanceof Error ? error.message : String(error)
|
|
70
|
+
)
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
|
|
74
|
+
exit(path: NodePath<t.Program>, state: { filename?: string; referenced?: Set<string> }) {
|
|
75
|
+
const filename = state.filename
|
|
76
|
+
|
|
77
|
+
// Only process route files in the router root
|
|
78
|
+
if (!filename) {
|
|
79
|
+
return
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// Check if file is in the router root directory
|
|
83
|
+
const routerRootPattern = new RegExp(`[/\\\\]${routerRoot}[/\\\\]`)
|
|
84
|
+
if (!routerRootPattern.test(filename)) {
|
|
85
|
+
return
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// Skip node_modules
|
|
89
|
+
if (filename.includes('node_modules')) {
|
|
90
|
+
return
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// If we don't have referenced set from enter, skip
|
|
94
|
+
if (!state.referenced) {
|
|
95
|
+
return
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
const removedExports: Set<ServerExport> = new Set()
|
|
99
|
+
|
|
100
|
+
// Find and remove server exports
|
|
101
|
+
// Note: babel-preset-expo may have already transformed async functions like:
|
|
102
|
+
// export async function loader() { ... }
|
|
103
|
+
// into:
|
|
104
|
+
// function _loader() { _loader = _asyncToGenerator(...); return _loader.apply(...) }
|
|
105
|
+
// export function loader() { return _loader.apply(...) }
|
|
106
|
+
// So we need to handle both the original form and the transformed form
|
|
107
|
+
path.traverse({
|
|
108
|
+
ExportNamedDeclaration(exportPath: NodePath<t.ExportNamedDeclaration>) {
|
|
109
|
+
const declaration = exportPath.node.declaration
|
|
110
|
+
|
|
111
|
+
// Handle: export function loader() { ... }
|
|
112
|
+
if (t.isFunctionDeclaration(declaration) && declaration.id) {
|
|
113
|
+
const name = declaration.id.name as ServerExport
|
|
114
|
+
if (SERVER_EXPORTS.includes(name)) {
|
|
115
|
+
removedExports.add(name)
|
|
116
|
+
exportPath.remove()
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
// Handle: export const loader = async () => { ... }
|
|
120
|
+
// Handle: export const loader = route.createLoader(...)
|
|
121
|
+
else if (t.isVariableDeclaration(declaration)) {
|
|
122
|
+
for (let i = declaration.declarations.length - 1; i >= 0; i--) {
|
|
123
|
+
const declarator = declaration.declarations[i]
|
|
124
|
+
if (t.isIdentifier(declarator.id)) {
|
|
125
|
+
const name = declarator.id.name as ServerExport
|
|
126
|
+
if (SERVER_EXPORTS.includes(name)) {
|
|
127
|
+
removedExports.add(name)
|
|
128
|
+
|
|
129
|
+
// Remove just this declarator
|
|
130
|
+
if (declaration.declarations.length === 1) {
|
|
131
|
+
exportPath.remove()
|
|
132
|
+
} else {
|
|
133
|
+
declaration.declarations.splice(i, 1)
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
|
|
141
|
+
// Also remove helper functions created by babel's async-to-generator transform
|
|
142
|
+
// These are named _loader, _generateStaticParams, etc.
|
|
143
|
+
FunctionDeclaration(funcPath: NodePath<t.FunctionDeclaration>) {
|
|
144
|
+
if (!funcPath.node.id) return
|
|
145
|
+
const name = funcPath.node.id.name
|
|
146
|
+
// Check for helper functions like _loader, _generateStaticParams
|
|
147
|
+
for (const serverExport of SERVER_EXPORTS) {
|
|
148
|
+
if (name === `_${serverExport}`) {
|
|
149
|
+
// Verify this is indeed a babel-generated async helper
|
|
150
|
+
// by checking if it contains _asyncToGenerator
|
|
151
|
+
let isAsyncHelper = false
|
|
152
|
+
funcPath.traverse({
|
|
153
|
+
Identifier(idPath) {
|
|
154
|
+
if (idPath.node.name === '_asyncToGenerator') {
|
|
155
|
+
isAsyncHelper = true
|
|
156
|
+
idPath.stop()
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
})
|
|
160
|
+
if (isAsyncHelper) {
|
|
161
|
+
removedExports.add(serverExport)
|
|
162
|
+
funcPath.remove()
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
})
|
|
168
|
+
|
|
169
|
+
// Only proceed if we removed something
|
|
170
|
+
if (removedExports.size === 0) {
|
|
171
|
+
return
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
// Run dead code elimination to remove imports that were only used by removed functions
|
|
175
|
+
try {
|
|
176
|
+
deadCodeElimination(path.node as any, state.referenced as any)
|
|
177
|
+
} catch (error) {
|
|
178
|
+
console.warn(
|
|
179
|
+
`[one/metro] Dead code elimination failed for ${filename}:`,
|
|
180
|
+
error instanceof Error ? error.message : String(error)
|
|
181
|
+
)
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
// Add back empty stubs for removed exports to prevent "missing export" errors
|
|
185
|
+
const stubs: t.Statement[] = []
|
|
186
|
+
|
|
187
|
+
if (removedExports.has('loader')) {
|
|
188
|
+
// export function loader() { return "__vxrn__loader__"; }
|
|
189
|
+
stubs.push(
|
|
190
|
+
t.exportNamedDeclaration(
|
|
191
|
+
t.functionDeclaration(
|
|
192
|
+
t.identifier('loader'),
|
|
193
|
+
[],
|
|
194
|
+
t.blockStatement([t.returnStatement(t.stringLiteral('__vxrn__loader__'))])
|
|
195
|
+
)
|
|
196
|
+
)
|
|
197
|
+
)
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
if (removedExports.has('generateStaticParams')) {
|
|
201
|
+
// export function generateStaticParams() { }
|
|
202
|
+
stubs.push(
|
|
203
|
+
t.exportNamedDeclaration(
|
|
204
|
+
t.functionDeclaration(
|
|
205
|
+
t.identifier('generateStaticParams'),
|
|
206
|
+
[],
|
|
207
|
+
t.blockStatement([])
|
|
208
|
+
)
|
|
209
|
+
)
|
|
210
|
+
)
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
// Add stubs at the end of the file
|
|
214
|
+
for (const stub of stubs) {
|
|
215
|
+
path.pushContainer('body', stub)
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
console.info(
|
|
219
|
+
` 🧹 [one/metro] ${filename} removed ${removedExports.size} server-only exports`
|
|
220
|
+
)
|
|
221
|
+
},
|
|
222
|
+
},
|
|
223
|
+
},
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
export default removeServerCodePlugin
|
package/src/cli/buildPage.ts
CHANGED
|
@@ -3,12 +3,20 @@ import FSExtra from 'fs-extra'
|
|
|
3
3
|
import * as constants from '../constants'
|
|
4
4
|
import type { LoaderProps, RenderApp } from '../types'
|
|
5
5
|
import { getLoaderPath, getPreloadPath, getPreloadCSSPath } from '../utils/cleanUrl'
|
|
6
|
+
import { isResponse } from '../utils/isResponse'
|
|
6
7
|
import { toAbsolute } from '../utils/toAbsolute'
|
|
7
8
|
import { replaceLoader } from '../vite/replaceLoader'
|
|
8
9
|
import type { One, RouteInfo } from '../vite/types'
|
|
9
10
|
|
|
10
11
|
const { readFile, outputFile } = FSExtra
|
|
11
12
|
|
|
13
|
+
// Convert URL path (with forward slashes) to filesystem path for cross-platform compatibility
|
|
14
|
+
function urlPathToFilePath(urlPath: string): string {
|
|
15
|
+
// Remove leading slash and split by forward slash (URL separator)
|
|
16
|
+
const parts = urlPath.replace(/^\//, '').split('/')
|
|
17
|
+
return join(...parts)
|
|
18
|
+
}
|
|
19
|
+
|
|
12
20
|
export async function buildPage(
|
|
13
21
|
serverEntry: string,
|
|
14
22
|
path: string,
|
|
@@ -66,7 +74,7 @@ export async function buildPage(
|
|
|
66
74
|
...registrationCalls,
|
|
67
75
|
].join('\n')
|
|
68
76
|
|
|
69
|
-
await FSExtra.writeFile(join(clientDir, preloadPath), preloadContent)
|
|
77
|
+
await FSExtra.writeFile(join(clientDir, urlPathToFilePath(preloadPath)), preloadContent)
|
|
70
78
|
|
|
71
79
|
// Generate CSS preload file with prefetch (on hover) and inject (on navigation) functions
|
|
72
80
|
// Deduplicate CSS URLs to avoid loading the same file multiple times
|
|
@@ -126,12 +134,23 @@ export function injectCSS() {
|
|
|
126
134
|
// For backwards compatibility, also prefetch on import
|
|
127
135
|
prefetchCSS()
|
|
128
136
|
`
|
|
129
|
-
await FSExtra.writeFile(join(clientDir, cssPreloadPath), cssPreloadContent)
|
|
137
|
+
await FSExtra.writeFile(join(clientDir, urlPathToFilePath(cssPreloadPath)), cssPreloadContent)
|
|
130
138
|
|
|
131
139
|
const exported = await import(toAbsolute(serverJsPath))
|
|
132
140
|
|
|
133
141
|
if (exported.loader) {
|
|
134
|
-
|
|
142
|
+
try {
|
|
143
|
+
loaderData = (await exported.loader?.({ path, params })) ?? null
|
|
144
|
+
} catch (err) {
|
|
145
|
+
// Handle thrown responses (e.g., redirect) - skip loader data generation for this page
|
|
146
|
+
// The redirect will happen at runtime instead
|
|
147
|
+
if (isResponse(err)) {
|
|
148
|
+
// Keep loaderData as empty object, the redirect will happen at runtime
|
|
149
|
+
} else {
|
|
150
|
+
throw err
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
135
154
|
const code = await readFile(clientJsPath, 'utf-8')
|
|
136
155
|
const withLoader =
|
|
137
156
|
// super dirty to quickly make ssr loaders work until we have better
|
|
@@ -142,7 +161,7 @@ if (typeof document === 'undefined') globalThis.document = {}
|
|
|
142
161
|
code,
|
|
143
162
|
loaderData,
|
|
144
163
|
})
|
|
145
|
-
const loaderPartialPath = join(clientDir, getLoaderPath(path))
|
|
164
|
+
const loaderPartialPath = join(clientDir, urlPathToFilePath(getLoaderPath(path)))
|
|
146
165
|
await outputFile(loaderPartialPath, withLoader)
|
|
147
166
|
loaderPath = getLoaderPath(path)
|
|
148
167
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import module from 'node:module'
|
|
2
|
-
import path from 'node:path'
|
|
3
1
|
import type { metroPlugin } from '@vxrn/vite-plugin-metro'
|
|
4
2
|
import mm from 'micromatch'
|
|
3
|
+
import module from 'node:module'
|
|
4
|
+
import path from 'node:path'
|
|
5
5
|
import tsconfigPaths from 'tsconfig-paths'
|
|
6
6
|
import {
|
|
7
7
|
API_ROUTE_GLOB_PATTERN,
|
|
@@ -154,6 +154,14 @@ export function getViteMetroPluginOptions({
|
|
|
154
154
|
},
|
|
155
155
|
babelConfig: {
|
|
156
156
|
plugins: [
|
|
157
|
+
// Remove server-only code (loader, generateStaticParams) from route files
|
|
158
|
+
// This must run early to prevent server-only imports from being bundled
|
|
159
|
+
[
|
|
160
|
+
'one/babel-plugin-remove-server-code',
|
|
161
|
+
{
|
|
162
|
+
routerRoot: relativeRouterRoot,
|
|
163
|
+
},
|
|
164
|
+
],
|
|
157
165
|
[
|
|
158
166
|
'babel-plugin-module-resolver',
|
|
159
167
|
{
|
package/src/polyfills-mobile.ts
CHANGED
|
@@ -3,6 +3,13 @@
|
|
|
3
3
|
|
|
4
4
|
globalThis['global'] = globalThis
|
|
5
5
|
|
|
6
|
+
// --------------- TextDecoder -------------------
|
|
7
|
+
// for viem and other web3/crypto packages that need TextDecoder on React Native
|
|
8
|
+
|
|
9
|
+
import { TextDecoder as TextDecoderPolyfill } from '@bacons/text-decoder'
|
|
10
|
+
|
|
11
|
+
globalThis['TextDecoder'] ||= TextDecoderPolyfill
|
|
12
|
+
|
|
6
13
|
// --------------- structuredClone -------------------
|
|
7
14
|
|
|
8
15
|
import structuredClone from '@ungap/structured-clone'
|
package/src/router/router.ts
CHANGED
|
@@ -388,7 +388,7 @@ async function doPreload(href: string) {
|
|
|
388
388
|
const [_preload, cssPreloadModule, loader] = await Promise.all([
|
|
389
389
|
dynamicImport(preloadPath),
|
|
390
390
|
dynamicImport(cssPreloadPath)?.catch(() => null) ?? Promise.resolve(null), // graceful fail if no CSS preload
|
|
391
|
-
dynamicImport(loaderPath),
|
|
391
|
+
dynamicImport(loaderPath)?.catch(() => null) ?? Promise.resolve(null), // graceful fail if no loader file
|
|
392
392
|
preloadRouteModules(href),
|
|
393
393
|
])
|
|
394
394
|
|
package/src/server/oneServe.ts
CHANGED
|
@@ -159,7 +159,17 @@ export async function oneServe(
|
|
|
159
159
|
const exported = options?.lazyRoutes?.pages?.[route.file]
|
|
160
160
|
? await options.lazyRoutes.pages[route.file]()
|
|
161
161
|
: await import(toAbsolute(buildInfo.serverJsPath))
|
|
162
|
-
|
|
162
|
+
|
|
163
|
+
let loaderData
|
|
164
|
+
try {
|
|
165
|
+
loaderData = await exported.loader?.(loaderProps)
|
|
166
|
+
} catch (loaderErr) {
|
|
167
|
+
// Handle thrown responses (e.g., redirect) from loader
|
|
168
|
+
if (isResponse(loaderErr)) {
|
|
169
|
+
return loaderErr
|
|
170
|
+
}
|
|
171
|
+
throw loaderErr
|
|
172
|
+
}
|
|
163
173
|
|
|
164
174
|
const headers = new Headers()
|
|
165
175
|
headers.set('content-type', 'text/html')
|
|
@@ -181,6 +191,11 @@ export async function oneServe(
|
|
|
181
191
|
status: route.isNotFound ? 404 : 200,
|
|
182
192
|
})
|
|
183
193
|
} catch (err) {
|
|
194
|
+
// Handle thrown responses (e.g., redirect) that weren't caught above
|
|
195
|
+
if (isResponse(err)) {
|
|
196
|
+
return err
|
|
197
|
+
}
|
|
198
|
+
|
|
184
199
|
console.error(`[one] Error rendering SSR route ${route.file}
|
|
185
200
|
|
|
186
201
|
${err?.['stack'] ?? err}
|
|
@@ -107,6 +107,11 @@ export function createFileSystemRouterPlugin(options: One.PluginOptions): Plugin
|
|
|
107
107
|
|
|
108
108
|
return html
|
|
109
109
|
} catch (err) {
|
|
110
|
+
// allow throwing a response in a loader (e.g. redirect)
|
|
111
|
+
if (isResponse(err)) {
|
|
112
|
+
return err
|
|
113
|
+
}
|
|
114
|
+
|
|
110
115
|
console.error(`SSR error while loading file ${route.file} from URL ${url.href}\n`, err)
|
|
111
116
|
const title = `Error rendering ${url.pathname} on server`
|
|
112
117
|
const message = err instanceof Error ? err.message : `${err}`
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { configuration } from '@vxrn/compiler'
|
|
1
2
|
import type { Plugin } from 'vite'
|
|
2
3
|
import { isNativeEnvironment } from 'vxrn'
|
|
3
4
|
import {
|
|
@@ -108,8 +109,13 @@ export function createVirtualEntry(options: {
|
|
|
108
109
|
if (id === resolvedVirtualEntryId) {
|
|
109
110
|
const isNative = isNativeEnvironment(this.environment)
|
|
110
111
|
const prependCode = getSetupFileImport(this.environment.name, setupFiles, isNative)
|
|
112
|
+
// When nativewind is enabled, import the components module to register Text, View, etc. with cssInterop
|
|
113
|
+
const nativewindImport = configuration.enableNativewind
|
|
114
|
+
? `import 'react-native-css-interop/dist/runtime/components'`
|
|
115
|
+
: ''
|
|
111
116
|
return `
|
|
112
117
|
${prependCode}
|
|
118
|
+
${nativewindImport}
|
|
113
119
|
|
|
114
120
|
import { createApp, registerPreloadedRoute as _registerPreloadedRoute } from 'one'
|
|
115
121
|
|