@nimbus-sh/worker 0.1.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 (408) hide show
  1. package/README.md +219 -0
  2. package/dist/_shared/bytes.d.ts +18 -0
  3. package/dist/_shared/bytes.d.ts.map +1 -0
  4. package/dist/_shared/bytes.js +17 -0
  5. package/dist/_shared/cache-stats.d.ts +146 -0
  6. package/dist/_shared/cache-stats.d.ts.map +1 -0
  7. package/dist/_shared/cache-stats.js +162 -0
  8. package/dist/_shared/exports-resolver.d.ts +76 -0
  9. package/dist/_shared/exports-resolver.d.ts.map +1 -0
  10. package/dist/_shared/exports-resolver.js +284 -0
  11. package/dist/_shared/install-phase.d.ts +47 -0
  12. package/dist/_shared/install-phase.d.ts.map +1 -0
  13. package/dist/_shared/install-phase.js +1 -0
  14. package/dist/_shared/real-node-imports.d.ts +38 -0
  15. package/dist/_shared/real-node-imports.d.ts.map +1 -0
  16. package/dist/_shared/real-node-imports.js +46 -0
  17. package/dist/_shared/retry.d.ts +93 -0
  18. package/dist/_shared/retry.d.ts.map +1 -0
  19. package/dist/_shared/retry.js +161 -0
  20. package/dist/_shared/session-id.d.ts +39 -0
  21. package/dist/_shared/session-id.d.ts.map +1 -0
  22. package/dist/_shared/session-id.js +127 -0
  23. package/dist/_shared/session-router.d.ts +104 -0
  24. package/dist/_shared/session-router.d.ts.map +1 -0
  25. package/dist/_shared/session-router.js +165 -0
  26. package/dist/_shared/w7-frame.d.ts +93 -0
  27. package/dist/_shared/w7-frame.d.ts.map +1 -0
  28. package/dist/_shared/w7-frame.js +402 -0
  29. package/dist/auth/index.d.ts +16 -0
  30. package/dist/auth/index.d.ts.map +1 -0
  31. package/dist/auth/index.js +15 -0
  32. package/dist/auth/middleware.d.ts +85 -0
  33. package/dist/auth/middleware.d.ts.map +1 -0
  34. package/dist/auth/middleware.js +150 -0
  35. package/dist/auth/token.d.ts +96 -0
  36. package/dist/auth/token.d.ts.map +1 -0
  37. package/dist/auth/token.js +226 -0
  38. package/dist/auth/types.d.ts +141 -0
  39. package/dist/auth/types.d.ts.map +1 -0
  40. package/dist/auth/types.js +114 -0
  41. package/dist/bindings/d1.d.ts +102 -0
  42. package/dist/bindings/d1.d.ts.map +1 -0
  43. package/dist/bindings/d1.js +549 -0
  44. package/dist/bindings/kv.d.ts +82 -0
  45. package/dist/bindings/kv.d.ts.map +1 -0
  46. package/dist/bindings/kv.js +290 -0
  47. package/dist/bindings/r2.d.ts +137 -0
  48. package/dist/bindings/r2.d.ts.map +1 -0
  49. package/dist/bindings/r2.js +379 -0
  50. package/dist/cirrus-npm-cjs.generated.d.ts +17 -0
  51. package/dist/cirrus-npm-cjs.generated.d.ts.map +1 -0
  52. package/dist/cirrus-npm-cjs.generated.js +41 -0
  53. package/dist/cirrus-plugin-react.generated.d.ts +34 -0
  54. package/dist/cirrus-plugin-react.generated.d.ts.map +1 -0
  55. package/dist/cirrus-plugin-react.generated.js +33 -0
  56. package/dist/constants.d.ts +34 -0
  57. package/dist/constants.d.ts.map +1 -0
  58. package/dist/constants.js +116 -0
  59. package/dist/esbuild-wasm-bundle.generated.d.ts +41 -0
  60. package/dist/esbuild-wasm-bundle.generated.d.ts.map +1 -0
  61. package/dist/esbuild-wasm-bundle.generated.js +40 -0
  62. package/dist/facets/cirrus-real.d.ts +147 -0
  63. package/dist/facets/cirrus-real.d.ts.map +1 -0
  64. package/dist/facets/cirrus-real.js +981 -0
  65. package/dist/facets/inner-do-registry.d.ts +41 -0
  66. package/dist/facets/inner-do-registry.d.ts.map +1 -0
  67. package/dist/facets/inner-do-registry.js +51 -0
  68. package/dist/facets/manager.d.ts +314 -0
  69. package/dist/facets/manager.d.ts.map +1 -0
  70. package/dist/facets/manager.js +2681 -0
  71. package/dist/facets/process.d.ts +318 -0
  72. package/dist/facets/process.d.ts.map +1 -0
  73. package/dist/facets/process.js +567 -0
  74. package/dist/facets/real-vite-fs-shim.d.ts +151 -0
  75. package/dist/facets/real-vite-fs-shim.d.ts.map +1 -0
  76. package/dist/facets/real-vite-fs-shim.js +1279 -0
  77. package/dist/facets/real-vite-hmr.d.ts +142 -0
  78. package/dist/facets/real-vite-hmr.d.ts.map +1 -0
  79. package/dist/facets/real-vite-hmr.js +476 -0
  80. package/dist/facets/vite-dev-server.d.ts +293 -0
  81. package/dist/facets/vite-dev-server.d.ts.map +1 -0
  82. package/dist/facets/vite-dev-server.js +2580 -0
  83. package/dist/facets/wasm-swap-registry.d.ts +261 -0
  84. package/dist/facets/wasm-swap-registry.d.ts.map +1 -0
  85. package/dist/facets/wasm-swap-registry.js +551 -0
  86. package/dist/facets/ws-terminal.d.ts +107 -0
  87. package/dist/facets/ws-terminal.d.ts.map +1 -0
  88. package/dist/facets/ws-terminal.js +207 -0
  89. package/dist/git/commands.d.ts +13 -0
  90. package/dist/git/commands.d.ts.map +1 -0
  91. package/dist/git/commands.js +633 -0
  92. package/dist/git/network-facet.d.ts +61 -0
  93. package/dist/git/network-facet.d.ts.map +1 -0
  94. package/dist/git/network-facet.js +700 -0
  95. package/dist/git-bundle.generated.d.ts +16 -0
  96. package/dist/git-bundle.generated.d.ts.map +1 -0
  97. package/dist/git-bundle.generated.js +15 -0
  98. package/dist/index.d.ts +41 -0
  99. package/dist/index.d.ts.map +1 -0
  100. package/dist/index.js +73 -0
  101. package/dist/loaders/child-process/spawn-facet.d.ts +90 -0
  102. package/dist/loaders/child-process/spawn-facet.d.ts.map +1 -0
  103. package/dist/loaders/child-process/spawn-facet.js +103 -0
  104. package/dist/loaders/child-process/spawn-pool.d.ts +110 -0
  105. package/dist/loaders/child-process/spawn-pool.d.ts.map +1 -0
  106. package/dist/loaders/child-process/spawn-pool.js +161 -0
  107. package/dist/loaders/fanout-pool.d.ts +195 -0
  108. package/dist/loaders/fanout-pool.d.ts.map +1 -0
  109. package/dist/loaders/fanout-pool.js +326 -0
  110. package/dist/loaders/generated-workers.d.ts +26 -0
  111. package/dist/loaders/generated-workers.d.ts.map +1 -0
  112. package/dist/loaders/generated-workers.js +25 -0
  113. package/dist/loaders/index.d.ts +15 -0
  114. package/dist/loaders/index.d.ts.map +1 -0
  115. package/dist/loaders/index.js +13 -0
  116. package/dist/loaders/loader-pool.d.ts +273 -0
  117. package/dist/loaders/loader-pool.d.ts.map +1 -0
  118. package/dist/loaders/loader-pool.js +624 -0
  119. package/dist/loaders/npm-resolve-preamble.d.ts +34 -0
  120. package/dist/loaders/npm-resolve-preamble.d.ts.map +1 -0
  121. package/dist/loaders/npm-resolve-preamble.js +237 -0
  122. package/dist/loaders/pre-bundle-preamble.d.ts +41 -0
  123. package/dist/loaders/pre-bundle-preamble.d.ts.map +1 -0
  124. package/dist/loaders/pre-bundle-preamble.js +114 -0
  125. package/dist/loaders/vendor/codegen.d.ts +24 -0
  126. package/dist/loaders/vendor/codegen.d.ts.map +1 -0
  127. package/dist/loaders/vendor/codegen.js +44 -0
  128. package/dist/loaders/vendor/errors.d.ts +24 -0
  129. package/dist/loaders/vendor/errors.d.ts.map +1 -0
  130. package/dist/loaders/vendor/errors.js +46 -0
  131. package/dist/loaders/vendor/index.d.ts +16 -0
  132. package/dist/loaders/vendor/index.d.ts.map +1 -0
  133. package/dist/loaders/vendor/index.js +11 -0
  134. package/dist/loaders/vendor/pool.d.ts +88 -0
  135. package/dist/loaders/vendor/pool.d.ts.map +1 -0
  136. package/dist/loaders/vendor/pool.js +353 -0
  137. package/dist/loaders/vendor/primitives.d.ts +11 -0
  138. package/dist/loaders/vendor/primitives.d.ts.map +1 -0
  139. package/dist/loaders/vendor/primitives.js +33 -0
  140. package/dist/loaders/vendor/serialize.d.ts +3 -0
  141. package/dist/loaders/vendor/serialize.d.ts.map +1 -0
  142. package/dist/loaders/vendor/serialize.js +25 -0
  143. package/dist/loaders/vendor/types.d.ts +60 -0
  144. package/dist/loaders/vendor/types.d.ts.map +1 -0
  145. package/dist/loaders/vendor/types.js +4 -0
  146. package/dist/npm/cache.d.ts +136 -0
  147. package/dist/npm/cache.d.ts.map +1 -0
  148. package/dist/npm/cache.js +429 -0
  149. package/dist/npm/install-batch-facet.d.ts +129 -0
  150. package/dist/npm/install-batch-facet.d.ts.map +1 -0
  151. package/dist/npm/install-batch-facet.js +598 -0
  152. package/dist/npm/install-facet.d.ts +29 -0
  153. package/dist/npm/install-facet.d.ts.map +1 -0
  154. package/dist/npm/install-facet.js +9 -0
  155. package/dist/npm/installer.d.ts +239 -0
  156. package/dist/npm/installer.d.ts.map +1 -0
  157. package/dist/npm/installer.js +2022 -0
  158. package/dist/npm/npx-install.d.ts +74 -0
  159. package/dist/npm/npx-install.d.ts.map +1 -0
  160. package/dist/npm/npx-install.js +302 -0
  161. package/dist/npm/pre-bundle-facet.d.ts +168 -0
  162. package/dist/npm/pre-bundle-facet.d.ts.map +1 -0
  163. package/dist/npm/pre-bundle-facet.js +653 -0
  164. package/dist/npm/r2-cache.d.ts +286 -0
  165. package/dist/npm/r2-cache.d.ts.map +1 -0
  166. package/dist/npm/r2-cache.js +506 -0
  167. package/dist/npm/resolve-facet.d.ts +202 -0
  168. package/dist/npm/resolve-facet.d.ts.map +1 -0
  169. package/dist/npm/resolve-facet.js +833 -0
  170. package/dist/npm/resolve-one-facet.d.ts +204 -0
  171. package/dist/npm/resolve-one-facet.d.ts.map +1 -0
  172. package/dist/npm/resolve-one-facet.js +437 -0
  173. package/dist/npm/resolver.d.ts +109 -0
  174. package/dist/npm/resolver.d.ts.map +1 -0
  175. package/dist/npm/resolver.js +899 -0
  176. package/dist/npm/tarball-stream.d.ts +85 -0
  177. package/dist/npm/tarball-stream.d.ts.map +1 -0
  178. package/dist/npm/tarball-stream.js +205 -0
  179. package/dist/npm/tarball.d.ts +51 -0
  180. package/dist/npm/tarball.d.ts.map +1 -0
  181. package/dist/npm/tarball.js +185 -0
  182. package/dist/observability/diag-counters.d.ts +292 -0
  183. package/dist/observability/diag-counters.d.ts.map +1 -0
  184. package/dist/observability/diag-counters.js +302 -0
  185. package/dist/observability/heap-estimate.d.ts +166 -0
  186. package/dist/observability/heap-estimate.d.ts.map +1 -0
  187. package/dist/observability/heap-estimate.js +192 -0
  188. package/dist/observability/heavy-alloc-coord.d.ts +95 -0
  189. package/dist/observability/heavy-alloc-coord.d.ts.map +1 -0
  190. package/dist/observability/heavy-alloc-coord.js +149 -0
  191. package/dist/observability/oom-classify.d.ts +56 -0
  192. package/dist/observability/oom-classify.d.ts.map +1 -0
  193. package/dist/observability/oom-classify.js +118 -0
  194. package/dist/observability/oom-discriminator.d.ts +192 -0
  195. package/dist/observability/oom-discriminator.d.ts.map +1 -0
  196. package/dist/observability/oom-discriminator.js +233 -0
  197. package/dist/real-vite-bundle.generated.d.ts +46 -0
  198. package/dist/real-vite-bundle.generated.d.ts.map +1 -0
  199. package/dist/real-vite-bundle.generated.js +53 -0
  200. package/dist/replica/routing.d.ts +171 -0
  201. package/dist/replica/routing.d.ts.map +1 -0
  202. package/dist/replica/routing.js +288 -0
  203. package/dist/replica/suspension.d.ts +36 -0
  204. package/dist/replica/suspension.d.ts.map +1 -0
  205. package/dist/replica/suspension.js +49 -0
  206. package/dist/router/index.d.ts +156 -0
  207. package/dist/router/index.d.ts.map +1 -0
  208. package/dist/router/index.js +220 -0
  209. package/dist/runtime/assets-loader.d.ts +71 -0
  210. package/dist/runtime/assets-loader.d.ts.map +1 -0
  211. package/dist/runtime/assets-loader.js +128 -0
  212. package/dist/runtime/barrel-detect.d.ts +46 -0
  213. package/dist/runtime/barrel-detect.d.ts.map +1 -0
  214. package/dist/runtime/barrel-detect.js +73 -0
  215. package/dist/runtime/barrel-synthesizer.d.ts +181 -0
  216. package/dist/runtime/barrel-synthesizer.d.ts.map +1 -0
  217. package/dist/runtime/barrel-synthesizer.js +541 -0
  218. package/dist/runtime/bun-repl.d.ts +46 -0
  219. package/dist/runtime/bun-repl.d.ts.map +1 -0
  220. package/dist/runtime/bun-repl.js +326 -0
  221. package/dist/runtime/bun-runner.d.ts +66 -0
  222. package/dist/runtime/bun-runner.d.ts.map +1 -0
  223. package/dist/runtime/bun-runner.js +219 -0
  224. package/dist/runtime/clang-runner.d.ts +38 -0
  225. package/dist/runtime/clang-runner.d.ts.map +1 -0
  226. package/dist/runtime/clang-runner.js +1033 -0
  227. package/dist/runtime/comment-strip.d.ts +37 -0
  228. package/dist/runtime/comment-strip.d.ts.map +1 -0
  229. package/dist/runtime/comment-strip.js +74 -0
  230. package/dist/runtime/esbuild-service.d.ts +201 -0
  231. package/dist/runtime/esbuild-service.d.ts.map +1 -0
  232. package/dist/runtime/esbuild-service.js +1444 -0
  233. package/dist/runtime/esbuild-wasm-bytes.d.ts +87 -0
  234. package/dist/runtime/esbuild-wasm-bytes.d.ts.map +1 -0
  235. package/dist/runtime/esbuild-wasm-bytes.js +131 -0
  236. package/dist/runtime/framework-detect.d.ts +71 -0
  237. package/dist/runtime/framework-detect.d.ts.map +1 -0
  238. package/dist/runtime/framework-detect.js +178 -0
  239. package/dist/runtime/long-running-handle.d.ts +133 -0
  240. package/dist/runtime/long-running-handle.d.ts.map +1 -0
  241. package/dist/runtime/long-running-handle.js +192 -0
  242. package/dist/runtime/node-repl.d.ts +36 -0
  243. package/dist/runtime/node-repl.d.ts.map +1 -0
  244. package/dist/runtime/node-repl.js +293 -0
  245. package/dist/runtime/node-runner.d.ts +111 -0
  246. package/dist/runtime/node-runner.d.ts.map +1 -0
  247. package/dist/runtime/node-runner.js +194 -0
  248. package/dist/runtime/node-shims.d.ts +24 -0
  249. package/dist/runtime/node-shims.d.ts.map +1 -0
  250. package/dist/runtime/node-shims.js +3019 -0
  251. package/dist/runtime/package-manager.d.ts +118 -0
  252. package/dist/runtime/package-manager.d.ts.map +1 -0
  253. package/dist/runtime/package-manager.js +420 -0
  254. package/dist/runtime/port-registry.d.ts +80 -0
  255. package/dist/runtime/port-registry.d.ts.map +1 -0
  256. package/dist/runtime/port-registry.js +166 -0
  257. package/dist/runtime/process-logs-api.d.ts +102 -0
  258. package/dist/runtime/process-logs-api.d.ts.map +1 -0
  259. package/dist/runtime/process-logs-api.js +253 -0
  260. package/dist/runtime/process-logs.d.ts +311 -0
  261. package/dist/runtime/process-logs.d.ts.map +1 -0
  262. package/dist/runtime/process-logs.js +656 -0
  263. package/dist/runtime/process-table.d.ts +65 -0
  264. package/dist/runtime/process-table.d.ts.map +1 -0
  265. package/dist/runtime/process-table.js +107 -0
  266. package/dist/runtime/project-detect.d.ts +21 -0
  267. package/dist/runtime/project-detect.d.ts.map +1 -0
  268. package/dist/runtime/project-detect.js +46 -0
  269. package/dist/runtime/python-repl.d.ts +66 -0
  270. package/dist/runtime/python-repl.d.ts.map +1 -0
  271. package/dist/runtime/python-repl.js +563 -0
  272. package/dist/runtime/python-runner.d.ts +50 -0
  273. package/dist/runtime/python-runner.d.ts.map +1 -0
  274. package/dist/runtime/python-runner.js +870 -0
  275. package/dist/runtime/repl-session.d.ts +160 -0
  276. package/dist/runtime/repl-session.d.ts.map +1 -0
  277. package/dist/runtime/repl-session.js +393 -0
  278. package/dist/runtime/require-resolver.d.ts +52 -0
  279. package/dist/runtime/require-resolver.d.ts.map +1 -0
  280. package/dist/runtime/require-resolver.js +690 -0
  281. package/dist/runtime/router-basename.d.ts +36 -0
  282. package/dist/runtime/router-basename.d.ts.map +1 -0
  283. package/dist/runtime/router-basename.js +310 -0
  284. package/dist/runtime/ruby-repl.d.ts +43 -0
  285. package/dist/runtime/ruby-repl.d.ts.map +1 -0
  286. package/dist/runtime/ruby-repl.js +229 -0
  287. package/dist/runtime/ruby-runner.d.ts +62 -0
  288. package/dist/runtime/ruby-runner.d.ts.map +1 -0
  289. package/dist/runtime/ruby-runner.js +737 -0
  290. package/dist/runtime/runtime-catalog.d.ts +99 -0
  291. package/dist/runtime/runtime-catalog.d.ts.map +1 -0
  292. package/dist/runtime/runtime-catalog.js +183 -0
  293. package/dist/runtime/runtime-registry.d.ts +136 -0
  294. package/dist/runtime/runtime-registry.d.ts.map +1 -0
  295. package/dist/runtime/runtime-registry.js +318 -0
  296. package/dist/runtime/streams.d.ts +13 -0
  297. package/dist/runtime/streams.d.ts.map +1 -0
  298. package/dist/runtime/streams.js +402 -0
  299. package/dist/runtime/wasi-instance.d.ts +190 -0
  300. package/dist/runtime/wasi-instance.d.ts.map +1 -0
  301. package/dist/runtime/wasi-instance.js +2044 -0
  302. package/dist/runtime/wasm-runner.d.ts +117 -0
  303. package/dist/runtime/wasm-runner.d.ts.map +1 -0
  304. package/dist/runtime/wasm-runner.js +705 -0
  305. package/dist/session/bindings.d.ts +168 -0
  306. package/dist/session/bindings.d.ts.map +1 -0
  307. package/dist/session/bindings.js +524 -0
  308. package/dist/session/ctx-exports.d.ts +16 -0
  309. package/dist/session/ctx-exports.d.ts.map +1 -0
  310. package/dist/session/ctx-exports.js +22 -0
  311. package/dist/session/diag.d.ts +62 -0
  312. package/dist/session/diag.d.ts.map +1 -0
  313. package/dist/session/diag.js +118 -0
  314. package/dist/session/fs-watch.d.ts +132 -0
  315. package/dist/session/fs-watch.d.ts.map +1 -0
  316. package/dist/session/fs-watch.js +255 -0
  317. package/dist/session/helpers.d.ts +150 -0
  318. package/dist/session/helpers.d.ts.map +1 -0
  319. package/dist/session/helpers.js +472 -0
  320. package/dist/session/hibernation.d.ts +145 -0
  321. package/dist/session/hibernation.d.ts.map +1 -0
  322. package/dist/session/hibernation.js +385 -0
  323. package/dist/session/init-phases.d.ts +87 -0
  324. package/dist/session/init-phases.d.ts.map +1 -0
  325. package/dist/session/init-phases.js +137 -0
  326. package/dist/session/init.d.ts +46 -0
  327. package/dist/session/init.d.ts.map +1 -0
  328. package/dist/session/init.js +3579 -0
  329. package/dist/session/keys.d.ts +56 -0
  330. package/dist/session/keys.d.ts.map +1 -0
  331. package/dist/session/keys.js +55 -0
  332. package/dist/session/nimbus-session.d.ts +434 -0
  333. package/dist/session/nimbus-session.d.ts.map +1 -0
  334. package/dist/session/nimbus-session.js +1084 -0
  335. package/dist/session/programmatic.d.ts +105 -0
  336. package/dist/session/programmatic.d.ts.map +1 -0
  337. package/dist/session/programmatic.js +326 -0
  338. package/dist/session/replica-routes.d.ts +68 -0
  339. package/dist/session/replica-routes.d.ts.map +1 -0
  340. package/dist/session/replica-routes.js +77 -0
  341. package/dist/session/routes.d.ts +29 -0
  342. package/dist/session/routes.d.ts.map +1 -0
  343. package/dist/session/routes.js +1331 -0
  344. package/dist/session/rpc.d.ts +323 -0
  345. package/dist/session/rpc.d.ts.map +1 -0
  346. package/dist/session/rpc.js +808 -0
  347. package/dist/session/state-store.d.ts +210 -0
  348. package/dist/session/state-store.d.ts.map +1 -0
  349. package/dist/session/state-store.js +459 -0
  350. package/dist/session/supervisor-rpc.d.ts +269 -0
  351. package/dist/session/supervisor-rpc.d.ts.map +1 -0
  352. package/dist/session/supervisor-rpc.js +437 -0
  353. package/dist/session/ws-hibernation-config.d.ts +64 -0
  354. package/dist/session/ws-hibernation-config.d.ts.map +1 -0
  355. package/dist/session/ws-hibernation-config.js +89 -0
  356. package/dist/session/ws.d.ts +95 -0
  357. package/dist/session/ws.d.ts.map +1 -0
  358. package/dist/session/ws.js +395 -0
  359. package/dist/shell/features.d.ts +410 -0
  360. package/dist/shell/features.d.ts.map +1 -0
  361. package/dist/shell/features.js +1885 -0
  362. package/dist/shell/unix-commands.d.ts +15 -0
  363. package/dist/shell/unix-commands.d.ts.map +1 -0
  364. package/dist/shell/unix-commands.js +3703 -0
  365. package/dist/stubs/lifo-ui.d.ts +10 -0
  366. package/dist/stubs/lifo-ui.d.ts.map +1 -0
  367. package/dist/stubs/lifo-ui.js +1 -0
  368. package/dist/tailwind-play.generated.d.ts +19 -0
  369. package/dist/tailwind-play.generated.d.ts.map +1 -0
  370. package/dist/tailwind-play.generated.js +18 -0
  371. package/dist/vfs/dev-provider.d.ts +64 -0
  372. package/dist/vfs/dev-provider.d.ts.map +1 -0
  373. package/dist/vfs/dev-provider.js +191 -0
  374. package/dist/vfs/events.d.ts +51 -0
  375. package/dist/vfs/events.d.ts.map +1 -0
  376. package/dist/vfs/events.js +127 -0
  377. package/dist/vfs/path.d.ts +30 -0
  378. package/dist/vfs/path.d.ts.map +1 -0
  379. package/dist/vfs/path.js +41 -0
  380. package/dist/vfs/seed-project.d.ts +62 -0
  381. package/dist/vfs/seed-project.d.ts.map +1 -0
  382. package/dist/vfs/seed-project.js +1045 -0
  383. package/dist/vfs/sqlite-vfs.d.ts +435 -0
  384. package/dist/vfs/sqlite-vfs.d.ts.map +1 -0
  385. package/dist/vfs/sqlite-vfs.js +1670 -0
  386. package/dist/vfs/symlink-registry.d.ts +64 -0
  387. package/dist/vfs/symlink-registry.d.ts.map +1 -0
  388. package/dist/vfs/symlink-registry.js +137 -0
  389. package/dist/wrangler/nimbus-wrangler.d.ts +157 -0
  390. package/dist/wrangler/nimbus-wrangler.d.ts.map +1 -0
  391. package/dist/wrangler/nimbus-wrangler.js +931 -0
  392. package/package.json +77 -0
  393. package/public/_assets/cirrus-plugin-react.bundle.js +70740 -0
  394. package/public/_assets/esbuild-0.24.2.wasm +0 -0
  395. package/public/_assets/real-vite-bundle.js +101478 -0
  396. package/public/_assets/rollup.wasm +0 -0
  397. package/public/favicon.svg +8 -0
  398. package/public/index.html +565 -0
  399. package/public/s/index.html +2379 -0
  400. package/scripts/bundle-esbuild-wasm.mjs +244 -0
  401. package/scripts/bundle-facet-workers.mjs +137 -0
  402. package/scripts/bundle-git.mjs +118 -0
  403. package/scripts/bundle-npm-cjs.mjs +363 -0
  404. package/scripts/bundle-plugin-react.mjs +480 -0
  405. package/scripts/bundle-real-vite.mjs +959 -0
  406. package/scripts/bundle-runtime.mjs +600 -0
  407. package/scripts/bundle-tailwind-play.mjs +130 -0
  408. package/scripts/patch-lifo-ui.mjs +131 -0
@@ -0,0 +1,480 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * bundle-plugin-react.mjs — Pre-bundle @vitejs/plugin-react for the
4
+ * real-vite facet.
5
+ *
6
+ * Path C from PHASE1-BLOCKER.md §"Why this isn't trivially fixable":
7
+ * instead of asking the facet to runtime-resolve plugin-react's ESM
8
+ * dependencies (which failed because our userspace-require uses
9
+ * `new Function(code)`, a CJS wrapper that rejects ESM source text),
10
+ * we pre-bundle the WHOLE plugin — including @babel/core,
11
+ * react-refresh/babel, and the two babel JSX-helper plugins — into
12
+ * one self-contained ESM string.
13
+ *
14
+ * Two critical transformations happen here:
15
+ *
16
+ * 1. Asset inlining (module-top fs.readFileSync elimination).
17
+ * plugin-react reads react-refresh-runtime.development.js and
18
+ * refreshUtils.js at module-init via `fs.readFileSync(...)`.
19
+ * esbuild sees those calls literally — it can't replace them
20
+ * statically. So this script reads those files at bundle time
21
+ * and does TEXTUAL replacement of the template-literal
22
+ * substitutions INSIDE plugin-react's source, turning the
23
+ * fs.readFileSync calls into string constants. Same trick we
24
+ * used to inline the rollup-WASM binary in bundle-real-vite.mjs.
25
+ *
26
+ * 2. Dynamic-import rewiring. plugin-react lazily loads
27
+ * @babel/core and the babel plugins via `await import(path)`.
28
+ * In our facet the specifiers "react-refresh/babel", "@babel/core",
29
+ * etc. aren't resolvable at runtime (no LOADER module graph for
30
+ * user node_modules). So we replace `loadPlugin(path)` with a
31
+ * switch that does STATIC imports — esbuild sees those, follows
32
+ * them, and inlines the targets in the output.
33
+ *
34
+ * Output: src/cirrus-plugin-react.generated.ts, exporting
35
+ * - CIRRUS_PLUGIN_REACT_BUNDLE (ESM string, ~3 MB)
36
+ * - CIRRUS_PLUGIN_REACT_VERSION
37
+ *
38
+ * The facet imports this string via a LOADER module at spawn time
39
+ * (see src/cirrus-real.ts). The user-config bundle's
40
+ * `import react from '@vitejs/plugin-react'` is rewritten to point
41
+ * at the LOADER module.
42
+ */
43
+
44
+ import { promises as fs } from 'node:fs';
45
+ import path from 'node:path';
46
+ import { fileURLToPath } from 'node:url';
47
+ import esbuild from 'esbuild';
48
+
49
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
50
+ const ROOT = path.resolve(__dirname, '..');
51
+ const OUT = path.join(ROOT, 'src', 'cirrus-plugin-react.generated.ts');
52
+ // [sdk-phase-1] Large bundle (~3 MB) ships via ASSETS binding.
53
+ const ASSETS_DIR = path.join(ROOT, 'public', '_assets');
54
+ const ASSET_PATH = '/_assets/cirrus-plugin-react.bundle.js';
55
+
56
+ // Pinned to the version the Cirrus-shim React starter uses. If users
57
+ // specify a different version in their own project we'll still use this
58
+ // one for real-vite mode — Path C is a compatibility bridge, not a
59
+ // per-project bundler.
60
+ const PINNED_PLUGIN_REACT_VERSION = '~4.3.4';
61
+ const PINNED_REACT_REFRESH_VERSION = '^0.14.0';
62
+ const PINNED_BABEL_CORE_VERSION = '^7.25.0';
63
+ const PINNED_BABEL_PLUGIN_TRANSFORM_REACT_JSX_SELF = '^7.25.0';
64
+ const PINNED_BABEL_PLUGIN_TRANSFORM_REACT_JSX_SOURCE = '^7.25.0';
65
+ // Added by pathC step 7: plugin-react 4.x delegates JSX transform
66
+ // to Vite's esbuild. We disabled vite:esbuild for workerd, so we
67
+ // need Babel's JSX transformer bundled in instead.
68
+ const PINNED_BABEL_PLUGIN_TRANSFORM_REACT_JSX = '^7.25.0';
69
+ const PINNED_BABEL_PLUGIN_SYNTAX_JSX = '^7.25.0';
70
+ // Step 8: Vite's esbuild also lowered TypeScript syntax (interface,
71
+ // type annotations, `!` non-null assertions, enums, etc.). Same
72
+ // disablement kills that too. Bundle @babel/plugin-transform-typescript
73
+ // so plugin-react's Babel pass strips TS syntax from .ts/.tsx files.
74
+ const PINNED_BABEL_PLUGIN_TRANSFORM_TYPESCRIPT = '^7.25.0';
75
+ const PINNED_BABEL_PLUGIN_SYNTAX_TYPESCRIPT = '^7.25.0';
76
+
77
+ // Same NODE_BUILTINS list bundle-real-vite.mjs uses. workerd provides
78
+ // these via nodejs_compat.
79
+ const NODE_BUILTINS = [
80
+ 'node:assert', 'node:buffer', 'node:child_process', 'node:crypto',
81
+ 'node:dns', 'node:events', 'node:fs', 'node:fs/promises', 'node:http',
82
+ 'node:https', 'node:module', 'node:net', 'node:os', 'node:path',
83
+ 'node:perf_hooks', 'node:process', 'node:querystring', 'node:readline',
84
+ 'node:stream', 'node:string_decoder', 'node:timers', 'node:timers/promises',
85
+ 'node:tls', 'node:tty', 'node:url', 'node:util', 'node:v8',
86
+ 'node:worker_threads', 'node:zlib',
87
+ 'fs', 'path', 'url', 'util', 'os', 'net', 'crypto', 'child_process',
88
+ 'dns', 'tty', 'worker_threads', 'assert', 'process', 'v8', 'events',
89
+ 'http', 'https', 'zlib', 'stream', 'buffer', 'readline', 'module',
90
+ 'string_decoder', 'timers', 'querystring', 'perf_hooks',
91
+ ];
92
+
93
+ // Optional deps babel tries to require() to detect feature support but
94
+ // never actually USES in the transform path plugin-react exercises.
95
+ // Stubbing these keeps the bundle small and avoids esbuild resolution
96
+ // errors.
97
+ const STUB_AS_EMPTY = new Set([
98
+ '@babel/preset-typescript/package.json',
99
+ '@babel/preset-env/package.json',
100
+ '@babel/preset-react/package.json',
101
+ '@babel/preset-flow/package.json',
102
+ 'lightningcss',
103
+ 'fsevents',
104
+ ]);
105
+
106
+ async function ensureInstalled(opts) {
107
+ // Does /tmp/cirrus-plugin-react-src already have everything?
108
+ const SRC_DIR = path.join(ROOT, '.cirrus-plugin-react-src');
109
+ const pkgPath = path.join(SRC_DIR, 'package.json');
110
+ const pluginPath = path.join(SRC_DIR, 'node_modules/@vitejs/plugin-react/package.json');
111
+ const babelPath = path.join(SRC_DIR, 'node_modules/@babel/core/package.json');
112
+ try {
113
+ await fs.access(pluginPath);
114
+ await fs.access(babelPath);
115
+ return SRC_DIR;
116
+ } catch { /* need install */ }
117
+
118
+ console.log(`[bundle-plugin-react] installing plugin-react + babel into ${SRC_DIR}...`);
119
+ await fs.mkdir(SRC_DIR, { recursive: true });
120
+ await fs.writeFile(pkgPath, JSON.stringify({
121
+ name: 'cirrus-plugin-react-build',
122
+ private: true,
123
+ version: '0.0.0',
124
+ dependencies: {
125
+ '@vitejs/plugin-react': PINNED_PLUGIN_REACT_VERSION,
126
+ 'react-refresh': PINNED_REACT_REFRESH_VERSION,
127
+ '@babel/core': PINNED_BABEL_CORE_VERSION,
128
+ '@babel/plugin-transform-react-jsx-self': PINNED_BABEL_PLUGIN_TRANSFORM_REACT_JSX_SELF,
129
+ '@babel/plugin-transform-react-jsx-source': PINNED_BABEL_PLUGIN_TRANSFORM_REACT_JSX_SOURCE,
130
+ '@babel/plugin-transform-react-jsx': PINNED_BABEL_PLUGIN_TRANSFORM_REACT_JSX,
131
+ '@babel/plugin-syntax-jsx': PINNED_BABEL_PLUGIN_SYNTAX_JSX,
132
+ '@babel/plugin-transform-typescript': PINNED_BABEL_PLUGIN_TRANSFORM_TYPESCRIPT,
133
+ '@babel/plugin-syntax-typescript': PINNED_BABEL_PLUGIN_SYNTAX_TYPESCRIPT,
134
+ },
135
+ }, null, 2));
136
+ const { execSync } = await import('node:child_process');
137
+ execSync('bun install', { cwd: SRC_DIR, stdio: 'inherit' });
138
+ return SRC_DIR;
139
+ }
140
+
141
+ /**
142
+ * Read an asset file, returning empty-comment fallback if missing.
143
+ * Catches the "package installed without dist files" edge case.
144
+ */
145
+ async function readAssetOrBlank(p, label) {
146
+ try { return await fs.readFile(p, 'utf8'); }
147
+ catch {
148
+ console.warn(`[bundle-plugin-react] WARN: ${label} at ${p} missing; bundling empty.`);
149
+ return `/* cirrus: ${label} missing at bundle time */`;
150
+ }
151
+ }
152
+
153
+ function makeInlineAssetsPlugin(srcDir) {
154
+ const pluginIndex = /@vitejs[\\/]plugin-react[\\/]dist[\\/]index\.(mjs|cjs)$/;
155
+
156
+ return {
157
+ name: 'cirrus-plugin-react-inline',
158
+ setup(build) {
159
+ // Stub optional-probing requires.
160
+ for (const s of STUB_AS_EMPTY) {
161
+ const re = new RegExp(
162
+ '^' + s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + '$',
163
+ );
164
+ build.onResolve({ filter: re }, (args) => ({
165
+ path: args.path, namespace: 'cirrus-stub-empty',
166
+ }));
167
+ }
168
+ build.onLoad({ filter: /.*/, namespace: 'cirrus-stub-empty' }, () => ({
169
+ contents: 'module.exports = {};', loader: 'js',
170
+ }));
171
+
172
+ // Source-level rewrites for plugin-react's index.mjs.
173
+ build.onLoad({ filter: pluginIndex }, async (args) => {
174
+ const src = await fs.readFile(args.path, 'utf8');
175
+ const pluginDir = args.path.replace(/[\\/]index\.(mjs|cjs)$/, '');
176
+ // react-refresh is a sibling of @vitejs in node_modules/.
177
+ // args.path = <srcDir>/node_modules/@vitejs/plugin-react/dist/index.mjs
178
+ // → node_modules_dir = <srcDir>/node_modules
179
+ // → reactRefreshDir = <srcDir>/node_modules/react-refresh
180
+ const vitejs_dir = path.dirname(path.dirname(pluginDir)); // .../node_modules/@vitejs
181
+ const nodeModulesDir = path.dirname(vitejs_dir); // .../node_modules
182
+ const reactRefreshDir = path.join(nodeModulesDir, 'react-refresh');
183
+
184
+ const rrRuntime = await readAssetOrBlank(
185
+ path.join(reactRefreshDir, 'cjs/react-refresh-runtime.development.js'),
186
+ 'react-refresh-runtime.development.js',
187
+ );
188
+ const rrUtils = await readAssetOrBlank(
189
+ path.join(pluginDir, 'refreshUtils.js'),
190
+ '@vitejs/plugin-react/dist/refreshUtils.js',
191
+ );
192
+
193
+ const esc = (s) =>
194
+ s.replace(/\\/g, '\\\\').replace(/`/g, '\\`').replace(/\$\{/g, '\\${');
195
+
196
+ let patched = src;
197
+
198
+ // Inline the two fs.readFileSync calls that happen at module
199
+ // init. Both are template-literal substitutions, so we swap
200
+ // them for the escaped file contents.
201
+ patched = patched.replace(
202
+ /\$\{fs\.readFileSync\(runtimeFilePath,\s*"utf-8"\)\}/g,
203
+ esc(rrRuntime),
204
+ );
205
+ patched = patched.replace(
206
+ /\$\{fs\.readFileSync\(_require\.resolve\("\.\/refreshUtils\.js"\),\s*"utf-8"\)\}/g,
207
+ esc(rrUtils),
208
+ );
209
+
210
+ // The two path-computation calls that populate runtimeFilePath
211
+ // / reactRefreshDir are now dead — neutralise them so the
212
+ // remaining `path.join` / `path.dirname` don't trip on bundle-
213
+ // time `_require.resolve` (it won't exist at runtime).
214
+ patched = patched.replace(
215
+ /path\.dirname\(\s*_require\.resolve\("react-refresh\/package\.json"\)\s*\)/g,
216
+ 'String("/__cirrus_stub_react_refresh_dir__")',
217
+ );
218
+ patched = patched.replace(
219
+ /path\.join\(\s*reactRefreshDir,\s*"cjs\/react-refresh-runtime\.development\.js"\s*\)/g,
220
+ 'String("/__cirrus_stub_runtime_file__")',
221
+ );
222
+
223
+ // Rewire loadPlugin() to use static imports. esbuild will
224
+ // resolve these at bundle time and include the plugins inline.
225
+ // Also add a new well-known entry "@babel/plugin-transform-react-jsx"
226
+ // so our transform-patch (below) can load the JSX transformer.
227
+ patched = patched.replace(
228
+ /const loadedPlugin = [\s\S]*?return promise;\s*\}/,
229
+ `
230
+ const loadedPlugin = /* @__PURE__ */ new Map();
231
+ async function loadPlugin(path) {
232
+ if (loadedPlugin.has(path)) return loadedPlugin.get(path);
233
+ let value;
234
+ switch (path) {
235
+ case "react-refresh/babel":
236
+ value = (await import("react-refresh/babel")).default;
237
+ break;
238
+ case "@babel/plugin-transform-react-jsx-self":
239
+ value = (await import("@babel/plugin-transform-react-jsx-self")).default;
240
+ break;
241
+ case "@babel/plugin-transform-react-jsx-source":
242
+ value = (await import("@babel/plugin-transform-react-jsx-source")).default;
243
+ break;
244
+ case "@babel/plugin-transform-react-jsx":
245
+ value = (await import("@babel/plugin-transform-react-jsx")).default;
246
+ break;
247
+ case "@babel/plugin-transform-typescript":
248
+ value = (await import("@babel/plugin-transform-typescript")).default;
249
+ break;
250
+ default:
251
+ throw new Error("[cirrus-plugin-react] unknown loadPlugin spec: " + path);
252
+ }
253
+ loadedPlugin.set(path, value);
254
+ return value;
255
+ }
256
+ `.trim(),
257
+ );
258
+
259
+ // Step 7 critical fix: plugin-react 4.x delegates JSX syntax
260
+ // transformation to Vite's esbuild. In real-vite mode we
261
+ // disabled vite:esbuild (workerd forbids eval), so JSX
262
+ // reaches import-analysis unparsed and crashes. Inject the
263
+ // Babel JSX transformer into plugins[] right after the
264
+ // react-refresh/babel push — so every .jsx/.tsx file gets
265
+ // JSX syntax lowered BEFORE import-analysis sees it.
266
+ //
267
+ // We insert the JSX plugin BEFORE the refresh plugin so the
268
+ // refresh-sig detection (which runs on the post-JSX output
269
+ // via the refreshContentRE regex) sees jsx(...) call
270
+ // expressions, not raw JSX elements.
271
+ patched = patched.replace(
272
+ /const plugins = \[\.\.\.babelOptions\.plugins\];/,
273
+ `const plugins = [...babelOptions.plugins];
274
+ /* cirrus-real: inject Babel transforms for both JSX AND
275
+ TypeScript syntax. plugin-react 4.x normally delegates
276
+ both to Vite's esbuild — which we disabled because workerd
277
+ forbids eval. */
278
+ const filepath_cirrus = filepath;
279
+ const isTS_cirrus = /\\.tsx?$/.test(filepath_cirrus);
280
+ const isJSX_cirrus = filepath_cirrus.endsWith(".jsx") || filepath_cirrus.endsWith(".tsx");
281
+ if (isTS_cirrus) {
282
+ const tsPlugin = await loadPlugin("@babel/plugin-transform-typescript");
283
+ plugins.push([tsPlugin, {
284
+ isTSX: isJSX_cirrus,
285
+ allExtensions: true,
286
+ /* Allow namespace (required for some patterns). allowDeclareFields
287
+ is a default-true in Babel 7.25+; noops on older versions. */
288
+ allowNamespaces: true,
289
+ allowDeclareFields: true,
290
+ /* Preserve JSX — the jsx transform runs AFTER this plugin,
291
+ converting JSX to jsx() calls. */
292
+ onlyRemoveTypeImports: false,
293
+ }]);
294
+ }
295
+ if (isJSX_cirrus) {
296
+ const jsxPlugin = await loadPlugin("@babel/plugin-transform-react-jsx");
297
+ plugins.push([jsxPlugin, {
298
+ runtime: opts.jsxRuntime === "classic" ? "classic" : "automatic",
299
+ importSource: opts.jsxImportSource || "react",
300
+ development: !isProduction,
301
+ }]);
302
+ }`,
303
+ );
304
+
305
+ return { contents: patched, loader: 'js' };
306
+ });
307
+ },
308
+ };
309
+ }
310
+
311
+ async function main() {
312
+ const srcDir = await ensureInstalled();
313
+ const entry = path.join(
314
+ srcDir, 'node_modules/@vitejs/plugin-react/dist/index.mjs',
315
+ );
316
+ const pluginPkg = JSON.parse(
317
+ await fs.readFile(
318
+ path.join(srcDir, 'node_modules/@vitejs/plugin-react/package.json'),
319
+ 'utf8',
320
+ ),
321
+ );
322
+ const pluginReactVersion = pluginPkg.version;
323
+
324
+ console.log(`[bundle-plugin-react] bundling @vitejs/plugin-react@${pluginReactVersion}...`);
325
+
326
+ const result = await esbuild.build({
327
+ entryPoints: [entry],
328
+ bundle: true,
329
+ format: 'esm',
330
+ platform: 'neutral',
331
+ target: 'es2022',
332
+ write: false,
333
+ // `vite` is external — the facet provides vite-config-helper.js
334
+ // at runtime, pointing at the real bundled Vite.
335
+ external: [...NODE_BUILTINS, 'vite'],
336
+ conditions: ['import', 'node'],
337
+ mainFields: ['module', 'main'],
338
+ keepNames: true,
339
+ minify: false,
340
+ plugins: [makeInlineAssetsPlugin(srcDir)],
341
+ define: {
342
+ 'process.env.NODE_ENV': JSON.stringify('development'),
343
+ // @babel/types / @babel/helper-validator flip these off in
344
+ // production builds; keep them off in our bundle too.
345
+ 'process.env.BABEL_TYPES_8_BREAKING': JSON.stringify('false'),
346
+ 'process.env.BABEL_8_BREAKING': JSON.stringify('false'),
347
+ 'process.env.BABEL_DISABLE_CACHE': JSON.stringify('true'),
348
+ // Match bundle-real-vite.mjs's convention so any references to
349
+ // import.meta.url inside plugin-react's bundle dont crash.
350
+ 'import.meta.url': JSON.stringify('file:///cirrus-plugin-react.js'),
351
+ },
352
+ logLevel: 'warning',
353
+ });
354
+
355
+ if (result.errors.length) {
356
+ console.error('[bundle-plugin-react] errors:', result.errors);
357
+ process.exit(1);
358
+ }
359
+
360
+ let bundle = result.outputFiles[0].text;
361
+ console.log(
362
+ `[bundle-plugin-react] pre-patch size: ${(bundle.length / 1024).toFixed(1)} KB`,
363
+ );
364
+
365
+ // Rewrite `import "vite"` / `from "vite"` → a facet-local helper.
366
+ // LOADER.load modules must end in .js, so the specifier has to
367
+ // resolve to a real filename. cirrus-real.ts provides
368
+ // 'vite-config-helper.js' that re-exports vite.bundle.js.
369
+ let viteRewrites = 0;
370
+ bundle = bundle.replace(/from\s*["']vite["']/g, () => {
371
+ viteRewrites++;
372
+ return 'from "./vite-config-helper.js"';
373
+ });
374
+ bundle = bundle.replace(/import\s*["']vite["']/g, () => {
375
+ viteRewrites++;
376
+ return 'import "./vite-config-helper.js"';
377
+ });
378
+ console.log(`[bundle-plugin-react] vite import rewrites: ${viteRewrites}`);
379
+
380
+ // Same esbuild __require polyfill replacement bundle-real-vite.mjs
381
+ // does. The bundled babel/core uses __require for optional deps at
382
+ // runtime; without replacement it throws on every lookup.
383
+ let requirePolyfillPatches = 0;
384
+ bundle = bundle.replace(
385
+ /var __require = [\s\S]*?throw Error\('Dynamic require of "' \+ x \+ '" is not supported'\);\s*\}\);/,
386
+ () => {
387
+ requirePolyfillPatches++;
388
+ return `var __require = /* @__PURE__ */ (function() {
389
+ let _cjsRequire = null;
390
+ function _getRequire() {
391
+ if (_cjsRequire) return _cjsRequire;
392
+ const cr = globalThis.__cirrusNodeCreateRequire;
393
+ if (cr) {
394
+ try { _cjsRequire = cr("file:///cirrus-plugin-react.js"); } catch {}
395
+ }
396
+ return _cjsRequire;
397
+ }
398
+ return function __require(name) {
399
+ if (globalThis.__cirrusNodeBuiltinTable && globalThis.__cirrusNodeBuiltinTable[name]) {
400
+ return globalThis.__cirrusNodeBuiltinTable[name];
401
+ }
402
+ if (globalThis.__cirrusRealRequireShim) {
403
+ try { return globalThis.__cirrusRealRequireShim(name); } catch {}
404
+ }
405
+ if (globalThis.__cirrusRealUserspaceRequire) {
406
+ try {
407
+ const mod = globalThis.__cirrusRealUserspaceRequire(name);
408
+ if (mod) return mod;
409
+ } catch {}
410
+ }
411
+ const req = _getRequire();
412
+ if (req) {
413
+ try { return req(name); }
414
+ catch (e) { throw Error('[cirrus-plugin-react __require] "' + name + '" failed: ' + (e?.message || e)); }
415
+ }
416
+ throw Error('[cirrus-plugin-react __require] "' + name + '" unresolved');
417
+ };
418
+ })();`;
419
+ },
420
+ );
421
+ console.log(
422
+ `[bundle-plugin-react] __require polyfill patches: ${requirePolyfillPatches}`,
423
+ );
424
+ console.log(
425
+ `[bundle-plugin-react] post-patch size: ${(bundle.length / 1024).toFixed(1)} KB`,
426
+ );
427
+
428
+ // [sdk-phase-1] Promote the big bundle string to a public asset.
429
+ await fs.mkdir(ASSETS_DIR, { recursive: true });
430
+ await fs.writeFile(path.join(ASSETS_DIR, 'cirrus-plugin-react.bundle.js'), bundle, 'utf8');
431
+
432
+ const header = `/**
433
+ * cirrus-plugin-react.generated.ts — AUTO-GENERATED by
434
+ * scripts/bundle-plugin-react.mjs. DO NOT EDIT.
435
+ *
436
+ * Self-contained @vitejs/plugin-react@${pluginReactVersion} bundle with
437
+ * @babel/core + react-refresh/babel + jsx-self/source plugins inlined.
438
+ * Module-top fs.readFileSync calls for refreshUtils.js and
439
+ * react-refresh-runtime.development.js are pre-resolved to string
440
+ * constants at bundle time.
441
+ *
442
+ * Consumed by src/cirrus-real.ts at facet spawn — injected as a
443
+ * LOADER module named 'cirrus-plugin-react.js'. User vite.config.ts'
444
+ * \`import react from '@vitejs/plugin-react'\` is rewritten to point
445
+ * at that module.
446
+ *
447
+ * [sdk-phase-1] The bundle string ships via the ASSETS binding instead
448
+ * of inline. Use {@link getCirrusPluginReactBundle}. Version constant
449
+ * stays inline.
450
+ */
451
+
452
+ import { loadAssetText, type AssetsFetcher } from './runtime/assets-loader.js';
453
+
454
+ export const CIRRUS_PLUGIN_REACT_VERSION = ${JSON.stringify(pluginReactVersion)};
455
+
456
+ /** Asset path for the bundle. Use {@link getCirrusPluginReactBundle}. */
457
+ export const CIRRUS_PLUGIN_REACT_BUNDLE_PATH = ${JSON.stringify(ASSET_PATH)};
458
+
459
+ /**
460
+ * Fetch the bundle string from the ASSETS binding. Cached per-isolate.
461
+ *
462
+ * @param env Object with the \`ASSETS\` binding.
463
+ * @returns The plugin-react bundle as a UTF-8 string.
464
+ * @throws {NimbusAssetLoadError} when binding missing or fetch fails.
465
+ */
466
+ export function getCirrusPluginReactBundle(env: { ASSETS: AssetsFetcher }): Promise<string> {
467
+ return loadAssetText(env.ASSETS, CIRRUS_PLUGIN_REACT_BUNDLE_PATH);
468
+ }
469
+ `;
470
+
471
+ await fs.writeFile(OUT, header, 'utf8');
472
+ console.log(
473
+ `[bundle-plugin-react] wrote ${OUT} (${(header.length / 1024).toFixed(1)} KB shim) + ${ASSETS_DIR}/cirrus-plugin-react.bundle.js (${(bundle.length / 1024 / 1024).toFixed(1)} MB)`,
474
+ );
475
+ }
476
+
477
+ main().catch((e) => {
478
+ console.error('[bundle-plugin-react] failed:', e);
479
+ process.exit(1);
480
+ });