devflare 1.0.0-next.14 → 1.0.0-next.16

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 (380) hide show
  1. package/LLM.md +9360 -1784
  2. package/README.md +391 -32
  3. package/bin/devflare.js +17 -7
  4. package/dist/account-0w8wdzjv.js +475 -0
  5. package/dist/account-eygq6qx7.js +475 -0
  6. package/dist/account-fw8nafav.js +475 -0
  7. package/dist/account-pzq69nys.js +475 -0
  8. package/dist/account-s66jb15j.js +475 -0
  9. package/dist/api-d6ekexs5.js +25 -0
  10. package/dist/bridge/index.d.ts +1 -1
  11. package/dist/bridge/index.d.ts.map +1 -1
  12. package/dist/bridge/miniflare.d.ts.map +1 -1
  13. package/dist/bridge/protocol.d.ts +1 -1
  14. package/dist/bridge/protocol.d.ts.map +1 -1
  15. package/dist/bridge/proxy.d.ts +0 -4
  16. package/dist/bridge/proxy.d.ts.map +1 -1
  17. package/dist/bridge/serialization.d.ts.map +1 -1
  18. package/dist/bridge/server.d.ts +1 -1
  19. package/dist/bridge/server.d.ts.map +1 -1
  20. package/dist/browser-shim/handler.d.ts +1 -1
  21. package/dist/browser-shim/handler.d.ts.map +1 -1
  22. package/dist/browser.d.ts +1651 -34
  23. package/dist/browser.d.ts.map +1 -1
  24. package/dist/build-1kmkwqgh.js +53 -0
  25. package/dist/build-506kjhcm.js +53 -0
  26. package/dist/build-66866ahs.js +53 -0
  27. package/dist/build-g1adm3ww.js +53 -0
  28. package/dist/build-p3r3117t.js +53 -0
  29. package/dist/bundler/do-bundler.d.ts.map +1 -1
  30. package/dist/bundler/rolldown-shared.d.ts +24 -0
  31. package/dist/bundler/rolldown-shared.d.ts.map +1 -0
  32. package/dist/bundler/worker-bundler.d.ts +0 -1
  33. package/dist/bundler/worker-bundler.d.ts.map +1 -1
  34. package/dist/cli/command-utils.d.ts +18 -0
  35. package/dist/cli/command-utils.d.ts.map +1 -0
  36. package/dist/cli/commands/account.d.ts +1 -1
  37. package/dist/cli/commands/account.d.ts.map +1 -1
  38. package/dist/cli/commands/build-artifacts.d.ts +27 -0
  39. package/dist/cli/commands/build-artifacts.d.ts.map +1 -0
  40. package/dist/cli/commands/build.d.ts.map +1 -1
  41. package/dist/cli/commands/config.d.ts +4 -0
  42. package/dist/cli/commands/config.d.ts.map +1 -0
  43. package/dist/cli/commands/deploy.d.ts.map +1 -1
  44. package/dist/cli/commands/dev.d.ts.map +1 -1
  45. package/dist/cli/commands/doctor.d.ts.map +1 -1
  46. package/dist/cli/commands/init.d.ts.map +1 -1
  47. package/dist/cli/commands/login.d.ts +4 -0
  48. package/dist/cli/commands/login.d.ts.map +1 -0
  49. package/dist/cli/commands/previews-support/cleanup.d.ts +9 -0
  50. package/dist/cli/commands/previews-support/cleanup.d.ts.map +1 -0
  51. package/dist/cli/commands/previews-support/family.d.ts +10 -0
  52. package/dist/cli/commands/previews-support/family.d.ts.map +1 -0
  53. package/dist/cli/commands/previews-support/render.d.ts +8 -0
  54. package/dist/cli/commands/previews-support/render.d.ts.map +1 -0
  55. package/dist/cli/commands/previews-support/theme.d.ts +10 -0
  56. package/dist/cli/commands/previews-support/theme.d.ts.map +1 -0
  57. package/dist/cli/commands/previews-support/types.d.ts +70 -0
  58. package/dist/cli/commands/previews-support/types.d.ts.map +1 -0
  59. package/dist/cli/commands/previews.d.ts +4 -0
  60. package/dist/cli/commands/previews.d.ts.map +1 -0
  61. package/dist/cli/commands/productions.d.ts +4 -0
  62. package/dist/cli/commands/productions.d.ts.map +1 -0
  63. package/dist/cli/commands/token.d.ts +4 -0
  64. package/dist/cli/commands/token.d.ts.map +1 -0
  65. package/dist/cli/commands/type-generation/discovery.d.ts +7 -0
  66. package/dist/cli/commands/type-generation/discovery.d.ts.map +1 -0
  67. package/dist/cli/commands/type-generation/generator.d.ts +44 -0
  68. package/dist/cli/commands/type-generation/generator.d.ts.map +1 -0
  69. package/dist/cli/commands/type-generation/models.d.ts +27 -0
  70. package/dist/cli/commands/type-generation/models.d.ts.map +1 -0
  71. package/dist/cli/commands/types.d.ts.map +1 -1
  72. package/dist/cli/commands/worker.d.ts +4 -0
  73. package/dist/cli/commands/worker.d.ts.map +1 -0
  74. package/dist/cli/config-path.d.ts +2 -1
  75. package/dist/cli/config-path.d.ts.map +1 -1
  76. package/dist/cli/deploy-strategy.d.ts +17 -0
  77. package/dist/cli/deploy-strategy.d.ts.map +1 -0
  78. package/dist/cli/deploy-target.d.ts +17 -0
  79. package/dist/cli/deploy-target.d.ts.map +1 -0
  80. package/dist/cli/generated-artifacts.d.ts +12 -0
  81. package/dist/cli/generated-artifacts.d.ts.map +1 -0
  82. package/dist/cli/help-pages/pages/account.d.ts +3 -0
  83. package/dist/cli/help-pages/pages/account.d.ts.map +1 -0
  84. package/dist/cli/help-pages/pages/core.d.ts +4 -0
  85. package/dist/cli/help-pages/pages/core.d.ts.map +1 -0
  86. package/dist/cli/help-pages/pages/index.d.ts +3 -0
  87. package/dist/cli/help-pages/pages/index.d.ts.map +1 -0
  88. package/dist/cli/help-pages/pages/misc.d.ts +3 -0
  89. package/dist/cli/help-pages/pages/misc.d.ts.map +1 -0
  90. package/dist/cli/help-pages/pages/previews.d.ts +3 -0
  91. package/dist/cli/help-pages/pages/previews.d.ts.map +1 -0
  92. package/dist/cli/help-pages/pages/productions.d.ts +3 -0
  93. package/dist/cli/help-pages/pages/productions.d.ts.map +1 -0
  94. package/dist/cli/help-pages/render.d.ts +12 -0
  95. package/dist/cli/help-pages/render.d.ts.map +1 -0
  96. package/dist/cli/help-pages/shared.d.ts +15 -0
  97. package/dist/cli/help-pages/shared.d.ts.map +1 -0
  98. package/dist/cli/help-pages/types.d.ts +23 -0
  99. package/dist/cli/help-pages/types.d.ts.map +1 -0
  100. package/dist/cli/help.d.ts +6 -0
  101. package/dist/cli/help.d.ts.map +1 -0
  102. package/dist/cli/index.d.ts +1 -0
  103. package/dist/cli/index.d.ts.map +1 -1
  104. package/dist/cli/preview-bindings.d.ts +42 -0
  105. package/dist/cli/preview-bindings.d.ts.map +1 -0
  106. package/dist/cli/preview.d.ts +11 -0
  107. package/dist/cli/preview.d.ts.map +1 -0
  108. package/dist/cli/ui.d.ts +37 -0
  109. package/dist/cli/ui.d.ts.map +1 -0
  110. package/dist/cli/workspace-build-guard.d.ts +14 -0
  111. package/dist/cli/workspace-build-guard.d.ts.map +1 -0
  112. package/dist/cloudflare/account-core.d.ts +6 -0
  113. package/dist/cloudflare/account-core.d.ts.map +1 -0
  114. package/dist/cloudflare/account-resources.d.ts +40 -0
  115. package/dist/cloudflare/account-resources.d.ts.map +1 -0
  116. package/dist/cloudflare/account-status.d.ts +11 -0
  117. package/dist/cloudflare/account-status.d.ts.map +1 -0
  118. package/dist/cloudflare/account-workers.d.ts +14 -0
  119. package/dist/cloudflare/account-workers.d.ts.map +1 -0
  120. package/dist/cloudflare/account.d.ts +7 -64
  121. package/dist/cloudflare/account.d.ts.map +1 -1
  122. package/dist/cloudflare/api.d.ts +4 -0
  123. package/dist/cloudflare/api.d.ts.map +1 -1
  124. package/dist/cloudflare/index.d.ts +57 -2
  125. package/dist/cloudflare/index.d.ts.map +1 -1
  126. package/dist/cloudflare/kv-namespace.d.ts +3 -0
  127. package/dist/cloudflare/kv-namespace.d.ts.map +1 -0
  128. package/dist/cloudflare/preferences.d.ts.map +1 -1
  129. package/dist/cloudflare/preview-registry-cache.d.ts +6 -0
  130. package/dist/cloudflare/preview-registry-cache.d.ts.map +1 -0
  131. package/dist/cloudflare/preview-registry-records.d.ts +61 -0
  132. package/dist/cloudflare/preview-registry-records.d.ts.map +1 -0
  133. package/dist/cloudflare/preview-registry-store.d.ts +14 -0
  134. package/dist/cloudflare/preview-registry-store.d.ts.map +1 -0
  135. package/dist/cloudflare/preview-registry-types.d.ts +103 -0
  136. package/dist/cloudflare/preview-registry-types.d.ts.map +1 -0
  137. package/dist/cloudflare/preview-registry.d.ts +42 -0
  138. package/dist/cloudflare/preview-registry.d.ts.map +1 -0
  139. package/dist/cloudflare/registry-schema.d.ts +253 -0
  140. package/dist/cloudflare/registry-schema.d.ts.map +1 -0
  141. package/dist/cloudflare/tokens.d.ts +18 -0
  142. package/dist/cloudflare/tokens.d.ts.map +1 -0
  143. package/dist/cloudflare/types.d.ts +122 -5
  144. package/dist/cloudflare/types.d.ts.map +1 -1
  145. package/dist/cloudflare/usage.d.ts.map +1 -1
  146. package/dist/config/compiler.d.ts +4 -0
  147. package/dist/config/compiler.d.ts.map +1 -1
  148. package/dist/config/framework-providers.d.ts +9 -0
  149. package/dist/config/framework-providers.d.ts.map +1 -0
  150. package/dist/config/index.d.ts +5 -3
  151. package/dist/config/index.d.ts.map +1 -1
  152. package/dist/config/loader.d.ts +1 -0
  153. package/dist/config/loader.d.ts.map +1 -1
  154. package/dist/config/preview-resources.d.ts +77 -0
  155. package/dist/config/preview-resources.d.ts.map +1 -0
  156. package/dist/config/preview.d.ts +31 -0
  157. package/dist/config/preview.d.ts.map +1 -0
  158. package/dist/config/ref.d.ts +0 -22
  159. package/dist/config/ref.d.ts.map +1 -1
  160. package/dist/config/resolve.d.ts +1 -0
  161. package/dist/config/resolve.d.ts.map +1 -1
  162. package/dist/config/resource-resolution.d.ts +60 -0
  163. package/dist/config/resource-resolution.d.ts.map +1 -0
  164. package/dist/config/schema-bindings.d.ts +693 -0
  165. package/dist/config/schema-bindings.d.ts.map +1 -0
  166. package/dist/config/schema-build.d.ts +67 -0
  167. package/dist/config/schema-build.d.ts.map +1 -0
  168. package/dist/config/schema-env.d.ts +1341 -0
  169. package/dist/config/schema-env.d.ts.map +1 -0
  170. package/dist/config/schema-normalization.d.ts +64 -0
  171. package/dist/config/schema-normalization.d.ts.map +1 -0
  172. package/dist/config/schema-runtime.d.ts +230 -0
  173. package/dist/config/schema-runtime.d.ts.map +1 -0
  174. package/dist/config/schema.d.ts +640 -3669
  175. package/dist/config/schema.d.ts.map +1 -1
  176. package/dist/config-entry.d.ts +5 -0
  177. package/dist/config-entry.d.ts.map +1 -0
  178. package/dist/config-fjwke42y.js +59 -0
  179. package/dist/config-hwdqjse7.js +59 -0
  180. package/dist/config-pxvewrhv.js +59 -0
  181. package/dist/config-q0g5qdga.js +59 -0
  182. package/dist/decorators/durable-object.d.ts.map +1 -1
  183. package/dist/deploy-7nmzc9r8.js +609 -0
  184. package/dist/deploy-csfhdr64.js +691 -0
  185. package/dist/deploy-ex4g5avz.js +621 -0
  186. package/dist/deploy-jnb0bhka.js +609 -0
  187. package/dist/deploy-tp0g6qdp.js +609 -0
  188. package/dist/deploy-ykpcjkc2.js +690 -0
  189. package/dist/{dev-c1xc1gq9.js → dev-2pd33m28.js} +392 -348
  190. package/dist/dev-7ef5e2j1.js +2409 -0
  191. package/dist/dev-8nssqatr.js +2409 -0
  192. package/dist/dev-grznx8fn.js +2409 -0
  193. package/dist/dev-server/d1-migrations.d.ts +14 -0
  194. package/dist/dev-server/d1-migrations.d.ts.map +1 -0
  195. package/dist/dev-server/gateway-script.d.ts +8 -0
  196. package/dist/dev-server/gateway-script.d.ts.map +1 -0
  197. package/dist/dev-server/runtime-stdio.d.ts.map +1 -1
  198. package/dist/dev-server/server.d.ts.map +1 -1
  199. package/dist/dev-server/vite-process.d.ts +14 -0
  200. package/dist/dev-server/vite-process.d.ts.map +1 -0
  201. package/dist/dev-server/vite-utils.d.ts +1 -1
  202. package/dist/dev-server/vite-utils.d.ts.map +1 -1
  203. package/dist/dev-server/worker-source-watcher.d.ts +11 -0
  204. package/dist/dev-server/worker-source-watcher.d.ts.map +1 -0
  205. package/dist/dev-server/worker-surface-paths.d.ts +6 -0
  206. package/dist/dev-server/worker-surface-paths.d.ts.map +1 -0
  207. package/dist/{doctor-z4ffybce.js → doctor-04ammrrh.js} +67 -31
  208. package/dist/doctor-fmjj65mc.js +245 -0
  209. package/dist/doctor-fzkznce1.js +245 -0
  210. package/dist/doctor-sa5xv1bz.js +245 -0
  211. package/dist/index-091sh1ma.js +1229 -0
  212. package/dist/index-0apbm26n.js +788 -0
  213. package/dist/index-0eqksag4.js +418 -0
  214. package/dist/{index-dr6sbp8d.js → index-0kfzdywd.js} +15 -2
  215. package/dist/index-0w826dsr.js +379 -0
  216. package/dist/{index-rfhx0yd5.js → index-11m5a8wd.js} +110 -32
  217. package/dist/{index-xxwbb2nt.js → index-1sp39f2f.js} +114 -58
  218. package/dist/index-2jnrqbny.js +1301 -0
  219. package/dist/index-2pb7b9mw.js +378 -0
  220. package/dist/{index-0kzg8wed.js → index-2x53aqjm.js} +1071 -890
  221. package/dist/index-3ke5d2vn.js +1229 -0
  222. package/dist/index-43dq8yx8.js +788 -0
  223. package/dist/index-4rrttqj5.js +378 -0
  224. package/dist/index-4v9bc2pc.js +1367 -0
  225. package/dist/index-61jsjnsv.js +280 -0
  226. package/dist/index-6jef5emv.js +176 -0
  227. package/dist/index-6psz1h4c.js +788 -0
  228. package/dist/index-72mve6vh.js +168 -0
  229. package/dist/{index-zbvmtcn2.js → index-74198nxd.js} +179 -77
  230. package/dist/index-7g8zyws4.js +192 -0
  231. package/dist/index-7kcxjhta.js +456 -0
  232. package/dist/index-7v583xan.js +418 -0
  233. package/dist/index-7x0ybbtx.js +133 -0
  234. package/dist/index-816krz9p.js +52 -0
  235. package/dist/index-82f1z98k.js +41 -0
  236. package/dist/index-8t5nb4qx.js +133 -0
  237. package/dist/index-9az6s7ad.js +52 -0
  238. package/dist/{index-59df49vn.js → index-9ba1etyz.js} +29 -51
  239. package/dist/{index-001mw014.js → index-9fbtk7gv.js} +134 -248
  240. package/dist/index-9n6djthj.js +490 -0
  241. package/dist/index-aabgympv.js +39 -0
  242. package/dist/index-b8m6883k.js +74 -0
  243. package/dist/{index-5yxg30va.js → index-cgbvmse6.js} +15 -6
  244. package/dist/index-d8etnfef.js +1229 -0
  245. package/dist/index-e9yw4d6y.js +133 -0
  246. package/dist/index-epw1jxz5.js +1204 -0
  247. package/dist/index-f85s8gj3.js +2649 -0
  248. package/dist/index-fe2ngvh7.js +1229 -0
  249. package/dist/index-fvsadj32.js +192 -0
  250. package/dist/index-gs4y9gdf.js +456 -0
  251. package/dist/{index-fef08w43.js → index-h18pxvzs.js} +7 -6
  252. package/dist/index-hfj1a2c4.js +2649 -0
  253. package/dist/{index-8gtqgb3q.js → index-hjy8ctpc.js} +14 -92
  254. package/dist/index-htzf0py1.js +1204 -0
  255. package/dist/index-j185x270.js +897 -0
  256. package/dist/index-jb75kwa4.js +519 -0
  257. package/dist/index-jwd8pcb2.js +897 -0
  258. package/dist/index-k29yjhv0.js +52 -0
  259. package/dist/index-k6vq6kkt.js +456 -0
  260. package/dist/{index-vky23txa.js → index-m3fmw6mx.js} +2 -2
  261. package/dist/index-maxpsfk8.js +402 -0
  262. package/dist/index-mbdmrner.js +402 -0
  263. package/dist/index-mea5bc45.js +418 -0
  264. package/dist/index-mqekt778.js +185 -0
  265. package/dist/index-na3mnm1k.js +74 -0
  266. package/dist/index-p03n4qet.js +1367 -0
  267. package/dist/index-p296ban8.js +191 -0
  268. package/dist/index-pnbs1b8k.js +280 -0
  269. package/dist/index-q4kaz181.js +1207 -0
  270. package/dist/index-ry131z23.js +378 -0
  271. package/dist/index-sgb7c8nm.js +402 -0
  272. package/dist/index-sqrksgb2.js +133 -0
  273. package/dist/index-stgn34cr.js +148 -0
  274. package/dist/{index-v8vvsn9x.js → index-t08te69w.js} +1 -18
  275. package/dist/index-thna1tkd.js +280 -0
  276. package/dist/index-v5nmqthy.js +74 -0
  277. package/dist/{index-n932ytmq.js → index-vt4yxkmf.js} +2 -2
  278. package/dist/index-wyq6c6yj.js +402 -0
  279. package/dist/index-wztc9stx.js +418 -0
  280. package/dist/index-x9cwdxw5.js +456 -0
  281. package/dist/index-xk9djfjp.js +519 -0
  282. package/dist/index-yc0gcchc.js +418 -0
  283. package/dist/index-yqbxjysa.js +897 -0
  284. package/dist/index-yzddwp02.js +788 -0
  285. package/dist/index-zfhq6s96.js +74 -0
  286. package/dist/index-zt22fe2j.js +54 -0
  287. package/dist/index-zyt5byt6.js +2649 -0
  288. package/dist/index.d.ts +2 -2
  289. package/dist/index.d.ts.map +1 -1
  290. package/dist/{init-na2atvz2.js → init-r4hnxan3.js} +24 -17
  291. package/dist/login-2hnz4m4n.js +77 -0
  292. package/dist/login-5bsxxpvc.js +77 -0
  293. package/dist/login-6tzvczw2.js +77 -0
  294. package/dist/login-bhaw72zc.js +77 -0
  295. package/dist/login-x8tgckqm.js +77 -0
  296. package/dist/previews-3rn8mz2c.js +1168 -0
  297. package/dist/previews-d487qde5.js +1200 -0
  298. package/dist/previews-gm3z0syj.js +1168 -0
  299. package/dist/previews-j9ymq4ys.js +1169 -0
  300. package/dist/previews-q031mx34.js +1168 -0
  301. package/dist/productions-120xg0aq.js +505 -0
  302. package/dist/productions-5ev5qweg.js +505 -0
  303. package/dist/productions-me3tdvr9.js +505 -0
  304. package/dist/productions-p5rbgp2f.js +505 -0
  305. package/dist/productions-x9p0pym1.js +505 -0
  306. package/dist/runtime/context-events.d.ts +13 -0
  307. package/dist/runtime/context-events.d.ts.map +1 -0
  308. package/dist/runtime/context-types.d.ts +82 -0
  309. package/dist/runtime/context-types.d.ts.map +1 -0
  310. package/dist/runtime/context.d.ts +6 -267
  311. package/dist/runtime/context.d.ts.map +1 -1
  312. package/dist/runtime/exports.d.ts +3 -3
  313. package/dist/runtime/index.d.ts +1 -1
  314. package/dist/runtime/index.d.ts.map +1 -1
  315. package/dist/runtime/middleware.d.ts +8 -38
  316. package/dist/runtime/middleware.d.ts.map +1 -1
  317. package/dist/src/browser.js +23 -14
  318. package/dist/src/cli/index.js +3 -1
  319. package/dist/src/cloudflare/index.js +49 -2
  320. package/dist/src/config-entry.js +14 -0
  321. package/dist/src/index.js +33 -20
  322. package/dist/src/runtime/index.js +3 -9
  323. package/dist/src/sveltekit/index.js +10 -7
  324. package/dist/src/test/index.js +16 -18
  325. package/dist/src/vite/index.js +7 -4
  326. package/dist/sveltekit/platform.d.ts +1 -1
  327. package/dist/sveltekit/platform.d.ts.map +1 -1
  328. package/dist/test/cf.d.ts +10 -10
  329. package/dist/test/email.d.ts.map +1 -1
  330. package/dist/test/index.d.ts +1 -6
  331. package/dist/test/index.d.ts.map +1 -1
  332. package/dist/test/queue.d.ts.map +1 -1
  333. package/dist/test/remote-ai.d.ts.map +1 -1
  334. package/dist/test/remote-cloudflare.d.ts +13 -0
  335. package/dist/test/remote-cloudflare.d.ts.map +1 -0
  336. package/dist/test/remote-vectorize.d.ts.map +1 -1
  337. package/dist/test/resolve-service-bindings.d.ts.map +1 -1
  338. package/dist/test/scheduled.d.ts.map +1 -1
  339. package/dist/test/should-skip.d.ts +0 -18
  340. package/dist/test/should-skip.d.ts.map +1 -1
  341. package/dist/test/simple-context-durable-objects.d.ts +6 -0
  342. package/dist/test/simple-context-durable-objects.d.ts.map +1 -0
  343. package/dist/test/simple-context-gateway-script.d.ts +2 -0
  344. package/dist/test/simple-context-gateway-script.d.ts.map +1 -0
  345. package/dist/test/simple-context-paths.d.ts +40 -0
  346. package/dist/test/simple-context-paths.d.ts.map +1 -0
  347. package/dist/test/simple-context.d.ts +1 -23
  348. package/dist/test/simple-context.d.ts.map +1 -1
  349. package/dist/test/tail.d.ts.map +1 -1
  350. package/dist/test/worker.d.ts.map +1 -1
  351. package/dist/token-kedhcret.js +419 -0
  352. package/dist/token-m8jmnjwk.js +419 -0
  353. package/dist/{types-sffr9681.js → types-0sqwkp7x.js} +244 -139
  354. package/dist/types-1gwr2ex6.js +572 -0
  355. package/dist/types-6e5yx6km.js +572 -0
  356. package/dist/types-p0gckpn6.js +572 -0
  357. package/dist/utils/send-email.d.ts.map +1 -1
  358. package/dist/vite/config-file.d.ts.map +1 -1
  359. package/dist/vite/plugin.d.ts.map +1 -1
  360. package/dist/worker-0srh2jfr.js +513 -0
  361. package/dist/worker-4xrfd10a.js +513 -0
  362. package/dist/worker-entry/composed-worker.d.ts +0 -7
  363. package/dist/worker-entry/composed-worker.d.ts.map +1 -1
  364. package/dist/worker-entry/surface-paths.d.ts +15 -0
  365. package/dist/worker-entry/surface-paths.d.ts.map +1 -0
  366. package/dist/worker-qtam8grz.js +513 -0
  367. package/dist/worker-qzm0b7br.js +513 -0
  368. package/dist/worker-y9ha6g44.js +513 -0
  369. package/package.json +17 -10
  370. package/R2.md +0 -200
  371. package/dist/account-8psavtg6.js +0 -420
  372. package/dist/build-n639efmn.js +0 -101
  373. package/dist/deploy-zvnq6xh7.js +0 -117
  374. package/dist/index-2q3pmzrx.js +0 -90
  375. package/dist/index-f4q0jbnj.js +0 -195
  376. package/dist/index-n7rs26ft.js +0 -77
  377. package/dist/index-tfyxa77h.js +0 -850
  378. package/dist/index-wyf3s77s.js +0 -343
  379. package/dist/test/multi-worker-context.d.ts +0 -114
  380. package/dist/test/multi-worker-context.d.ts.map +0 -1
@@ -0,0 +1,419 @@
1
+ import {
2
+ createAccountOwnedAPIToken,
3
+ deleteAccountOwnedAPIToken,
4
+ filterDevflareManagedTokens,
5
+ listAccountOwnedAPITokens,
6
+ listAccountTokenPermissionGroups,
7
+ normalizeDevflareTokenName,
8
+ rollAccountOwnedAPITokenValue,
9
+ selectAllReusablePermissionGroups,
10
+ selectDevflarePermissionGroups,
11
+ stripDevflareTokenNamePrefix
12
+ } from "./index-72mve6vh.js";
13
+ import {
14
+ createCliTheme,
15
+ dim,
16
+ green,
17
+ logLine,
18
+ logTable,
19
+ whiteDim,
20
+ yellow
21
+ } from "./index-stgn34cr.js";
22
+ import"./index-3t6rypgc.js";
23
+ import {
24
+ getPrimaryAccount,
25
+ getWorkspaceAccountId
26
+ } from "./index-xk9djfjp.js";
27
+ import {
28
+ AuthenticationError,
29
+ CloudflareAPIError
30
+ } from "./index-0w826dsr.js";
31
+ import"./index-37x76zdn.js";
32
+
33
+ // src/cli/commands/token.ts
34
+ var CLI_API_OPTIONS = { timeout: 1e4 };
35
+ var TOKENS_USAGE = "devflare tokens <bootstrap-token> (--list | --new [token-name] | --roll [token-name] | --delete [token-name] | --delete-all) [--account <id>] [--all-flags]";
36
+ var TOKEN_OPERATION_SUMMARY_LINES = [
37
+ "--list List Devflare-managed account-owned tokens",
38
+ "--new [name] Create a Devflare-managed account-owned token",
39
+ "--roll [name] Roll a Devflare-managed account-owned token secret",
40
+ "--delete [name] Delete a Devflare-managed account-owned token",
41
+ "--delete-all Delete every Devflare-managed account-owned token",
42
+ "--all-flags With --new, include every reusable account-scoped permission group"
43
+ ];
44
+ function getTrimmedStringOption(options, key) {
45
+ const value = options[key];
46
+ if (typeof value !== "string") {
47
+ return;
48
+ }
49
+ const trimmedValue = value.trim();
50
+ return trimmedValue || undefined;
51
+ }
52
+ function formatTokenTimestamp(value) {
53
+ if (!value) {
54
+ return "—";
55
+ }
56
+ return value.toISOString().replace(/:\d{2}\.\d{3}Z$/, "Z").replace("T", " ");
57
+ }
58
+ function sortTokens(tokens) {
59
+ return [...tokens].sort((left, right) => {
60
+ const nameComparison = left.name.localeCompare(right.name);
61
+ if (nameComparison !== 0) {
62
+ return nameComparison;
63
+ }
64
+ return (right.modifiedOn?.getTime() ?? 0) - (left.modifiedOn?.getTime() ?? 0);
65
+ });
66
+ }
67
+ function logUsage(logger, theme) {
68
+ logLine(logger);
69
+ logLine(logger, `${dim("Usage:", theme)} ${TOKENS_USAGE}`);
70
+ logLine(logger, dim("Operations:", theme));
71
+ for (const line of TOKEN_OPERATION_SUMMARY_LINES) {
72
+ logLine(logger, ` ${line}`);
73
+ }
74
+ logLine(logger, dim("Token names are normalized to the devflare- prefix automatically.", theme));
75
+ logLine(logger, dim("The bootstrap token must include Cloudflare API token management permissions.", theme));
76
+ logLine(logger);
77
+ }
78
+ function resolveTokenOperation(parsed) {
79
+ const newOption = parsed.options.new;
80
+ const rollOption = parsed.options.roll;
81
+ const deleteOption = parsed.options.delete;
82
+ const requestedOperations = [
83
+ newOption !== undefined ? "new" : null,
84
+ rollOption !== undefined ? "roll" : null,
85
+ deleteOption !== undefined ? "delete" : null,
86
+ parsed.options.list === true ? "list" : null,
87
+ parsed.options["delete-all"] === true ? "delete-all" : null
88
+ ].filter(Boolean);
89
+ if (parsed.options["all-flags"] && !requestedOperations.includes("new")) {
90
+ return "--all-flags can only be used together with --new.";
91
+ }
92
+ if (requestedOperations.length === 0) {
93
+ return "Choose one token operation: --list, --new, --roll, --delete, or --delete-all.";
94
+ }
95
+ if (requestedOperations.length > 1) {
96
+ return "Choose only one token operation at a time.";
97
+ }
98
+ switch (requestedOperations[0]) {
99
+ case "new":
100
+ return {
101
+ kind: "new",
102
+ requestedName: typeof newOption === "string" ? newOption.trim() || undefined : undefined
103
+ };
104
+ case "roll":
105
+ return {
106
+ kind: "roll",
107
+ requestedName: typeof rollOption === "string" ? rollOption.trim() || undefined : undefined
108
+ };
109
+ case "delete":
110
+ return {
111
+ kind: "delete",
112
+ requestedName: typeof deleteOption === "string" ? deleteOption.trim() || undefined : undefined
113
+ };
114
+ case "list":
115
+ return { kind: "list" };
116
+ case "delete-all":
117
+ return { kind: "delete-all" };
118
+ }
119
+ }
120
+ function formatManagedTokenDisplayName(name) {
121
+ return stripDevflareTokenNamePrefix(name);
122
+ }
123
+ async function promptForTokenName(logger, theme, message) {
124
+ while (true) {
125
+ const selected = await logger.prompt(message, {
126
+ type: "text",
127
+ placeholder: "preview",
128
+ cancel: "symbol"
129
+ });
130
+ if (typeof selected === "symbol") {
131
+ logLine(logger, dim("Cancelled", theme));
132
+ return null;
133
+ }
134
+ const trimmedValue = selected.trim();
135
+ if (trimmedValue) {
136
+ return trimmedValue;
137
+ }
138
+ logger.error("Token name is required.");
139
+ }
140
+ }
141
+ async function resolveTokenName(requestedName, logger, theme, promptMessage) {
142
+ const rawName = requestedName ?? await promptForTokenName(logger, theme, promptMessage);
143
+ if (!rawName) {
144
+ return null;
145
+ }
146
+ return normalizeDevflareTokenName(rawName);
147
+ }
148
+ async function resolveNamedManagedTokens(accountId, accountSource, bootstrapToken, requestedName, logger, theme, options) {
149
+ const tokenName = await resolveTokenName(requestedName, logger, theme, options.promptMessage);
150
+ if (!tokenName) {
151
+ return { exitCode: 0 };
152
+ }
153
+ logLine(logger);
154
+ logLine(logger, `${yellow("tokens", theme)} ${dim(`${options.actionLabel} a Devflare-managed account-owned token…`, theme)}`);
155
+ logLine(logger, `${dim("Account:", theme)} ${green(accountId, theme)} ${whiteDim(`(${accountSource})`, theme)}`);
156
+ logLine(logger, `${dim("Name:", theme)} ${green(tokenName, theme)}`);
157
+ const accountTokens = await listAccountOwnedAPITokens(accountId, {
158
+ ...CLI_API_OPTIONS,
159
+ token: bootstrapToken
160
+ });
161
+ const matchingTokens = filterDevflareManagedTokens(accountTokens).filter((token) => token.name === tokenName);
162
+ if (matchingTokens.length === 0) {
163
+ logger.error(`No Devflare-managed token named ${tokenName} was found.`);
164
+ return { exitCode: 1 };
165
+ }
166
+ if (matchingTokens.length > 1) {
167
+ logLine(logger, dim(`Found ${matchingTokens.length} tokens with that name. ${options.multipleMatchMessage}.`, theme));
168
+ }
169
+ return {
170
+ tokenName,
171
+ matchingTokens
172
+ };
173
+ }
174
+ async function resolveRequestedAccountId(requestedAccountId, bootstrapToken) {
175
+ if (requestedAccountId) {
176
+ return { accountId: requestedAccountId, source: "flag" };
177
+ }
178
+ const workspaceAccountId = getWorkspaceAccountId();
179
+ if (workspaceAccountId) {
180
+ return {
181
+ accountId: workspaceAccountId,
182
+ source: "workspace"
183
+ };
184
+ }
185
+ const primaryAccount = await getPrimaryAccount({
186
+ ...CLI_API_OPTIONS,
187
+ token: bootstrapToken
188
+ });
189
+ if (!primaryAccount) {
190
+ throw new Error("No Cloudflare accounts found for this bootstrap token");
191
+ }
192
+ return {
193
+ accountId: primaryAccount.id,
194
+ source: "primary"
195
+ };
196
+ }
197
+ async function createManagedToken(accountId, accountSource, bootstrapToken, requestedName, includeAllFlags, logger, theme) {
198
+ const tokenName = await resolveTokenName(requestedName, logger, theme, "Enter a Devflare token name:");
199
+ if (!tokenName) {
200
+ return { exitCode: 0 };
201
+ }
202
+ logLine(logger);
203
+ logLine(logger, `${yellow("tokens", theme)} ${dim("Creating an account-owned Devflare token…", theme)}`);
204
+ logLine(logger, `${dim("Account:", theme)} ${green(accountId, theme)} ${whiteDim(`(${accountSource})`, theme)}`);
205
+ logLine(logger, `${dim("Name:", theme)} ${green(tokenName, theme)}`);
206
+ const permissionGroups = await listAccountTokenPermissionGroups(accountId, {
207
+ ...CLI_API_OPTIONS,
208
+ token: bootstrapToken
209
+ });
210
+ if (permissionGroups.length === 0) {
211
+ logger.error("Cloudflare returned zero account token permission groups for this account.");
212
+ return { exitCode: 1 };
213
+ }
214
+ const selectedPermissionGroups = includeAllFlags ? selectAllReusablePermissionGroups(permissionGroups) : selectDevflarePermissionGroups(permissionGroups);
215
+ const createdToken = await createAccountOwnedAPIToken(accountId, {
216
+ name: tokenName,
217
+ permissionGroupIds: selectedPermissionGroups.map((group) => group.id)
218
+ }, {
219
+ ...CLI_API_OPTIONS,
220
+ token: bootstrapToken
221
+ });
222
+ if (!createdToken.value) {
223
+ logger.error("Cloudflare created the token but did not return a token value.");
224
+ return { exitCode: 1 };
225
+ }
226
+ logger.success(`Created ${createdToken.name || tokenName}`);
227
+ logLine(logger, `${dim("Permission groups:", theme)} ${selectedPermissionGroups.length} ${includeAllFlags ? "reusable account-scoped" : "Devflare-relevant account-scoped"} selected from ${permissionGroups.length} available`);
228
+ if (includeAllFlags) {
229
+ logLine(logger, dim("Account-owned tokens only accept account-scoped permission groups, so zone/user-scoped groups are skipped automatically.", theme));
230
+ logLine(logger, dim("Account API Tokens permissions are still excluded because Cloudflare does not allow sub-tokens to manage other tokens.", theme));
231
+ }
232
+ logger.warn("Cloudflare only returns the token secret once. Store it safely now.");
233
+ logger.log(createdToken.value);
234
+ return {
235
+ exitCode: 0,
236
+ output: createdToken.value
237
+ };
238
+ }
239
+ async function listManagedTokens(accountId, accountSource, bootstrapToken, logger, theme) {
240
+ logLine(logger);
241
+ logLine(logger, `${yellow("tokens", theme)} ${dim("Listing Devflare-managed account-owned tokens…", theme)}`);
242
+ logLine(logger, `${dim("Account:", theme)} ${green(accountId, theme)} ${whiteDim(`(${accountSource})`, theme)}`);
243
+ const accountTokens = await listAccountOwnedAPITokens(accountId, {
244
+ ...CLI_API_OPTIONS,
245
+ token: bootstrapToken
246
+ });
247
+ const managedTokens = sortTokens(filterDevflareManagedTokens(accountTokens));
248
+ if (managedTokens.length === 0) {
249
+ logLine(logger, dim("No Devflare-managed account-owned tokens found for this account.", theme));
250
+ return { exitCode: 0, output: "" };
251
+ }
252
+ logTable(logger, {
253
+ title: "Devflare-managed tokens",
254
+ rows: managedTokens,
255
+ columns: [
256
+ {
257
+ label: "Name",
258
+ value: (token) => formatManagedTokenDisplayName(token.name),
259
+ width: 46
260
+ },
261
+ {
262
+ label: "Status",
263
+ value: (token) => token.status ?? "unknown",
264
+ width: 10
265
+ },
266
+ {
267
+ label: "Token ID",
268
+ value: (token) => token.id.slice(0, 12),
269
+ width: 12
270
+ },
271
+ {
272
+ label: "Modified",
273
+ value: (token) => formatTokenTimestamp(token.modifiedOn)
274
+ }
275
+ ],
276
+ theme
277
+ });
278
+ const untouchedTokenCount = accountTokens.length - managedTokens.length;
279
+ if (untouchedTokenCount > 0) {
280
+ logLine(logger, dim(`Left ${untouchedTokenCount} non-Devflare token(s) out of this list.`, theme));
281
+ }
282
+ return {
283
+ exitCode: 0,
284
+ output: managedTokens.map((token) => formatManagedTokenDisplayName(token.name)).join(`
285
+ `)
286
+ };
287
+ }
288
+ async function rollManagedTokensByName(accountId, accountSource, bootstrapToken, requestedName, logger, theme) {
289
+ const selectedTokens = await resolveNamedManagedTokens(accountId, accountSource, bootstrapToken, requestedName, logger, theme, {
290
+ promptMessage: "Enter the Devflare token name to roll:",
291
+ actionLabel: "Rolling",
292
+ multipleMatchMessage: "Rolling all exact matches"
293
+ });
294
+ if ("exitCode" in selectedTokens) {
295
+ return selectedTokens;
296
+ }
297
+ const { tokenName, matchingTokens } = selectedTokens;
298
+ const rolledValues = [];
299
+ for (const token of matchingTokens) {
300
+ const rolledValue = await rollAccountOwnedAPITokenValue(accountId, token.id, {
301
+ ...CLI_API_OPTIONS,
302
+ token: bootstrapToken
303
+ });
304
+ rolledValues.push(rolledValue);
305
+ }
306
+ logger.success(`Rolled ${matchingTokens.length} Devflare-managed token(s) named ${tokenName}`);
307
+ logger.warn("Cloudflare only returns the new token secret once. Store it safely now.");
308
+ if (rolledValues.length === 1) {
309
+ logger.log(rolledValues[0]);
310
+ } else {
311
+ for (const [index, value] of rolledValues.entries()) {
312
+ logLine(logger, `${dim(`${matchingTokens[index].id.slice(0, 12)}:`, theme)} ${value}`);
313
+ }
314
+ }
315
+ return {
316
+ exitCode: 0,
317
+ output: rolledValues.join(`
318
+ `)
319
+ };
320
+ }
321
+ async function deleteManagedTokensByName(accountId, accountSource, bootstrapToken, requestedName, logger, theme) {
322
+ const selectedTokens = await resolveNamedManagedTokens(accountId, accountSource, bootstrapToken, requestedName, logger, theme, {
323
+ promptMessage: "Enter the Devflare token name to delete:",
324
+ actionLabel: "Deleting",
325
+ multipleMatchMessage: "Deleting all exact matches"
326
+ });
327
+ if ("exitCode" in selectedTokens) {
328
+ return selectedTokens;
329
+ }
330
+ const { tokenName, matchingTokens } = selectedTokens;
331
+ for (const token of matchingTokens) {
332
+ await deleteAccountOwnedAPIToken(accountId, token.id, {
333
+ ...CLI_API_OPTIONS,
334
+ token: bootstrapToken
335
+ });
336
+ }
337
+ logger.success(`Deleted ${matchingTokens.length} Devflare-managed token(s) named ${tokenName}`);
338
+ return {
339
+ exitCode: 0,
340
+ output: matchingTokens.map((token) => token.id).join(`
341
+ `)
342
+ };
343
+ }
344
+ async function deleteAllManagedTokens(accountId, accountSource, bootstrapToken, logger, theme) {
345
+ logLine(logger);
346
+ logLine(logger, `${yellow("tokens", theme)} ${dim("Deleting all Devflare-managed account-owned tokens…", theme)}`);
347
+ logLine(logger, `${dim("Account:", theme)} ${green(accountId, theme)} ${whiteDim(`(${accountSource})`, theme)}`);
348
+ const accountTokens = await listAccountOwnedAPITokens(accountId, {
349
+ ...CLI_API_OPTIONS,
350
+ token: bootstrapToken
351
+ });
352
+ const managedTokens = filterDevflareManagedTokens(accountTokens);
353
+ if (managedTokens.length === 0) {
354
+ logger.success("No Devflare-managed tokens were found, so nothing was deleted.");
355
+ return { exitCode: 0 };
356
+ }
357
+ for (const token of managedTokens) {
358
+ await deleteAccountOwnedAPIToken(accountId, token.id, {
359
+ ...CLI_API_OPTIONS,
360
+ token: bootstrapToken
361
+ });
362
+ }
363
+ logger.success(`Deleted ${managedTokens.length} Devflare-managed token(s)`);
364
+ const untouchedTokenCount = accountTokens.length - managedTokens.length;
365
+ if (untouchedTokenCount > 0) {
366
+ logLine(logger, dim(`Left ${untouchedTokenCount} non-Devflare token(s) untouched.`, theme));
367
+ }
368
+ return {
369
+ exitCode: 0,
370
+ output: managedTokens.map((token) => token.id).join(`
371
+ `)
372
+ };
373
+ }
374
+ async function runTokenCommand(parsed, logger, _options) {
375
+ const bootstrapToken = parsed.args[0]?.trim();
376
+ const theme = createCliTheme(parsed.options);
377
+ if (!bootstrapToken) {
378
+ logUsage(logger, theme);
379
+ return { exitCode: 1 };
380
+ }
381
+ const tokenOperation = resolveTokenOperation(parsed);
382
+ if (typeof tokenOperation === "string") {
383
+ logUsage(logger, theme);
384
+ return { exitCode: 1 };
385
+ }
386
+ const requestedAccountId = getTrimmedStringOption(parsed.options, "account");
387
+ try {
388
+ const { accountId, source } = await resolveRequestedAccountId(requestedAccountId, bootstrapToken);
389
+ switch (tokenOperation.kind) {
390
+ case "new":
391
+ return createManagedToken(accountId, source, bootstrapToken, tokenOperation.requestedName, parsed.options["all-flags"] === true, logger, theme);
392
+ case "roll":
393
+ return rollManagedTokensByName(accountId, source, bootstrapToken, tokenOperation.requestedName, logger, theme);
394
+ case "list":
395
+ return listManagedTokens(accountId, source, bootstrapToken, logger, theme);
396
+ case "delete":
397
+ return deleteManagedTokensByName(accountId, source, bootstrapToken, tokenOperation.requestedName, logger, theme);
398
+ case "delete-all":
399
+ return deleteAllManagedTokens(accountId, source, bootstrapToken, logger, theme);
400
+ }
401
+ } catch (error) {
402
+ if (error instanceof AuthenticationError) {
403
+ logger.error(error.message);
404
+ return { exitCode: 1 };
405
+ }
406
+ if (error instanceof CloudflareAPIError) {
407
+ logger.error(`API Error: ${error.message}`);
408
+ return { exitCode: 1 };
409
+ }
410
+ if (error instanceof Error) {
411
+ logger.error(error.message);
412
+ return { exitCode: 1 };
413
+ }
414
+ throw error;
415
+ }
416
+ }
417
+ export {
418
+ runTokenCommand
419
+ };