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.
- package/android/src/main/java/com/margelo/nitro/one/HybridOneAudio.kt +309 -124
- package/dist/cjs/cli/build.cjs +31 -33
- package/dist/cjs/cli/build.native.cjs +31 -33
- package/dist/cjs/cli/build.native.js +31 -33
- package/dist/cjs/cli/build.native.js.map +1 -1
- package/dist/cjs/cli/buildPage.cjs +11 -7
- package/dist/cjs/cli/buildPage.native.cjs +11 -7
- package/dist/cjs/cli/buildPage.native.js +11 -7
- package/dist/cjs/cli/buildPage.native.js.map +1 -1
- package/dist/cjs/cli/buildPageWorker.cjs +1 -1
- package/dist/cjs/cli/buildPageWorker.native.cjs +1 -1
- package/dist/cjs/cli/buildPageWorker.native.js +1 -1
- package/dist/cjs/cli/buildPageWorker.native.js.map +1 -1
- package/dist/cjs/headless-server.cjs +2 -5
- package/dist/cjs/headless-server.native.cjs +2 -5
- package/dist/cjs/headless-server.native.js +2 -5
- package/dist/cjs/headless-server.native.js.map +1 -1
- package/dist/cjs/platform/audio/index.cjs +83 -76
- package/dist/cjs/platform/audio/index.native.cjs +2 -2
- package/dist/cjs/platform/audio/index.native.js +2 -2
- package/dist/cjs/platform/audio/index.native.js.map +1 -1
- package/dist/cjs/platform/audio/nowPlaying.cjs +126 -0
- package/dist/cjs/platform/audio/nowPlaying.native.cjs +160 -0
- package/dist/cjs/platform/audio/nowPlaying.native.js +162 -0
- package/dist/cjs/platform/audio/nowPlaying.native.js.map +1 -0
- package/dist/cjs/platform/audio/player.cjs +15 -0
- package/dist/cjs/platform/audio/player.native.cjs +14 -0
- package/dist/cjs/platform/audio/player.native.js +14 -0
- package/dist/cjs/platform/audio/player.native.js.map +1 -1
- package/dist/cjs/platform/audio/unavailable.cjs +1 -1
- package/dist/cjs/platform/audio/unavailable.native.cjs +1 -1
- package/dist/cjs/platform/audio/unavailable.native.js +1 -1
- package/dist/cjs/platform/audio/unavailable.native.js.map +1 -1
- package/dist/cjs/platform/location/index.native.cjs +9 -2
- package/dist/cjs/platform/location/index.native.js +9 -2
- package/dist/cjs/platform/location/index.native.js.map +1 -1
- package/dist/cjs/serve-worker.cjs +0 -3
- package/dist/cjs/serve-worker.native.cjs +0 -3
- package/dist/cjs/serve-worker.native.js +0 -3
- package/dist/cjs/serve-worker.native.js.map +1 -1
- package/dist/cjs/server/oneServe.cjs +0 -6
- package/dist/cjs/server/oneServe.native.cjs +0 -6
- package/dist/cjs/server/oneServe.native.js +0 -6
- package/dist/cjs/server/oneServe.native.js.map +1 -1
- package/dist/cjs/server/workerHandler.cjs +12 -10
- package/dist/cjs/server/workerHandler.native.cjs +14 -10
- package/dist/cjs/server/workerHandler.native.js +14 -10
- package/dist/cjs/server/workerHandler.native.js.map +1 -1
- package/dist/cjs/vite/plugins/workerdDevPlugin.cjs +33 -37
- package/dist/cjs/vite/plugins/workerdDevPlugin.native.cjs +33 -37
- package/dist/cjs/vite/plugins/workerdDevPlugin.native.js +33 -37
- package/dist/cjs/vite/plugins/workerdDevPlugin.native.js.map +1 -1
- package/dist/esm/cli/build.mjs +31 -33
- package/dist/esm/cli/build.mjs.map +1 -1
- package/dist/esm/cli/build.native.js +31 -33
- package/dist/esm/cli/build.native.js.map +1 -1
- package/dist/esm/cli/buildPage.mjs +11 -7
- package/dist/esm/cli/buildPage.mjs.map +1 -1
- package/dist/esm/cli/buildPage.native.js +11 -7
- package/dist/esm/cli/buildPage.native.js.map +1 -1
- package/dist/esm/cli/buildPageWorker.mjs +1 -1
- package/dist/esm/cli/buildPageWorker.mjs.map +1 -1
- package/dist/esm/cli/buildPageWorker.native.js +1 -1
- package/dist/esm/cli/buildPageWorker.native.js.map +1 -1
- package/dist/esm/headless-server.mjs +2 -3
- package/dist/esm/headless-server.mjs.map +1 -1
- package/dist/esm/headless-server.native.js +2 -3
- package/dist/esm/headless-server.native.js.map +1 -1
- package/dist/esm/platform/audio/index.mjs +83 -76
- package/dist/esm/platform/audio/index.mjs.map +1 -1
- package/dist/esm/platform/audio/index.native.js +2 -2
- package/dist/esm/platform/audio/index.native.js.map +1 -1
- package/dist/esm/platform/audio/nowPlaying.mjs +102 -0
- package/dist/esm/platform/audio/nowPlaying.mjs.map +1 -0
- package/dist/esm/platform/audio/nowPlaying.native.js +134 -0
- package/dist/esm/platform/audio/nowPlaying.native.js.map +1 -0
- package/dist/esm/platform/audio/player.mjs +15 -0
- package/dist/esm/platform/audio/player.mjs.map +1 -1
- package/dist/esm/platform/audio/player.native.js +14 -0
- package/dist/esm/platform/audio/player.native.js.map +1 -1
- package/dist/esm/platform/audio/unavailable.mjs +1 -1
- package/dist/esm/platform/audio/unavailable.mjs.map +1 -1
- package/dist/esm/platform/audio/unavailable.native.js +1 -1
- package/dist/esm/platform/audio/unavailable.native.js.map +1 -1
- package/dist/esm/platform/location/index.native.js +9 -2
- package/dist/esm/platform/location/index.native.js.map +1 -1
- package/dist/esm/serve-worker.mjs +1 -2
- package/dist/esm/serve-worker.mjs.map +1 -1
- package/dist/esm/serve-worker.native.js +1 -2
- package/dist/esm/serve-worker.native.js.map +1 -1
- package/dist/esm/server/oneServe.mjs +0 -6
- package/dist/esm/server/oneServe.mjs.map +1 -1
- package/dist/esm/server/oneServe.native.js +0 -6
- package/dist/esm/server/oneServe.native.js.map +1 -1
- package/dist/esm/server/workerHandler.mjs +12 -10
- package/dist/esm/server/workerHandler.mjs.map +1 -1
- package/dist/esm/server/workerHandler.native.js +14 -10
- package/dist/esm/server/workerHandler.native.js.map +1 -1
- package/dist/esm/vite/plugins/workerdDevPlugin.mjs +33 -37
- package/dist/esm/vite/plugins/workerdDevPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/workerdDevPlugin.native.js +33 -37
- package/dist/esm/vite/plugins/workerdDevPlugin.native.js.map +1 -1
- package/ios/Nitro/HybridOneAudio.swift +309 -96
- package/nitrogen/generated/android/c++/JAudioPlayOptions.hpp +61 -0
- package/nitrogen/generated/android/c++/JAudioRemoteCommandEvent.hpp +8 -3
- package/nitrogen/generated/android/c++/JFunc_void_AudioRemoteCommandEvent.hpp +1 -0
- package/nitrogen/generated/android/c++/JHybridOneAudioSpec.cpp +37 -3
- package/nitrogen/generated/android/c++/JHybridOneAudioSpec.hpp +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/one/AudioPlayOptions.kt +56 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/one/AudioRemoteCommandEvent.kt +9 -4
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/one/HybridOneAudioSpec.kt +40 -32
- package/nitrogen/generated/ios/One-Swift-Cxx-Umbrella.hpp +3 -0
- package/nitrogen/generated/ios/c++/HybridOneAudioSpecSwift.hpp +21 -2
- package/nitrogen/generated/ios/swift/AudioPlayOptions.swift +60 -0
- package/nitrogen/generated/ios/swift/AudioRemoteCommandEvent.swift +19 -1
- package/nitrogen/generated/ios/swift/HybridOneAudioSpec.swift +3 -1
- package/nitrogen/generated/ios/swift/HybridOneAudioSpec_cxx.swift +70 -32
- package/nitrogen/generated/shared/c++/AudioPlayOptions.hpp +87 -0
- package/nitrogen/generated/shared/c++/AudioRemoteCommandEvent.hpp +7 -2
- package/nitrogen/generated/shared/c++/HybridOneAudioSpec.cpp +2 -0
- package/nitrogen/generated/shared/c++/HybridOneAudioSpec.hpp +6 -1
- package/package.json +16 -16
- package/src/cli/build.ts +35 -32
- package/src/cli/buildPage.test.ts +152 -0
- package/src/cli/buildPage.ts +14 -9
- package/src/cli/buildPageWorker.ts +2 -1
- package/src/cli/workerPool.ts +1 -0
- package/src/headless-server.ts +2 -2
- package/src/index.ts +1 -0
- package/src/platform/audio/index.native.ts +4 -2
- package/src/platform/audio/index.ts +102 -74
- package/src/platform/audio/nowPlaying.ts +122 -0
- package/src/platform/audio/player.native.ts +17 -1
- package/src/platform/audio/player.ts +23 -1
- package/src/platform/audio/types.ts +6 -1
- package/src/platform/audio/unavailable.ts +3 -1
- package/src/platform/index.native.ts +1 -0
- package/src/platform/index.ts +1 -0
- package/src/platform/location/index.native.ts +14 -3
- package/src/platform/specs/OneAudio.nitro.ts +11 -1
- package/src/serve-worker.ts +2 -3
- package/src/server/oneServe.ts +0 -6
- package/src/server/workerHandler.ts +34 -18
- package/src/vite/plugins/workerdDevPlugin.ts +33 -37
- package/src/vite/resolveResponse.ts +2 -2
- package/types/cli/build.d.ts.map +1 -1
- package/types/cli/buildPage.d.ts +1 -1
- package/types/cli/buildPage.d.ts.map +1 -1
- package/types/cli/workerPool.d.ts +1 -0
- package/types/cli/workerPool.d.ts.map +1 -1
- package/types/headless-server.d.ts +3 -3
- package/types/headless-server.d.ts.map +1 -1
- package/types/index.d.ts +1 -1
- package/types/index.d.ts.map +1 -1
- package/types/platform/audio/index.d.ts +2 -2
- package/types/platform/audio/index.d.ts.map +1 -1
- package/types/platform/audio/index.native.d.ts +3 -3
- package/types/platform/audio/index.native.d.ts.map +1 -1
- package/types/platform/audio/nowPlaying.d.ts +12 -0
- package/types/platform/audio/nowPlaying.d.ts.map +1 -0
- package/types/platform/audio/player.d.ts +3 -1
- package/types/platform/audio/player.d.ts.map +1 -1
- package/types/platform/audio/player.native.d.ts +3 -1
- package/types/platform/audio/player.native.d.ts.map +1 -1
- package/types/platform/audio/types.d.ts +3 -1
- package/types/platform/audio/types.d.ts.map +1 -1
- package/types/platform/audio/unavailable.d.ts +3 -3
- package/types/platform/audio/unavailable.d.ts.map +1 -1
- package/types/platform/index.d.ts +1 -1
- package/types/platform/index.d.ts.map +1 -1
- package/types/platform/index.native.d.ts +1 -1
- package/types/platform/index.native.d.ts.map +1 -1
- package/types/platform/location/index.native.d.ts.map +1 -1
- package/types/platform/specs/OneAudio.nitro.d.ts +8 -1
- package/types/platform/specs/OneAudio.nitro.d.ts.map +1 -1
- package/types/serve-worker.d.ts +3 -3
- package/types/serve-worker.d.ts.map +1 -1
- package/types/server/oneServe.d.ts.map +1 -1
- package/types/server/workerHandler.d.ts +1 -1
- package/types/server/workerHandler.d.ts.map +1 -1
- package/types/vite/plugins/workerdDevPlugin.d.ts.map +1 -1
- package/types/vite/resolveResponse.d.ts +1 -1
- package/types/vite/resolveResponse.d.ts.map +1 -1
- package/dist/cjs/server/staticHtmlFetcher.cjs +0 -33
- package/dist/cjs/server/staticHtmlFetcher.native.cjs +0 -35
- package/dist/cjs/server/staticHtmlFetcher.native.js +0 -37
- package/dist/cjs/server/staticHtmlFetcher.native.js.map +0 -1
- package/dist/esm/server/staticHtmlFetcher.mjs +0 -10
- package/dist/esm/server/staticHtmlFetcher.mjs.map +0 -1
- package/dist/esm/server/staticHtmlFetcher.native.js +0 -10
- package/dist/esm/server/staticHtmlFetcher.native.js.map +0 -1
- package/src/server/staticHtmlFetcher.ts +0 -12
- package/types/server/staticHtmlFetcher.d.ts +0 -3
- 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
|
|
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
|
-
|
|
156
|
-
|
|
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
|
|
176
|
-
|
|
177
|
-
|
|
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
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
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
|
-
|
|
196
|
-
|
|
197
|
-
|
|
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":"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"}
|
|
@@ -205,7 +205,7 @@ function generateWorkerdDevEntryModule(args) {
|
|
|
205
205
|
}
|
|
206
206
|
}
|
|
207
207
|
|
|
208
|
-
import { serve
|
|
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
|
-
|
|
240
|
-
|
|
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
|
|
260
|
-
|
|
261
|
-
|
|
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
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
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
|
-
|
|
280
|
-
|
|
281
|
-
|
|
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":"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"}
|
|
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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"}
|