one 2.11.4 → 2.12.0

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 (194) hide show
  1. package/android/src/main/java/com/margelo/nitro/one/HybridOneAudio.kt +309 -124
  2. package/dist/cjs/cli/build.cjs +31 -33
  3. package/dist/cjs/cli/build.native.cjs +31 -33
  4. package/dist/cjs/cli/build.native.js +31 -33
  5. package/dist/cjs/cli/build.native.js.map +1 -1
  6. package/dist/cjs/cli/buildPage.cjs +11 -7
  7. package/dist/cjs/cli/buildPage.native.cjs +11 -7
  8. package/dist/cjs/cli/buildPage.native.js +11 -7
  9. package/dist/cjs/cli/buildPage.native.js.map +1 -1
  10. package/dist/cjs/cli/buildPageWorker.cjs +1 -1
  11. package/dist/cjs/cli/buildPageWorker.native.cjs +1 -1
  12. package/dist/cjs/cli/buildPageWorker.native.js +1 -1
  13. package/dist/cjs/cli/buildPageWorker.native.js.map +1 -1
  14. package/dist/cjs/headless-server.cjs +2 -5
  15. package/dist/cjs/headless-server.native.cjs +2 -5
  16. package/dist/cjs/headless-server.native.js +2 -5
  17. package/dist/cjs/headless-server.native.js.map +1 -1
  18. package/dist/cjs/platform/audio/index.cjs +83 -76
  19. package/dist/cjs/platform/audio/index.native.cjs +2 -2
  20. package/dist/cjs/platform/audio/index.native.js +2 -2
  21. package/dist/cjs/platform/audio/index.native.js.map +1 -1
  22. package/dist/cjs/platform/audio/nowPlaying.cjs +126 -0
  23. package/dist/cjs/platform/audio/nowPlaying.native.cjs +160 -0
  24. package/dist/cjs/platform/audio/nowPlaying.native.js +162 -0
  25. package/dist/cjs/platform/audio/nowPlaying.native.js.map +1 -0
  26. package/dist/cjs/platform/audio/player.cjs +15 -0
  27. package/dist/cjs/platform/audio/player.native.cjs +14 -0
  28. package/dist/cjs/platform/audio/player.native.js +14 -0
  29. package/dist/cjs/platform/audio/player.native.js.map +1 -1
  30. package/dist/cjs/platform/audio/unavailable.cjs +1 -1
  31. package/dist/cjs/platform/audio/unavailable.native.cjs +1 -1
  32. package/dist/cjs/platform/audio/unavailable.native.js +1 -1
  33. package/dist/cjs/platform/audio/unavailable.native.js.map +1 -1
  34. package/dist/cjs/platform/location/index.native.cjs +9 -2
  35. package/dist/cjs/platform/location/index.native.js +9 -2
  36. package/dist/cjs/platform/location/index.native.js.map +1 -1
  37. package/dist/cjs/serve-worker.cjs +0 -3
  38. package/dist/cjs/serve-worker.native.cjs +0 -3
  39. package/dist/cjs/serve-worker.native.js +0 -3
  40. package/dist/cjs/serve-worker.native.js.map +1 -1
  41. package/dist/cjs/server/oneServe.cjs +0 -6
  42. package/dist/cjs/server/oneServe.native.cjs +0 -6
  43. package/dist/cjs/server/oneServe.native.js +0 -6
  44. package/dist/cjs/server/oneServe.native.js.map +1 -1
  45. package/dist/cjs/server/workerHandler.cjs +12 -10
  46. package/dist/cjs/server/workerHandler.native.cjs +14 -10
  47. package/dist/cjs/server/workerHandler.native.js +14 -10
  48. package/dist/cjs/server/workerHandler.native.js.map +1 -1
  49. package/dist/cjs/vite/plugins/workerdDevPlugin.cjs +33 -37
  50. package/dist/cjs/vite/plugins/workerdDevPlugin.native.cjs +33 -37
  51. package/dist/cjs/vite/plugins/workerdDevPlugin.native.js +33 -37
  52. package/dist/cjs/vite/plugins/workerdDevPlugin.native.js.map +1 -1
  53. package/dist/esm/cli/build.mjs +31 -33
  54. package/dist/esm/cli/build.mjs.map +1 -1
  55. package/dist/esm/cli/build.native.js +31 -33
  56. package/dist/esm/cli/build.native.js.map +1 -1
  57. package/dist/esm/cli/buildPage.mjs +11 -7
  58. package/dist/esm/cli/buildPage.mjs.map +1 -1
  59. package/dist/esm/cli/buildPage.native.js +11 -7
  60. package/dist/esm/cli/buildPage.native.js.map +1 -1
  61. package/dist/esm/cli/buildPageWorker.mjs +1 -1
  62. package/dist/esm/cli/buildPageWorker.mjs.map +1 -1
  63. package/dist/esm/cli/buildPageWorker.native.js +1 -1
  64. package/dist/esm/cli/buildPageWorker.native.js.map +1 -1
  65. package/dist/esm/headless-server.mjs +2 -3
  66. package/dist/esm/headless-server.mjs.map +1 -1
  67. package/dist/esm/headless-server.native.js +2 -3
  68. package/dist/esm/headless-server.native.js.map +1 -1
  69. package/dist/esm/platform/audio/index.mjs +83 -76
  70. package/dist/esm/platform/audio/index.mjs.map +1 -1
  71. package/dist/esm/platform/audio/index.native.js +2 -2
  72. package/dist/esm/platform/audio/index.native.js.map +1 -1
  73. package/dist/esm/platform/audio/nowPlaying.mjs +102 -0
  74. package/dist/esm/platform/audio/nowPlaying.mjs.map +1 -0
  75. package/dist/esm/platform/audio/nowPlaying.native.js +134 -0
  76. package/dist/esm/platform/audio/nowPlaying.native.js.map +1 -0
  77. package/dist/esm/platform/audio/player.mjs +15 -0
  78. package/dist/esm/platform/audio/player.mjs.map +1 -1
  79. package/dist/esm/platform/audio/player.native.js +14 -0
  80. package/dist/esm/platform/audio/player.native.js.map +1 -1
  81. package/dist/esm/platform/audio/unavailable.mjs +1 -1
  82. package/dist/esm/platform/audio/unavailable.mjs.map +1 -1
  83. package/dist/esm/platform/audio/unavailable.native.js +1 -1
  84. package/dist/esm/platform/audio/unavailable.native.js.map +1 -1
  85. package/dist/esm/platform/location/index.native.js +9 -2
  86. package/dist/esm/platform/location/index.native.js.map +1 -1
  87. package/dist/esm/serve-worker.mjs +1 -2
  88. package/dist/esm/serve-worker.mjs.map +1 -1
  89. package/dist/esm/serve-worker.native.js +1 -2
  90. package/dist/esm/serve-worker.native.js.map +1 -1
  91. package/dist/esm/server/oneServe.mjs +0 -6
  92. package/dist/esm/server/oneServe.mjs.map +1 -1
  93. package/dist/esm/server/oneServe.native.js +0 -6
  94. package/dist/esm/server/oneServe.native.js.map +1 -1
  95. package/dist/esm/server/workerHandler.mjs +12 -10
  96. package/dist/esm/server/workerHandler.mjs.map +1 -1
  97. package/dist/esm/server/workerHandler.native.js +14 -10
  98. package/dist/esm/server/workerHandler.native.js.map +1 -1
  99. package/dist/esm/vite/plugins/workerdDevPlugin.mjs +33 -37
  100. package/dist/esm/vite/plugins/workerdDevPlugin.mjs.map +1 -1
  101. package/dist/esm/vite/plugins/workerdDevPlugin.native.js +33 -37
  102. package/dist/esm/vite/plugins/workerdDevPlugin.native.js.map +1 -1
  103. package/ios/Nitro/HybridOneAudio.swift +309 -96
  104. package/nitrogen/generated/android/c++/JAudioPlayOptions.hpp +61 -0
  105. package/nitrogen/generated/android/c++/JAudioRemoteCommandEvent.hpp +8 -3
  106. package/nitrogen/generated/android/c++/JFunc_void_AudioRemoteCommandEvent.hpp +1 -0
  107. package/nitrogen/generated/android/c++/JHybridOneAudioSpec.cpp +37 -3
  108. package/nitrogen/generated/android/c++/JHybridOneAudioSpec.hpp +3 -1
  109. package/nitrogen/generated/android/kotlin/com/margelo/nitro/one/AudioPlayOptions.kt +56 -0
  110. package/nitrogen/generated/android/kotlin/com/margelo/nitro/one/AudioRemoteCommandEvent.kt +9 -4
  111. package/nitrogen/generated/android/kotlin/com/margelo/nitro/one/HybridOneAudioSpec.kt +40 -32
  112. package/nitrogen/generated/ios/One-Swift-Cxx-Umbrella.hpp +3 -0
  113. package/nitrogen/generated/ios/c++/HybridOneAudioSpecSwift.hpp +21 -2
  114. package/nitrogen/generated/ios/swift/AudioPlayOptions.swift +60 -0
  115. package/nitrogen/generated/ios/swift/AudioRemoteCommandEvent.swift +19 -1
  116. package/nitrogen/generated/ios/swift/HybridOneAudioSpec.swift +3 -1
  117. package/nitrogen/generated/ios/swift/HybridOneAudioSpec_cxx.swift +70 -32
  118. package/nitrogen/generated/shared/c++/AudioPlayOptions.hpp +87 -0
  119. package/nitrogen/generated/shared/c++/AudioRemoteCommandEvent.hpp +7 -2
  120. package/nitrogen/generated/shared/c++/HybridOneAudioSpec.cpp +2 -0
  121. package/nitrogen/generated/shared/c++/HybridOneAudioSpec.hpp +6 -1
  122. package/package.json +16 -16
  123. package/src/cli/build.ts +35 -32
  124. package/src/cli/buildPage.test.ts +152 -0
  125. package/src/cli/buildPage.ts +14 -9
  126. package/src/cli/buildPageWorker.ts +2 -1
  127. package/src/cli/workerPool.ts +1 -0
  128. package/src/headless-server.ts +2 -2
  129. package/src/index.ts +1 -0
  130. package/src/platform/audio/index.native.ts +4 -2
  131. package/src/platform/audio/index.ts +102 -74
  132. package/src/platform/audio/nowPlaying.ts +122 -0
  133. package/src/platform/audio/player.native.ts +17 -1
  134. package/src/platform/audio/player.ts +23 -1
  135. package/src/platform/audio/types.ts +6 -1
  136. package/src/platform/audio/unavailable.ts +3 -1
  137. package/src/platform/index.native.ts +1 -0
  138. package/src/platform/index.ts +1 -0
  139. package/src/platform/location/index.native.ts +14 -3
  140. package/src/platform/specs/OneAudio.nitro.ts +11 -1
  141. package/src/serve-worker.ts +2 -3
  142. package/src/server/oneServe.ts +0 -6
  143. package/src/server/workerHandler.ts +34 -18
  144. package/src/vite/plugins/workerdDevPlugin.ts +33 -37
  145. package/src/vite/resolveResponse.ts +2 -2
  146. package/types/cli/build.d.ts.map +1 -1
  147. package/types/cli/buildPage.d.ts +1 -1
  148. package/types/cli/buildPage.d.ts.map +1 -1
  149. package/types/cli/workerPool.d.ts +1 -0
  150. package/types/cli/workerPool.d.ts.map +1 -1
  151. package/types/headless-server.d.ts +3 -3
  152. package/types/headless-server.d.ts.map +1 -1
  153. package/types/index.d.ts +1 -1
  154. package/types/index.d.ts.map +1 -1
  155. package/types/platform/audio/index.d.ts +2 -2
  156. package/types/platform/audio/index.d.ts.map +1 -1
  157. package/types/platform/audio/index.native.d.ts +3 -3
  158. package/types/platform/audio/index.native.d.ts.map +1 -1
  159. package/types/platform/audio/nowPlaying.d.ts +12 -0
  160. package/types/platform/audio/nowPlaying.d.ts.map +1 -0
  161. package/types/platform/audio/player.d.ts +3 -1
  162. package/types/platform/audio/player.d.ts.map +1 -1
  163. package/types/platform/audio/player.native.d.ts +3 -1
  164. package/types/platform/audio/player.native.d.ts.map +1 -1
  165. package/types/platform/audio/types.d.ts +3 -1
  166. package/types/platform/audio/types.d.ts.map +1 -1
  167. package/types/platform/audio/unavailable.d.ts +3 -3
  168. package/types/platform/audio/unavailable.d.ts.map +1 -1
  169. package/types/platform/index.d.ts +1 -1
  170. package/types/platform/index.d.ts.map +1 -1
  171. package/types/platform/index.native.d.ts +1 -1
  172. package/types/platform/index.native.d.ts.map +1 -1
  173. package/types/platform/location/index.native.d.ts.map +1 -1
  174. package/types/platform/specs/OneAudio.nitro.d.ts +8 -1
  175. package/types/platform/specs/OneAudio.nitro.d.ts.map +1 -1
  176. package/types/serve-worker.d.ts +3 -3
  177. package/types/serve-worker.d.ts.map +1 -1
  178. package/types/server/oneServe.d.ts.map +1 -1
  179. package/types/server/workerHandler.d.ts +1 -1
  180. package/types/server/workerHandler.d.ts.map +1 -1
  181. package/types/vite/plugins/workerdDevPlugin.d.ts.map +1 -1
  182. package/types/vite/resolveResponse.d.ts +1 -1
  183. package/types/vite/resolveResponse.d.ts.map +1 -1
  184. package/dist/cjs/server/staticHtmlFetcher.cjs +0 -33
  185. package/dist/cjs/server/staticHtmlFetcher.native.cjs +0 -35
  186. package/dist/cjs/server/staticHtmlFetcher.native.js +0 -37
  187. package/dist/cjs/server/staticHtmlFetcher.native.js.map +0 -1
  188. package/dist/esm/server/staticHtmlFetcher.mjs +0 -10
  189. package/dist/esm/server/staticHtmlFetcher.mjs.map +0 -1
  190. package/dist/esm/server/staticHtmlFetcher.native.js +0 -10
  191. package/dist/esm/server/staticHtmlFetcher.native.js.map +0 -1
  192. package/src/server/staticHtmlFetcher.ts +0 -12
  193. package/types/server/staticHtmlFetcher.d.ts +0 -3
  194. package/types/server/staticHtmlFetcher.d.ts.map +0 -1
@@ -121,7 +121,7 @@ function generateWorkerdDevEntryModule(args) {
121
121
  }
122
122
  }
123
123
 
124
- import { serve, setFetchStaticHtml } from 'one/serve-worker'
124
+ import { serve } from 'one/serve-worker'
125
125
 
126
126
  const lazyRoutes = {
127
127
  serverEntry: () => import(${JSON.stringify(virtualEntryId)}),
@@ -152,50 +152,46 @@ export default {
152
152
  server = await serve(buildInfo, lazyRoutes, { disableModuleCache: true })
153
153
  }
154
154
 
155
- if (env && env.ASSETS) {
156
- setFetchStaticHtml(async (path) => {
157
- try {
158
- const assetUrl = new URL(request.url)
159
- assetUrl.pathname = path
160
- const assetResponse = await env.ASSETS.fetch(new Request(assetUrl))
161
- if (assetResponse && assetResponse.ok) {
162
- return await assetResponse.text()
163
- }
164
- } catch {}
165
- return null
166
- })
167
- }
168
-
169
- try {
170
- const response = await server.fetch(request, env, ctx)
171
-
172
- if (!response || response.status === 404) {
173
- if (env && env.ASSETS) {
155
+ const fetchStaticHtml = env && env.ASSETS
156
+ ? async (path) => {
174
157
  try {
175
- const assetResponse = await env.ASSETS.fetch(request)
176
- if (assetResponse && assetResponse.status !== 404) {
177
- return assetResponse
158
+ const assetUrl = new URL(request.url)
159
+ assetUrl.pathname = path
160
+ const assetResponse = await env.ASSETS.fetch(new Request(assetUrl))
161
+ if (assetResponse && assetResponse.ok) {
162
+ return await assetResponse.text()
178
163
  }
179
164
  } catch {}
165
+ return null
180
166
  }
181
- }
167
+ : undefined
182
168
 
183
- if (!response) {
184
- if (request.method === 'GET' || request.method === 'HEAD') {
185
- return new Response(
186
- '<!DOCTYPE html><html><head>' +
187
- ${JSON.stringify(spaPreloadScripts)} +
188
- '</head></html>',
189
- { headers: { 'content-type': 'text/html' } }
190
- )
191
- }
192
- return new Response('Not Found', { status: 404 })
169
+ const response = await server.fetch(request, env, ctx, fetchStaticHtml)
170
+
171
+ if (!response || response.status === 404) {
172
+ if (env && env.ASSETS) {
173
+ try {
174
+ const assetResponse = await env.ASSETS.fetch(request)
175
+ if (assetResponse && assetResponse.status !== 404) {
176
+ return assetResponse
177
+ }
178
+ } catch {}
193
179
  }
180
+ }
194
181
 
195
- return response
196
- } finally {
197
- setFetchStaticHtml(null)
182
+ if (!response) {
183
+ if (request.method === 'GET' || request.method === 'HEAD') {
184
+ return new Response(
185
+ '<!DOCTYPE html><html><head>' +
186
+ ${JSON.stringify(spaPreloadScripts)} +
187
+ '</head></html>',
188
+ { headers: { 'content-type': 'text/html' } }
189
+ )
190
+ }
191
+ return new Response('Not Found', { status: 404 })
198
192
  }
193
+
194
+ return response
199
195
  }
200
196
  }
201
197
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"workerdDevPlugin.js","names":[],"sources":["esm/vite/plugins/workerdDevPlugin.js"],"sourcesContent":["import { mkdirSync, writeFileSync } from \"node:fs\";\nimport { join, resolve } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport { resolvePath } from \"@vxrn/resolve\";\nimport { cloudflare } from \"@cloudflare/vite-plugin\";\nimport { getPlatformEnvDefine } from \"@vxrn/utils\";\nimport { exactRegex } from \"rolldown/filter\";\nimport { CACHE_KEY } from \"../../constants\";\nimport { virtalEntryIdClient, virtualEntryId } from \"./virtualEntryConstants\";\nimport { getManifest } from \"../getManifest\";\nimport { getRouterRootFromOneOptions } from \"../../utils/getRouterRootFromOneOptions\";\nimport { absorbedPackageAliases } from \"../../utils/absorbedPackages\";\nimport {\n createCloudflareWranglerConfig,\n getCloudflareProjectNameSync,\n loadUserWranglerConfigSync,\n shouldEnableWorkerdDev\n} from \"../cloudflareWranglerConfig\";\nconst workerdDevEntryId = \"virtual:one-workerd-dev-entry\";\nconst resolvedWorkerdDevEntryId = `\\0${workerdDevEntryId}`;\nconst WORKERD_DEV_DIR = \"node_modules/.one-workerd-dev\";\nfunction serveOnly(plugin) {\n const existing = plugin.apply;\n return {\n ...plugin,\n apply(config, env) {\n if (env.command !== \"serve\") return false;\n if (typeof existing === \"function\") return existing(config, env);\n if (existing === \"build\") return false;\n return true;\n }\n };\n}\nfunction toImportHref(root, routerRoot, routeFile) {\n const rel = routeFile.replace(/^\\.\\//, \"\");\n return pathToFileURL(resolve(root, routerRoot, rel)).href;\n}\nfunction serializeImportMap(entries) {\n return entries.map(\n ([key, href]) => ` ${JSON.stringify(key)}: () => import(${JSON.stringify(href)})`\n ).join(\",\\n\");\n}\nfunction stripRouteForWorker(route) {\n const { layouts, middlewares, ...rest } = route;\n return {\n ...rest,\n // live-render SSG in dev the same way the node middleware does\n type: route.type === \"ssg\" ? \"ssr\" : route.type,\n layouts: layouts?.map((layout) => ({\n contextKey: layout.contextKey\n })),\n middlewares: middlewares?.map((middleware) => ({\n contextKey: middleware.contextKey\n }))\n };\n}\nfunction stubRouteBuildInfo(route, preloads) {\n const pageType = route.type === \"ssg\" ? \"ssr\" : route.type;\n return {\n type: pageType,\n path: route.page,\n routeFile: route.file,\n middlewares: route.middlewares?.map((middleware) => middleware.contextKey) ?? [],\n preloadPath: \"\",\n cssPreloadPath: \"\",\n loaderPath: \"\",\n cleanPath: route.urlCleanPath || route.page,\n htmlPath: \"\",\n clientJsPath: \"\",\n serverJsPath: \"\",\n params: {},\n preloads,\n css: [],\n layoutCSS: []\n };\n}\nfunction generateWorkerdDevEntryModule(args) {\n const { root, options, routerRoot, routePaths, preloads } = args;\n const manifest = getManifest({\n routerRoot: resolve(root, routerRoot),\n ignoredRouteFiles: options.router?.ignoredRouteFiles,\n routePaths\n });\n if (!manifest) {\n throw new Error(\"[one] workerd dev: no routes manifest\");\n }\n const apiImports = /* @__PURE__ */ new Map();\n const middlewareImports = /* @__PURE__ */ new Map();\n const routeToBuildInfo = {};\n for (const route of manifest.pageRoutes) {\n for (const middleware of route.middlewares || []) {\n if (!middleware.contextKey || middlewareImports.has(middleware.contextKey)) continue;\n middlewareImports.set(\n middleware.contextKey,\n toImportHref(root, routerRoot, middleware.contextKey)\n );\n }\n if (route.file) {\n routeToBuildInfo[route.file] = stubRouteBuildInfo(route, preloads);\n }\n }\n for (const route of manifest.apiRoutes) {\n if (route.file) {\n apiImports.set(route.page, toImportHref(root, routerRoot, route.file));\n }\n for (const middleware of route.middlewares || []) {\n if (!middleware.contextKey || middlewareImports.has(middleware.contextKey)) continue;\n middlewareImports.set(\n middleware.contextKey,\n toImportHref(root, routerRoot, middleware.contextKey)\n );\n }\n }\n const pageRoutes = manifest.pageRoutes.map(stripRouteForWorker);\n const apiRoutes = manifest.apiRoutes.map(stripRouteForWorker);\n const buildInfo = {\n constants: { CACHE_KEY },\n oneOptions: options,\n routeToBuildInfo,\n pathToRoute: {},\n routeMap: {},\n manifest: {\n pageRoutes,\n apiRoutes,\n allRoutes: [...pageRoutes, ...apiRoutes]\n },\n preloads: Object.fromEntries(preloads.map((preload) => [preload, true])),\n cssPreloads: {},\n loaders: {}\n };\n const spaPreloadScripts = preloads.map((preload) => `<script type=\"module\" src=\"${preload}\"></script>`).join(\"\");\n return `if (typeof MessageChannel === 'undefined') {\n globalThis.MessageChannel = class MessageChannel {\n constructor() {\n this.port1 = { postMessage: () => {}, onmessage: null, close: () => {} }\n this.port2 = { postMessage: () => {}, onmessage: null, close: () => {} }\n }\n }\n}\n\nimport { serve, setFetchStaticHtml } from 'one/serve-worker'\n\nconst lazyRoutes = {\n serverEntry: () => import(${JSON.stringify(virtualEntryId)}),\n api: {\n${serializeImportMap([...apiImports])}\n },\n middlewares: {\n${serializeImportMap([...middlewareImports])}\n }\n}\n\nconst buildInfo = ${JSON.stringify(buildInfo)}\n\nlet server\n\nexport default {\n async fetch(request, env, ctx) {\n const url = new URL(request.url)\n const pathname = url.pathname\n\n if (pathname === '/status' || pathname.startsWith('/status?')) {\n return new Response('packager-status:running', {\n headers: { 'content-type': 'text/plain' },\n })\n }\n\n if (!server) {\n server = await serve(buildInfo, lazyRoutes, { disableModuleCache: true })\n }\n\n if (env && env.ASSETS) {\n setFetchStaticHtml(async (path) => {\n try {\n const assetUrl = new URL(request.url)\n assetUrl.pathname = path\n const assetResponse = await env.ASSETS.fetch(new Request(assetUrl))\n if (assetResponse && assetResponse.ok) {\n return await assetResponse.text()\n }\n } catch {}\n return null\n })\n }\n\n try {\n const response = await server.fetch(request, env, ctx)\n\n if (!response || response.status === 404) {\n if (env && env.ASSETS) {\n try {\n const assetResponse = await env.ASSETS.fetch(request)\n if (assetResponse && assetResponse.status !== 404) {\n return assetResponse\n }\n } catch {}\n }\n }\n\n if (!response) {\n if (request.method === 'GET' || request.method === 'HEAD') {\n return new Response(\n '<!DOCTYPE html><html><head>' +\n ${JSON.stringify(spaPreloadScripts)} +\n '</head></html>',\n { headers: { 'content-type': 'text/html' } }\n )\n }\n return new Response('Not Found', { status: 404 })\n }\n\n return response\n } finally {\n setFetchStaticHtml(null)\n }\n }\n}\n`;\n}\nfunction createWorkerdDevPlugins(options, root, routeIndex) {\n if (!shouldEnableWorkerdDev(options.web?.deploy, root)) {\n return [];\n }\n const cacheDir = join(root, WORKERD_DEV_DIR);\n const wranglerInputPath = join(cacheDir, \"_wrangler.input.jsonc\");\n const workerEntryPath = join(cacheDir, \"worker-entry.js\");\n mkdirSync(cacheDir, { recursive: true });\n writeFileSync(\n workerEntryPath,\n `export { default } from ${JSON.stringify(workerdDevEntryId)}\n`\n );\n const userWranglerConfig = loadUserWranglerConfigSync(root);\n const projectName = getCloudflareProjectNameSync(root);\n const wranglerInputConfig = createCloudflareWranglerConfig(\n projectName,\n userWranglerConfig?.config\n );\n wranglerInputConfig.main = \"worker-entry.js\";\n writeFileSync(wranglerInputPath, `${JSON.stringify(wranglerInputConfig, null, 2)}\n`);\n const preloads = options.web?.experimentalBundledDev ? [\"/bundledDevClient.mjs\", \"/assets/_virtual_one-entry.js\"] : [\"/@vite/client\", virtalEntryIdClient];\n const empty = resolvePath(\"@vxrn/utils/empty\", root);\n const absorbed = absorbedPackageAliases(root, \"web\");\n const preparePlugin = {\n name: \"one:workerd-dev-prepare\",\n apply: \"serve\",\n enforce: \"pre\",\n config() {\n return {\n environments: {\n worker: {\n define: {\n ...getPlatformEnvDefine(\"ssr\"),\n \"process.env.TAMAGUI_IS_SERVER\": JSON.stringify(\"1\"),\n \"process.env.TAMAGUI_KEEP_THEMES\": JSON.stringify(\"1\"),\n \"process.env.ONE_CACHE_KEY\": JSON.stringify(CACHE_KEY)\n },\n optimizeDeps: {\n include: [\n \"react\",\n \"react-dom\",\n \"react-dom/client\",\n \"react-dom/server.browser\",\n \"react/jsx-runtime\",\n \"react/jsx-dev-runtime\"\n ]\n },\n build: {\n rolldownOptions: {\n shimMissingExports: true\n }\n }\n }\n }\n };\n },\n // environment resolve options have no alias field; match the production\n // worker aliases with a worker-only resolveId (rolldown cannot parse RN Flow)\n resolveId: {\n filter: {\n id: /^(react-native(\\/|$|-safe-area-context$)|@react-native\\/assets-registry\\/registry$)/\n },\n handler(source) {\n if (this.environment.name !== \"worker\") return;\n if (/^react-native\\/Libraries\\//.test(source)) return empty;\n if (source === \"react-native/asset-registry\" || source === \"@react-native/assets-registry/registry\")\n return resolvePath(\"react-native-web/dist/modules/AssetRegistry\", root);\n if (source === \"react-native/package.json\")\n return resolvePath(\"react-native-web/package.json\", root);\n if (source === \"react-native\") return resolvePath(\"react-native-web\", root);\n if (source in absorbed) return absorbed[source];\n }\n },\n configureServer(server) {\n if (!server.environments.worker) {\n throw new Error(\n `[one] ONE_EXPERIMENTAL_WORKER_DEV=1 is set but @cloudflare/vite-plugin did not register a \"worker\" environment. Expected wrangler config at ${wranglerInputPath}.`\n );\n }\n console.info(\n \"[one] experimental workerd dev enabled (ONE_EXPERIMENTAL_WORKER_DEV=1)\"\n );\n }\n };\n const virtualPlugin = {\n name: \"one:workerd-dev-entry\",\n apply: \"serve\",\n resolveId: {\n filter: { id: exactRegex(workerdDevEntryId) },\n handler(id) {\n if (this.environment.name !== \"worker\") return;\n if (id === workerdDevEntryId) return resolvedWorkerdDevEntryId;\n }\n },\n load: {\n filter: { id: exactRegex(resolvedWorkerdDevEntryId) },\n handler() {\n if (this.environment.name !== \"worker\") return;\n return generateWorkerdDevEntryModule({\n root,\n options,\n routerRoot: getRouterRootFromOneOptions(options),\n routePaths: routeIndex.getPaths(),\n preloads\n });\n }\n },\n hotUpdate({ file }) {\n if (this.environment.name !== \"worker\") return;\n const graph = this.environment.moduleGraph;\n const entry = graph.getModuleById(resolvedWorkerdDevEntryId);\n if (!entry) return;\n const modules = graph.getModulesByFile(file);\n if (!modules?.size) return;\n graph.invalidateModule(entry);\n }\n };\n const cloudflarePlugins = cloudflare({\n configPath: wranglerInputPath,\n viteEnvironment: { name: \"worker\" }\n }).map(serveOnly);\n return [preparePlugin, virtualPlugin, ...cloudflarePlugins];\n}\nexport {\n createWorkerdDevPlugins,\n generateWorkerdDevEntryModule,\n shouldEnableWorkerdDev,\n workerdDevEntryId\n};\n//# sourceMappingURL=workerdDevPlugin.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"workerdDevPlugin.js","names":[],"sources":["esm/vite/plugins/workerdDevPlugin.js"],"sourcesContent":["import { mkdirSync, writeFileSync } from \"node:fs\";\nimport { join, resolve } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport { resolvePath } from \"@vxrn/resolve\";\nimport { cloudflare } from \"@cloudflare/vite-plugin\";\nimport { getPlatformEnvDefine } from \"@vxrn/utils\";\nimport { exactRegex } from \"rolldown/filter\";\nimport { CACHE_KEY } from \"../../constants\";\nimport { virtalEntryIdClient, virtualEntryId } from \"./virtualEntryConstants\";\nimport { getManifest } from \"../getManifest\";\nimport { getRouterRootFromOneOptions } from \"../../utils/getRouterRootFromOneOptions\";\nimport { absorbedPackageAliases } from \"../../utils/absorbedPackages\";\nimport {\n createCloudflareWranglerConfig,\n getCloudflareProjectNameSync,\n loadUserWranglerConfigSync,\n shouldEnableWorkerdDev\n} from \"../cloudflareWranglerConfig\";\nconst workerdDevEntryId = \"virtual:one-workerd-dev-entry\";\nconst resolvedWorkerdDevEntryId = `\\0${workerdDevEntryId}`;\nconst WORKERD_DEV_DIR = \"node_modules/.one-workerd-dev\";\nfunction serveOnly(plugin) {\n const existing = plugin.apply;\n return {\n ...plugin,\n apply(config, env) {\n if (env.command !== \"serve\") return false;\n if (typeof existing === \"function\") return existing(config, env);\n if (existing === \"build\") return false;\n return true;\n }\n };\n}\nfunction toImportHref(root, routerRoot, routeFile) {\n const rel = routeFile.replace(/^\\.\\//, \"\");\n return pathToFileURL(resolve(root, routerRoot, rel)).href;\n}\nfunction serializeImportMap(entries) {\n return entries.map(\n ([key, href]) => ` ${JSON.stringify(key)}: () => import(${JSON.stringify(href)})`\n ).join(\",\\n\");\n}\nfunction stripRouteForWorker(route) {\n const { layouts, middlewares, ...rest } = route;\n return {\n ...rest,\n // live-render SSG in dev the same way the node middleware does\n type: route.type === \"ssg\" ? \"ssr\" : route.type,\n layouts: layouts?.map((layout) => ({\n contextKey: layout.contextKey\n })),\n middlewares: middlewares?.map((middleware) => ({\n contextKey: middleware.contextKey\n }))\n };\n}\nfunction stubRouteBuildInfo(route, preloads) {\n const pageType = route.type === \"ssg\" ? \"ssr\" : route.type;\n return {\n type: pageType,\n path: route.page,\n routeFile: route.file,\n middlewares: route.middlewares?.map((middleware) => middleware.contextKey) ?? [],\n preloadPath: \"\",\n cssPreloadPath: \"\",\n loaderPath: \"\",\n cleanPath: route.urlCleanPath || route.page,\n htmlPath: \"\",\n clientJsPath: \"\",\n serverJsPath: \"\",\n params: {},\n preloads,\n css: [],\n layoutCSS: []\n };\n}\nfunction generateWorkerdDevEntryModule(args) {\n const { root, options, routerRoot, routePaths, preloads } = args;\n const manifest = getManifest({\n routerRoot: resolve(root, routerRoot),\n ignoredRouteFiles: options.router?.ignoredRouteFiles,\n routePaths\n });\n if (!manifest) {\n throw new Error(\"[one] workerd dev: no routes manifest\");\n }\n const apiImports = /* @__PURE__ */ new Map();\n const middlewareImports = /* @__PURE__ */ new Map();\n const routeToBuildInfo = {};\n for (const route of manifest.pageRoutes) {\n for (const middleware of route.middlewares || []) {\n if (!middleware.contextKey || middlewareImports.has(middleware.contextKey)) continue;\n middlewareImports.set(\n middleware.contextKey,\n toImportHref(root, routerRoot, middleware.contextKey)\n );\n }\n if (route.file) {\n routeToBuildInfo[route.file] = stubRouteBuildInfo(route, preloads);\n }\n }\n for (const route of manifest.apiRoutes) {\n if (route.file) {\n apiImports.set(route.page, toImportHref(root, routerRoot, route.file));\n }\n for (const middleware of route.middlewares || []) {\n if (!middleware.contextKey || middlewareImports.has(middleware.contextKey)) continue;\n middlewareImports.set(\n middleware.contextKey,\n toImportHref(root, routerRoot, middleware.contextKey)\n );\n }\n }\n const pageRoutes = manifest.pageRoutes.map(stripRouteForWorker);\n const apiRoutes = manifest.apiRoutes.map(stripRouteForWorker);\n const buildInfo = {\n constants: { CACHE_KEY },\n oneOptions: options,\n routeToBuildInfo,\n pathToRoute: {},\n routeMap: {},\n manifest: {\n pageRoutes,\n apiRoutes,\n allRoutes: [...pageRoutes, ...apiRoutes]\n },\n preloads: Object.fromEntries(preloads.map((preload) => [preload, true])),\n cssPreloads: {},\n loaders: {}\n };\n const spaPreloadScripts = preloads.map((preload) => `<script type=\"module\" src=\"${preload}\"></script>`).join(\"\");\n return `if (typeof MessageChannel === 'undefined') {\n globalThis.MessageChannel = class MessageChannel {\n constructor() {\n this.port1 = { postMessage: () => {}, onmessage: null, close: () => {} }\n this.port2 = { postMessage: () => {}, onmessage: null, close: () => {} }\n }\n }\n}\n\nimport { serve } from 'one/serve-worker'\n\nconst lazyRoutes = {\n serverEntry: () => import(${JSON.stringify(virtualEntryId)}),\n api: {\n${serializeImportMap([...apiImports])}\n },\n middlewares: {\n${serializeImportMap([...middlewareImports])}\n }\n}\n\nconst buildInfo = ${JSON.stringify(buildInfo)}\n\nlet server\n\nexport default {\n async fetch(request, env, ctx) {\n const url = new URL(request.url)\n const pathname = url.pathname\n\n if (pathname === '/status' || pathname.startsWith('/status?')) {\n return new Response('packager-status:running', {\n headers: { 'content-type': 'text/plain' },\n })\n }\n\n if (!server) {\n server = await serve(buildInfo, lazyRoutes, { disableModuleCache: true })\n }\n\n const fetchStaticHtml = env && env.ASSETS\n ? async (path) => {\n try {\n const assetUrl = new URL(request.url)\n assetUrl.pathname = path\n const assetResponse = await env.ASSETS.fetch(new Request(assetUrl))\n if (assetResponse && assetResponse.ok) {\n return await assetResponse.text()\n }\n } catch {}\n return null\n }\n : undefined\n\n const response = await server.fetch(request, env, ctx, fetchStaticHtml)\n\n if (!response || response.status === 404) {\n if (env && env.ASSETS) {\n try {\n const assetResponse = await env.ASSETS.fetch(request)\n if (assetResponse && assetResponse.status !== 404) {\n return assetResponse\n }\n } catch {}\n }\n }\n\n if (!response) {\n if (request.method === 'GET' || request.method === 'HEAD') {\n return new Response(\n '<!DOCTYPE html><html><head>' +\n ${JSON.stringify(spaPreloadScripts)} +\n '</head></html>',\n { headers: { 'content-type': 'text/html' } }\n )\n }\n return new Response('Not Found', { status: 404 })\n }\n\n return response\n }\n}\n`;\n}\nfunction createWorkerdDevPlugins(options, root, routeIndex) {\n if (!shouldEnableWorkerdDev(options.web?.deploy, root)) {\n return [];\n }\n const cacheDir = join(root, WORKERD_DEV_DIR);\n const wranglerInputPath = join(cacheDir, \"_wrangler.input.jsonc\");\n const workerEntryPath = join(cacheDir, \"worker-entry.js\");\n mkdirSync(cacheDir, { recursive: true });\n writeFileSync(\n workerEntryPath,\n `export { default } from ${JSON.stringify(workerdDevEntryId)}\n`\n );\n const userWranglerConfig = loadUserWranglerConfigSync(root);\n const projectName = getCloudflareProjectNameSync(root);\n const wranglerInputConfig = createCloudflareWranglerConfig(\n projectName,\n userWranglerConfig?.config\n );\n wranglerInputConfig.main = \"worker-entry.js\";\n writeFileSync(wranglerInputPath, `${JSON.stringify(wranglerInputConfig, null, 2)}\n`);\n const preloads = options.web?.experimentalBundledDev ? [\"/bundledDevClient.mjs\", \"/assets/_virtual_one-entry.js\"] : [\"/@vite/client\", virtalEntryIdClient];\n const empty = resolvePath(\"@vxrn/utils/empty\", root);\n const absorbed = absorbedPackageAliases(root, \"web\");\n const preparePlugin = {\n name: \"one:workerd-dev-prepare\",\n apply: \"serve\",\n enforce: \"pre\",\n config() {\n return {\n environments: {\n worker: {\n define: {\n ...getPlatformEnvDefine(\"ssr\"),\n \"process.env.TAMAGUI_IS_SERVER\": JSON.stringify(\"1\"),\n \"process.env.TAMAGUI_KEEP_THEMES\": JSON.stringify(\"1\"),\n \"process.env.ONE_CACHE_KEY\": JSON.stringify(CACHE_KEY)\n },\n optimizeDeps: {\n include: [\n \"react\",\n \"react-dom\",\n \"react-dom/client\",\n \"react-dom/server.browser\",\n \"react/jsx-runtime\",\n \"react/jsx-dev-runtime\"\n ]\n },\n build: {\n rolldownOptions: {\n shimMissingExports: true\n }\n }\n }\n }\n };\n },\n // environment resolve options have no alias field; match the production\n // worker aliases with a worker-only resolveId (rolldown cannot parse RN Flow)\n resolveId: {\n filter: {\n id: /^(react-native(\\/|$|-safe-area-context$)|@react-native\\/assets-registry\\/registry$)/\n },\n handler(source) {\n if (this.environment.name !== \"worker\") return;\n if (/^react-native\\/Libraries\\//.test(source)) return empty;\n if (source === \"react-native/asset-registry\" || source === \"@react-native/assets-registry/registry\")\n return resolvePath(\"react-native-web/dist/modules/AssetRegistry\", root);\n if (source === \"react-native/package.json\")\n return resolvePath(\"react-native-web/package.json\", root);\n if (source === \"react-native\") return resolvePath(\"react-native-web\", root);\n if (source in absorbed) return absorbed[source];\n }\n },\n configureServer(server) {\n if (!server.environments.worker) {\n throw new Error(\n `[one] ONE_EXPERIMENTAL_WORKER_DEV=1 is set but @cloudflare/vite-plugin did not register a \"worker\" environment. Expected wrangler config at ${wranglerInputPath}.`\n );\n }\n console.info(\n \"[one] experimental workerd dev enabled (ONE_EXPERIMENTAL_WORKER_DEV=1)\"\n );\n }\n };\n const virtualPlugin = {\n name: \"one:workerd-dev-entry\",\n apply: \"serve\",\n resolveId: {\n filter: { id: exactRegex(workerdDevEntryId) },\n handler(id) {\n if (this.environment.name !== \"worker\") return;\n if (id === workerdDevEntryId) return resolvedWorkerdDevEntryId;\n }\n },\n load: {\n filter: { id: exactRegex(resolvedWorkerdDevEntryId) },\n handler() {\n if (this.environment.name !== \"worker\") return;\n return generateWorkerdDevEntryModule({\n root,\n options,\n routerRoot: getRouterRootFromOneOptions(options),\n routePaths: routeIndex.getPaths(),\n preloads\n });\n }\n },\n hotUpdate({ file }) {\n if (this.environment.name !== \"worker\") return;\n const graph = this.environment.moduleGraph;\n const entry = graph.getModuleById(resolvedWorkerdDevEntryId);\n if (!entry) return;\n const modules = graph.getModulesByFile(file);\n if (!modules?.size) return;\n graph.invalidateModule(entry);\n }\n };\n const cloudflarePlugins = cloudflare({\n configPath: wranglerInputPath,\n viteEnvironment: { name: \"worker\" }\n }).map(serveOnly);\n return [preparePlugin, virtualPlugin, ...cloudflarePlugins];\n}\nexport {\n createWorkerdDevPlugins,\n generateWorkerdDevEntryModule,\n shouldEnableWorkerdDev,\n workerdDevEntryId\n};\n//# sourceMappingURL=workerdDevPlugin.js.map\n"],"mappings":";;;;;;;;;;;;;;;AAkBA,MAAM,oBAAoB;AAC1B,MAAM,4BAA4B,KAAK;AACvC,MAAM,kBAAkB;AACxB,SAAS,UAAU,QAAQ;CACzB,MAAM,WAAW,OAAO;CACxB,OAAO;EACL,GAAG;EACH,MAAM,QAAQ,KAAK;GACjB,IAAI,IAAI,YAAY,SAAS,OAAO;GACpC,IAAI,OAAO,aAAa,YAAY,OAAO,SAAS,QAAQ,GAAG;GAC/D,IAAI,aAAa,SAAS,OAAO;GACjC,OAAO;EACT;CACF;AACF;AACA,SAAS,aAAa,MAAM,YAAY,WAAW;CACjD,MAAM,MAAM,UAAU,QAAQ,SAAS,EAAE;CACzC,OAAO,cAAc,QAAQ,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC;AACvD;AACA,SAAS,mBAAmB,SAAS;CACnC,OAAO,QAAQ,KACZ,CAAC,KAAK,UAAU,KAAK,KAAK,UAAU,GAAG,EAAE,iBAAiB,KAAK,UAAU,IAAI,EAAE,EAClF,CAAC,CAAC,KAAK,KAAK;AACd;AACA,SAAS,oBAAoB,OAAO;CAClC,MAAM,EAAE,SAAS,aAAa,GAAG,SAAS;CAC1C,OAAO;EACL,GAAG;EAEH,MAAM,MAAM,SAAS,QAAQ,QAAQ,MAAM;EAC3C,SAAS,SAAS,KAAK,YAAY,EACjC,YAAY,OAAO,WACrB,EAAE;EACF,aAAa,aAAa,KAAK,gBAAgB,EAC7C,YAAY,WAAW,WACzB,EAAE;CACJ;AACF;AACA,SAAS,mBAAmB,OAAO,UAAU;CAC3C,MAAM,WAAW,MAAM,SAAS,QAAQ,QAAQ,MAAM;CACtD,OAAO;EACL,MAAM;EACN,MAAM,MAAM;EACZ,WAAW,MAAM;EACjB,aAAa,MAAM,aAAa,KAAK,eAAe,WAAW,UAAU,KAAK,CAAC;EAC/E,aAAa;EACb,gBAAgB;EAChB,YAAY;EACZ,WAAW,MAAM,gBAAgB,MAAM;EACvC,UAAU;EACV,cAAc;EACd,cAAc;EACd,QAAQ,CAAC;EACT;EACA,KAAK,CAAC;EACN,WAAW,CAAC;CACd;AACF;AACA,SAAS,8BAA8B,MAAM;CAC3C,MAAM,EAAE,MAAM,SAAS,YAAY,YAAY,aAAa;CAC5D,MAAM,WAAW,YAAY;EAC3B,YAAY,QAAQ,MAAM,UAAU;EACpC,mBAAmB,QAAQ,QAAQ;EACnC;CACF,CAAC;CACD,IAAI,CAAC,UAAU;EACb,MAAM,IAAI,MAAM,uCAAuC;CACzD;CACA,MAAM,6BAA6B,IAAI,IAAI;CAC3C,MAAM,oCAAoC,IAAI,IAAI;CAClD,MAAM,mBAAmB,CAAC;CAC1B,KAAK,MAAM,SAAS,SAAS,YAAY;EACvC,KAAK,MAAM,cAAc,MAAM,eAAe,CAAC,GAAG;GAChD,IAAI,CAAC,WAAW,cAAc,kBAAkB,IAAI,WAAW,UAAU,GAAG;GAC5E,kBAAkB,IAChB,WAAW,YACX,aAAa,MAAM,YAAY,WAAW,UAAU,CACtD;EACF;EACA,IAAI,MAAM,MAAM;GACd,iBAAiB,MAAM,QAAQ,mBAAmB,OAAO,QAAQ;EACnE;CACF;CACA,KAAK,MAAM,SAAS,SAAS,WAAW;EACtC,IAAI,MAAM,MAAM;GACd,WAAW,IAAI,MAAM,MAAM,aAAa,MAAM,YAAY,MAAM,IAAI,CAAC;EACvE;EACA,KAAK,MAAM,cAAc,MAAM,eAAe,CAAC,GAAG;GAChD,IAAI,CAAC,WAAW,cAAc,kBAAkB,IAAI,WAAW,UAAU,GAAG;GAC5E,kBAAkB,IAChB,WAAW,YACX,aAAa,MAAM,YAAY,WAAW,UAAU,CACtD;EACF;CACF;CACA,MAAM,aAAa,SAAS,WAAW,IAAI,mBAAmB;CAC9D,MAAM,YAAY,SAAS,UAAU,IAAI,mBAAmB;CAC5D,MAAM,YAAY;EAChB,WAAW,EAAE,UAAU;EACvB,YAAY;EACZ;EACA,aAAa,CAAC;EACd,UAAU,CAAC;EACX,UAAU;GACR;GACA;GACA,WAAW,CAAC,GAAG,YAAY,GAAG,SAAS;EACzC;EACA,UAAU,OAAO,YAAY,SAAS,KAAK,YAAY,CAAC,SAAS,IAAI,CAAC,CAAC;EACvE,aAAa,CAAC;EACd,SAAS,CAAC;CACZ;CACA,MAAM,oBAAoB,SAAS,KAAK,YAAY,8BAA8B,QAAQ,aAAY,CAAC,CAAC,KAAK,EAAE;CAC/G,OAAO;;;;;;;;;;;;8BAYqB,KAAK,UAAU,cAAc,EAAE;;EAE3D,mBAAmB,CAAC,GAAG,UAAU,CAAC,EAAE;;;EAGpC,mBAAmB,CAAC,GAAG,iBAAiB,CAAC,EAAE;;;;oBAIzB,KAAK,UAAU,SAAS,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAkDhC,KAAK,UAAU,iBAAiB,EAAE;;;;;;;;;;;;AAYhD;AACA,SAAS,wBAAwB,SAAS,MAAM,YAAY;CAC1D,IAAI,CAAC,uBAAuB,QAAQ,KAAK,QAAQ,IAAI,GAAG;EACtD,OAAO,CAAC;CACV;CACA,MAAM,WAAW,KAAK,MAAM,eAAe;CAC3C,MAAM,oBAAoB,KAAK,UAAU,uBAAuB;CAChE,MAAM,kBAAkB,KAAK,UAAU,iBAAiB;CACxD,UAAU,UAAU,EAAE,WAAW,KAAK,CAAC;CACvC,cACE,iBACA,2BAA2B,KAAK,UAAU,iBAAiB,EAAE;CAE/D;CACA,MAAM,qBAAqB,2BAA2B,IAAI;CAC1D,MAAM,cAAc,6BAA6B,IAAI;CACrD,MAAM,sBAAsB,+BAC1B,aACA,oBAAoB,MACtB;CACA,oBAAoB,OAAO;CAC3B,cAAc,mBAAmB,GAAG,KAAK,UAAU,qBAAqB,MAAM,CAAC,EAAE;CAClF;CACC,MAAM,WAAW,QAAQ,KAAK,yBAAyB,CAAC,yBAAyB,+BAA+B,IAAI,CAAC,iBAAiB,mBAAmB;CACzJ,MAAM,QAAQ,YAAY,qBAAqB,IAAI;CACnD,MAAM,WAAW,uBAAuB,MAAM,KAAK;CACnD,MAAM,gBAAgB;EACpB,MAAM;EACN,OAAO;EACP,SAAS;EACT,SAAS;GACP,OAAO,EACL,cAAc,EACZ,QAAQ;IACN,QAAQ;KACN,GAAG,qBAAqB,KAAK;KAC7B,iCAAiC,KAAK,UAAU,GAAG;KACnD,mCAAmC,KAAK,UAAU,GAAG;KACrD,6BAA6B,KAAK,UAAU,SAAS;IACvD;IACA,cAAc,EACZ,SAAS;KACP;KACA;KACA;KACA;KACA;KACA;IACF,EACF;IACA,OAAO,EACL,iBAAiB,EACf,oBAAoB,KACtB,EACF;GACF,EACF,EACF;EACF;EAGA,WAAW;GACT,QAAQ,EACN,IAAI,sFACN;GACA,QAAQ,QAAQ;IACd,IAAI,KAAK,YAAY,SAAS,UAAU;IACxC,IAAI,6BAA6B,KAAK,MAAM,GAAG,OAAO;IACtD,IAAI,WAAW,iCAAiC,WAAW,0CACzD,OAAO,YAAY,+CAA+C,IAAI;IACxE,IAAI,WAAW,6BACb,OAAO,YAAY,iCAAiC,IAAI;IAC1D,IAAI,WAAW,gBAAgB,OAAO,YAAY,oBAAoB,IAAI;IAC1E,IAAI,UAAU,UAAU,OAAO,SAAS;GAC1C;EACF;EACA,gBAAgB,QAAQ;GACtB,IAAI,CAAC,OAAO,aAAa,QAAQ;IAC/B,MAAM,IAAI,MACR,+IAA+I,kBAAkB,EACnK;GACF;GACA,QAAQ,KACN,wEACF;EACF;CACF;CACA,MAAM,gBAAgB;EACpB,MAAM;EACN,OAAO;EACP,WAAW;GACT,QAAQ,EAAE,IAAI,WAAW,iBAAiB,EAAE;GAC5C,QAAQ,IAAI;IACV,IAAI,KAAK,YAAY,SAAS,UAAU;IACxC,IAAI,wCAA0B,OAAO;GACvC;EACF;EACA,MAAM;GACJ,QAAQ,EAAE,IAAI,WAAW,yBAAyB,EAAE;GACpD,UAAU;IACR,IAAI,KAAK,YAAY,SAAS,UAAU;IACxC,OAAO,8BAA8B;KACnC;KACA;KACA,YAAY,4BAA4B,OAAO;KAC/C,YAAY,WAAW,SAAS;KAChC;IACF,CAAC;GACH;EACF;EACA,UAAU,EAAE,QAAQ;GAClB,IAAI,KAAK,YAAY,SAAS,UAAU;GACxC,MAAM,QAAQ,KAAK,YAAY;GAC/B,MAAM,QAAQ,MAAM,cAAc,yBAAyB;GAC3D,IAAI,CAAC,OAAO;GACZ,MAAM,UAAU,MAAM,iBAAiB,IAAI;GAC3C,IAAI,CAAC,SAAS,MAAM;GACpB,MAAM,iBAAiB,KAAK;EAC9B;CACF;CACA,MAAM,oBAAoB,WAAW;EACnC,YAAY;EACZ,iBAAiB,EAAE,MAAM,SAAS;CACpC,CAAC,CAAC,CAAC,IAAI,SAAS;CAChB,OAAO;EAAC;EAAe;EAAe,GAAG;CAAiB;AAC5D"}
@@ -205,7 +205,7 @@ function generateWorkerdDevEntryModule(args) {
205
205
  }
206
206
  }
207
207
 
208
- import { serve, setFetchStaticHtml } from 'one/serve-worker'
208
+ import { serve } from 'one/serve-worker'
209
209
 
210
210
  const lazyRoutes = {
211
211
  serverEntry: () => import(${JSON.stringify(virtualEntryId)}),
@@ -236,50 +236,46 @@ export default {
236
236
  server = await serve(buildInfo, lazyRoutes, { disableModuleCache: true })
237
237
  }
238
238
 
239
- if (env && env.ASSETS) {
240
- setFetchStaticHtml(async (path) => {
241
- try {
242
- const assetUrl = new URL(request.url)
243
- assetUrl.pathname = path
244
- const assetResponse = await env.ASSETS.fetch(new Request(assetUrl))
245
- if (assetResponse && assetResponse.ok) {
246
- return await assetResponse.text()
247
- }
248
- } catch {}
249
- return null
250
- })
251
- }
252
-
253
- try {
254
- const response = await server.fetch(request, env, ctx)
255
-
256
- if (!response || response.status === 404) {
257
- if (env && env.ASSETS) {
239
+ const fetchStaticHtml = env && env.ASSETS
240
+ ? async (path) => {
258
241
  try {
259
- const assetResponse = await env.ASSETS.fetch(request)
260
- if (assetResponse && assetResponse.status !== 404) {
261
- return assetResponse
242
+ const assetUrl = new URL(request.url)
243
+ assetUrl.pathname = path
244
+ const assetResponse = await env.ASSETS.fetch(new Request(assetUrl))
245
+ if (assetResponse && assetResponse.ok) {
246
+ return await assetResponse.text()
262
247
  }
263
248
  } catch {}
249
+ return null
264
250
  }
265
- }
251
+ : undefined
266
252
 
267
- if (!response) {
268
- if (request.method === 'GET' || request.method === 'HEAD') {
269
- return new Response(
270
- '<!DOCTYPE html><html><head>' +
271
- ${JSON.stringify(spaPreloadScripts)} +
272
- '</head></html>',
273
- { headers: { 'content-type': 'text/html' } }
274
- )
275
- }
276
- return new Response('Not Found', { status: 404 })
253
+ const response = await server.fetch(request, env, ctx, fetchStaticHtml)
254
+
255
+ if (!response || response.status === 404) {
256
+ if (env && env.ASSETS) {
257
+ try {
258
+ const assetResponse = await env.ASSETS.fetch(request)
259
+ if (assetResponse && assetResponse.status !== 404) {
260
+ return assetResponse
261
+ }
262
+ } catch {}
277
263
  }
264
+ }
278
265
 
279
- return response
280
- } finally {
281
- setFetchStaticHtml(null)
266
+ if (!response) {
267
+ if (request.method === 'GET' || request.method === 'HEAD') {
268
+ return new Response(
269
+ '<!DOCTYPE html><html><head>' +
270
+ ${JSON.stringify(spaPreloadScripts)} +
271
+ '</head></html>',
272
+ { headers: { 'content-type': 'text/html' } }
273
+ )
274
+ }
275
+ return new Response('Not Found', { status: 404 })
282
276
  }
277
+
278
+ return response
283
279
  }
284
280
  }
285
281
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"workerdDevPlugin.native.js","names":[],"sources":["esm/vite/plugins/workerdDevPlugin.native.js"],"sourcesContent":["import { mkdirSync, writeFileSync } from \"fs\";\nimport { join, resolve } from \"path\";\nimport { pathToFileURL } from \"url\";\nimport { resolvePath } from \"@vxrn/resolve\";\nimport { cloudflare } from \"@cloudflare/vite-plugin\";\nimport { getPlatformEnvDefine } from \"@vxrn/utils\";\nimport { exactRegex } from \"rolldown/filter\";\nimport { CACHE_KEY } from \"../../constants\";\nimport { virtalEntryIdClient, virtualEntryId } from \"./virtualEntryConstants\";\nimport { getManifest } from \"../getManifest\";\nimport { getRouterRootFromOneOptions } from \"../../utils/getRouterRootFromOneOptions\";\nimport { absorbedPackageAliases } from \"../../utils/absorbedPackages\";\nimport { createCloudflareWranglerConfig, getCloudflareProjectNameSync, loadUserWranglerConfigSync, shouldEnableWorkerdDev } from \"../cloudflareWranglerConfig\";\nvar workerdDevEntryId = \"virtual:one-workerd-dev-entry\";\nvar resolvedWorkerdDevEntryId = `\\0${workerdDevEntryId}`;\nvar WORKERD_DEV_DIR = \"node_modules/.one-workerd-dev\";\nfunction serveOnly(plugin) {\n var existing = plugin.apply;\n return {\n ...plugin,\n apply(config, env) {\n if (env.command !== \"serve\") return false;\n if (typeof existing === \"function\") return existing(config, env);\n if (existing === \"build\") return false;\n return true;\n }\n };\n}\nfunction toImportHref(root, routerRoot, routeFile) {\n var rel = routeFile.replace(/^\\.\\//, \"\");\n return pathToFileURL(resolve(root, routerRoot, rel)).href;\n}\nfunction serializeImportMap(entries) {\n return entries.map(function(param) {\n var [key, href] = param;\n return ` ${JSON.stringify(key)}: () => import(${JSON.stringify(href)})`;\n }).join(\",\\n\");\n}\nfunction stripRouteForWorker(route) {\n var { layouts, middlewares, ...rest } = route;\n return {\n ...rest,\n // live-render SSG in dev the same way the node middleware does\n type: route.type === \"ssg\" ? \"ssr\" : route.type,\n layouts: layouts === null || layouts === void 0 ? void 0 : layouts.map(function(layout) {\n return {\n contextKey: layout.contextKey\n };\n }),\n middlewares: middlewares === null || middlewares === void 0 ? void 0 : middlewares.map(function(middleware) {\n return {\n contextKey: middleware.contextKey\n };\n })\n };\n}\nfunction stubRouteBuildInfo(route, preloads) {\n var _ref;\n var _route_middlewares;\n var pageType = route.type === \"ssg\" ? \"ssr\" : route.type;\n return {\n type: pageType,\n path: route.page,\n routeFile: route.file,\n middlewares: (_ref = (_route_middlewares = route.middlewares) === null || _route_middlewares === void 0 ? void 0 : _route_middlewares.map(function(middleware) {\n return middleware.contextKey;\n })) !== null && _ref !== void 0 ? _ref : [],\n preloadPath: \"\",\n cssPreloadPath: \"\",\n loaderPath: \"\",\n cleanPath: route.urlCleanPath || route.page,\n htmlPath: \"\",\n clientJsPath: \"\",\n serverJsPath: \"\",\n params: {},\n preloads,\n css: [],\n layoutCSS: []\n };\n}\nfunction generateWorkerdDevEntryModule(args) {\n var _options_router;\n var { root, options, routerRoot, routePaths, preloads } = args;\n var manifest = getManifest({\n routerRoot: resolve(root, routerRoot),\n ignoredRouteFiles: (_options_router = options.router) === null || _options_router === void 0 ? void 0 : _options_router.ignoredRouteFiles,\n routePaths\n });\n if (!manifest) {\n throw new Error(\"[one] workerd dev: no routes manifest\");\n }\n var apiImports = /* @__PURE__ */ new Map();\n var middlewareImports = /* @__PURE__ */ new Map();\n var routeToBuildInfo = {};\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = manifest.pageRoutes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var route = _step.value;\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = (route.middlewares || [])[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var middleware = _step1.value;\n if (!middleware.contextKey || middlewareImports.has(middleware.contextKey)) continue;\n middlewareImports.set(middleware.contextKey, toImportHref(root, routerRoot, middleware.contextKey));\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n if (route.file) {\n routeToBuildInfo[route.file] = stubRouteBuildInfo(route, preloads);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n for (var _iterator2 = manifest.apiRoutes[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var route1 = _step2.value;\n if (route1.file) {\n apiImports.set(route1.page, toImportHref(root, routerRoot, route1.file));\n }\n var _iteratorNormalCompletion3 = true, _didIteratorError3 = false, _iteratorError3 = void 0;\n try {\n for (var _iterator3 = (route1.middlewares || [])[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var middleware1 = _step3.value;\n if (!middleware1.contextKey || middlewareImports.has(middleware1.contextKey)) continue;\n middlewareImports.set(middleware1.contextKey, toImportHref(root, routerRoot, middleware1.contextKey));\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return != null) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n var pageRoutes = manifest.pageRoutes.map(stripRouteForWorker);\n var apiRoutes = manifest.apiRoutes.map(stripRouteForWorker);\n var buildInfo = {\n constants: {\n CACHE_KEY\n },\n oneOptions: options,\n routeToBuildInfo,\n pathToRoute: {},\n routeMap: {},\n manifest: {\n pageRoutes,\n apiRoutes,\n allRoutes: [\n ...pageRoutes,\n ...apiRoutes\n ]\n },\n preloads: Object.fromEntries(preloads.map(function(preload) {\n return [\n preload,\n true\n ];\n })),\n cssPreloads: {},\n loaders: {}\n };\n var spaPreloadScripts = preloads.map(function(preload) {\n return `<script type=\"module\" src=\"${preload}\"></script>`;\n }).join(\"\");\n return `if (typeof MessageChannel === 'undefined') {\n globalThis.MessageChannel = class MessageChannel {\n constructor() {\n this.port1 = { postMessage: () => {}, onmessage: null, close: () => {} }\n this.port2 = { postMessage: () => {}, onmessage: null, close: () => {} }\n }\n }\n}\n\nimport { serve, setFetchStaticHtml } from 'one/serve-worker'\n\nconst lazyRoutes = {\n serverEntry: () => import(${JSON.stringify(virtualEntryId)}),\n api: {\n${serializeImportMap([\n ...apiImports\n ])}\n },\n middlewares: {\n${serializeImportMap([\n ...middlewareImports\n ])}\n }\n}\n\nconst buildInfo = ${JSON.stringify(buildInfo)}\n\nlet server\n\nexport default {\n async fetch(request, env, ctx) {\n const url = new URL(request.url)\n const pathname = url.pathname\n\n if (pathname === '/status' || pathname.startsWith('/status?')) {\n return new Response('packager-status:running', {\n headers: { 'content-type': 'text/plain' },\n })\n }\n\n if (!server) {\n server = await serve(buildInfo, lazyRoutes, { disableModuleCache: true })\n }\n\n if (env && env.ASSETS) {\n setFetchStaticHtml(async (path) => {\n try {\n const assetUrl = new URL(request.url)\n assetUrl.pathname = path\n const assetResponse = await env.ASSETS.fetch(new Request(assetUrl))\n if (assetResponse && assetResponse.ok) {\n return await assetResponse.text()\n }\n } catch {}\n return null\n })\n }\n\n try {\n const response = await server.fetch(request, env, ctx)\n\n if (!response || response.status === 404) {\n if (env && env.ASSETS) {\n try {\n const assetResponse = await env.ASSETS.fetch(request)\n if (assetResponse && assetResponse.status !== 404) {\n return assetResponse\n }\n } catch {}\n }\n }\n\n if (!response) {\n if (request.method === 'GET' || request.method === 'HEAD') {\n return new Response(\n '<!DOCTYPE html><html><head>' +\n ${JSON.stringify(spaPreloadScripts)} +\n '</head></html>',\n { headers: { 'content-type': 'text/html' } }\n )\n }\n return new Response('Not Found', { status: 404 })\n }\n\n return response\n } finally {\n setFetchStaticHtml(null)\n }\n }\n}\n`;\n}\nfunction createWorkerdDevPlugins(options, root, routeIndex) {\n var _options_web, _options_web1;\n if (!shouldEnableWorkerdDev((_options_web = options.web) === null || _options_web === void 0 ? void 0 : _options_web.deploy, root)) {\n return [];\n }\n var cacheDir = join(root, WORKERD_DEV_DIR);\n var wranglerInputPath = join(cacheDir, \"_wrangler.input.jsonc\");\n var workerEntryPath = join(cacheDir, \"worker-entry.js\");\n mkdirSync(cacheDir, {\n recursive: true\n });\n writeFileSync(workerEntryPath, `export { default } from ${JSON.stringify(workerdDevEntryId)}\n`);\n var userWranglerConfig = loadUserWranglerConfigSync(root);\n var projectName = getCloudflareProjectNameSync(root);\n var wranglerInputConfig = createCloudflareWranglerConfig(projectName, userWranglerConfig === null || userWranglerConfig === void 0 ? void 0 : userWranglerConfig.config);\n wranglerInputConfig.main = \"worker-entry.js\";\n writeFileSync(wranglerInputPath, `${JSON.stringify(wranglerInputConfig, null, 2)}\n`);\n var preloads = ((_options_web1 = options.web) === null || _options_web1 === void 0 ? void 0 : _options_web1.experimentalBundledDev) ? [\n \"/bundledDevClient.mjs\",\n \"/assets/_virtual_one-entry.js\"\n ] : [\n \"/@vite/client\",\n virtalEntryIdClient\n ];\n var empty = resolvePath(\"@vxrn/utils/empty\", root);\n var absorbed = absorbedPackageAliases(root, \"web\");\n var preparePlugin = {\n name: \"one:workerd-dev-prepare\",\n apply: \"serve\",\n enforce: \"pre\",\n config() {\n return {\n environments: {\n worker: {\n define: {\n ...getPlatformEnvDefine(\"ssr\"),\n \"process.env.TAMAGUI_IS_SERVER\": JSON.stringify(\"1\"),\n \"process.env.TAMAGUI_KEEP_THEMES\": JSON.stringify(\"1\"),\n \"process.env.ONE_CACHE_KEY\": JSON.stringify(CACHE_KEY)\n },\n optimizeDeps: {\n include: [\n \"react\",\n \"react-dom\",\n \"react-dom/client\",\n \"react-dom/server.browser\",\n \"react/jsx-runtime\",\n \"react/jsx-dev-runtime\"\n ]\n },\n build: {\n rolldownOptions: {\n shimMissingExports: true\n }\n }\n }\n }\n };\n },\n // environment resolve options have no alias field; match the production\n // worker aliases with a worker-only resolveId (rolldown cannot parse RN Flow)\n resolveId: {\n filter: {\n id: /^(react-native(\\/|$|-safe-area-context$)|@react-native\\/assets-registry\\/registry$)/\n },\n handler(source) {\n if (this.environment.name !== \"worker\") return;\n if (/^react-native\\/Libraries\\//.test(source)) return empty;\n if (source === \"react-native/asset-registry\" || source === \"@react-native/assets-registry/registry\") return resolvePath(\"react-native-web/dist/modules/AssetRegistry\", root);\n if (source === \"react-native/package.json\") return resolvePath(\"react-native-web/package.json\", root);\n if (source === \"react-native\") return resolvePath(\"react-native-web\", root);\n if (source in absorbed) return absorbed[source];\n }\n },\n configureServer(server) {\n if (!server.environments.worker) {\n 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}.`);\n }\n console.info(\"[one] experimental workerd dev enabled (ONE_EXPERIMENTAL_WORKER_DEV=1)\");\n }\n };\n var virtualPlugin = {\n name: \"one:workerd-dev-entry\",\n apply: \"serve\",\n resolveId: {\n filter: {\n id: exactRegex(workerdDevEntryId)\n },\n handler(id) {\n if (this.environment.name !== \"worker\") return;\n if (id === workerdDevEntryId) return resolvedWorkerdDevEntryId;\n }\n },\n load: {\n filter: {\n id: exactRegex(resolvedWorkerdDevEntryId)\n },\n handler() {\n if (this.environment.name !== \"worker\") return;\n return generateWorkerdDevEntryModule({\n root,\n options,\n routerRoot: getRouterRootFromOneOptions(options),\n routePaths: routeIndex.getPaths(),\n preloads\n });\n }\n },\n hotUpdate(param) {\n var { file } = param;\n if (this.environment.name !== \"worker\") return;\n var graph = this.environment.moduleGraph;\n var entry = graph.getModuleById(resolvedWorkerdDevEntryId);\n if (!entry) return;\n var modules = graph.getModulesByFile(file);\n if (!(modules === null || modules === void 0 ? void 0 : modules.size)) return;\n graph.invalidateModule(entry);\n }\n };\n var cloudflarePlugins = cloudflare({\n configPath: wranglerInputPath,\n viteEnvironment: {\n name: \"worker\"\n }\n }).map(serveOnly);\n return [\n preparePlugin,\n virtualPlugin,\n ...cloudflarePlugins\n ];\n}\nexport {\n createWorkerdDevPlugins,\n generateWorkerdDevEntryModule,\n shouldEnableWorkerdDev,\n workerdDevEntryId\n};\n//# sourceMappingURL=workerdDevPlugin.js.map\n"],"mappings":";;;;;;;;;;;;;;;AAaA,IAAI,oBAAoB;AACxB,IAAI,4BAA4B,KAAK;AACrC,IAAI,kBAAkB;AACtB,SAAS,UAAU,QAAQ;CACzB,IAAI,WAAW,OAAO;CACtB,OAAO;EACL,GAAG;EACH,MAAM,QAAQ,KAAK;GACjB,IAAI,IAAI,YAAY,SAAS,OAAO;GACpC,IAAI,OAAO,aAAa,YAAY,OAAO,SAAS,QAAQ,GAAG;GAC/D,IAAI,aAAa,SAAS,OAAO;GACjC,OAAO;EACT;CACF;AACF;AACA,SAAS,aAAa,MAAM,YAAY,WAAW;CACjD,IAAI,MAAM,UAAU,QAAQ,SAAS,EAAE;CACvC,OAAO,cAAc,QAAQ,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC;AACvD;AACA,SAAS,mBAAmB,SAAS;CACnC,OAAO,QAAQ,IAAI,SAAS,OAAO;EACjC,IAAI,CAAC,KAAK,QAAQ;EAClB,OAAO,KAAK,KAAK,UAAU,GAAG,EAAE,iBAAiB,KAAK,UAAU,IAAI,EAAE;CACxE,CAAC,CAAC,CAAC,KAAK,KAAK;AACf;AACA,SAAS,oBAAoB,OAAO;CAClC,IAAI,EAAE,SAAS,aAAa,GAAG,SAAS;CACxC,OAAO;EACL,GAAG;EAEH,MAAM,MAAM,SAAS,QAAQ,QAAQ,MAAM;EAC3C,SAAS,YAAY,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,IAAI,SAAS,QAAQ;GACtF,OAAO,EACL,YAAY,OAAO,WACrB;EACF,CAAC;EACD,aAAa,gBAAgB,QAAQ,gBAAgB,KAAK,IAAI,KAAK,IAAI,YAAY,IAAI,SAAS,YAAY;GAC1G,OAAO,EACL,YAAY,WAAW,WACzB;EACF,CAAC;CACH;AACF;AACA,SAAS,mBAAmB,OAAO,UAAU;CAC3C,IAAI;CACJ,IAAI;CACJ,IAAI,WAAW,MAAM,SAAS,QAAQ,QAAQ,MAAM;CACpD,OAAO;EACL,MAAM;EACN,MAAM,MAAM;EACZ,WAAW,MAAM;EACjB,cAAc,QAAQ,qBAAqB,MAAM,iBAAiB,QAAQ,uBAAuB,KAAK,IAAI,KAAK,IAAI,mBAAmB,IAAI,SAAS,YAAY;GAC7J,OAAO,WAAW;EACpB,CAAC,OAAO,QAAQ,SAAS,KAAK,IAAI,OAAO,CAAC;EAC1C,aAAa;EACb,gBAAgB;EAChB,YAAY;EACZ,WAAW,MAAM,gBAAgB,MAAM;EACvC,UAAU;EACV,cAAc;EACd,cAAc;EACd,QAAQ,CAAC;EACT;EACA,KAAK,CAAC;EACN,WAAW,CAAC;CACd;AACF;AACA,SAAS,8BAA8B,MAAM;CAC3C,IAAI;CACJ,IAAI,EAAE,MAAM,SAAS,YAAY,YAAY,aAAa;CAC1D,IAAI,WAAW,YAAY;EACzB,YAAY,QAAQ,MAAM,UAAU;EACpC,oBAAoB,kBAAkB,QAAQ,YAAY,QAAQ,oBAAoB,KAAK,IAAI,KAAK,IAAI,gBAAgB;EACxH;CACF,CAAC;CACD,IAAI,CAAC,UAAU;EACb,MAAM,IAAI,MAAM,uCAAuC;CACzD;CACA,IAAI,6BAA6B,IAAI,IAAI;CACzC,IAAI,oCAAoC,IAAI,IAAI;CAChD,IAAI,mBAAmB,CAAC;CACxB,IAAI,4BAA4B,MAAM,oBAAoB,OAAO,iBAAiB,KAAK;CACvF,IAAI;EACF,KAAK,IAAI,YAAY,SAAS,WAAW,OAAO,SAAS,CAAC,GAAG,OAAO,EAAE,6BAA6B,QAAQ,UAAU,KAAK,EAAC,CAAE,OAAO,4BAA4B,MAAM;GACpK,IAAI,QAAQ,MAAM;GAClB,IAAI,6BAA6B,MAAM,qBAAqB,OAAO,kBAAkB,KAAK;GAC1F,IAAI;IACF,KAAK,IAAI,cAAc,MAAM,eAAe,CAAC,EAAC,CAAE,OAAO,SAAS,CAAC,GAAG,QAAQ,EAAE,8BAA8B,SAAS,WAAW,KAAK,EAAC,CAAE,OAAO,6BAA6B,MAAM;KAChL,IAAI,aAAa,OAAO;KACxB,IAAI,CAAC,WAAW,cAAc,kBAAkB,IAAI,WAAW,UAAU,GAAG;KAC5E,kBAAkB,IAAI,WAAW,YAAY,aAAa,MAAM,YAAY,WAAW,UAAU,CAAC;IACpG;GACF,SAAS,KAAK;IACZ,qBAAqB;IACrB,kBAAkB;GACpB,UAAU;IACR,IAAI;KACF,IAAI,CAAC,8BAA8B,WAAW,UAAU,MAAM;MAC5D,WAAW,OAAO;KACpB;IACF,UAAU;KACR,IAAI,oBAAoB;MACtB,MAAM;KACR;IACF;GACF;GACA,IAAI,MAAM,MAAM;IACd,iBAAiB,MAAM,QAAQ,mBAAmB,OAAO,QAAQ;GACnE;EACF;CACF,SAAS,KAAK;EACZ,oBAAoB;EACpB,iBAAiB;CACnB,UAAU;EACR,IAAI;GACF,IAAI,CAAC,6BAA6B,UAAU,UAAU,MAAM;IAC1D,UAAU,OAAO;GACnB;EACF,UAAU;GACR,IAAI,mBAAmB;IACrB,MAAM;GACR;EACF;CACF;CACA,IAAI,6BAA6B,MAAM,qBAAqB,OAAO,kBAAkB,KAAK;CAC1F,IAAI;EACF,KAAK,IAAI,aAAa,SAAS,UAAU,OAAO,SAAS,CAAC,GAAG,QAAQ,EAAE,8BAA8B,SAAS,WAAW,KAAK,EAAC,CAAE,OAAO,6BAA6B,MAAM;GACzK,IAAI,SAAS,OAAO;GACpB,IAAI,OAAO,MAAM;IACf,WAAW,IAAI,OAAO,MAAM,aAAa,MAAM,YAAY,OAAO,IAAI,CAAC;GACzE;GACA,IAAI,6BAA6B,MAAM,qBAAqB,OAAO,kBAAkB,KAAK;GAC1F,IAAI;IACF,KAAK,IAAI,cAAc,OAAO,eAAe,CAAC,EAAC,CAAE,OAAO,SAAS,CAAC,GAAG,QAAQ,EAAE,8BAA8B,SAAS,WAAW,KAAK,EAAC,CAAE,OAAO,6BAA6B,MAAM;KACjL,IAAI,cAAc,OAAO;KACzB,IAAI,CAAC,YAAY,cAAc,kBAAkB,IAAI,YAAY,UAAU,GAAG;KAC9E,kBAAkB,IAAI,YAAY,YAAY,aAAa,MAAM,YAAY,YAAY,UAAU,CAAC;IACtG;GACF,SAAS,KAAK;IACZ,qBAAqB;IACrB,kBAAkB;GACpB,UAAU;IACR,IAAI;KACF,IAAI,CAAC,8BAA8B,WAAW,UAAU,MAAM;MAC5D,WAAW,OAAO;KACpB;IACF,UAAU;KACR,IAAI,oBAAoB;MACtB,MAAM;KACR;IACF;GACF;EACF;CACF,SAAS,KAAK;EACZ,qBAAqB;EACrB,kBAAkB;CACpB,UAAU;EACR,IAAI;GACF,IAAI,CAAC,8BAA8B,WAAW,UAAU,MAAM;IAC5D,WAAW,OAAO;GACpB;EACF,UAAU;GACR,IAAI,oBAAoB;IACtB,MAAM;GACR;EACF;CACF;CACA,IAAI,aAAa,SAAS,WAAW,IAAI,mBAAmB;CAC5D,IAAI,YAAY,SAAS,UAAU,IAAI,mBAAmB;CAC1D,IAAI,YAAY;EACd,WAAW,EACT,UACF;EACA,YAAY;EACZ;EACA,aAAa,CAAC;EACd,UAAU,CAAC;EACX,UAAU;GACR;GACA;GACA,WAAW,CACT,GAAG,YACH,GAAG,SACL;EACF;EACA,UAAU,OAAO,YAAY,SAAS,IAAI,SAAS,SAAS;GAC1D,OAAO,CACL,SACA,IACF;EACF,CAAC,CAAC;EACF,aAAa,CAAC;EACd,SAAS,CAAC;CACZ;CACA,IAAI,oBAAoB,SAAS,IAAI,SAAS,SAAS;EACrD,OAAO,8BAA8B,QAAQ;CAC/C,CAAC,CAAC,CAAC,KAAK,EAAE;CACV,OAAO;;;;;;;;;;;;8BAYqB,KAAK,UAAU,cAAc,EAAE;;EAE3D,mBAAmB,CACjB,GAAG,UACL,CAAC,EAAE;;;EAGH,mBAAmB,CACjB,GAAG,iBACL,CAAC,EAAE;;;;oBAIe,KAAK,UAAU,SAAS,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAmD9B,KAAK,UAAU,iBAAiB,EAAE;;;;;;;;;;;;;;;AAelD;AACA,SAAS,wBAAwB,SAAS,MAAM,YAAY;CAC1D,IAAI,cAAc;CAClB,IAAI,CAAC,wBAAwB,eAAe,QAAQ,SAAS,QAAQ,iBAAiB,KAAK,IAAI,KAAK,IAAI,aAAa,QAAQ,IAAI,GAAG;EAClI,OAAO,CAAC;CACV;CACA,IAAI,WAAW,KAAK,MAAM,eAAe;CACzC,IAAI,oBAAoB,KAAK,UAAU,uBAAuB;CAC9D,IAAI,kBAAkB,KAAK,UAAU,iBAAiB;CACtD,UAAU,UAAU,EAClB,WAAW,KACb,CAAC;CACD,cAAc,iBAAiB,2BAA2B,KAAK,UAAU,iBAAiB,EAAE;CAC7F;CACC,IAAI,qBAAqB,2BAA2B,IAAI;CACxD,IAAI,cAAc,6BAA6B,IAAI;CACnD,IAAI,sBAAsB,+BAA+B,aAAa,uBAAuB,QAAQ,uBAAuB,KAAK,IAAI,KAAK,IAAI,mBAAmB,MAAM;CACvK,oBAAoB,OAAO;CAC3B,cAAc,mBAAmB,GAAG,KAAK,UAAU,qBAAqB,MAAM,CAAC,EAAE;CAClF;CACC,IAAI,aAAa,gBAAgB,QAAQ,SAAS,QAAQ,kBAAkB,KAAK,IAAI,KAAK,IAAI,cAAc,0BAA0B,CACpI,yBACA,+BACF,IAAI,CACF,iBACA,mBACF;CACA,IAAI,QAAQ,YAAY,qBAAqB,IAAI;CACjD,IAAI,WAAW,uBAAuB,MAAM,KAAK;CACjD,IAAI,gBAAgB;EAClB,MAAM;EACN,OAAO;EACP,SAAS;EACT,SAAS;GACP,OAAO,EACL,cAAc,EACZ,QAAQ;IACN,QAAQ;KACN,GAAG,qBAAqB,KAAK;KAC7B,iCAAiC,KAAK,UAAU,GAAG;KACnD,mCAAmC,KAAK,UAAU,GAAG;KACrD,6BAA6B,KAAK,UAAU,SAAS;IACvD;IACA,cAAc,EACZ,SAAS;KACP;KACA;KACA;KACA;KACA;KACA;IACF,EACF;IACA,OAAO,EACL,iBAAiB,EACf,oBAAoB,KACtB,EACF;GACF,EACF,EACF;EACF;EAGA,WAAW;GACT,QAAQ,EACN,IAAI,sFACN;GACA,QAAQ,QAAQ;IACd,IAAI,KAAK,YAAY,SAAS,UAAU;IACxC,IAAI,6BAA6B,KAAK,MAAM,GAAG,OAAO;IACtD,IAAI,WAAW,iCAAiC,WAAW,0CAA0C,OAAO,YAAY,+CAA+C,IAAI;IAC3K,IAAI,WAAW,6BAA6B,OAAO,YAAY,iCAAiC,IAAI;IACpG,IAAI,WAAW,gBAAgB,OAAO,YAAY,oBAAoB,IAAI;IAC1E,IAAI,UAAU,UAAU,OAAO,SAAS;GAC1C;EACF;EACA,gBAAgB,QAAQ;GACtB,IAAI,CAAC,OAAO,aAAa,QAAQ;IAC/B,MAAM,IAAI,MAAM,+IAA+I,kBAAkB,EAAE;GACrL;GACA,QAAQ,KAAK,wEAAwE;EACvF;CACF;CACA,IAAI,gBAAgB;EAClB,MAAM;EACN,OAAO;EACP,WAAW;GACT,QAAQ,EACN,IAAI,WAAW,iBAAiB,EAClC;GACA,QAAQ,IAAI;IACV,IAAI,KAAK,YAAY,SAAS,UAAU;IACxC,IAAI,wCAA0B,OAAO;GACvC;EACF;EACA,MAAM;GACJ,QAAQ,EACN,IAAI,WAAW,yBAAyB,EAC1C;GACA,UAAU;IACR,IAAI,KAAK,YAAY,SAAS,UAAU;IACxC,OAAO,8BAA8B;KACnC;KACA;KACA,YAAY,4BAA4B,OAAO;KAC/C,YAAY,WAAW,SAAS;KAChC;IACF,CAAC;GACH;EACF;EACA,UAAU,OAAO;GACf,IAAI,EAAE,SAAS;GACf,IAAI,KAAK,YAAY,SAAS,UAAU;GACxC,IAAI,QAAQ,KAAK,YAAY;GAC7B,IAAI,QAAQ,MAAM,cAAc,yBAAyB;GACzD,IAAI,CAAC,OAAO;GACZ,IAAI,UAAU,MAAM,iBAAiB,IAAI;GACzC,IAAI,EAAE,YAAY,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,OAAO;GACvE,MAAM,iBAAiB,KAAK;EAC9B;CACF;CACA,IAAI,oBAAoB,WAAW;EACjC,YAAY;EACZ,iBAAiB,EACf,MAAM,SACR;CACF,CAAC,CAAC,CAAC,IAAI,SAAS;CAChB,OAAO;EACL;EACA;EACA,GAAG;CACL;AACF"}
1
+ {"version":3,"file":"workerdDevPlugin.native.js","names":[],"sources":["esm/vite/plugins/workerdDevPlugin.native.js"],"sourcesContent":["import { mkdirSync, writeFileSync } from \"fs\";\nimport { join, resolve } from \"path\";\nimport { pathToFileURL } from \"url\";\nimport { resolvePath } from \"@vxrn/resolve\";\nimport { cloudflare } from \"@cloudflare/vite-plugin\";\nimport { getPlatformEnvDefine } from \"@vxrn/utils\";\nimport { exactRegex } from \"rolldown/filter\";\nimport { CACHE_KEY } from \"../../constants\";\nimport { virtalEntryIdClient, virtualEntryId } from \"./virtualEntryConstants\";\nimport { getManifest } from \"../getManifest\";\nimport { getRouterRootFromOneOptions } from \"../../utils/getRouterRootFromOneOptions\";\nimport { absorbedPackageAliases } from \"../../utils/absorbedPackages\";\nimport { createCloudflareWranglerConfig, getCloudflareProjectNameSync, loadUserWranglerConfigSync, shouldEnableWorkerdDev } from \"../cloudflareWranglerConfig\";\nvar workerdDevEntryId = \"virtual:one-workerd-dev-entry\";\nvar resolvedWorkerdDevEntryId = `\\0${workerdDevEntryId}`;\nvar WORKERD_DEV_DIR = \"node_modules/.one-workerd-dev\";\nfunction serveOnly(plugin) {\n var existing = plugin.apply;\n return {\n ...plugin,\n apply(config, env) {\n if (env.command !== \"serve\") return false;\n if (typeof existing === \"function\") return existing(config, env);\n if (existing === \"build\") return false;\n return true;\n }\n };\n}\nfunction toImportHref(root, routerRoot, routeFile) {\n var rel = routeFile.replace(/^\\.\\//, \"\");\n return pathToFileURL(resolve(root, routerRoot, rel)).href;\n}\nfunction serializeImportMap(entries) {\n return entries.map(function(param) {\n var [key, href] = param;\n return ` ${JSON.stringify(key)}: () => import(${JSON.stringify(href)})`;\n }).join(\",\\n\");\n}\nfunction stripRouteForWorker(route) {\n var { layouts, middlewares, ...rest } = route;\n return {\n ...rest,\n // live-render SSG in dev the same way the node middleware does\n type: route.type === \"ssg\" ? \"ssr\" : route.type,\n layouts: layouts === null || layouts === void 0 ? void 0 : layouts.map(function(layout) {\n return {\n contextKey: layout.contextKey\n };\n }),\n middlewares: middlewares === null || middlewares === void 0 ? void 0 : middlewares.map(function(middleware) {\n return {\n contextKey: middleware.contextKey\n };\n })\n };\n}\nfunction stubRouteBuildInfo(route, preloads) {\n var _ref;\n var _route_middlewares;\n var pageType = route.type === \"ssg\" ? \"ssr\" : route.type;\n return {\n type: pageType,\n path: route.page,\n routeFile: route.file,\n middlewares: (_ref = (_route_middlewares = route.middlewares) === null || _route_middlewares === void 0 ? void 0 : _route_middlewares.map(function(middleware) {\n return middleware.contextKey;\n })) !== null && _ref !== void 0 ? _ref : [],\n preloadPath: \"\",\n cssPreloadPath: \"\",\n loaderPath: \"\",\n cleanPath: route.urlCleanPath || route.page,\n htmlPath: \"\",\n clientJsPath: \"\",\n serverJsPath: \"\",\n params: {},\n preloads,\n css: [],\n layoutCSS: []\n };\n}\nfunction generateWorkerdDevEntryModule(args) {\n var _options_router;\n var { root, options, routerRoot, routePaths, preloads } = args;\n var manifest = getManifest({\n routerRoot: resolve(root, routerRoot),\n ignoredRouteFiles: (_options_router = options.router) === null || _options_router === void 0 ? void 0 : _options_router.ignoredRouteFiles,\n routePaths\n });\n if (!manifest) {\n throw new Error(\"[one] workerd dev: no routes manifest\");\n }\n var apiImports = /* @__PURE__ */ new Map();\n var middlewareImports = /* @__PURE__ */ new Map();\n var routeToBuildInfo = {};\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = manifest.pageRoutes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var route = _step.value;\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = (route.middlewares || [])[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var middleware = _step1.value;\n if (!middleware.contextKey || middlewareImports.has(middleware.contextKey)) continue;\n middlewareImports.set(middleware.contextKey, toImportHref(root, routerRoot, middleware.contextKey));\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n if (route.file) {\n routeToBuildInfo[route.file] = stubRouteBuildInfo(route, preloads);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n for (var _iterator2 = manifest.apiRoutes[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var route1 = _step2.value;\n if (route1.file) {\n apiImports.set(route1.page, toImportHref(root, routerRoot, route1.file));\n }\n var _iteratorNormalCompletion3 = true, _didIteratorError3 = false, _iteratorError3 = void 0;\n try {\n for (var _iterator3 = (route1.middlewares || [])[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var middleware1 = _step3.value;\n if (!middleware1.contextKey || middlewareImports.has(middleware1.contextKey)) continue;\n middlewareImports.set(middleware1.contextKey, toImportHref(root, routerRoot, middleware1.contextKey));\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return != null) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n var pageRoutes = manifest.pageRoutes.map(stripRouteForWorker);\n var apiRoutes = manifest.apiRoutes.map(stripRouteForWorker);\n var buildInfo = {\n constants: {\n CACHE_KEY\n },\n oneOptions: options,\n routeToBuildInfo,\n pathToRoute: {},\n routeMap: {},\n manifest: {\n pageRoutes,\n apiRoutes,\n allRoutes: [\n ...pageRoutes,\n ...apiRoutes\n ]\n },\n preloads: Object.fromEntries(preloads.map(function(preload) {\n return [\n preload,\n true\n ];\n })),\n cssPreloads: {},\n loaders: {}\n };\n var spaPreloadScripts = preloads.map(function(preload) {\n return `<script type=\"module\" src=\"${preload}\"></script>`;\n }).join(\"\");\n return `if (typeof MessageChannel === 'undefined') {\n globalThis.MessageChannel = class MessageChannel {\n constructor() {\n this.port1 = { postMessage: () => {}, onmessage: null, close: () => {} }\n this.port2 = { postMessage: () => {}, onmessage: null, close: () => {} }\n }\n }\n}\n\nimport { serve } from 'one/serve-worker'\n\nconst lazyRoutes = {\n serverEntry: () => import(${JSON.stringify(virtualEntryId)}),\n api: {\n${serializeImportMap([\n ...apiImports\n ])}\n },\n middlewares: {\n${serializeImportMap([\n ...middlewareImports\n ])}\n }\n}\n\nconst buildInfo = ${JSON.stringify(buildInfo)}\n\nlet server\n\nexport default {\n async fetch(request, env, ctx) {\n const url = new URL(request.url)\n const pathname = url.pathname\n\n if (pathname === '/status' || pathname.startsWith('/status?')) {\n return new Response('packager-status:running', {\n headers: { 'content-type': 'text/plain' },\n })\n }\n\n if (!server) {\n server = await serve(buildInfo, lazyRoutes, { disableModuleCache: true })\n }\n\n const fetchStaticHtml = env && env.ASSETS\n ? async (path) => {\n try {\n const assetUrl = new URL(request.url)\n assetUrl.pathname = path\n const assetResponse = await env.ASSETS.fetch(new Request(assetUrl))\n if (assetResponse && assetResponse.ok) {\n return await assetResponse.text()\n }\n } catch {}\n return null\n }\n : undefined\n\n const response = await server.fetch(request, env, ctx, fetchStaticHtml)\n\n if (!response || response.status === 404) {\n if (env && env.ASSETS) {\n try {\n const assetResponse = await env.ASSETS.fetch(request)\n if (assetResponse && assetResponse.status !== 404) {\n return assetResponse\n }\n } catch {}\n }\n }\n\n if (!response) {\n if (request.method === 'GET' || request.method === 'HEAD') {\n return new Response(\n '<!DOCTYPE html><html><head>' +\n ${JSON.stringify(spaPreloadScripts)} +\n '</head></html>',\n { headers: { 'content-type': 'text/html' } }\n )\n }\n return new Response('Not Found', { status: 404 })\n }\n\n return response\n }\n}\n`;\n}\nfunction createWorkerdDevPlugins(options, root, routeIndex) {\n var _options_web, _options_web1;\n if (!shouldEnableWorkerdDev((_options_web = options.web) === null || _options_web === void 0 ? void 0 : _options_web.deploy, root)) {\n return [];\n }\n var cacheDir = join(root, WORKERD_DEV_DIR);\n var wranglerInputPath = join(cacheDir, \"_wrangler.input.jsonc\");\n var workerEntryPath = join(cacheDir, \"worker-entry.js\");\n mkdirSync(cacheDir, {\n recursive: true\n });\n writeFileSync(workerEntryPath, `export { default } from ${JSON.stringify(workerdDevEntryId)}\n`);\n var userWranglerConfig = loadUserWranglerConfigSync(root);\n var projectName = getCloudflareProjectNameSync(root);\n var wranglerInputConfig = createCloudflareWranglerConfig(projectName, userWranglerConfig === null || userWranglerConfig === void 0 ? void 0 : userWranglerConfig.config);\n wranglerInputConfig.main = \"worker-entry.js\";\n writeFileSync(wranglerInputPath, `${JSON.stringify(wranglerInputConfig, null, 2)}\n`);\n var preloads = ((_options_web1 = options.web) === null || _options_web1 === void 0 ? void 0 : _options_web1.experimentalBundledDev) ? [\n \"/bundledDevClient.mjs\",\n \"/assets/_virtual_one-entry.js\"\n ] : [\n \"/@vite/client\",\n virtalEntryIdClient\n ];\n var empty = resolvePath(\"@vxrn/utils/empty\", root);\n var absorbed = absorbedPackageAliases(root, \"web\");\n var preparePlugin = {\n name: \"one:workerd-dev-prepare\",\n apply: \"serve\",\n enforce: \"pre\",\n config() {\n return {\n environments: {\n worker: {\n define: {\n ...getPlatformEnvDefine(\"ssr\"),\n \"process.env.TAMAGUI_IS_SERVER\": JSON.stringify(\"1\"),\n \"process.env.TAMAGUI_KEEP_THEMES\": JSON.stringify(\"1\"),\n \"process.env.ONE_CACHE_KEY\": JSON.stringify(CACHE_KEY)\n },\n optimizeDeps: {\n include: [\n \"react\",\n \"react-dom\",\n \"react-dom/client\",\n \"react-dom/server.browser\",\n \"react/jsx-runtime\",\n \"react/jsx-dev-runtime\"\n ]\n },\n build: {\n rolldownOptions: {\n shimMissingExports: true\n }\n }\n }\n }\n };\n },\n // environment resolve options have no alias field; match the production\n // worker aliases with a worker-only resolveId (rolldown cannot parse RN Flow)\n resolveId: {\n filter: {\n id: /^(react-native(\\/|$|-safe-area-context$)|@react-native\\/assets-registry\\/registry$)/\n },\n handler(source) {\n if (this.environment.name !== \"worker\") return;\n if (/^react-native\\/Libraries\\//.test(source)) return empty;\n if (source === \"react-native/asset-registry\" || source === \"@react-native/assets-registry/registry\") return resolvePath(\"react-native-web/dist/modules/AssetRegistry\", root);\n if (source === \"react-native/package.json\") return resolvePath(\"react-native-web/package.json\", root);\n if (source === \"react-native\") return resolvePath(\"react-native-web\", root);\n if (source in absorbed) return absorbed[source];\n }\n },\n configureServer(server) {\n if (!server.environments.worker) {\n 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}.`);\n }\n console.info(\"[one] experimental workerd dev enabled (ONE_EXPERIMENTAL_WORKER_DEV=1)\");\n }\n };\n var virtualPlugin = {\n name: \"one:workerd-dev-entry\",\n apply: \"serve\",\n resolveId: {\n filter: {\n id: exactRegex(workerdDevEntryId)\n },\n handler(id) {\n if (this.environment.name !== \"worker\") return;\n if (id === workerdDevEntryId) return resolvedWorkerdDevEntryId;\n }\n },\n load: {\n filter: {\n id: exactRegex(resolvedWorkerdDevEntryId)\n },\n handler() {\n if (this.environment.name !== \"worker\") return;\n return generateWorkerdDevEntryModule({\n root,\n options,\n routerRoot: getRouterRootFromOneOptions(options),\n routePaths: routeIndex.getPaths(),\n preloads\n });\n }\n },\n hotUpdate(param) {\n var { file } = param;\n if (this.environment.name !== \"worker\") return;\n var graph = this.environment.moduleGraph;\n var entry = graph.getModuleById(resolvedWorkerdDevEntryId);\n if (!entry) return;\n var modules = graph.getModulesByFile(file);\n if (!(modules === null || modules === void 0 ? void 0 : modules.size)) return;\n graph.invalidateModule(entry);\n }\n };\n var cloudflarePlugins = cloudflare({\n configPath: wranglerInputPath,\n viteEnvironment: {\n name: \"worker\"\n }\n }).map(serveOnly);\n return [\n preparePlugin,\n virtualPlugin,\n ...cloudflarePlugins\n ];\n}\nexport {\n createWorkerdDevPlugins,\n generateWorkerdDevEntryModule,\n shouldEnableWorkerdDev,\n workerdDevEntryId\n};\n//# sourceMappingURL=workerdDevPlugin.js.map\n"],"mappings":"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"}