one 1.25.12 → 1.25.13

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.
Files changed (210) hide show
  1. package/dist/cjs/cli/build.cjs +8 -161
  2. package/dist/cjs/cli/build.native.js +8 -204
  3. package/dist/cjs/cli/build.native.js.map +1 -1
  4. package/dist/cjs/createDevHandleRequest.cjs +151 -0
  5. package/dist/cjs/createDevHandleRequest.native.js +194 -0
  6. package/dist/cjs/createDevHandleRequest.native.js.map +1 -0
  7. package/dist/cjs/createHandleRequest.cjs +1 -123
  8. package/dist/cjs/createHandleRequest.native.js +1 -163
  9. package/dist/cjs/createHandleRequest.native.js.map +1 -1
  10. package/dist/cjs/createHandleRequest.test.cjs +25 -25
  11. package/dist/cjs/createHandleRequest.test.native.js +25 -25
  12. package/dist/cjs/createHandleRequest.test.native.js.map +1 -1
  13. package/dist/cjs/layouts/Drawer.cjs +0 -2
  14. package/dist/cjs/layouts/Drawer.native.js.map +1 -1
  15. package/dist/cjs/layouts/Tabs.cjs +0 -2
  16. package/dist/cjs/layouts/Tabs.native.js.map +1 -1
  17. package/dist/cjs/router/web/WebStackView.cjs +0 -2
  18. package/dist/cjs/router/web/WebStackView.native.js +0 -2
  19. package/dist/cjs/router/web/WebStackView.native.js.map +1 -1
  20. package/dist/cjs/serve-worker.cjs +3 -2
  21. package/dist/cjs/serve-worker.native.js +3 -2
  22. package/dist/cjs/serve-worker.native.js.map +1 -1
  23. package/dist/cjs/server/workerHandler.cjs +12 -7
  24. package/dist/cjs/server/workerHandler.native.js +13 -8
  25. package/dist/cjs/server/workerHandler.native.js.map +1 -1
  26. package/dist/cjs/server/workerHandler.test.cjs +25 -0
  27. package/dist/cjs/server/workerHandler.test.native.js +25 -0
  28. package/dist/cjs/server/workerHandler.test.native.js.map +1 -1
  29. package/dist/cjs/vite/cloudflareWranglerConfig.cjs +247 -0
  30. package/dist/cjs/vite/cloudflareWranglerConfig.native.js +392 -0
  31. package/dist/cjs/vite/cloudflareWranglerConfig.native.js.map +1 -0
  32. package/dist/cjs/vite/cloudflareWranglerConfig.test.cjs +116 -0
  33. package/dist/cjs/vite/cloudflareWranglerConfig.test.native.js +120 -0
  34. package/dist/cjs/vite/cloudflareWranglerConfig.test.native.js.map +1 -0
  35. package/dist/cjs/vite/one.cjs +4 -2
  36. package/dist/cjs/vite/one.native.js +8 -6
  37. package/dist/cjs/vite/one.native.js.map +1 -1
  38. package/dist/cjs/vite/plugins/SSRCSSPlugin.cjs +10 -1
  39. package/dist/cjs/vite/plugins/SSRCSSPlugin.native.js +52 -3
  40. package/dist/cjs/vite/plugins/SSRCSSPlugin.native.js.map +1 -1
  41. package/dist/cjs/vite/plugins/environmentGuardPlugin.cjs +1 -1
  42. package/dist/cjs/vite/plugins/environmentGuardPlugin.native.js +1 -1
  43. package/dist/cjs/vite/plugins/environmentGuardPlugin.native.js.map +1 -1
  44. package/dist/cjs/vite/plugins/environmentGuardPlugin.test.cjs +4 -0
  45. package/dist/cjs/vite/plugins/environmentGuardPlugin.test.native.js +4 -0
  46. package/dist/cjs/vite/plugins/environmentGuardPlugin.test.native.js.map +1 -1
  47. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.cjs +14 -5
  48. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js +15 -5
  49. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
  50. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.test.cjs +47 -0
  51. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.test.native.js +47 -0
  52. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.test.native.js.map +1 -1
  53. package/dist/cjs/vite/plugins/virtualEntryPlugin.cjs +2 -1
  54. package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js +2 -1
  55. package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
  56. package/dist/cjs/vite/plugins/virtualEntryPlugin.test.cjs +12 -0
  57. package/dist/cjs/vite/plugins/virtualEntryPlugin.test.native.js +12 -0
  58. package/dist/cjs/vite/plugins/virtualEntryPlugin.test.native.js.map +1 -1
  59. package/dist/cjs/vite/plugins/workerdDevPlugin.cjs +377 -0
  60. package/dist/cjs/vite/plugins/workerdDevPlugin.native.js +493 -0
  61. package/dist/cjs/vite/plugins/workerdDevPlugin.native.js.map +1 -0
  62. package/dist/cjs/vite/plugins/workerdDevPlugin.test.cjs +42 -0
  63. package/dist/cjs/vite/plugins/workerdDevPlugin.test.native.js +45 -0
  64. package/dist/cjs/vite/plugins/workerdDevPlugin.test.native.js.map +1 -0
  65. package/dist/esm/cli/build.mjs +1 -154
  66. package/dist/esm/cli/build.mjs.map +1 -1
  67. package/dist/esm/cli/build.native.js +1 -197
  68. package/dist/esm/cli/build.native.js.map +1 -1
  69. package/dist/esm/createDevHandleRequest.mjs +126 -0
  70. package/dist/esm/createDevHandleRequest.mjs.map +1 -0
  71. package/dist/esm/createDevHandleRequest.native.js +166 -0
  72. package/dist/esm/createDevHandleRequest.native.js.map +1 -0
  73. package/dist/esm/createHandleRequest.mjs +1 -123
  74. package/dist/esm/createHandleRequest.mjs.map +1 -1
  75. package/dist/esm/createHandleRequest.native.js +1 -163
  76. package/dist/esm/createHandleRequest.native.js.map +1 -1
  77. package/dist/esm/createHandleRequest.test.mjs +1 -1
  78. package/dist/esm/createHandleRequest.test.native.js +1 -1
  79. package/dist/esm/fork/useLinking.native.test.mjs +1 -1
  80. package/dist/esm/getURL.native.test.mjs +1 -1
  81. package/dist/esm/layouts/Drawer.mjs +0 -2
  82. package/dist/esm/layouts/Drawer.mjs.map +1 -1
  83. package/dist/esm/layouts/Drawer.native.js.map +1 -1
  84. package/dist/esm/layouts/Tabs.mjs +0 -2
  85. package/dist/esm/layouts/Tabs.mjs.map +1 -1
  86. package/dist/esm/layouts/Tabs.native.js.map +1 -1
  87. package/dist/esm/router/hmrImport.native.test.mjs +1 -1
  88. package/dist/esm/router/routeHmr.native.test.mjs +1 -1
  89. package/dist/esm/router/routeHmr.native.test.mjs.map +1 -1
  90. package/dist/esm/router/web/WebStackView.mjs +0 -2
  91. package/dist/esm/router/web/WebStackView.mjs.map +1 -1
  92. package/dist/esm/router/web/WebStackView.native.js +0 -2
  93. package/dist/esm/router/web/WebStackView.native.js.map +1 -1
  94. package/dist/esm/serve-worker.mjs +3 -2
  95. package/dist/esm/serve-worker.mjs.map +1 -1
  96. package/dist/esm/serve-worker.native.js +3 -2
  97. package/dist/esm/serve-worker.native.js.map +1 -1
  98. package/dist/esm/server/workerHandler.mjs +12 -7
  99. package/dist/esm/server/workerHandler.mjs.map +1 -1
  100. package/dist/esm/server/workerHandler.native.js +13 -8
  101. package/dist/esm/server/workerHandler.native.js.map +1 -1
  102. package/dist/esm/server/workerHandler.test.mjs +25 -0
  103. package/dist/esm/server/workerHandler.test.mjs.map +1 -1
  104. package/dist/esm/server/workerHandler.test.native.js +25 -0
  105. package/dist/esm/server/workerHandler.test.native.js.map +1 -1
  106. package/dist/esm/vite/cloudflareWranglerConfig.mjs +202 -0
  107. package/dist/esm/vite/cloudflareWranglerConfig.mjs.map +1 -0
  108. package/dist/esm/vite/cloudflareWranglerConfig.native.js +344 -0
  109. package/dist/esm/vite/cloudflareWranglerConfig.native.js.map +1 -0
  110. package/dist/esm/vite/cloudflareWranglerConfig.test.mjs +117 -0
  111. package/dist/esm/vite/cloudflareWranglerConfig.test.mjs.map +1 -0
  112. package/dist/esm/vite/cloudflareWranglerConfig.test.native.js +118 -0
  113. package/dist/esm/vite/cloudflareWranglerConfig.test.native.js.map +1 -0
  114. package/dist/esm/vite/one.mjs +4 -2
  115. package/dist/esm/vite/one.mjs.map +1 -1
  116. package/dist/esm/vite/one.native.js +8 -6
  117. package/dist/esm/vite/one.native.js.map +1 -1
  118. package/dist/esm/vite/plugins/SSRCSSPlugin.mjs +10 -1
  119. package/dist/esm/vite/plugins/SSRCSSPlugin.mjs.map +1 -1
  120. package/dist/esm/vite/plugins/SSRCSSPlugin.native.js +52 -3
  121. package/dist/esm/vite/plugins/SSRCSSPlugin.native.js.map +1 -1
  122. package/dist/esm/vite/plugins/environmentGuardPlugin.mjs +1 -1
  123. package/dist/esm/vite/plugins/environmentGuardPlugin.mjs.map +1 -1
  124. package/dist/esm/vite/plugins/environmentGuardPlugin.native.js +1 -1
  125. package/dist/esm/vite/plugins/environmentGuardPlugin.native.js.map +1 -1
  126. package/dist/esm/vite/plugins/environmentGuardPlugin.test.mjs +4 -0
  127. package/dist/esm/vite/plugins/environmentGuardPlugin.test.mjs.map +1 -1
  128. package/dist/esm/vite/plugins/environmentGuardPlugin.test.native.js +4 -0
  129. package/dist/esm/vite/plugins/environmentGuardPlugin.test.native.js.map +1 -1
  130. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs +13 -4
  131. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs.map +1 -1
  132. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js +14 -4
  133. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
  134. package/dist/esm/vite/plugins/fileSystemRouterPlugin.test.mjs +47 -0
  135. package/dist/esm/vite/plugins/fileSystemRouterPlugin.test.mjs.map +1 -1
  136. package/dist/esm/vite/plugins/fileSystemRouterPlugin.test.native.js +47 -0
  137. package/dist/esm/vite/plugins/fileSystemRouterPlugin.test.native.js.map +1 -1
  138. package/dist/esm/vite/plugins/virtualEntryPlugin.mjs +2 -1
  139. package/dist/esm/vite/plugins/virtualEntryPlugin.mjs.map +1 -1
  140. package/dist/esm/vite/plugins/virtualEntryPlugin.native.js +2 -1
  141. package/dist/esm/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
  142. package/dist/esm/vite/plugins/virtualEntryPlugin.test.mjs +12 -0
  143. package/dist/esm/vite/plugins/virtualEntryPlugin.test.mjs.map +1 -1
  144. package/dist/esm/vite/plugins/virtualEntryPlugin.test.native.js +12 -0
  145. package/dist/esm/vite/plugins/virtualEntryPlugin.test.native.js.map +1 -1
  146. package/dist/esm/vite/plugins/workerdDevPlugin.mjs +349 -0
  147. package/dist/esm/vite/plugins/workerdDevPlugin.mjs.map +1 -0
  148. package/dist/esm/vite/plugins/workerdDevPlugin.native.js +462 -0
  149. package/dist/esm/vite/plugins/workerdDevPlugin.native.js.map +1 -0
  150. package/dist/esm/vite/plugins/workerdDevPlugin.test.mjs +43 -0
  151. package/dist/esm/vite/plugins/workerdDevPlugin.test.mjs.map +1 -0
  152. package/dist/esm/vite/plugins/workerdDevPlugin.test.native.js +43 -0
  153. package/dist/esm/vite/plugins/workerdDevPlugin.test.native.js.map +1 -0
  154. package/package.json +9 -9
  155. package/src/cli/build.ts +7 -192
  156. package/src/createDevHandleRequest.ts +186 -0
  157. package/src/createHandleRequest.test.ts +1 -1
  158. package/src/createHandleRequest.ts +2 -172
  159. package/src/layouts/Drawer.web.tsx +0 -3
  160. package/src/layouts/Tabs.web.tsx +0 -2
  161. package/src/router/web/WebStackView.tsx +0 -3
  162. package/src/serve-worker.ts +6 -1
  163. package/src/server/workerHandler.test.ts +23 -0
  164. package/src/server/workerHandler.ts +15 -7
  165. package/src/vite/cloudflareWranglerConfig.test.ts +101 -0
  166. package/src/vite/cloudflareWranglerConfig.ts +248 -0
  167. package/src/vite/one.ts +11 -1
  168. package/src/vite/plugins/SSRCSSPlugin.ts +17 -2
  169. package/src/vite/plugins/environmentGuardPlugin.test.ts +5 -0
  170. package/src/vite/plugins/environmentGuardPlugin.ts +2 -2
  171. package/src/vite/plugins/fileSystemRouterPlugin.test.ts +44 -0
  172. package/src/vite/plugins/fileSystemRouterPlugin.tsx +20 -8
  173. package/src/vite/plugins/virtualEntryPlugin.test.ts +13 -0
  174. package/src/vite/plugins/virtualEntryPlugin.ts +3 -1
  175. package/src/vite/plugins/workerdDevPlugin.test.ts +44 -0
  176. package/src/vite/plugins/workerdDevPlugin.ts +408 -0
  177. package/types/cli/build.d.ts.map +1 -1
  178. package/types/createDevHandleRequest.d.ts +10 -0
  179. package/types/createDevHandleRequest.d.ts.map +1 -0
  180. package/types/createHandleRequest.d.ts +2 -9
  181. package/types/createHandleRequest.d.ts.map +1 -1
  182. package/types/layouts/Drawer.web.d.ts.map +1 -1
  183. package/types/layouts/Tabs.web.d.ts.map +1 -1
  184. package/types/router/web/WebStackView.d.ts.map +1 -1
  185. package/types/serve-worker.d.ts +3 -1
  186. package/types/serve-worker.d.ts.map +1 -1
  187. package/types/server/workerHandler.d.ts +1 -0
  188. package/types/server/workerHandler.d.ts.map +1 -1
  189. package/types/vite/cloudflareWranglerConfig.d.ts +21 -0
  190. package/types/vite/cloudflareWranglerConfig.d.ts.map +1 -0
  191. package/types/vite/cloudflareWranglerConfig.test.d.ts +2 -0
  192. package/types/vite/cloudflareWranglerConfig.test.d.ts.map +1 -0
  193. package/types/vite/one.d.ts.map +1 -1
  194. package/types/vite/plugins/SSRCSSPlugin.d.ts.map +1 -1
  195. package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
  196. package/types/vite/plugins/virtualEntryPlugin.d.ts.map +1 -1
  197. package/types/vite/plugins/workerdDevPlugin.d.ts +15 -0
  198. package/types/vite/plugins/workerdDevPlugin.d.ts.map +1 -0
  199. package/types/vite/plugins/workerdDevPlugin.test.d.ts +2 -0
  200. package/types/vite/plugins/workerdDevPlugin.test.d.ts.map +1 -0
  201. package/dist/cjs/headless/devHeadlessNote.cjs +0 -34
  202. package/dist/cjs/headless/devHeadlessNote.native.js +0 -37
  203. package/dist/cjs/headless/devHeadlessNote.native.js.map +0 -1
  204. package/dist/esm/headless/devHeadlessNote.mjs +0 -9
  205. package/dist/esm/headless/devHeadlessNote.mjs.map +0 -1
  206. package/dist/esm/headless/devHeadlessNote.native.js +0 -9
  207. package/dist/esm/headless/devHeadlessNote.native.js.map +0 -1
  208. package/src/headless/devHeadlessNote.ts +0 -13
  209. package/types/headless/devHeadlessNote.d.ts +0 -2
  210. package/types/headless/devHeadlessNote.d.ts.map +0 -1
@@ -0,0 +1,349 @@
1
+ import { mkdirSync, writeFileSync } from "node:fs";
2
+ import { join, resolve } from "node:path";
3
+ import { pathToFileURL } from "node:url";
4
+ import { resolvePath } from "@vxrn/resolve";
5
+ import { cloudflare } from "@cloudflare/vite-plugin";
6
+ import { getPlatformEnvDefine } from "@vxrn/vite-plugin-metro";
7
+ import { exactRegex } from "rolldown/filter";
8
+ import { CACHE_KEY } from "../../constants.mjs";
9
+ import { virtalEntryIdClient, virtualEntryId } from "./virtualEntryConstants.mjs";
10
+ import { getManifest } from "../getManifest.mjs";
11
+ import { getRouterRootFromOneOptions } from "../../utils/getRouterRootFromOneOptions.mjs";
12
+ import { createCloudflareWranglerConfig, getCloudflareProjectNameSync, loadUserWranglerConfigSync, shouldEnableWorkerdDev } from "../cloudflareWranglerConfig.mjs";
13
+ const workerdDevEntryId = "virtual:one-workerd-dev-entry";
14
+ const resolvedWorkerdDevEntryId = `\0${workerdDevEntryId}`;
15
+ const WORKERD_DEV_DIR = "node_modules/.one-workerd-dev";
16
+ function serveOnly(plugin) {
17
+ const existing = plugin.apply;
18
+ return {
19
+ ...plugin,
20
+ apply(config, env) {
21
+ if (env.command !== "serve") return false;
22
+ if (typeof existing === "function") return existing(config, env);
23
+ if (existing === "build") return false;
24
+ return true;
25
+ }
26
+ };
27
+ }
28
+ function toImportHref(root, routerRoot, routeFile) {
29
+ const rel = routeFile.replace(/^\.\//, "");
30
+ return pathToFileURL(resolve(root, routerRoot, rel)).href;
31
+ }
32
+ function serializeImportMap(entries) {
33
+ return entries.map(([key, href]) => ` ${JSON.stringify(key)}: () => import(${JSON.stringify(href)})`).join(",\n");
34
+ }
35
+ function stripRouteForWorker(route) {
36
+ const {
37
+ layouts,
38
+ middlewares,
39
+ ...rest
40
+ } = route;
41
+ return {
42
+ ...rest,
43
+ // live-render SSG in dev the same way the node middleware does
44
+ type: route.type === "ssg" ? "ssr" : route.type,
45
+ layouts: layouts?.map(layout => ({
46
+ contextKey: layout.contextKey
47
+ })),
48
+ middlewares: middlewares?.map(middleware => ({
49
+ contextKey: middleware.contextKey
50
+ }))
51
+ };
52
+ }
53
+ function stubRouteBuildInfo(route, preloads) {
54
+ const pageType = route.type === "ssg" ? "ssr" : route.type;
55
+ return {
56
+ type: pageType,
57
+ path: route.page,
58
+ routeFile: route.file,
59
+ middlewares: route.middlewares?.map(middleware => middleware.contextKey) ?? [],
60
+ preloadPath: "",
61
+ cssPreloadPath: "",
62
+ loaderPath: "",
63
+ cleanPath: route.urlCleanPath || route.page,
64
+ htmlPath: "",
65
+ clientJsPath: "",
66
+ serverJsPath: "",
67
+ params: {},
68
+ preloads,
69
+ css: [],
70
+ layoutCSS: []
71
+ };
72
+ }
73
+ function generateWorkerdDevEntryModule(args) {
74
+ const {
75
+ root,
76
+ options,
77
+ routerRoot,
78
+ routePaths,
79
+ preloads
80
+ } = args;
81
+ const manifest = getManifest({
82
+ routerRoot: resolve(root, routerRoot),
83
+ ignoredRouteFiles: options.router?.ignoredRouteFiles,
84
+ routePaths
85
+ });
86
+ if (!manifest) {
87
+ throw new Error("[one] workerd dev: no routes manifest");
88
+ }
89
+ const pageImports = /* @__PURE__ */new Map();
90
+ const apiImports = /* @__PURE__ */new Map();
91
+ const middlewareImports = /* @__PURE__ */new Map();
92
+ const routeToBuildInfo = {};
93
+ const registerPage = routeFile => {
94
+ if (!routeFile) return;
95
+ if (pageImports.has(routeFile)) return;
96
+ pageImports.set(routeFile, toImportHref(root, routerRoot, routeFile));
97
+ };
98
+ for (const route of manifest.pageRoutes) {
99
+ registerPage(route.file);
100
+ for (const layout of route.layouts || []) {
101
+ registerPage(layout.contextKey);
102
+ }
103
+ for (const middleware of route.middlewares || []) {
104
+ if (!middleware.contextKey || middlewareImports.has(middleware.contextKey)) continue;
105
+ middlewareImports.set(middleware.contextKey, toImportHref(root, routerRoot, middleware.contextKey));
106
+ }
107
+ if (route.file) {
108
+ routeToBuildInfo[route.file] = stubRouteBuildInfo(route, preloads);
109
+ }
110
+ }
111
+ for (const route of manifest.apiRoutes) {
112
+ if (route.file) {
113
+ apiImports.set(route.page, toImportHref(root, routerRoot, route.file));
114
+ }
115
+ for (const middleware of route.middlewares || []) {
116
+ if (!middleware.contextKey || middlewareImports.has(middleware.contextKey)) continue;
117
+ middlewareImports.set(middleware.contextKey, toImportHref(root, routerRoot, middleware.contextKey));
118
+ }
119
+ }
120
+ const pageRoutes = manifest.pageRoutes.map(stripRouteForWorker);
121
+ const apiRoutes = manifest.apiRoutes.map(stripRouteForWorker);
122
+ const buildInfo = {
123
+ constants: {
124
+ CACHE_KEY
125
+ },
126
+ oneOptions: options,
127
+ routeToBuildInfo,
128
+ pathToRoute: {},
129
+ routeMap: {},
130
+ manifest: {
131
+ pageRoutes,
132
+ apiRoutes,
133
+ allRoutes: [...pageRoutes, ...apiRoutes]
134
+ },
135
+ preloads: Object.fromEntries(preloads.map(preload => [preload, true])),
136
+ cssPreloads: {},
137
+ loaders: {}
138
+ };
139
+ const spaPreloadScripts = preloads.map(preload => `<script type="module" src="${preload}"></script>`).join("");
140
+ return `if (typeof MessageChannel === 'undefined') {
141
+ globalThis.MessageChannel = class MessageChannel {
142
+ constructor() {
143
+ this.port1 = { postMessage: () => {}, onmessage: null, close: () => {} }
144
+ this.port2 = { postMessage: () => {}, onmessage: null, close: () => {} }
145
+ }
146
+ }
147
+ }
148
+
149
+ import { serve, setFetchStaticHtml } from 'one/serve-worker'
150
+
151
+ const lazyRoutes = {
152
+ serverEntry: () => import(${JSON.stringify(virtualEntryId)}),
153
+ pages: {
154
+ ${serializeImportMap([...pageImports])}
155
+ },
156
+ api: {
157
+ ${serializeImportMap([...apiImports])}
158
+ },
159
+ middlewares: {
160
+ ${serializeImportMap([...middlewareImports])}
161
+ }
162
+ }
163
+
164
+ const buildInfo = ${JSON.stringify(buildInfo)}
165
+
166
+ let server
167
+
168
+ export default {
169
+ async fetch(request, env, ctx) {
170
+ const url = new URL(request.url)
171
+ const pathname = url.pathname
172
+
173
+ if (pathname === '/status' || pathname.startsWith('/status?')) {
174
+ return new Response('packager-status:running', {
175
+ headers: { 'content-type': 'text/plain' },
176
+ })
177
+ }
178
+
179
+ if (!server) {
180
+ server = await serve(buildInfo, lazyRoutes, { disableModuleCache: true })
181
+ }
182
+
183
+ if (env && env.ASSETS) {
184
+ setFetchStaticHtml(async (path) => {
185
+ try {
186
+ const assetUrl = new URL(request.url)
187
+ assetUrl.pathname = path
188
+ const assetResponse = await env.ASSETS.fetch(new Request(assetUrl))
189
+ if (assetResponse && assetResponse.ok) {
190
+ return await assetResponse.text()
191
+ }
192
+ } catch {}
193
+ return null
194
+ })
195
+ }
196
+
197
+ try {
198
+ const response = await server.fetch(request, env, ctx)
199
+
200
+ if (!response || response.status === 404) {
201
+ if (env && env.ASSETS) {
202
+ try {
203
+ const assetResponse = await env.ASSETS.fetch(request)
204
+ if (assetResponse && assetResponse.status !== 404) {
205
+ return assetResponse
206
+ }
207
+ } catch {}
208
+ }
209
+ }
210
+
211
+ if (!response) {
212
+ if (request.method === 'GET' || request.method === 'HEAD') {
213
+ return new Response(
214
+ '<!DOCTYPE html><html><head>' +
215
+ ${JSON.stringify(spaPreloadScripts)} +
216
+ '</head></html>',
217
+ { headers: { 'content-type': 'text/html' } }
218
+ )
219
+ }
220
+ return new Response('Not Found', { status: 404 })
221
+ }
222
+
223
+ return response
224
+ } finally {
225
+ setFetchStaticHtml(null)
226
+ }
227
+ }
228
+ }
229
+ `;
230
+ }
231
+ function createWorkerdDevPlugins(options, root, routeIndex) {
232
+ if (!shouldEnableWorkerdDev(options.web?.deploy, root)) {
233
+ return [];
234
+ }
235
+ const cacheDir = join(root, WORKERD_DEV_DIR);
236
+ const wranglerInputPath = join(cacheDir, "_wrangler.input.jsonc");
237
+ const workerEntryPath = join(cacheDir, "worker-entry.js");
238
+ mkdirSync(cacheDir, {
239
+ recursive: true
240
+ });
241
+ writeFileSync(workerEntryPath, `export { default } from ${JSON.stringify(workerdDevEntryId)}
242
+ `);
243
+ const userWranglerConfig = loadUserWranglerConfigSync(root);
244
+ const projectName = getCloudflareProjectNameSync(root);
245
+ const wranglerInputConfig = createCloudflareWranglerConfig(projectName, userWranglerConfig?.config);
246
+ wranglerInputConfig.main = "worker-entry.js";
247
+ writeFileSync(wranglerInputPath, `${JSON.stringify(wranglerInputConfig, null, 2)}
248
+ `);
249
+ const preloads = options.web?.experimentalBundledDev ? ["/bundledDevClient.mjs", "/assets/_virtual_one-entry.js"] : ["/@vite/client", virtalEntryIdClient];
250
+ const empty = resolvePath("@vxrn/vite-plugin-metro/empty", root);
251
+ const rnWebPkg = resolvePath("react-native-web/package.json", root);
252
+ const rnWeb = resolvePath("react-native-web", root);
253
+ const safeArea = resolvePath("@vxrn/safe-area", root);
254
+ const preparePlugin = {
255
+ name: "one:workerd-dev-prepare",
256
+ apply: "serve",
257
+ enforce: "pre",
258
+ config() {
259
+ return {
260
+ environments: {
261
+ worker: {
262
+ define: {
263
+ ...getPlatformEnvDefine("ssr"),
264
+ "process.env.TAMAGUI_IS_SERVER": JSON.stringify("1"),
265
+ "process.env.TAMAGUI_KEEP_THEMES": JSON.stringify("1"),
266
+ "process.env.ONE_CACHE_KEY": JSON.stringify(CACHE_KEY)
267
+ },
268
+ optimizeDeps: {
269
+ include: ["react", "react-dom", "react-dom/client", "react-dom/server.browser", "react/jsx-runtime", "react/jsx-dev-runtime"]
270
+ },
271
+ build: {
272
+ rolldownOptions: {
273
+ shimMissingExports: true
274
+ }
275
+ }
276
+ }
277
+ }
278
+ };
279
+ },
280
+ // environment resolve options have no alias field; match the production
281
+ // worker aliases with a worker-only resolveId (rolldown cannot parse RN Flow)
282
+ resolveId: {
283
+ filter: {
284
+ id: /^(react-native(\/|$)|react-native-safe-area-context$)/
285
+ },
286
+ handler(source) {
287
+ if (this.environment.name !== "worker") return;
288
+ if (/^react-native\/Libraries\//.test(source)) return empty;
289
+ if (source === "react-native/package.json") return rnWebPkg;
290
+ if (source === "react-native") return rnWeb;
291
+ if (source === "react-native-safe-area-context") return safeArea;
292
+ }
293
+ },
294
+ configureServer(server) {
295
+ if (!server.environments.worker) {
296
+ throw new Error(`[one] ONE_EXPERIMENTAL_WORKER_DEV=1 is set but @cloudflare/vite-plugin did not register a "worker" environment. Expected wrangler config at ${wranglerInputPath}.`);
297
+ }
298
+ console.info("[one] experimental workerd dev enabled (ONE_EXPERIMENTAL_WORKER_DEV=1)");
299
+ }
300
+ };
301
+ const virtualPlugin = {
302
+ name: "one:workerd-dev-entry",
303
+ apply: "serve",
304
+ resolveId: {
305
+ filter: {
306
+ id: exactRegex(workerdDevEntryId)
307
+ },
308
+ handler(id) {
309
+ if (this.environment.name !== "worker") return;
310
+ if (id === workerdDevEntryId) return resolvedWorkerdDevEntryId;
311
+ }
312
+ },
313
+ load: {
314
+ filter: {
315
+ id: exactRegex(resolvedWorkerdDevEntryId)
316
+ },
317
+ handler() {
318
+ if (this.environment.name !== "worker") return;
319
+ return generateWorkerdDevEntryModule({
320
+ root,
321
+ options,
322
+ routerRoot: getRouterRootFromOneOptions(options),
323
+ routePaths: routeIndex.getPaths(),
324
+ preloads
325
+ });
326
+ }
327
+ },
328
+ hotUpdate({
329
+ file
330
+ }) {
331
+ if (this.environment.name !== "worker") return;
332
+ const graph = this.environment.moduleGraph;
333
+ const entry = graph.getModuleById(resolvedWorkerdDevEntryId);
334
+ if (!entry) return;
335
+ const modules = graph.getModulesByFile(file);
336
+ if (!modules?.size) return;
337
+ graph.invalidateModule(entry);
338
+ }
339
+ };
340
+ const cloudflarePlugins = cloudflare({
341
+ configPath: wranglerInputPath,
342
+ viteEnvironment: {
343
+ name: "worker"
344
+ }
345
+ }).map(serveOnly);
346
+ return [preparePlugin, virtualPlugin, ...cloudflarePlugins];
347
+ }
348
+ export { createWorkerdDevPlugins, generateWorkerdDevEntryModule, shouldEnableWorkerdDev, workerdDevEntryId };
349
+ //# sourceMappingURL=workerdDevPlugin.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["mkdirSync","writeFileSync","join","resolve","pathToFileURL","resolvePath","cloudflare","getPlatformEnvDefine","exactRegex","CACHE_KEY","virtalEntryIdClient","virtualEntryId","getManifest","getRouterRootFromOneOptions","createCloudflareWranglerConfig","getCloudflareProjectNameSync","loadUserWranglerConfigSync","shouldEnableWorkerdDev","workerdDevEntryId","resolvedWorkerdDevEntryId","WORKERD_DEV_DIR","serveOnly","plugin","existing","apply","config","env","command","toImportHref","root","routerRoot","routeFile","rel","replace","href","serializeImportMap","entries","map","key","JSON","stringify","stripRouteForWorker","route","layouts","middlewares","rest","type","layout","contextKey","middleware","stubRouteBuildInfo","preloads","pageType","path","page","file","preloadPath","cssPreloadPath","loaderPath","cleanPath","urlCleanPath","htmlPath","clientJsPath","serverJsPath","params","css","layoutCSS","generateWorkerdDevEntryModule","args","options","routePaths","manifest","ignoredRouteFiles","router","Error","pageImports","Map","apiImports","middlewareImports","routeToBuildInfo","registerPage","has","set","pageRoutes","apiRoutes","buildInfo","constants","oneOptions","pathToRoute","routeMap","allRoutes","Object","fromEntries","preload","cssPreloads","loaders","spaPreloadScripts","createWorkerdDevPlugins","routeIndex","web","deploy","cacheDir","wranglerInputPath","workerEntryPath","recursive","userWranglerConfig","projectName","wranglerInputConfig","main","experimentalBundledDev","empty","rnWebPkg","rnWeb","safeArea","preparePlugin","name","enforce","environments","worker","define","optimizeDeps","include","build","rolldownOptions","shimMissingExports","resolveId","filter","id","handler","source","environment","test","configureServer","server","console","info","virtualPlugin","load","getPaths","hotUpdate","graph","moduleGraph","entry","getModuleById","modules","getModulesByFile","size","invalidateModule","cloudflarePlugins","configPath","viteEnvironment"],"sources":["../../../../src/vite/plugins/workerdDevPlugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}