alchemy 0.52.0 → 0.54.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 (127) hide show
  1. package/bin/alchemy.js +196353 -0
  2. package/bin/alchemy.ts +2 -2
  3. package/bin/commands/init.ts +1190 -0
  4. package/bin/constants.ts +18 -0
  5. package/bin/services/execute-alchemy.ts +7 -2
  6. package/bin/services/package-manager.ts +1 -1
  7. package/bin/types.ts +14 -5
  8. package/lib/cloudflare/astro.d.ts.map +1 -1
  9. package/lib/cloudflare/astro.js +4 -3
  10. package/lib/cloudflare/astro.js.map +1 -1
  11. package/lib/cloudflare/bundle/externals.d.ts +3 -0
  12. package/lib/cloudflare/bundle/externals.d.ts.map +1 -0
  13. package/lib/cloudflare/bundle/externals.js +35 -0
  14. package/lib/cloudflare/bundle/externals.js.map +1 -0
  15. package/lib/cloudflare/bundle/internal-worker-bundle.d.ts +8 -1
  16. package/lib/cloudflare/bundle/internal-worker-bundle.d.ts.map +1 -1
  17. package/lib/cloudflare/bundle/internal-worker-bundle.js +11 -4
  18. package/lib/cloudflare/bundle/internal-worker-bundle.js.map +1 -1
  19. package/lib/cloudflare/bundle/plugin-hot-reload.d.ts +4 -1
  20. package/lib/cloudflare/bundle/plugin-hot-reload.d.ts.map +1 -1
  21. package/lib/cloudflare/bundle/plugin-hot-reload.js +27 -11
  22. package/lib/cloudflare/bundle/plugin-hot-reload.js.map +1 -1
  23. package/lib/cloudflare/bundle/plugin-hybrid-node-compat.js +5 -1
  24. package/lib/cloudflare/bundle/plugin-hybrid-node-compat.js.map +1 -1
  25. package/lib/cloudflare/bundle/plugin-wasm.d.ts +6 -2
  26. package/lib/cloudflare/bundle/plugin-wasm.d.ts.map +1 -1
  27. package/lib/cloudflare/bundle/plugin-wasm.js +21 -47
  28. package/lib/cloudflare/bundle/plugin-wasm.js.map +1 -1
  29. package/lib/cloudflare/bundle/validate-node-compat.d.ts +2 -1
  30. package/lib/cloudflare/bundle/validate-node-compat.d.ts.map +1 -1
  31. package/lib/cloudflare/bundle/validate-node-compat.js +5 -4
  32. package/lib/cloudflare/bundle/validate-node-compat.js.map +1 -1
  33. package/lib/cloudflare/compatibility-date.gen.d.ts +1 -1
  34. package/lib/cloudflare/compatibility-date.gen.js +1 -1
  35. package/lib/cloudflare/d1-database.js +1 -1
  36. package/lib/cloudflare/d1-database.js.map +1 -1
  37. package/lib/cloudflare/d1-migrations.d.ts.map +1 -1
  38. package/lib/cloudflare/d1-migrations.js +8 -10
  39. package/lib/cloudflare/d1-migrations.js.map +1 -1
  40. package/lib/cloudflare/miniflare/miniflare-worker-options.d.ts +3 -3
  41. package/lib/cloudflare/miniflare/miniflare-worker-options.d.ts.map +1 -1
  42. package/lib/cloudflare/miniflare/miniflare-worker-options.js +23 -6
  43. package/lib/cloudflare/miniflare/miniflare-worker-options.js.map +1 -1
  44. package/lib/cloudflare/miniflare/miniflare.d.ts.map +1 -1
  45. package/lib/cloudflare/miniflare/miniflare.js +2 -4
  46. package/lib/cloudflare/miniflare/miniflare.js.map +1 -1
  47. package/lib/cloudflare/miniflare/remote-binding-proxy.d.ts.map +1 -1
  48. package/lib/cloudflare/miniflare/remote-binding-proxy.js +4 -6
  49. package/lib/cloudflare/miniflare/remote-binding-proxy.js.map +1 -1
  50. package/lib/cloudflare/react-router.d.ts +4 -0
  51. package/lib/cloudflare/react-router.d.ts.map +1 -1
  52. package/lib/cloudflare/react-router.js +8 -5
  53. package/lib/cloudflare/react-router.js.map +1 -1
  54. package/lib/cloudflare/worker-bundle.d.ts +80 -0
  55. package/lib/cloudflare/worker-bundle.d.ts.map +1 -0
  56. package/lib/cloudflare/worker-bundle.js +266 -0
  57. package/lib/cloudflare/worker-bundle.js.map +1 -0
  58. package/lib/cloudflare/worker.d.ts +1 -1
  59. package/lib/cloudflare/worker.d.ts.map +1 -1
  60. package/lib/cloudflare/worker.js +81 -195
  61. package/lib/cloudflare/worker.js.map +1 -1
  62. package/lib/cloudflare/wrangler.json.js +2 -3
  63. package/lib/cloudflare/wrangler.json.js.map +1 -1
  64. package/lib/esbuild/bundle.d.ts +1 -0
  65. package/lib/esbuild/bundle.d.ts.map +1 -1
  66. package/lib/state/cloudflare-state-store.js +1 -5
  67. package/lib/state/cloudflare-state-store.js.map +1 -1
  68. package/lib/state/dofs-state-store/store.d.ts.map +1 -1
  69. package/lib/state/dofs-state-store/store.js +4 -4
  70. package/lib/state/dofs-state-store/store.js.map +1 -1
  71. package/package.json +10 -5
  72. package/src/cloudflare/astro.ts +4 -3
  73. package/src/cloudflare/bundle/externals.ts +36 -0
  74. package/src/cloudflare/bundle/internal-worker-bundle.ts +12 -3
  75. package/src/cloudflare/bundle/plugin-hot-reload.ts +32 -12
  76. package/src/cloudflare/bundle/plugin-hybrid-node-compat.ts +6 -1
  77. package/src/cloudflare/bundle/plugin-wasm.ts +26 -54
  78. package/src/cloudflare/bundle/validate-node-compat.ts +6 -5
  79. package/src/cloudflare/compatibility-date.gen.ts +1 -1
  80. package/src/cloudflare/d1-database.ts +1 -1
  81. package/src/cloudflare/d1-migrations.ts +19 -18
  82. package/src/cloudflare/miniflare/miniflare-worker-options.ts +27 -13
  83. package/src/cloudflare/miniflare/miniflare.ts +2 -4
  84. package/src/cloudflare/miniflare/remote-binding-proxy.ts +5 -7
  85. package/src/cloudflare/react-router.ts +14 -6
  86. package/src/cloudflare/worker-bundle.ts +364 -0
  87. package/src/cloudflare/worker.ts +104 -241
  88. package/src/cloudflare/wrangler.json.ts +2 -3
  89. package/src/state/cloudflare-state-store.ts +1 -5
  90. package/src/state/dofs-state-store/store.ts +4 -4
  91. package/templates/nuxt/package.json +1 -1
  92. package/templates/nuxt/types/env.d.ts +11 -0
  93. package/templates/react-router/workers/app.ts +2 -2
  94. package/templates/rwsdk/.cursor/rules/alchemy_cloudflare.mdc +385 -0
  95. package/templates/rwsdk/wrangler.jsonc +10 -7
  96. package/templates/typescript/tsconfig.json +1 -2
  97. package/bin/alchemy.mjs +0 -51766
  98. package/lib/cloudflare/bundle/esbuild.d.ts +0 -16
  99. package/lib/cloudflare/bundle/esbuild.d.ts.map +0 -1
  100. package/lib/cloudflare/bundle/esbuild.js +0 -159
  101. package/lib/cloudflare/bundle/esbuild.js.map +0 -1
  102. package/lib/cloudflare/bundle/fs.d.ts +0 -18
  103. package/lib/cloudflare/bundle/fs.d.ts.map +0 -1
  104. package/lib/cloudflare/bundle/fs.js +0 -78
  105. package/lib/cloudflare/bundle/fs.js.map +0 -1
  106. package/lib/cloudflare/bundle/index.d.ts +0 -3
  107. package/lib/cloudflare/bundle/index.d.ts.map +0 -1
  108. package/lib/cloudflare/bundle/index.js +0 -2
  109. package/lib/cloudflare/bundle/index.js.map +0 -1
  110. package/lib/cloudflare/bundle/inline.d.ts +0 -12
  111. package/lib/cloudflare/bundle/inline.d.ts.map +0 -1
  112. package/lib/cloudflare/bundle/inline.js +0 -32
  113. package/lib/cloudflare/bundle/inline.js.map +0 -1
  114. package/lib/cloudflare/bundle/normalize.d.ts +0 -21
  115. package/lib/cloudflare/bundle/normalize.d.ts.map +0 -1
  116. package/lib/cloudflare/bundle/normalize.js +0 -49
  117. package/lib/cloudflare/bundle/normalize.js.map +0 -1
  118. package/lib/cloudflare/bundle/shared.d.ts +0 -30
  119. package/lib/cloudflare/bundle/shared.d.ts.map +0 -1
  120. package/lib/cloudflare/bundle/shared.js +0 -34
  121. package/lib/cloudflare/bundle/shared.js.map +0 -1
  122. package/src/cloudflare/bundle/esbuild.ts +0 -194
  123. package/src/cloudflare/bundle/fs.ts +0 -103
  124. package/src/cloudflare/bundle/index.ts +0 -6
  125. package/src/cloudflare/bundle/inline.ts +0 -42
  126. package/src/cloudflare/bundle/normalize.ts +0 -76
  127. package/src/cloudflare/bundle/shared.ts +0 -73
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare-state-store.js","sourceRoot":"","sources":["../../src/state/cloudflare-state-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AACzF,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGpD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAsB7C;;;;GAIG;AACH,MAAM,OAAO,oBAAqB,SAAQ,eAAe;IACvD,OAAO,CAA+D;IACtE,YAAY,KAAY,EAAE,UAAuC,EAAE;QACjE,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,MAAM,UAAU,GACd,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACxE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CACb,mJAAmJ,CACpJ,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,OAAO,GAAG;YACb,GAAG,OAAO;YACV,UAAU,EAAE,UAAU;SACvB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YAC9B,MAAM,OAAO,GAGT;gBACF,MAAM;gBACN,MAAM;gBACN,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;aACrC,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,KAAK,EAAE;oBAChC,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;aAC9B,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBACxE,MAAM,IAAI,KAAK,CACb,2BAA2B,MAAM,gCAAgC,QAAQ,CAAC,MAAM,qCAAqC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAC5J,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAElC,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CACb,2BAA2B,MAAM,gCAAgC,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,EAAE,CAClG,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC,CAAC;IACJ,CAAC;CACF;AAED,MAAM,SAAS,GAAG,OAAO,CACvB,KAAK,EACH,OAEC,EACD,EAAE;IACF,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,uBAAuB,CAAC;IACjE,MAAM,KAAK,GACT,OAAO,CAAC,UAAU;QAClB,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,CACvB,qBAAqB,EACrB,SAAS,EACT,mJAAmJ,CACpJ,CAAC,CAAC;IAEL,MAAM,GAAG,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACtD,uBAAuB,CAAC,wBAAwB,CAAC;QACjD,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC;QAClC,kBAAkB,CAAC,GAAG,EAAE,UAAU,CAAC;KACpC,CAAC,CAAC;IACH,IACE,CAAC,QAAQ;QACT,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;QACnC,OAAO,CAAC,WAAW,EACnB,CAAC;QACD,MAAM,CAAC,GAAG,CACR,0BAA0B,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,KAAK,CAClE,CAAC;QACF,MAAM,SAAS,CAAC,GAAG,EAAE;YACnB,UAAU,EAAE,UAAU;YACtB,iBAAiB,EAAE,0BAA0B;YAC7C,MAAM,EAAE,KAAK;YACb,YAAY,EAAE;gBACZ,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI;gBAC5B,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;gBACpB,IAAI,EAAE,MAAM,CAAC,GAAG;aACjB;YACD,kBAAkB,EAAE,EAAE;YACtB,QAAQ,EAAE;gBACR,KAAK,EAAE,sBAAsB,CAAC,UAAU,EAAE;oBACxC,SAAS,EAAE,OAAO;oBAClB,MAAM,EAAE,IAAI;iBACb,CAAC;gBACF,WAAW,EAAE,KAAK;aACnB;YACD,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;SACnB,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACvB,MAAM,qBAAqB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC/C,CAAC;IACD,MAAM,GAAG,GAAG,WAAW,UAAU,IAAI,MAAM,mBAAmB,CAAC,GAAG,CAAC,cAAc,CAAC;IAClF,MAAM,cAAc,CAAC,GAAG,EAAE,CACxB,KAAK,CAAC,GAAG,EAAE;QACT,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,CAAC,WAAW,EAAE,EAAE;KAC1D,CAAC,CACH,CAAC;IACF,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;AAC3C,CAAC,CACF,CAAC;AAEF,KAAK,UAAU,cAAc,CAAC,EAA2B;IACvD,oEAAoE;IACpE,IAAI,IAA0B,CAAC;IAC/B,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,MAAM,EAAE,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,6MAA6M,CAC9M,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,GAAG,GAAG,CAAC;QACX,kCAAkC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,KAAK,CAAC;QAC3C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;QACpE,KAAK,IAAI,GAAG,CAAC,CAAC,sCAAsC;QACpD,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,oBAAoB;IACtD,CAAC;IACD,MAAM,IAAI,KAAK,CACb,uDAAuD,IAAI,EAAE,MAAM,IAAI,IAAI,EAAE,UAAU,EAAE,CAC1F,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"cloudflare-state-store.js","sourceRoot":"","sources":["../../src/state/cloudflare-state-store.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/state/dofs-state-store/store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAK7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,UAAU,yBAAyB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAWD,qBAAa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,yBAAyB;IAEzD,GAAG,CAAC,CAAC,SAAS,MAAM,eAAe,CAAC,GAAG,EAC3C,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GACvC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAwCtC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IAc7B,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB/B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;CAYrE;AAMD,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,aAAa,EAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,OAAO,iBAwEf"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/state/dofs-state-store/store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAM7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,UAAU,yBAAyB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAWD,qBAAa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,yBAAyB;IAEzD,GAAG,CAAC,CAAC,SAAS,MAAM,eAAe,CAAC,GAAG,EAC3C,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GACvC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAwCtC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IAc7B,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB/B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;CAYrE;AAMD,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,aAAa,EAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,OAAO,iBAuEf"}
@@ -1,5 +1,6 @@
1
1
  import { handleApiError } from "../../cloudflare/api-error.js";
2
2
  import { getInternalWorkerBundle } from "../../cloudflare/bundle/internal-worker-bundle.js";
3
+ import { WorkerBundle } from "../../cloudflare/worker-bundle.js";
3
4
  import { logger } from "../../util/logger.js";
4
5
  import { withExponentialBackoff } from "../../util/retry.js";
5
6
  class StateStoreError extends Error {
@@ -102,12 +103,11 @@ export async function upsertStateStoreWorker(api, workerName, token, force) {
102
103
  cache.set(key, TAG);
103
104
  return;
104
105
  }
105
- const formData = new FormData();
106
- const { file } = await getInternalWorkerBundle("dofs-state-store");
107
- formData.append(file.name, file);
106
+ const { bundle } = await getInternalWorkerBundle("dofs-state-store");
107
+ const formData = await WorkerBundle.toFormData(bundle);
108
108
  formData.append("metadata", new Blob([
109
109
  JSON.stringify({
110
- main_module: file.name,
110
+ main_module: bundle.entrypoint,
111
111
  compatibility_date: "2025-06-01",
112
112
  compatibility_flags: ["nodejs_compat"],
113
113
  bindings: [
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/state/dofs-state-store/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/state/dofs-state-store/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAC;AAC5F,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEjE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAU7D,MAAM,eAAgB,SAAQ,KAAK;IAGtB;IAFX,YACE,OAAe,EACN,SAAkB;QAE3B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFN,cAAS,GAAT,SAAS,CAAS;IAG7B,CAAC;CACF;AAED,MAAM,OAAO,oBAAoB;IACF;IAA7B,YAA6B,OAAkC;QAAlC,YAAO,GAAP,OAAO,CAA2B;IAAG,CAAC;IAEnE,KAAK,CAAC,GAAG,CACP,MAAS,EACT,MAAwC;QAExC,OAAO,MAAM,sBAAsB,CACjC,KAAK,IAAI,EAAE;YACT,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBACnC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,MAAM,EAAE,kBAAkB;oBAC1B,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,MAAM;oBACN,MAAM;iBACP,CAAC;aACH,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBACnE,MAAM,IAAI,eAAe,CACvB,gCAAgC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,uBAAuB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,IAAI,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,EACxI,IAAI,CACL,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAA4B,CAAC;YACxD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,IAAI,eAAe,CACvB,gBAAgB,MAAM,gCAAgC,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,EAAE,EACjF,GAAG,CAAC,MAAM,IAAI,GAAG,CAClB,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;YACR,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;gBACrC,OAAO,KAAK,CAAC,SAAS,CAAC;YACzB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,EACD,CAAC,EACD,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAC9B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,MAAM,EAAE,kBAAkB;gBAC1B,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE,IAAI;aACb,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,oEAAoE;QACpE,IAAI,IAA0B,CAAC;QAC/B,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACX,OAAO;YACT,CAAC;YACD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;YACtD,CAAC;YACD,IAAI,GAAG,GAAG,CAAC;YACX,kCAAkC;YAClC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,KAAK,CAAC;YAC3C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;YACpE,KAAK,IAAI,GAAG,CAAC,CAAC,sCAAsC;YACpD,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,oBAAoB;QACtD,CAAC;QACD,MAAM,IAAI,KAAK,CACb,iCAAiC,IAAI,EAAE,MAAM,IAAI,IAAI,EAAE,UAAU,EAAE,CACpE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,OAAoB,EAAE;QAC9C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClD,OAAO,MAAM,KAAK,CAAC,GAAG,EAAE;YACtB,GAAG,IAAI;YACP,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBAC7C,GAAG,IAAI,CAAC,OAAO;aAChB;SACF,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,GAAG,GAAG,gCAAgC,CAAC;AAE7C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,GAAkB,EAClB,UAAkB,EAClB,KAAa,EACb,KAAc;IAEd,MAAM,GAAG,GAAG,UAAU,UAAU,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACnB,OAAO;IACT,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC9D,IAAI,KAAK,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACnC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACpB,OAAO;IACT,CAAC;IACD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACvD,QAAQ,CAAC,MAAM,CACb,UAAU,EACV,IAAI,IAAI,CAAC;QACP,IAAI,CAAC,SAAS,CAAC;YACb,WAAW,EAAE,MAAM,CAAC,UAAU;YAC9B,kBAAkB,EAAE,YAAY;YAChC,mBAAmB,EAAE,CAAC,eAAe,CAAC;YACtC,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,kBAAkB;oBACxB,IAAI,EAAE,0BAA0B;oBAChC,UAAU,EAAE,gBAAgB;iBAC7B;gBACD;oBACE,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,aAAa;oBACnB,IAAI,EAAE,KAAK;iBACZ;aACF;YACD,UAAU,EAAE,CAAC,KAAK;gBAChB,CAAC,CAAC;oBACE,kBAAkB,EAAE,CAAC,gBAAgB,CAAC;iBACvC;gBACH,CAAC,CAAC,SAAS;YACb,IAAI,EAAE,CAAC,GAAG,CAAC;YACX,aAAa,EAAE;gBACb,OAAO,EAAE,IAAI;aACd;SACuB,CAAC;KAC5B,CAAC,CACH,CAAC;IAEF,uCAAuC;IACvC,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,GAAG,CAC5B,aAAa,GAAG,CAAC,SAAS,oBAAoB,UAAU,EAAE,EAC1D,QAAQ,CACT,CAAC;IACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,MAAM,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,IAAI,CACjC,aAAa,GAAG,CAAC,SAAS,oBAAoB,UAAU,YAAY,EACpE,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EACzC;QACE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;KAChD,CACF,CAAC;IACF,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QACrB,MAAM,MAAM,cAAc,CACxB,YAAY,EACZ,2BAA2B,EAC3B,QAAQ,EACR,UAAU,CACX,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACtB,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,GAAkB,EAAE,UAAkB;IACnE,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,CACvB,aAAa,GAAG,CAAC,SAAS,oBAAoB,UAAU,WAAW,CACpE,CAAC;IACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,GAAG,EAAE,SAAS;SACf,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAIN,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IACrB,OAAO;QACL,KAAK,EAAE,IAAI;QACX,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;KAC5E,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "alchemy",
3
- "version": "0.52.0",
3
+ "version": "0.54.0",
4
4
  "license": "Apache-2.0",
5
5
  "author": "Sam Goodwin <sam@alchemy.run>",
6
6
  "homepage": "https://alchemy.run",
@@ -12,10 +12,11 @@
12
12
  "type": "module",
13
13
  "module": "./lib/index.js",
14
14
  "bin": {
15
- "alchemy": "bin/alchemy.mjs"
15
+ "alchemy": "bin/alchemy.js"
16
16
  },
17
17
  "scripts": {
18
- "build:cli": "bun ./scripts/build-cli.ts",
18
+ "build:cli": "tsdown",
19
+ "dev:cli": "tsdown --watch",
19
20
  "build:workers": "bun ./scripts/build-workers.ts",
20
21
  "build": "rm -rf ./*.tsbuildinfo && rm -rf ./lib && tsc -b && bun run build:cli && bun run build:workers",
21
22
  "drizzle:generate": "bun run scripts/drizzle-generate.ts",
@@ -135,7 +136,7 @@
135
136
  },
136
137
  "dependencies": {
137
138
  "@aws-sdk/credential-providers": "^3.0.0",
138
- "@cloudflare/unenv-preset": "^2.3.1",
139
+ "@cloudflare/unenv-preset": "^2.4.0",
139
140
  "@cloudflare/workers-shared": "^0.17.5",
140
141
  "@iarna/toml": "^2.2.5",
141
142
  "@smithy/node-config-provider": "^4.0.0",
@@ -213,6 +214,8 @@
213
214
  "drizzle-kit": "^0.31.4",
214
215
  "fs-extra": "^11.3.0",
215
216
  "globby": "^14.1.0",
217
+ "jsonc-parse": "^1.5.5",
218
+ "grammy": "^1.37.0",
216
219
  "libsodium-wrappers": "^0.7.15",
217
220
  "listr2": "^8.0.0",
218
221
  "nitro-cloudflare-dev": "^0.2.2",
@@ -220,9 +223,11 @@
220
223
  "picocolors": "^1.1.1",
221
224
  "prettier": "^3.5.3",
222
225
  "trpc-cli": "^0.10.0",
226
+ "ts-morph": "^26.0.0",
227
+ "tsdown": "^0.13.0",
223
228
  "turndown": "^7.2.0",
224
- "typedoc-plugin-markdown": "^4.6.0",
225
229
  "typedoc": "^0.28.1",
230
+ "typedoc-plugin-markdown": "^4.6.0",
226
231
  "typescript": "^5.8.3",
227
232
  "vite": "^6.0.7",
228
233
  "vitepress": "^1.6.3",
@@ -77,6 +77,10 @@ export async function Astro<B extends Bindings>(
77
77
 
78
78
  return Website(id, {
79
79
  ...props,
80
+ command: props.command ?? "astro build",
81
+ dev: props.dev ?? {
82
+ command: "astro dev",
83
+ },
80
84
  noBundle: props.noBundle ?? true,
81
85
  main,
82
86
  assets: {
@@ -85,8 +89,5 @@ export async function Astro<B extends Bindings>(
85
89
  run_worker_first: false,
86
90
  },
87
91
  wrangler,
88
- dev: props.dev ?? {
89
- command: "astro dev",
90
- },
91
92
  });
92
93
  }
@@ -0,0 +1,36 @@
1
+ // https://developers.cloudflare.com/workers/runtime-apis/nodejs/#supported-nodejs-apis
2
+ const nodejs_compat = [
3
+ "node:async_hooks",
4
+ "node:assert",
5
+ "node:buffer",
6
+ "node:console",
7
+ "node:crypto",
8
+ "node:debug",
9
+ "node:diagnostics_channel",
10
+ "node:dns",
11
+ "node:events",
12
+ "node:inspector",
13
+ "node:net",
14
+ "node:path",
15
+ "node:perf_hooks", // partially supported
16
+ "node:process",
17
+ "node:querystring",
18
+ "node:stream",
19
+ "node:string_decoder",
20
+ "node:timers",
21
+ "node:tls", // partially supported
22
+ "node:url",
23
+ "node:util",
24
+ "node:zlib",
25
+ // "node:*",
26
+ ];
27
+
28
+ export const external = [
29
+ ...nodejs_compat,
30
+ ...nodejs_compat.map((p) => p.split(":")[1]),
31
+ "cloudflare:workers",
32
+ "cloudflare:workflows",
33
+ "cloudflare:*",
34
+ ];
35
+
36
+ export const external_als = ["node:async_hooks", "async_hooks", "cloudflare:*"];
@@ -2,6 +2,7 @@ import crypto from "node:crypto";
2
2
  import fs from "node:fs/promises";
3
3
  import path from "node:path";
4
4
  import { memoize } from "../../util/memoize.ts";
5
+ import type { WorkerBundle } from "../worker-bundle.ts";
5
6
 
6
7
  export type InternalWorker =
7
8
  | "cloudflare-state-store"
@@ -11,11 +12,19 @@ export type InternalWorker =
11
12
  export const getInternalWorkerBundle = memoize(async (name: InternalWorker) => {
12
13
  const content = await fs.readFile(
13
14
  path.join(import.meta.dirname, "..", "..", "..", "workers", `${name}.js`),
15
+ "utf-8",
14
16
  );
15
17
  return {
16
- file: new File([content], `${name}.js`, {
17
- type: "application/javascript+module",
18
- }),
19
18
  tag: `${name}:${crypto.createHash("sha256").update(content).digest("hex")}`,
19
+ bundle: {
20
+ entrypoint: `${name}.js`,
21
+ modules: [
22
+ {
23
+ type: "esm",
24
+ path: `${name}.js`,
25
+ content: content,
26
+ },
27
+ ],
28
+ } satisfies WorkerBundle,
20
29
  };
21
30
  });
@@ -1,4 +1,5 @@
1
1
  import type esbuild from "esbuild";
2
+ import assert from "node:assert";
2
3
 
3
4
  export interface HotReloadPluginProps {
4
5
  onBuildStart?: () => void | Promise<void>;
@@ -6,22 +7,41 @@ export interface HotReloadPluginProps {
6
7
  onBuildError?: (errors: esbuild.Message[]) => void | Promise<void>;
7
8
  }
8
9
 
9
- export function esbuildPluginHotReload(
10
- props: HotReloadPluginProps,
11
- ): esbuild.Plugin {
12
- return {
10
+ export function createHotReloadPlugin(): {
11
+ plugin: esbuild.Plugin;
12
+ iterator: AsyncIterable<esbuild.BuildResult>;
13
+ } {
14
+ let _controller:
15
+ | ReadableStreamDefaultController<esbuild.BuildResult>
16
+ | undefined;
17
+ const stream = new ReadableStream<esbuild.BuildResult>({
18
+ start: (controller) => {
19
+ _controller = controller;
20
+ },
21
+ });
22
+ const plugin: esbuild.Plugin = {
13
23
  name: "alchemy-hot-reload",
14
24
  setup(build) {
15
- if (props.onBuildStart) {
16
- build.onStart(props.onBuildStart);
17
- }
18
25
  build.onEnd(async (result) => {
19
- if (result.errors.length > 0) {
20
- await props.onBuildError?.(result.errors);
21
- } else {
22
- await props.onBuildEnd?.(result);
23
- }
26
+ assert(_controller);
27
+ _controller.enqueue(result);
28
+ });
29
+ build.onDispose(() => {
30
+ _controller?.close();
24
31
  });
25
32
  },
26
33
  };
34
+ return {
35
+ plugin,
36
+ iterator: (async function* () {
37
+ const reader = stream.getReader();
38
+ while (true) {
39
+ const { done, value } = await reader.read();
40
+ if (done) {
41
+ break;
42
+ }
43
+ yield value;
44
+ }
45
+ })(),
46
+ };
27
47
  }
@@ -144,12 +144,17 @@ function handleUnenvAliasedPackages(
144
144
 
145
145
  build.onResolve({ filter: UNENV_ALIAS_RE }, (args) => {
146
146
  const unresolvedAlias = alias[args.path];
147
+
147
148
  // Convert `require()` calls for NPM packages to a virtual ES Module that can be imported avoiding the require calls.
148
149
  // Note: Does not apply to Node.js packages that are handled in `handleRequireCallsToNodeJSBuiltins`
149
150
  if (
150
151
  args.kind === "require-call" &&
151
152
  (unresolvedAlias.startsWith("unenv/npm/") ||
152
- unresolvedAlias.startsWith("unenv/mock/"))
153
+ unresolvedAlias.startsWith("unenv/mock/") ||
154
+ // this does not exist in the original wrangler code but does seem to resolve the problem
155
+ // TODO(sam): is this the right solution? Why does the same code work in wrangler?
156
+ unresolvedAlias.startsWith("@cloudflare/unenv-preset/npm/") ||
157
+ unresolvedAlias.startsWith("@cloudflare/unenv-preset/mock/"))
153
158
  ) {
154
159
  return {
155
160
  path: args.path,
@@ -1,62 +1,34 @@
1
- import type { Plugin } from "esbuild";
1
+ import type esbuild from "esbuild";
2
+ import assert from "node:assert";
2
3
  import fs from "node:fs/promises";
3
4
  import path from "node:path";
5
+ import type { WorkerBundle } from "../worker-bundle.ts";
4
6
 
5
- export function esbuildPluginWasm(): Plugin {
6
- return {
7
- name: "wasm",
8
- setup: (build) => {
9
- // Resolve ".wasm" files to a path with a namespace
10
- build.onResolve({ filter: /\.wasm$/ }, (args) => {
11
- // If this is the import inside the stub module, import the
12
- // binary itself. Put the path in the "wasm-binary" namespace
13
- // to tell our binary load callback to load the binary file.
14
- if (args.namespace === "wasm-stub") {
15
- return {
16
- path: args.path,
17
- namespace: "wasm-binary",
18
- };
19
- }
20
-
21
- // Otherwise, generate the JavaScript stub module for this
22
- // ".wasm" file. Put it in the "wasm-stub" namespace to tell
23
- // our stub load callback to fill it with JavaScript.
24
- //
25
- // Resolve relative paths to absolute paths here since this
26
- // resolve callback is given "resolveDir", the directory to
27
- // resolve imports against.
28
- if (args.resolveDir === "") {
29
- return; // Ignore unresolvable paths
7
+ export function createWasmPlugin() {
8
+ const modules = new Map<string, WorkerBundle.Module>();
9
+ const plugin: esbuild.Plugin = {
10
+ name: "alchemy-wasm",
11
+ setup(build) {
12
+ build.onStart(() => {
13
+ modules.clear();
14
+ });
15
+ build.onResolve({ filter: /\.wasm$/ }, async (args) => {
16
+ if (!modules.has(args.path)) {
17
+ const name = path.normalize(args.path);
18
+ assert(build.initialOptions.outdir, "outdir is required");
19
+ await fs.mkdir(build.initialOptions.outdir, { recursive: true });
20
+ await fs.copyFile(
21
+ path.join(args.resolveDir, name),
22
+ path.join(build.initialOptions.outdir, name),
23
+ );
24
+ modules.set(args.path, {
25
+ type: "wasm",
26
+ path: name,
27
+ });
30
28
  }
31
- return {
32
- path: path.isAbsolute(args.path)
33
- ? args.path
34
- : path.join(args.resolveDir, args.path),
35
- namespace: "wasm-stub",
36
- };
29
+ return { external: true };
37
30
  });
38
-
39
- // Virtual modules in the "wasm-stub" namespace are filled with
40
- // the JavaScript code for compiling the WebAssembly binary. The
41
- // binary itself is imported from a second virtual module.
42
- build.onLoad({ filter: /.*/, namespace: "wasm-stub" }, async (args) => ({
43
- contents: `import wasm from ${JSON.stringify(args.path)}
44
- export default (imports) =>
45
- WebAssembly.instantiate(wasm, imports).then(
46
- result => result.instance.exports)`,
47
- }));
48
-
49
- // Virtual modules in the "wasm-binary" namespace contain the
50
- // actual bytes of the WebAssembly file. This uses esbuild's
51
- // built-in "binary" loader instead of manually embedding the
52
- // binary data inside JavaScript code ourselves.
53
- build.onLoad(
54
- { filter: /.*/, namespace: "wasm-binary" },
55
- async (args) => ({
56
- contents: await fs.readFile(args.path),
57
- loader: "binary",
58
- }),
59
- );
60
31
  },
61
32
  };
33
+ return { plugin, modules };
62
34
  }
@@ -1,3 +1,4 @@
1
+ import { err, ok, type Result } from "neverthrow";
1
2
  import { logger } from "../../util/logger.ts";
2
3
 
3
4
  interface ValidateNodeCompatProps {
@@ -22,7 +23,7 @@ export function validateNodeCompat({
22
23
  compatibilityDate,
23
24
  compatibilityFlags,
24
25
  noBundle,
25
- }: ValidateNodeCompatProps) {
26
+ }: ValidateNodeCompatProps): Result<"v2" | "als" | null, string> {
26
27
  const {
27
28
  hasNodejsAlsFlag,
28
29
  hasNodejsCompatFlag,
@@ -45,13 +46,13 @@ export function validateNodeCompat({
45
46
  mode = "als";
46
47
  }
47
48
  if (hasExperimentalNodejsCompatV2Flag) {
48
- throw new Error(
49
+ return err(
49
50
  "The `experimental:` prefix on `nodejs_compat_v2` is no longer valid. Please remove it and try again.",
50
51
  );
51
52
  }
52
53
 
53
54
  if (hasNodejsCompatFlag && hasNodejsCompatV2Flag) {
54
- throw new Error(
55
+ return err(
55
56
  "The `nodejs_compat` and `nodejs_compat_v2` compatibility flags cannot be used in together. Please select just one.",
56
57
  );
57
58
  }
@@ -63,12 +64,12 @@ export function validateNodeCompat({
63
64
  }
64
65
 
65
66
  if (mode === "v1") {
66
- throw new Error(
67
+ return err(
67
68
  "You must set your compatibilty date >= 2024-09-23 when using 'nodejs_compat' compatibility flag",
68
69
  );
69
70
  }
70
71
 
71
- return mode;
72
+ return ok(mode);
72
73
  }
73
74
 
74
75
  function parseNodeCompatibilityFlags(compatibilityFlags: string[]) {
@@ -4,4 +4,4 @@
4
4
  /**
5
5
  * The default Cloudflare Workers compatibility date, set based on the latest workerd release at the time of build.
6
6
  */
7
- export const DEFAULT_COMPATIBILITY_DATE = "2025-07-24";
7
+ export const DEFAULT_COMPATIBILITY_DATE = "2025-07-26";
@@ -251,7 +251,7 @@ const _D1Database = Resource(
251
251
  const databaseName = props.name ?? id;
252
252
 
253
253
  if (this.phase === "delete") {
254
- if (props.delete !== false) {
254
+ if (props.delete !== false && this.output?.id !== id) {
255
255
  await deleteDatabase(api, this.output?.id);
256
256
  }
257
257
  // Return void (a deleted database has no content)
@@ -159,28 +159,29 @@ async function migrateLegacySchema(
159
159
  export async function listMigrationsFiles(
160
160
  migrationsDir: string,
161
161
  ): Promise<Array<{ id: string; sql: string }>> {
162
- const entries = await fs.readdir(migrationsDir);
163
-
164
- const sqlFiles = entries
165
- .filter((f: string) => f.endsWith(".sql"))
166
- .sort((a: string, b: string) => {
167
- const aNum = getPrefix(a);
168
- const bNum = getPrefix(b);
162
+ const entries = await Array.fromAsync(
163
+ fs.glob("**/*.sql", {
164
+ cwd: migrationsDir,
165
+ }),
166
+ );
169
167
 
170
- if (aNum !== null && bNum !== null) return aNum - bNum;
171
- if (aNum !== null) return -1;
172
- if (bNum !== null) return 1;
168
+ const sqlFiles = entries.sort((a: string, b: string) => {
169
+ const aNum = getPrefix(a);
170
+ const bNum = getPrefix(b);
173
171
 
174
- return a.localeCompare(b);
175
- });
172
+ if (aNum !== null && bNum !== null) return aNum - bNum;
173
+ if (aNum !== null) return -1;
174
+ if (bNum !== null) return 1;
176
175
 
177
- const files: Array<{ id: string; sql: string }> = [];
178
- for (const file of sqlFiles) {
179
- const sql = await readMigrationFile(path.join(migrationsDir, file));
180
- files.push({ id: file, sql });
181
- }
176
+ return a.localeCompare(b);
177
+ });
182
178
 
183
- return files;
179
+ return await Promise.all(
180
+ sqlFiles.map(async (file) => ({
181
+ id: file,
182
+ sql: await readMigrationFile(path.join(migrationsDir, file)),
183
+ })),
184
+ );
184
185
  }
185
186
 
186
187
  /**
@@ -7,7 +7,7 @@ import assert from "node:assert";
7
7
  import { assertNever } from "../../util/assert-never.ts";
8
8
  import { logger } from "../../util/logger.ts";
9
9
  import { Self, type Binding, type WorkerBindingSpec } from "../bindings.ts";
10
- import type { WorkerBundle } from "../bundle/index.ts";
10
+ import type { WorkerBundle } from "../worker-bundle.ts";
11
11
  import type { WorkerProps } from "../worker.ts";
12
12
 
13
13
  export type MiniflareWorkerOptions = Pick<
@@ -208,30 +208,44 @@ function buildRemoteBinding(
208
208
  }
209
209
  }
210
210
 
211
- export async function buildMiniflareWorkerOptions({
211
+ const moduleTypes = {
212
+ esm: "ESModule",
213
+ cjs: "CommonJS",
214
+ text: "Text",
215
+ data: "Data",
216
+ wasm: "CompiledWasm",
217
+ sourcemap: "Text",
218
+ } as const;
219
+
220
+ function parseModules(bundle: WorkerBundle) {
221
+ const modules = bundle.modules.map((module) => ({
222
+ type: moduleTypes[module.type],
223
+ path: module.path,
224
+ contents: module.content,
225
+ }));
226
+ const entry = modules.find((module) => module.path === bundle.entrypoint);
227
+ if (!entry) {
228
+ throw new Error(`Entrypoint "${bundle.entrypoint}" not found in bundle.`);
229
+ }
230
+ return [entry, ...modules.filter((module) => module.path !== entry.path)];
231
+ }
232
+
233
+ export function buildMiniflareWorkerOptions({
212
234
  name: workerName,
213
235
  assets,
214
236
  bundle,
215
237
  bindings,
216
- format,
217
238
  eventSources,
218
239
  compatibilityDate,
219
240
  compatibilityFlags,
220
241
  remoteProxyConnectionString,
221
242
  }: MiniflareWorkerOptions & {
222
243
  remoteProxyConnectionString: RemoteProxyConnectionString | undefined;
223
- }): Promise<WorkerOptions> {
244
+ }): WorkerOptions {
224
245
  const options: WorkerOptions = {
225
246
  name: workerName,
226
- modules: await Promise.all(
227
- bundle.files.map(async (file) => ({
228
- type: (format === "cjs" ? "CommonJS" : "ESModule") as
229
- | "CommonJS"
230
- | "ESModule",
231
- path: file.name,
232
- contents: await file.text(),
233
- })),
234
- ),
247
+ modules: parseModules(bundle),
248
+ rootPath: bundle.root,
235
249
  compatibilityDate,
236
250
  compatibilityFlags,
237
251
  // TODO: Setting `proxy: true` here causes the following error when connecting via a websocket:
@@ -56,7 +56,7 @@ class MiniflareServer {
56
56
  private async set(worker: MiniflareWorkerOptions) {
57
57
  this.workers.set(
58
58
  worker.name,
59
- await buildMiniflareWorkerOptions({
59
+ buildMiniflareWorkerOptions({
60
60
  ...worker,
61
61
  remoteProxyConnectionString: await this.maybeCreateRemoteProxy(worker),
62
62
  }),
@@ -69,9 +69,7 @@ class MiniflareServer {
69
69
  // Miniflare intercepts SIGINT and exits with 130, which is not a failure.
70
70
  // No one likes to see a non-zero exit code when they Ctrl+C, so here's our workaround.
71
71
  process.on("exit", (code) => {
72
- if (code === 130) {
73
- process.exit(0);
74
- }
72
+ process.exit(code === 130 ? 0 : code);
75
73
  });
76
74
  this.miniflare = new miniflare.Miniflare(await this.miniflareOptions());
77
75
  await withErrorRewrite(this.miniflare.ready);
@@ -4,6 +4,7 @@ import { extractCloudflareResult } from "../api-response.ts";
4
4
  import { createCloudflareApi, type CloudflareApi } from "../api.ts";
5
5
  import type { WorkerBindingSpec } from "../bindings.ts";
6
6
  import { getInternalWorkerBundle } from "../bundle/internal-worker-bundle.ts";
7
+ import { WorkerBundle } from "../worker-bundle.ts";
7
8
  import type { WorkerMetadata } from "../worker-metadata.ts";
8
9
 
9
10
  type WranglerSessionConfig =
@@ -38,14 +39,14 @@ export async function createRemoteProxyWorker(input: {
38
39
  createWorkersPreviewToken(api, {
39
40
  name: input.name,
40
41
  metadata: {
41
- main_module: script.file.name,
42
+ main_module: script.bundle.entrypoint,
42
43
  compatibility_date: "2025-06-16",
43
44
  bindings: input.bindings,
44
45
  observability: {
45
46
  enabled: false,
46
47
  },
47
48
  },
48
- files: [script.file],
49
+ bundle: script.bundle,
49
50
  session: {
50
51
  workers_dev: true,
51
52
  minimal_mode: true,
@@ -98,16 +99,13 @@ async function createWorkersPreviewToken(
98
99
  input: {
99
100
  name: string;
100
101
  metadata: WorkerMetadata;
101
- files: File[];
102
+ bundle: WorkerBundle;
102
103
  session: WranglerSessionConfig;
103
104
  },
104
105
  ) {
105
106
  const session = await createWorkersPreviewSession(api);
106
- const formData = new FormData();
107
+ const formData = await WorkerBundle.toFormData(input.bundle);
107
108
  formData.append("metadata", JSON.stringify(input.metadata));
108
- for (const file of input.files) {
109
- formData.append(file.name, file);
110
- }
111
109
  formData.append("wrangler-session-config", JSON.stringify(input.session));
112
110
  const res = await extractCloudflareResult<{ preview_token: string }>(
113
111
  "create workers preview token",