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
@@ -345,6 +345,7 @@ async function build(args) {
345
345
  const cssFileContentsCache = /* @__PURE__ */ new Map();
346
346
  const criticalCSSOutputPaths = (0, import_criticalCSSPlugin.getCriticalCSSOutputPaths)(vxrnOutput.clientManifest);
347
347
  const limit = (0, import_pLimit.pLimit)(buildConcurrency);
348
+ const skipNativeLoaders = oneOptions.native === false;
348
349
  const useWorkers = shouldUseWorkers(oneOptions);
349
350
  const workerPool = useWorkers ? (0, import_workerPool.getWorkerPool)(buildConcurrency) : null;
350
351
  if (workerPool) {
@@ -633,7 +634,8 @@ async function build(args) {
633
634
  criticalPreloads,
634
635
  deferredPreloads,
635
636
  useAfterLCP,
636
- useAfterLCPAggressive
637
+ useAfterLCPAggressive,
638
+ skipNativeLoaders
637
639
  }).then((built) => ({
638
640
  built,
639
641
  path
@@ -642,7 +644,7 @@ async function build(args) {
642
644
  return limit(async () => {
643
645
  console.info(` \u21A6 route ${path}`);
644
646
  const built = await (0, import_one_server_only.runWithAsyncLocalContext)(async () => {
645
- return await (0, import_buildPage.buildPage)(vxrnOutput.serverEntry, routerRoot, path, relativeId, params, foundRoute, clientManifestEntry, staticDir, clientDir, builtMiddlewares, serverJsPath, preloads2, allCSS, layoutCSS, routePreloads, allCSSContents, criticalPreloads, deferredPreloads, useAfterLCP, useAfterLCPAggressive);
647
+ return await (0, import_buildPage.buildPage)(vxrnOutput.serverEntry, routerRoot, path, relativeId, params, foundRoute, clientManifestEntry, staticDir, clientDir, builtMiddlewares, serverJsPath, preloads2, allCSS, layoutCSS, routePreloads, allCSSContents, criticalPreloads, deferredPreloads, useAfterLCP, useAfterLCPAggressive, skipNativeLoaders);
646
648
  });
647
649
  return {
648
650
  built,
@@ -818,7 +820,7 @@ if (typeof MessageChannel === 'undefined') {
818
820
  }
819
821
  }
820
822
 
821
- import { serve, setFetchStaticHtml, withRange } from 'one/serve-worker'
823
+ import { serve, withRange } from 'one/serve-worker'
822
824
 
823
825
  // Lazy import map - modules load on-demand when route is matched
824
826
  const lazyRoutes = {
@@ -841,44 +843,40 @@ export default {
841
843
  server = await serve(buildInfo, lazyRoutes)
842
844
  }
843
845
 
844
- // set up static HTML fetcher for this request (uses ASSETS binding)
845
- if (env.ASSETS) {
846
- setFetchStaticHtml(async (path) => {
847
- try {
848
- const url = new URL(request.url)
849
- url.pathname = path
850
- const assetResponse = await env.ASSETS.fetch(new Request(url))
851
- if (assetResponse && assetResponse.ok) {
852
- return await assetResponse.text()
846
+ // keep the asset binding and origin scoped to this request
847
+ const fetchStaticHtml = env.ASSETS
848
+ ? async (path) => {
849
+ try {
850
+ const url = new URL(request.url)
851
+ url.pathname = path
852
+ const assetResponse = await env.ASSETS.fetch(new Request(url))
853
+ if (assetResponse && assetResponse.ok) {
854
+ return await assetResponse.text()
855
+ }
856
+ } catch (e) {
857
+ // asset not found
853
858
  }
854
- } catch (e) {
855
- // asset not found
859
+ return null
856
860
  }
857
- return null
858
- })
859
- }
861
+ : undefined
860
862
 
861
- try {
862
- const response = await server.fetch(request, env, ctx)
863
+ const response = await server.fetch(request, env, ctx, fetchStaticHtml)
863
864
 
864
- // no route matched or 404 \u2192 try static assets
865
- if (!response || response.status === 404) {
866
- if (env.ASSETS) {
867
- try {
868
- const assetResponse = await env.ASSETS.fetch(request)
869
- if (assetResponse && assetResponse.status !== 404) {
870
- return await withRange(request, assetResponse)
871
- }
872
- } catch (e) {
873
- // asset not found, continue with original response
865
+ // no route matched or 404 \u2192 try static assets
866
+ if (!response || response.status === 404) {
867
+ if (env.ASSETS) {
868
+ try {
869
+ const assetResponse = await env.ASSETS.fetch(request)
870
+ if (assetResponse && assetResponse.status !== 404) {
871
+ return await withRange(request, assetResponse)
874
872
  }
873
+ } catch (e) {
874
+ // asset not found, continue with original response
875
875
  }
876
876
  }
877
-
878
- return response
879
- } finally {
880
- setFetchStaticHtml(null)
881
877
  }
878
+
879
+ return response
882
880
  }
883
881
  }
884
882
  `;
@@ -426,6 +426,7 @@ async function build(args) {
426
426
  var cssFileContentsCache = /* @__PURE__ */ new Map();
427
427
  var criticalCSSOutputPaths = (0, import_criticalCSSPlugin.getCriticalCSSOutputPaths)(vxrnOutput.clientManifest);
428
428
  var limit = (0, import_pLimit.pLimit)(buildConcurrency);
429
+ var skipNativeLoaders = oneOptions.native === false;
429
430
  var useWorkers = shouldUseWorkers(oneOptions);
430
431
  var workerPool = useWorkers ? (0, import_workerPool.getWorkerPool)(buildConcurrency) : null;
431
432
  if (workerPool) {
@@ -956,7 +957,8 @@ async function build(args) {
956
957
  criticalPreloads,
957
958
  deferredPreloads,
958
959
  useAfterLCP,
959
- useAfterLCPAggressive
960
+ useAfterLCPAggressive,
961
+ skipNativeLoaders
960
962
  }).then(function(built2) {
961
963
  return {
962
964
  built: built2,
@@ -967,7 +969,7 @@ async function build(args) {
967
969
  return limit(async function() {
968
970
  console.info(` \u21A6 route ${path2}`);
969
971
  var built2 = await (0, import_one_server_only.runWithAsyncLocalContext)(async function() {
970
- return await (0, import_buildPage.buildPage)(vxrnOutput.serverEntry, routerRoot, path2, relativeId1, params, foundRoute, clientManifestEntry, staticDir, clientDir, builtMiddlewares, serverJsPath, preloads2, allCSS, layoutCSS, routePreloads, allCSSContents, criticalPreloads, deferredPreloads, useAfterLCP, useAfterLCPAggressive);
972
+ return await (0, import_buildPage.buildPage)(vxrnOutput.serverEntry, routerRoot, path2, relativeId1, params, foundRoute, clientManifestEntry, staticDir, clientDir, builtMiddlewares, serverJsPath, preloads2, allCSS, layoutCSS, routePreloads, allCSSContents, criticalPreloads, deferredPreloads, useAfterLCP, useAfterLCPAggressive, skipNativeLoaders);
971
973
  });
972
974
  return {
973
975
  built: built2,
@@ -1267,7 +1269,7 @@ if (typeof MessageChannel === 'undefined') {
1267
1269
  }
1268
1270
  }
1269
1271
 
1270
- import { serve, setFetchStaticHtml, withRange } from 'one/serve-worker'
1272
+ import { serve, withRange } from 'one/serve-worker'
1271
1273
 
1272
1274
  // Lazy import map - modules load on-demand when route is matched
1273
1275
  const lazyRoutes = {
@@ -1290,44 +1292,40 @@ export default {
1290
1292
  server = await serve(buildInfo, lazyRoutes)
1291
1293
  }
1292
1294
 
1293
- // set up static HTML fetcher for this request (uses ASSETS binding)
1294
- if (env.ASSETS) {
1295
- setFetchStaticHtml(async (path) => {
1296
- try {
1297
- const url = new URL(request.url)
1298
- url.pathname = path
1299
- const assetResponse = await env.ASSETS.fetch(new Request(url))
1300
- if (assetResponse && assetResponse.ok) {
1301
- return await assetResponse.text()
1295
+ // keep the asset binding and origin scoped to this request
1296
+ const fetchStaticHtml = env.ASSETS
1297
+ ? async (path) => {
1298
+ try {
1299
+ const url = new URL(request.url)
1300
+ url.pathname = path
1301
+ const assetResponse = await env.ASSETS.fetch(new Request(url))
1302
+ if (assetResponse && assetResponse.ok) {
1303
+ return await assetResponse.text()
1304
+ }
1305
+ } catch (e) {
1306
+ // asset not found
1302
1307
  }
1303
- } catch (e) {
1304
- // asset not found
1308
+ return null
1305
1309
  }
1306
- return null
1307
- })
1308
- }
1310
+ : undefined
1309
1311
 
1310
- try {
1311
- const response = await server.fetch(request, env, ctx)
1312
+ const response = await server.fetch(request, env, ctx, fetchStaticHtml)
1312
1313
 
1313
- // no route matched or 404 \u2192 try static assets
1314
- if (!response || response.status === 404) {
1315
- if (env.ASSETS) {
1316
- try {
1317
- const assetResponse = await env.ASSETS.fetch(request)
1318
- if (assetResponse && assetResponse.status !== 404) {
1319
- return await withRange(request, assetResponse)
1320
- }
1321
- } catch (e) {
1322
- // asset not found, continue with original response
1314
+ // no route matched or 404 \u2192 try static assets
1315
+ if (!response || response.status === 404) {
1316
+ if (env.ASSETS) {
1317
+ try {
1318
+ const assetResponse = await env.ASSETS.fetch(request)
1319
+ if (assetResponse && assetResponse.status !== 404) {
1320
+ return await withRange(request, assetResponse)
1323
1321
  }
1322
+ } catch (e) {
1323
+ // asset not found, continue with original response
1324
1324
  }
1325
1325
  }
1326
-
1327
- return response
1328
- } finally {
1329
- setFetchStaticHtml(null)
1330
1326
  }
1327
+
1328
+ return response
1331
1329
  }
1332
1330
  }
1333
1331
  `;
@@ -426,6 +426,7 @@ async function build(args) {
426
426
  var cssFileContentsCache = /* @__PURE__ */ new Map();
427
427
  var criticalCSSOutputPaths = (0, import_criticalCSSPlugin.getCriticalCSSOutputPaths)(vxrnOutput.clientManifest);
428
428
  var limit = (0, import_pLimit.pLimit)(buildConcurrency);
429
+ var skipNativeLoaders = oneOptions.native === false;
429
430
  var useWorkers = shouldUseWorkers(oneOptions);
430
431
  var workerPool = useWorkers ? (0, import_workerPool.getWorkerPool)(buildConcurrency) : null;
431
432
  if (workerPool) {
@@ -956,7 +957,8 @@ async function build(args) {
956
957
  criticalPreloads,
957
958
  deferredPreloads,
958
959
  useAfterLCP,
959
- useAfterLCPAggressive
960
+ useAfterLCPAggressive,
961
+ skipNativeLoaders
960
962
  }).then(function(built2) {
961
963
  return {
962
964
  built: built2,
@@ -967,7 +969,7 @@ async function build(args) {
967
969
  return limit(async function() {
968
970
  console.info(` \u21A6 route ${path2}`);
969
971
  var built2 = await (0, import_one_server_only.runWithAsyncLocalContext)(async function() {
970
- return await (0, import_buildPage.buildPage)(vxrnOutput.serverEntry, routerRoot, path2, relativeId1, params, foundRoute, clientManifestEntry, staticDir, clientDir, builtMiddlewares, serverJsPath, preloads2, allCSS, layoutCSS, routePreloads, allCSSContents, criticalPreloads, deferredPreloads, useAfterLCP, useAfterLCPAggressive);
972
+ return await (0, import_buildPage.buildPage)(vxrnOutput.serverEntry, routerRoot, path2, relativeId1, params, foundRoute, clientManifestEntry, staticDir, clientDir, builtMiddlewares, serverJsPath, preloads2, allCSS, layoutCSS, routePreloads, allCSSContents, criticalPreloads, deferredPreloads, useAfterLCP, useAfterLCPAggressive, skipNativeLoaders);
971
973
  });
972
974
  return {
973
975
  built: built2,
@@ -1267,7 +1269,7 @@ if (typeof MessageChannel === 'undefined') {
1267
1269
  }
1268
1270
  }
1269
1271
 
1270
- import { serve, setFetchStaticHtml, withRange } from 'one/serve-worker'
1272
+ import { serve, withRange } from 'one/serve-worker'
1271
1273
 
1272
1274
  // Lazy import map - modules load on-demand when route is matched
1273
1275
  const lazyRoutes = {
@@ -1290,44 +1292,40 @@ export default {
1290
1292
  server = await serve(buildInfo, lazyRoutes)
1291
1293
  }
1292
1294
 
1293
- // set up static HTML fetcher for this request (uses ASSETS binding)
1294
- if (env.ASSETS) {
1295
- setFetchStaticHtml(async (path) => {
1296
- try {
1297
- const url = new URL(request.url)
1298
- url.pathname = path
1299
- const assetResponse = await env.ASSETS.fetch(new Request(url))
1300
- if (assetResponse && assetResponse.ok) {
1301
- return await assetResponse.text()
1295
+ // keep the asset binding and origin scoped to this request
1296
+ const fetchStaticHtml = env.ASSETS
1297
+ ? async (path) => {
1298
+ try {
1299
+ const url = new URL(request.url)
1300
+ url.pathname = path
1301
+ const assetResponse = await env.ASSETS.fetch(new Request(url))
1302
+ if (assetResponse && assetResponse.ok) {
1303
+ return await assetResponse.text()
1304
+ }
1305
+ } catch (e) {
1306
+ // asset not found
1302
1307
  }
1303
- } catch (e) {
1304
- // asset not found
1308
+ return null
1305
1309
  }
1306
- return null
1307
- })
1308
- }
1310
+ : undefined
1309
1311
 
1310
- try {
1311
- const response = await server.fetch(request, env, ctx)
1312
+ const response = await server.fetch(request, env, ctx, fetchStaticHtml)
1312
1313
 
1313
- // no route matched or 404 \u2192 try static assets
1314
- if (!response || response.status === 404) {
1315
- if (env.ASSETS) {
1316
- try {
1317
- const assetResponse = await env.ASSETS.fetch(request)
1318
- if (assetResponse && assetResponse.status !== 404) {
1319
- return await withRange(request, assetResponse)
1320
- }
1321
- } catch (e) {
1322
- // asset not found, continue with original response
1314
+ // no route matched or 404 \u2192 try static assets
1315
+ if (!response || response.status === 404) {
1316
+ if (env.ASSETS) {
1317
+ try {
1318
+ const assetResponse = await env.ASSETS.fetch(request)
1319
+ if (assetResponse && assetResponse.status !== 404) {
1320
+ return await withRange(request, assetResponse)
1323
1321
  }
1322
+ } catch (e) {
1323
+ // asset not found, continue with original response
1324
1324
  }
1325
1325
  }
1326
-
1327
- return response
1328
- } finally {
1329
- setFetchStaticHtml(null)
1330
1326
  }
1327
+
1328
+ return response
1331
1329
  }
1332
1330
  }
1333
1331
  `;