void 0.21.9 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -1
- package/dist/{account-cmd-DZZGK80W.mjs → account-cmd-C84Ee8cO.mjs} +5 -5
- package/dist/{scan-ClYmX3sa.mjs → application-analysis-BVsVqc11.mjs} +135 -18
- package/dist/application-routing-B7QEjqSR.mjs +27 -0
- package/dist/{auth-CZuiVsFh.mjs → auth-CCjt0hcq.mjs} +1 -1
- package/dist/{auth-DLNN0D3Z.mjs → auth-CSkdO2Bb.mjs} +4 -47
- package/dist/{auth-link-B_CeugBw.mjs → auth-link-CioEg6uY.mjs} +5 -5
- package/dist/{auth-router-BgEFRuvZ.mjs → auth-router-BsR981d4.mjs} +5 -5
- package/dist/{better-auth-shared-rsBGBvWJ.mjs → better-auth-shared-hy6RPh9W.mjs} +13 -2
- package/dist/{build-cmd-Dpt0jd-x.mjs → build-cmd-LzvNJORH.mjs} +19 -7
- package/dist/{cache-7_UeZdTk.mjs → cache-C4MvnrMH.mjs} +4 -4
- package/dist/{cancel-deploy-D23R1RXT.mjs → cancel-deploy-abUxpP2n.mjs} +4 -4
- package/dist/{cf-build-output-CGT03qCD.mjs → cf-build-output-BPqOT964.mjs} +141 -63
- package/dist/cf-build-output-_0HNWysu.mjs +2 -0
- package/dist/cli/cli.mjs +114 -460
- package/dist/cli/cloudflare-operation-process.mjs +1103 -0
- package/dist/cli/env-schema-probe.d.mts +2 -1
- package/dist/cli/env-schema-probe.mjs +3 -3
- package/dist/client-Cu7jWiF1.mjs +2 -0
- package/dist/{client-QTl6ko_D.mjs → client-RV8NVeB8.mjs} +165 -21
- package/dist/{cloudflare-auth-C4_GPZr0.mjs → cloudflare-auth-Qdc7tw8F.mjs} +41 -43
- package/dist/{cloudflare-cmd-bSmZ1d5L.mjs → cloudflare-cmd-BcrVyTmJ.mjs} +9 -10
- package/dist/cloudflare-config-Bktvwtpf.mjs +182 -0
- package/dist/{cloudflare-connect-jAwacxxP.mjs → cloudflare-connect-B8uPZ4nx.mjs} +4 -4
- package/dist/{cloudflare-operations-BipGMJ5O.mjs → cloudflare-operations-AiWashgg.mjs} +1 -1
- package/dist/{cloudflare-operations-sMZXpk_S.mjs → cloudflare-operations-fxHb-byx.mjs} +118 -203
- package/dist/{preset-UHj9ARyP.mjs → cloudflare-process-B-wekeR6.mjs} +93 -6
- package/dist/{config-CF69HgXc.d.mts → config-BMHb8RCj.d.mts} +2 -2
- package/dist/{config-CafTW6Cz.mjs → config-Br_JZD6u.mjs} +2 -7
- package/dist/config-C_XRIPx2.mjs +89 -0
- package/dist/{config-s7Xj7tPb.mjs → config-CyQ-wVd7.mjs} +1 -1
- package/dist/config-entry.d.mts +1 -1
- package/dist/{config-write-BSduPMY8.mjs → config-write-B1f88wJA.mjs} +1 -1
- package/dist/{connect-BsUSRzln.mjs → connect-Bd4kJd9U.mjs} +6 -6
- package/dist/{create-project-BniEV0OW.mjs → create-project-Boczwj5r.mjs} +1 -1
- package/dist/{create-project-DBfFSZKY.mjs → create-project-bMf6ffLZ.mjs} +9 -5
- package/dist/{db-hRrvZaq_.mjs → db-8uG64XLl.mjs} +26 -26
- package/dist/{delete-D6dZ9B6B.mjs → delete-NvbiyeJf.mjs} +4 -4
- package/dist/{deploy-WaAQez1O.mjs → deploy-DzAIwqNU.mjs} +944 -607
- package/dist/{deploy-DDz7c8LK.mjs → deploy-bjXdFCtn.mjs} +1 -1
- package/dist/{dist-BR1quN_w.mjs → dist-AoCzRTJE.mjs} +226 -60
- package/dist/{dist-C5fND3R0.mjs → dist-BuDuKZJv.mjs} +1 -1
- package/dist/{dist-Dn6nn2IU.mjs → dist-CTBk70IR.mjs} +42 -42
- package/dist/{domain-Dmhvb2oU.mjs → domain-y5Tvydvo.mjs} +5 -5
- package/dist/{email-DFi-s2t4.mjs → email-B3umsW75.mjs} +15 -30
- package/dist/{env-Csi-tMbT.mjs → env-BS6qYHDb.mjs} +6 -6
- package/dist/{env-public-D_6u46fX.d.mts → env-public-BX_r8HR6.d.mts} +2 -1
- package/dist/{env-validation-BB4GkLxn.mjs → env-validation-BPn7vk-V.mjs} +18 -71
- package/dist/{env-validation-BXge7uyK.mjs → env-validation-DbTg7-ar.mjs} +1 -1
- package/dist/{fetch-CXDChK7B.mjs → fetch-BIZJh7vR.mjs} +2 -2
- package/dist/{fetch-stream-AOByI7Ki.mjs → fetch-stream-IvCYKyQL.mjs} +24 -4
- package/dist/{gen-Dz3X1Qab.mjs → gen-B580--vC.mjs} +5 -5
- package/dist/gen-BVaUUumi.mjs +2 -0
- package/dist/{github-cmd-BED3_9JD.mjs → github-cmd-v45BdfKX.mjs} +6 -8
- package/dist/{handler-BXJTXd02.d.mts → handler-CZ4nAylQ.d.mts} +2 -1
- package/dist/{headers-BOg_velo.mjs → headers-DWi2IXWx.mjs} +1 -1
- package/dist/help-DofyZuY7.mjs +2 -0
- package/dist/{help-DC7gdz7L.mjs → help-daGKjXGk.mjs} +268 -666
- package/dist/index.d.mts +1 -1
- package/dist/index.mjs +305 -1490
- package/dist/info-B97bTX9N.mjs +113 -0
- package/dist/{init-WO0JlPx8.mjs → init-Bvy7zrBo.mjs} +51 -20
- package/dist/limits-Bq5LG8Id.d.mts +27 -0
- package/dist/limits-Cjuk2VPm.mjs +68 -0
- package/dist/{link-CsHOinF7.mjs → link-CDqqCjFl.mjs} +5 -5
- package/dist/{list-CDb-4bZ1.mjs → list-CZj0dzKY.mjs} +5 -5
- package/dist/{live-CKiJilLr.d.mts → live-Chw1eIMv.d.mts} +1 -1
- package/dist/{local-d1-CC8sKFGu.mjs → local-d1-2CMnpuW_.mjs} +2 -2
- package/dist/login-DYt_An22.mjs +2 -0
- package/dist/{login-DvqXsfGs.mjs → login-UZKFM_u7.mjs} +5 -5
- package/dist/{logs-BdfiOezj.mjs → logs-CUZ6t9t3.mjs} +5 -5
- package/dist/migrate-8_2u55MD.mjs +2 -0
- package/dist/{migrate-B8KuoYsO.mjs → migrate-DHul7PRV.mjs} +5 -4
- package/dist/{node-BM43oz4G.mjs → node-BkyRWRx8.mjs} +2 -2
- package/dist/operator-args-CLgKGlwU.mjs +690 -0
- package/dist/{operator-cmd-03819ATr.mjs → operator-cmd-DBA6dl0m.mjs} +69 -23
- package/dist/output-Dm_A4Tbv.mjs +81 -0
- package/dist/pages/client.d.mts +34 -2
- package/dist/pages/client.mjs +59 -3
- package/dist/pages/index.d.mts +1 -1
- package/dist/pages/index.mjs +3 -3
- package/dist/pages/islands-plugin.d.mts +16 -6
- package/dist/pages/islands-plugin.mjs +2 -2
- package/dist/pages/protocol.d.mts +2 -2
- package/dist/pages/protocol.mjs +2 -308
- package/dist/{parse-filename-DioPHiR9.mjs → parse-filename-CUbj-1MP.mjs} +35 -1
- package/dist/{output-CCH48AMM.mjs → picocolors-BTps1_gs.mjs} +2 -76
- package/dist/plan-D1Q5rf-r.mjs +2 -0
- package/dist/plan-NPpwZ_kc.mjs +58 -0
- package/dist/platform-args-BJdRtlLq.mjs +506 -0
- package/dist/platform-args-D3RXyR6h.mjs +2 -0
- package/dist/{platform-auth-config-z92h63q5.mjs → platform-auth-config-B56E9YP1.mjs} +4 -4
- package/dist/{platform-auth-protection-DeE3yr2R.mjs → platform-auth-protection-BDWO_aER.mjs} +3 -3
- package/dist/{platform-auth-recovery-o_340Ixx.mjs → platform-auth-recovery-1gg4CSRe.mjs} +4 -4
- package/dist/{platform-cmd-C4ZV3Vpy.mjs → platform-cmd-Bt-1w6pY.mjs} +1 -1
- package/dist/{platform-cmd-DNl8WosH.mjs → platform-cmd-DMcQStSc.mjs} +26 -5
- package/dist/{platform-domain-CU1JtJkW.mjs → platform-domain-BNkcz0OB.mjs} +36 -9
- package/dist/{platform-lifecycle-Bc047IeT.mjs → platform-lifecycle-9OyBALhH.mjs} +850 -276
- package/dist/{platform-lifecycle-Bs2qx1E3.mjs → platform-lifecycle-BE6C_jxh.mjs} +1 -1
- package/dist/{platform-management-CVpGI9Y5.mjs → platform-management-CjwLVQwN.mjs} +59 -11
- package/dist/{platform-management-C8tt6D8h.mjs → platform-management-CnyTdcWX.mjs} +1 -1
- package/dist/platform-plans-config-BNGKGr4P.mjs +359 -0
- package/dist/{platform-recovery-dvUaptLr.mjs → platform-recovery-D6KSpuFm.mjs} +2 -2
- package/dist/{plugin-inference-BMfKRSqE.mjs → plugin-inference-CXWnn79A.mjs} +174 -64
- package/dist/{prepare-DyZ-Yok5.mjs → prepare-B5Mkic5u.mjs} +3 -3
- package/dist/{prepare-C3kt3Rst.mjs → prepare-DOsL0CC9.mjs} +4 -20
- package/dist/prepare-cgvDMtSb.mjs +2 -0
- package/dist/{project-cmd-B44I8J_W.mjs → project-cmd-CNzrqvBv.mjs} +30 -16
- package/dist/{project-team-BkbYIsXN.mjs → project-team-DQOWPfQT.mjs} +4 -4
- package/dist/{project-token-C8xEEQnB.mjs → project-token-CTDYU0Cc.mjs} +4 -4
- package/dist/project-zero-trust-BNAkW-_0.mjs +63 -0
- package/dist/{protocol-ZH3jP4a7.d.mts → protocol-CjF_iI9X.d.mts} +2 -2
- package/dist/protocol-U7bfjHmA.mjs +331 -0
- package/dist/{provision-DNtrtaVD.mjs → provision-C4ORE7G7.mjs} +1 -1
- package/dist/{provision-BhreDAOS.mjs → provision-CJFgTZY8.mjs} +111 -215
- package/dist/{requests-DFyhBMaf.mjs → requests-MhxYnau8.mjs} +4 -4
- package/dist/resource-name-C7LVpcRm.mjs +11 -0
- package/dist/{rollback-DHHxXZiS.mjs → rollback-CJ6iSDoU.mjs} +5 -5
- package/dist/route-url-CG7U-cRN.mjs +15 -0
- package/dist/{runner-B8wXwWlo.mjs → runner-CXA9Fh8h.mjs} +1 -1
- package/dist/{runner-p-dMs2UN.mjs → runner-Ol0TNjk6.mjs} +2 -2
- package/dist/runtime/ai.d.mts +12 -8
- package/dist/runtime/ai.mjs +84 -17
- package/dist/runtime/better-auth-mysql.mjs +1 -1
- package/dist/runtime/better-auth-pg.mjs +1 -1
- package/dist/runtime/better-auth.mjs +1 -1
- package/dist/runtime/client-react.mjs +2 -2
- package/dist/runtime/client-solid.mjs +2 -2
- package/dist/runtime/client-svelte.mjs +2 -2
- package/dist/runtime/client-vue.mjs +2 -2
- package/dist/runtime/client.mjs +2 -2
- package/dist/runtime/durable.d.mts +3 -1
- package/dist/runtime/durable.mjs +4 -1
- package/dist/runtime/email/testing.mjs +1 -1
- package/dist/runtime/env-public.d.mts +1 -1
- package/dist/runtime/fetch-stream.mjs +1 -1
- package/dist/runtime/fetch.mjs +1 -1
- package/dist/runtime/handler.d.mts +1 -1
- package/dist/runtime/kv.mjs +0 -1
- package/dist/runtime/limits.d.mts +2 -0
- package/dist/runtime/limits.mjs +2 -0
- package/dist/runtime/live-client.d.mts +1 -1
- package/dist/runtime/live-server.mjs +25 -16
- package/dist/runtime/live.d.mts +1 -1
- package/dist/runtime/migration-handler.mjs +62 -42
- package/dist/runtime/route-url.d.mts +4 -0
- package/dist/runtime/route-url.mjs +2 -0
- package/dist/runtime/routing.d.mts +180 -0
- package/dist/runtime/routing.mjs +1082 -0
- package/dist/runtime/sandbox-container.d.mts +3 -0
- package/dist/runtime/sandbox-container.mjs +2 -0
- package/dist/runtime/sandbox.d.mts +4 -32
- package/dist/runtime/sandbox.mjs +151 -75
- package/dist/runtime/sse.mjs +1 -1
- package/dist/runtime/validator.d.mts +1 -1
- package/dist/runtime/ws-server.d.mts +4 -2
- package/dist/runtime/ws-server.mjs +27 -2
- package/dist/runtime/ws.d.mts +2 -2
- package/dist/runtime/ws.mjs +8 -6
- package/dist/sandbox-XZAqzFlG.d.mts +52 -0
- package/dist/sandbox-container-Bo0eiFKz.d.mts +73 -0
- package/dist/sandbox-container-C6ItmVuN.mjs +281 -0
- package/dist/{scan-4tfN-PSn.mjs → scan-C7okrLyM.mjs} +4 -35
- package/dist/{secret-DN9sSNiV.mjs → secret-Dli5fP0B.mjs} +6 -6
- package/dist/{skills-O6FUaizK.mjs → skills-D1II1Juz.mjs} +1 -1
- package/dist/{sse-BaC1jXko.mjs → sse-CQNaDFFV.mjs} +6 -3
- package/dist/{subcommand-prompt-BuGYkAkC.mjs → subcommand-prompt-CY1C4fvl.mjs} +2 -2
- package/dist/validate-Dq_L3s0S.mjs +2 -0
- package/dist/{validate-CIUwFpjB.mjs → validate-ctOrgiS3.mjs} +2 -1
- package/dist/{wrangler-BymcxrRa.mjs → wrangler-7K-bW_DL.mjs} +14 -235
- package/dist/{ws-BwcqizuH.d.mts → ws-CL1w7GXU.d.mts} +13 -2
- package/package.json +48 -33
- package/sandbox.Dockerfile +4 -0
- package/schema.json +10 -22
- package/skills/migrate-vite-cloudflare-to-void/SKILL.md +34 -157
- package/skills/void/SKILL.md +50 -133
- package/skills/void/docs/guide/ai.md +94 -84
- package/skills/void/docs/guide/app-types.md +3 -32
- package/skills/void/docs/guide/auth.md +12 -116
- package/skills/void/docs/guide/database/d1.md +9 -54
- package/skills/void/docs/guide/database/mysql.md +1 -1
- package/skills/void/docs/guide/database/postgresql.md +5 -26
- package/skills/void/docs/guide/database.md +23 -75
- package/skills/void/docs/guide/deployment.md +27 -113
- package/skills/void/docs/guide/durable-state.md +43 -18
- package/skills/void/docs/guide/edge/headers.md +3 -47
- package/skills/void/docs/guide/edge/prerendering.md +5 -20
- package/skills/void/docs/guide/edge/redirects.md +11 -64
- package/skills/void/docs/guide/edge/revalidation.md +6 -19
- package/skills/void/docs/guide/edge/rewrites.md +56 -284
- package/skills/void/docs/guide/edge/static-assets.md +23 -72
- package/skills/void/docs/guide/email/domains.md +112 -0
- package/skills/void/docs/guide/email/receiving.md +139 -0
- package/skills/void/docs/guide/email/sending.md +231 -0
- package/skills/void/docs/guide/email.md +13 -619
- package/skills/void/docs/guide/env-migration.md +11 -11
- package/skills/void/docs/guide/env-vars.md +9 -29
- package/skills/void/docs/guide/index.md +0 -15
- package/skills/void/docs/guide/jobs.md +3 -18
- package/skills/void/docs/guide/kv.md +5 -11
- package/skills/void/docs/guide/live.md +5 -56
- package/skills/void/docs/guide/pages-routing/actions-and-forms.md +78 -125
- package/skills/void/docs/guide/pages-routing/head.md +10 -10
- package/skills/void/docs/guide/pages-routing/islands.md +6 -36
- package/skills/void/docs/guide/pages-routing/layouts.md +6 -128
- package/skills/void/docs/guide/pages-routing/loaders.md +3 -19
- package/skills/void/docs/guide/pages-routing/markdown.md +13 -171
- package/skills/void/docs/guide/pages-routing/overview.md +7 -17
- package/skills/void/docs/guide/pages-routing/view-transitions.md +1 -1
- package/skills/void/docs/guide/platform/administration/access.md +1 -4
- package/skills/void/docs/guide/platform/administration/email.md +35 -8
- package/skills/void/docs/guide/platform/administration/operations.md +26 -4
- package/skills/void/docs/guide/platform/administration/plans.md +126 -0
- package/skills/void/docs/guide/platform/administration/projects.md +5 -2
- package/skills/void/docs/guide/platform/administration/zero-trust.md +189 -0
- package/skills/void/docs/guide/platform/development/local.md +2 -2
- package/skills/void/docs/guide/platform/development/runtime.md +3 -13
- package/skills/void/docs/guide/platform/development/schema-ci.md +0 -58
- package/skills/void/docs/guide/platform/installation/credentials.md +6 -4
- package/skills/void/docs/guide/platform/installation/domains.md +31 -3
- package/skills/void/docs/guide/platform/installation/first-deployment.md +6 -0
- package/skills/void/docs/guide/platform/installation/maintenance.md +3 -1
- package/skills/void/docs/guide/platform/installation/prerequisites.md +21 -16
- package/skills/void/docs/guide/platform/installation/setup.md +9 -5
- package/skills/void/docs/guide/platform/installation/uninstall.md +17 -2
- package/skills/void/docs/guide/platform-administration.md +2 -0
- package/skills/void/docs/guide/queues.md +7 -9
- package/skills/void/docs/guide/quickstart.md +38 -37
- package/skills/void/docs/guide/remote-dev.md +4 -9
- package/skills/void/docs/guide/sandboxes.md +78 -41
- package/skills/void/docs/guide/server-routing.md +9 -72
- package/skills/void/docs/guide/sse.md +4 -18
- package/skills/void/docs/guide/ssg.md +3 -15
- package/skills/void/docs/guide/ssr.md +14 -62
- package/skills/void/docs/guide/storage.md +9 -4
- package/skills/void/docs/guide/type-safety.md +3 -14
- package/skills/void/docs/guide/typed-fetch.md +3 -7
- package/skills/void/docs/guide/websockets.md +68 -40
- package/skills/void/docs/integrations/agents.md +3 -3
- package/skills/void/docs/integrations/cloudflare.md +85 -316
- package/skills/void/docs/integrations/frameworks/analog.md +5 -64
- package/skills/void/docs/integrations/frameworks/astro.md +4 -73
- package/skills/void/docs/integrations/frameworks/nuxt.md +5 -62
- package/skills/void/docs/integrations/frameworks/overview.md +11 -54
- package/skills/void/docs/integrations/frameworks/react-router.md +5 -60
- package/skills/void/docs/integrations/frameworks/sveltekit.md +6 -65
- package/skills/void/docs/integrations/frameworks/tanstack-start.md +4 -62
- package/skills/void/docs/integrations/nodejs-bun-deno.md +5 -69
- package/skills/void/docs/reference/api/auth.md +156 -0
- package/skills/void/docs/reference/api/client.md +87 -0
- package/skills/void/docs/reference/api/database.md +95 -0
- package/skills/void/docs/reference/api/durable.md +46 -0
- package/skills/void/docs/reference/api/env.md +50 -0
- package/skills/void/docs/reference/api/handlers.md +254 -0
- package/skills/void/docs/reference/api/pages.md +241 -0
- package/skills/void/docs/reference/api/plugin.md +39 -0
- package/skills/void/docs/reference/api/resources.md +109 -0
- package/skills/void/docs/reference/api/rewrites.md +76 -0
- package/skills/void/docs/reference/api/types.md +92 -0
- package/skills/void/docs/reference/api.md +56 -1218
- package/skills/void/docs/reference/cli/auth.md +88 -0
- package/skills/void/docs/reference/cli/database.md +128 -0
- package/skills/void/docs/reference/cli/deploy.md +85 -0
- package/skills/void/docs/reference/cli/domains.md +41 -0
- package/skills/void/docs/reference/cli/email.md +129 -0
- package/skills/void/docs/reference/cli/generate.md +116 -0
- package/skills/void/docs/reference/cli/github.md +189 -0
- package/skills/void/docs/reference/cli/platform-config.md +92 -0
- package/skills/void/docs/reference/cli/platform-email.md +81 -0
- package/skills/void/docs/reference/cli/platform-installation.md +127 -0
- package/skills/void/docs/reference/cli/platform-operations.md +90 -0
- package/skills/void/docs/reference/cli/platform-users.md +89 -0
- package/skills/void/docs/reference/cli/platform-zero-trust.md +45 -0
- package/skills/void/docs/reference/cli/platform.md +70 -0
- package/skills/void/docs/reference/cli/project.md +214 -0
- package/skills/void/docs/reference/cli/secrets.md +76 -0
- package/skills/void/docs/reference/cli/setup.md +70 -0
- package/skills/void/docs/reference/cli.md +33 -1621
- package/skills/void/docs/reference/config.md +26 -32
- package/skills/void/docs/reference/resource-inference.md +3 -58
- package/skills/void/docs/reference/structure.md +14 -41
- package/dist/canonical-json-DuDiiUsQ.mjs +0 -13
- package/dist/cli/cf-compat.mjs +0 -968
- package/dist/client-4cDVv7BO.mjs +0 -2
- package/dist/gen-Vnv2f65C.mjs +0 -2
- package/dist/help-DQMfeKMz.mjs +0 -2
- package/dist/login-DFQk7rbW.mjs +0 -2
- package/dist/migrate-TsHGBnDA.mjs +0 -2
- package/dist/plan-BEZ8VJW0.mjs +0 -256
- package/dist/plan-DpuOr14e.mjs +0 -2
- package/dist/prepare-BZXkjdNe.mjs +0 -2
- package/dist/validate-EKmJWxmy.mjs +0 -2
- /package/dist/cli/{cf-compat.d.mts → cloudflare-operation-process.d.mts} +0 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { a as join, l as relative } from "./dist-BVqXeR_h.mjs";
|
|
2
|
+
import { a as deriveWebSocketClassNameFromName, o as inferWebSocketResourceName } from "./plugin-inference-CXWnn79A.mjs";
|
|
3
|
+
import { m as readConfig } from "./config-Br_JZD6u.mjs";
|
|
4
|
+
import { a as inferDurableResourceName, i as deriveDurableResourceIdentity, t as analyzeApplicationSync } from "./application-analysis-BVsVqc11.mjs";
|
|
5
|
+
import { n as VOID_LOCK_FILE } from "./cloudflare-config-Bktvwtpf.mjs";
|
|
6
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
7
|
+
//#region src/cli/info.ts
|
|
8
|
+
function isRecord(value) {
|
|
9
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
10
|
+
}
|
|
11
|
+
function readRecordedResources(root, resources) {
|
|
12
|
+
const path = join(root, VOID_LOCK_FILE);
|
|
13
|
+
if (!existsSync(path)) return [];
|
|
14
|
+
let lock;
|
|
15
|
+
try {
|
|
16
|
+
lock = JSON.parse(readFileSync(path, "utf8"));
|
|
17
|
+
} catch {
|
|
18
|
+
throw new Error("info: Invalid void.lock.json. Fix or restore it before continuing.");
|
|
19
|
+
}
|
|
20
|
+
if (!isRecord(lock) || lock.version !== 1 || !isRecord(lock.resolved)) throw new Error("info: Invalid void.lock.json. Fix or restore it before continuing.");
|
|
21
|
+
const durable = lock.resolved.durable_objects;
|
|
22
|
+
const bindings = isRecord(durable) && Array.isArray(durable.bindings) ? durable.bindings : [];
|
|
23
|
+
const migrations = Array.isArray(lock.resolved.migrations) ? lock.resolved.migrations : [];
|
|
24
|
+
const recorded = [];
|
|
25
|
+
for (const binding of bindings) {
|
|
26
|
+
if (!isRecord(binding) || typeof binding.name !== "string" || typeof binding.class_name !== "string" || binding.script_name !== void 0) continue;
|
|
27
|
+
const className = binding.class_name;
|
|
28
|
+
const bindingName = binding.name;
|
|
29
|
+
if (resources.some((resource) => resource.className === className && resource.bindingName === bindingName)) continue;
|
|
30
|
+
const resource = {
|
|
31
|
+
className,
|
|
32
|
+
bindingName
|
|
33
|
+
};
|
|
34
|
+
if (className.endsWith("Ws") && bindingName === className) {
|
|
35
|
+
const name = className.slice(0, -2);
|
|
36
|
+
if (name && deriveWebSocketClassNameFromName(name) === className) {
|
|
37
|
+
resource.name = name;
|
|
38
|
+
resource.definition = "defineRoom | defineWebSocket";
|
|
39
|
+
}
|
|
40
|
+
} else if (className.endsWith("DurableObject")) {
|
|
41
|
+
const candidates = [className.slice(0, -13), bindingName.toLowerCase().replaceAll("_", "-")];
|
|
42
|
+
for (const name of candidates) {
|
|
43
|
+
if (!name) continue;
|
|
44
|
+
const identity = deriveDurableResourceIdentity(name);
|
|
45
|
+
const matchesMigration = migrations.some((migration) => {
|
|
46
|
+
if (!isRecord(migration) || migration.tag !== identity.migrationTag) return false;
|
|
47
|
+
return [migration.new_classes, migration.new_sqlite_classes].some((classes) => Array.isArray(classes) && classes.includes(className));
|
|
48
|
+
});
|
|
49
|
+
if (identity.className === className && identity.bindingName === bindingName && matchesMigration) {
|
|
50
|
+
resource.name = name;
|
|
51
|
+
resource.definition = "defineDurableState";
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
recorded.push(resource);
|
|
57
|
+
}
|
|
58
|
+
return recorded.sort((a, b) => a.className.localeCompare(b.className) || a.bindingName.localeCompare(b.bindingName));
|
|
59
|
+
}
|
|
60
|
+
/** Inspect source without provisioning, generating files, or consulting credentials. */
|
|
61
|
+
function getProjectInfo(root) {
|
|
62
|
+
const analysis = analyzeApplicationSync(root, { config: readConfig(root) });
|
|
63
|
+
const resources = [...analysis.websockets.map((route) => ({
|
|
64
|
+
file: relative(root, analysis.paths.routesDir) + "/" + route.filePath,
|
|
65
|
+
definition: route.mode === "room" ? "defineRoom" : "defineWebSocket",
|
|
66
|
+
name: route.name ?? inferWebSocketResourceName(route.filePath),
|
|
67
|
+
nameSource: route.name === void 0 ? "inferred" : "explicit",
|
|
68
|
+
className: route.className,
|
|
69
|
+
bindingName: route.bindingName,
|
|
70
|
+
route: route.pattern
|
|
71
|
+
})), ...analysis.durableObjects.map((module) => ({
|
|
72
|
+
file: relative(root, module.filePath),
|
|
73
|
+
definition: "defineDurableState",
|
|
74
|
+
name: module.name ?? inferDurableResourceName(module.filePath),
|
|
75
|
+
nameSource: module.name === void 0 ? "inferred" : "explicit",
|
|
76
|
+
className: module.className,
|
|
77
|
+
bindingName: module.bindingName
|
|
78
|
+
}))];
|
|
79
|
+
resources.sort((a, b) => a.file.localeCompare(b.file));
|
|
80
|
+
return {
|
|
81
|
+
resources,
|
|
82
|
+
recordedResources: readRecordedResources(root, resources)
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
function formatProjectInfo(info) {
|
|
86
|
+
if (info.resources.length === 0 && info.recordedResources.length === 0) return "No persistent resource definitions found in this project.";
|
|
87
|
+
return [info.resources.map((resource) => {
|
|
88
|
+
const lines = [
|
|
89
|
+
resource.file,
|
|
90
|
+
` ${resource.nameSource === "inferred" ? "Inferred" : "Explicit"} name: ${resource.name}`,
|
|
91
|
+
` Class: ${resource.className}`,
|
|
92
|
+
` Binding: ${resource.bindingName}`
|
|
93
|
+
];
|
|
94
|
+
if (resource.nameSource === "inferred") lines.push(` To preserve this resource when moving its code, add this to '${resource.definition}':`, ` name: ${JSON.stringify(resource.name)},`);
|
|
95
|
+
else lines.push(" Keep this name when moving its code to preserve the resource.");
|
|
96
|
+
return lines.join("\n");
|
|
97
|
+
}).join("\n\n"), info.recordedResources.map((resource) => {
|
|
98
|
+
const lines = [
|
|
99
|
+
"Recorded in void.lock.json (no matching source definition)",
|
|
100
|
+
` Class: ${resource.className}`,
|
|
101
|
+
` Binding: ${resource.bindingName}`
|
|
102
|
+
];
|
|
103
|
+
if (resource.name !== void 0) lines.push(` If this is the resource you moved, use this name in its ${resource.definition} definition:`, ` name: ${JSON.stringify(resource.name)},`);
|
|
104
|
+
else lines.push(" Restore the original definition from source history and run void info to discover its name.");
|
|
105
|
+
return lines.join("\n");
|
|
106
|
+
}).join("\n\n")].filter(Boolean).join("\n\n");
|
|
107
|
+
}
|
|
108
|
+
async function runInfoCommand(root, args) {
|
|
109
|
+
const info = getProjectInfo(root);
|
|
110
|
+
console.log(args.json ? JSON.stringify(info, null, 2) : formatProjectInfo(info));
|
|
111
|
+
}
|
|
112
|
+
//#endregion
|
|
113
|
+
export { runInfoCommand };
|
|
@@ -1,25 +1,26 @@
|
|
|
1
1
|
import { a as join, i as isAbsolute, l as relative, n as dirname, t as basename, u as resolve } from "./dist-BVqXeR_h.mjs";
|
|
2
|
-
import { r as
|
|
2
|
+
import { r as detectFramework } from "./plugin-inference-CXWnn79A.mjs";
|
|
3
3
|
import { n as readProjectPaths, o as TYPED_CONFIG_FILE } from "./project-paths-GgcMozYz.mjs";
|
|
4
|
-
import {
|
|
4
|
+
import { m as readConfig, u as getDatabaseDialect } from "./config-Br_JZD6u.mjs";
|
|
5
|
+
import { c as getToken, u as isStagingMode } from "./auth-CSkdO2Bb.mjs";
|
|
5
6
|
import { d as writeProjectConfig, i as readDeploymentPlatform, l as writeDeploymentPlatform, o as readProjectConfig, t as attachSelectedPlatform } from "./project-C0Fqu05O.mjs";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
7
|
+
import { r as materializeCloudflareConfig } from "./cloudflare-config-Bktvwtpf.mjs";
|
|
8
|
+
import { A as writeProvisionedWranglerConfig, i as LATEST_KNOWN_COMPAT_DATE } from "./wrangler-7K-bW_DL.mjs";
|
|
8
9
|
import { n as ensureProjectTsconfig, t as createProjectTsconfig } from "./project-tsconfig-B8GeM0RM.mjs";
|
|
9
|
-
import { r as detectFramework } from "./plugin-inference-BMfKRSqE.mjs";
|
|
10
10
|
import { n as parseDotenvFile, t as expandDotenv } from "./dotenv-VQxupEUv.mjs";
|
|
11
|
-
import { t as MagicString } from "./dist-
|
|
12
|
-
import { B as text, E as confirm, I as select, N as note, O as intro, P as outro, T as cancel, W as isCancel, j as log } from "./dist-
|
|
11
|
+
import { t as MagicString } from "./dist-AoCzRTJE.mjs";
|
|
12
|
+
import { B as text, E as confirm, I as select, N as note, O as intro, P as outro, T as cancel, W as isCancel, j as log } from "./dist-CTBk70IR.mjs";
|
|
13
13
|
import { t as writeDrizzleConfig } from "./config-D8MOgiQV.mjs";
|
|
14
14
|
import { n as getPackageDir, t as detectAgents } from "./agents-B_pX_HmQ.mjs";
|
|
15
|
-
import { n as PlatformClient } from "./client-
|
|
16
|
-
import {
|
|
17
|
-
import { n as writeVoidProjectConfig, t as canRewriteVoidProjectConfig } from "./config-write-
|
|
18
|
-
import { i as migrateFrameworkAdapterPaths, t as migrateLegacyVoidConfig } from "./migrate-
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import { t as
|
|
15
|
+
import { n as PlatformClient } from "./client-RV8NVeB8.mjs";
|
|
16
|
+
import { o as formatProjectCommand } from "./cloudflare-process-B-wekeR6.mjs";
|
|
17
|
+
import { n as writeVoidProjectConfig, t as canRewriteVoidProjectConfig } from "./config-write-B1f88wJA.mjs";
|
|
18
|
+
import { i as migrateFrameworkAdapterPaths, t as migrateLegacyVoidConfig } from "./migrate-DHul7PRV.mjs";
|
|
19
|
+
import { r as cliTitle } from "./output-Dm_A4Tbv.mjs";
|
|
20
|
+
import { a as promptProjectSelection, r as promptAndCreateProject } from "./create-project-bMf6ffLZ.mjs";
|
|
21
|
+
import { t as promptForLoginToken } from "./login-UZKFM_u7.mjs";
|
|
22
|
+
import { i as saveDiscoveredPlatform, t as discoverPlatform } from "./platform-cmd-DMcQStSc.mjs";
|
|
23
|
+
import { t as connectCloudflare } from "./cloudflare-connect-B8uPZ4nx.mjs";
|
|
23
24
|
import { n as findInstalledYarnPnpRuntime, r as hasLocalLockfile, t as buildDrizzleKitSpawnEnv } from "./yarn-pnp-BV4AzNul.mjs";
|
|
24
25
|
import { createRequire } from "node:module";
|
|
25
26
|
import { existsSync, mkdirSync, readFileSync, readdirSync, rmdirSync, unlinkSync, writeFileSync } from "node:fs";
|
|
@@ -411,6 +412,7 @@ function getIndexServer() {
|
|
|
411
412
|
return `import { defineHandler, type InferProps } from "void";
|
|
412
413
|
import { db, desc } from "void/db";
|
|
413
414
|
import { messages } from "@schema";
|
|
415
|
+
import { createInsertSchema } from "void/drizzle-zod";
|
|
414
416
|
|
|
415
417
|
export type Props = InferProps<typeof loader>;
|
|
416
418
|
|
|
@@ -418,6 +420,11 @@ export const loader = defineHandler(async () => {
|
|
|
418
420
|
const rows = await db.select().from(messages).orderBy(desc(messages.id));
|
|
419
421
|
return { messages: rows };
|
|
420
422
|
});
|
|
423
|
+
export const action = defineHandler.withValidator({
|
|
424
|
+
body: createInsertSchema(messages, { text: schema => schema.trim().min(1).max(1000) }).pick({ text: true }),
|
|
425
|
+
})(async (_c, { body }) => {
|
|
426
|
+
await db.insert(messages).values(body);
|
|
427
|
+
});
|
|
421
428
|
`;
|
|
422
429
|
}
|
|
423
430
|
function getHelloRoute(frameworkLabel, starterMode) {
|
|
@@ -523,9 +530,11 @@ function getIndexPage(framework, starterMode) {
|
|
|
523
530
|
`;
|
|
524
531
|
}
|
|
525
532
|
switch (framework) {
|
|
526
|
-
case "react": return `import
|
|
533
|
+
case "react": return `import { Form, useForm } from "${SCAFFOLD_FRAMEWORKS[framework].adapterPackage}";
|
|
534
|
+
import type { Props } from "./index.server";
|
|
527
535
|
|
|
528
536
|
export default function HomePage({ messages }: Props) {
|
|
537
|
+
const form = useForm("/", { text: "" });
|
|
529
538
|
return (
|
|
530
539
|
<main>
|
|
531
540
|
<h1>Welcome to Void</h1>
|
|
@@ -552,14 +561,20 @@ export default function HomePage({ messages }: Props) {
|
|
|
552
561
|
))}
|
|
553
562
|
</ul>
|
|
554
563
|
)}
|
|
564
|
+
<Form form={form}>
|
|
565
|
+
<label>Message <input value={form.data.text} onChange={event => form.setData("text", event.target.value)} /></label>
|
|
566
|
+
<button disabled={form.pending}>Add message</button>
|
|
567
|
+
</Form>
|
|
555
568
|
</main>
|
|
556
569
|
);
|
|
557
570
|
}
|
|
558
571
|
`;
|
|
559
572
|
case "vue": return `<script setup lang="ts">
|
|
560
573
|
import type { Props } from "./index.server";
|
|
574
|
+
import { Form, useForm } from "@void/vue";
|
|
561
575
|
|
|
562
576
|
defineProps<Props>();
|
|
577
|
+
const form = useForm("/", { text: "" });
|
|
563
578
|
<\/script>
|
|
564
579
|
|
|
565
580
|
<template>
|
|
@@ -583,11 +598,17 @@ defineProps<Props>();
|
|
|
583
598
|
<small>{{ String(message.createdAt) }}</small>
|
|
584
599
|
</li>
|
|
585
600
|
</ul>
|
|
601
|
+
<Form :form="form">
|
|
602
|
+
<label>Message <input v-model="form.data.text" /></label>
|
|
603
|
+
<button :disabled="form.pending">Add message</button>
|
|
604
|
+
</Form>
|
|
586
605
|
</main>
|
|
587
606
|
</template>
|
|
588
607
|
`;
|
|
589
608
|
case "svelte": return `<script lang="ts">
|
|
590
609
|
import type { Props } from "./index.server";
|
|
610
|
+
import { Form, useForm } from "@void/svelte";
|
|
611
|
+
const form = useForm("/", { text: "" });
|
|
591
612
|
|
|
592
613
|
let { messages }: Props = $props();
|
|
593
614
|
<\/script>
|
|
@@ -617,11 +638,17 @@ defineProps<Props>();
|
|
|
617
638
|
{/each}
|
|
618
639
|
</ul>
|
|
619
640
|
{/if}
|
|
641
|
+
<Form {form}>
|
|
642
|
+
<label>Message <input bind:value={form.data.text} /></label>
|
|
643
|
+
<button disabled={form.pending}>Add message</button>
|
|
644
|
+
</Form>
|
|
620
645
|
</main>
|
|
621
646
|
`;
|
|
622
|
-
case "solid": return `import
|
|
647
|
+
case "solid": return `import { Form, useForm } from "${SCAFFOLD_FRAMEWORKS[framework].adapterPackage}";
|
|
648
|
+
import type { Props } from "./index.server";
|
|
623
649
|
|
|
624
650
|
export default function HomePage(props: Props) {
|
|
651
|
+
const form = useForm("/", { text: "" });
|
|
625
652
|
return (
|
|
626
653
|
<main>
|
|
627
654
|
<h1>Welcome to Void</h1>
|
|
@@ -648,6 +675,10 @@ export default function HomePage(props: Props) {
|
|
|
648
675
|
))}
|
|
649
676
|
</ul>
|
|
650
677
|
)}
|
|
678
|
+
<Form form={form}>
|
|
679
|
+
<label>Message <input value={form.data.text} onInput={event => form.setData("text", event.target.value)} /></label>
|
|
680
|
+
<button disabled={form.pending}>Add message</button>
|
|
681
|
+
</Form>
|
|
651
682
|
</main>
|
|
652
683
|
);
|
|
653
684
|
}
|
|
@@ -1901,7 +1932,7 @@ async function ensureVoidPlatformConnection(root) {
|
|
|
1901
1932
|
let selectedApiUrl = null;
|
|
1902
1933
|
let promptedForPlatform = false;
|
|
1903
1934
|
try {
|
|
1904
|
-
const { getApiUrl, getSiteDomain } = await import("./auth-
|
|
1935
|
+
const { getApiUrl, getSiteDomain } = await import("./auth-CCjt0hcq.mjs");
|
|
1905
1936
|
selectedApiUrl = getApiUrl(root);
|
|
1906
1937
|
getSiteDomain(root);
|
|
1907
1938
|
} catch (error) {
|
|
@@ -2646,7 +2677,7 @@ async function runInitCommand(root, initArgs) {
|
|
|
2646
2677
|
injectAgentBlock(root);
|
|
2647
2678
|
const agents = detectAgents(root);
|
|
2648
2679
|
if (agents.length > 0) {
|
|
2649
|
-
const { linkSkillsForSpecificAgents } = await import("./skills-
|
|
2680
|
+
const { linkSkillsForSpecificAgents } = await import("./skills-D1II1Juz.mjs");
|
|
2650
2681
|
linkSkillsForSpecificAgents(root, agents);
|
|
2651
2682
|
} else log.info("No coding agent detected; read the bundled docs linked in AGENTS.md");
|
|
2652
2683
|
}
|
|
@@ -2680,7 +2711,7 @@ async function runInitCommand(root, initArgs) {
|
|
|
2680
2711
|
let shouldSetupGithub = targeted ? initArgs?.github === true : deploymentPlatform !== "none";
|
|
2681
2712
|
if (shouldSetupGithub && !githubStepSkipForSubpackage && deploymentPlatform !== "cloudflare" && deploymentPlatform !== "none") {
|
|
2682
2713
|
if (!voidPlatformDiscovery) {
|
|
2683
|
-
const { getApiUrl } = await import("./auth-
|
|
2714
|
+
const { getApiUrl } = await import("./auth-CCjt0hcq.mjs");
|
|
2684
2715
|
voidPlatformDiscovery = await discoverPlatform(getApiUrl(root));
|
|
2685
2716
|
}
|
|
2686
2717
|
if (!voidPlatformDiscovery.capabilities.githubActions) {
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { UsageLimitData, UsageLimitData as UsageLimitData$1, readUsageLimit as readUsageLimit$1 } from "@void/edge";
|
|
2
|
+
//#region src/runtime/limits.d.ts
|
|
3
|
+
declare class UsageLimit extends Error {
|
|
4
|
+
override readonly name: string;
|
|
5
|
+
readonly code: "usage_limit";
|
|
6
|
+
readonly resource: UsageLimitData["resource"];
|
|
7
|
+
readonly reason: UsageLimitData["reason"];
|
|
8
|
+
readonly retryAt?: string;
|
|
9
|
+
constructor(data: Omit<UsageLimitData, "code">);
|
|
10
|
+
response(options?: {
|
|
11
|
+
message?: string;
|
|
12
|
+
}): Response;
|
|
13
|
+
getResponse(): Response;
|
|
14
|
+
}
|
|
15
|
+
type LimitHandlers<T, R, L> = {
|
|
16
|
+
ok(value: T): R | Promise<R>;
|
|
17
|
+
limited(limit: UsageLimit): L | Promise<L>;
|
|
18
|
+
};
|
|
19
|
+
interface LimitOperation<T> {
|
|
20
|
+
match<R, L>(handlers: LimitHandlers<T, R, L>): Promise<R | L>;
|
|
21
|
+
}
|
|
22
|
+
/** Lazy, single-execution operation. Quota callbacks never catch failures from the user's ok handler. */
|
|
23
|
+
declare function limitOperation<T>(execute: () => Promise<T>, classify?: (error: unknown) => UsageLimit | null, prepare?: (value: T, limited: (limit: UsageLimit) => unknown) => T): LimitOperation<T>;
|
|
24
|
+
declare function asUsageLimit(error: unknown): UsageLimit | null;
|
|
25
|
+
declare function limitFromResponse(response: Response, resource: UsageLimitData["resource"]): Promise<UsageLimit | null>;
|
|
26
|
+
//#endregion
|
|
27
|
+
export { asUsageLimit as a, readUsageLimit$1 as c, UsageLimitData$1 as i, LimitOperation as n, limitFromResponse as o, UsageLimit as r, limitOperation as s, LimitHandlers as t };
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { readUsageLimit, readUsageLimit as readUsageLimit$1, usageLimitResponse } from "@void/edge";
|
|
2
|
+
//#region src/runtime/limits.ts
|
|
3
|
+
var UsageLimit = class extends Error {
|
|
4
|
+
name = "UsageLimit";
|
|
5
|
+
code = "usage_limit";
|
|
6
|
+
resource;
|
|
7
|
+
reason;
|
|
8
|
+
retryAt;
|
|
9
|
+
constructor(data) {
|
|
10
|
+
super(data.message);
|
|
11
|
+
this.resource = data.resource;
|
|
12
|
+
this.reason = data.reason;
|
|
13
|
+
this.retryAt = data.retryAt;
|
|
14
|
+
}
|
|
15
|
+
response(options = {}) {
|
|
16
|
+
return usageLimitResponse({
|
|
17
|
+
code: this.code,
|
|
18
|
+
resource: this.resource,
|
|
19
|
+
reason: this.reason,
|
|
20
|
+
message: options.message ?? this.message,
|
|
21
|
+
...this.retryAt ? { retryAt: this.retryAt } : {}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
getResponse() {
|
|
25
|
+
return this.response();
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
/** Lazy, single-execution operation. Quota callbacks never catch failures from the user's ok handler. */
|
|
29
|
+
function limitOperation(execute, classify = asUsageLimit, prepare) {
|
|
30
|
+
let result;
|
|
31
|
+
return Object.freeze({
|
|
32
|
+
get then() {
|
|
33
|
+
throw new TypeError("Use .match({ ok, limited }) to execute this operation.");
|
|
34
|
+
},
|
|
35
|
+
async match(handlers) {
|
|
36
|
+
if (typeof handlers?.ok !== "function" || typeof handlers?.limited !== "function") throw new TypeError("Both ok and limited handlers are required.");
|
|
37
|
+
let value;
|
|
38
|
+
try {
|
|
39
|
+
value = await (result ??= Promise.resolve().then(execute));
|
|
40
|
+
} catch (error) {
|
|
41
|
+
const limit = classify(error);
|
|
42
|
+
if (limit) return handlers.limited(limit);
|
|
43
|
+
throw error;
|
|
44
|
+
}
|
|
45
|
+
return handlers.ok(prepare ? prepare(value, handlers.limited) : value);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
function asUsageLimit(error) {
|
|
50
|
+
if (error instanceof UsageLimit) return error;
|
|
51
|
+
const data = readUsageLimit(error);
|
|
52
|
+
return data ? new UsageLimit(data) : null;
|
|
53
|
+
}
|
|
54
|
+
async function limitFromResponse(response, resource) {
|
|
55
|
+
if (response.status !== 429) return null;
|
|
56
|
+
const data = readUsageLimit(await response.clone().json().catch(() => null));
|
|
57
|
+
if (data) return new UsageLimit(data);
|
|
58
|
+
const retry = response.headers.get("retry-after");
|
|
59
|
+
const retryTime = retry === null ? NaN : /^\d+$/.test(retry) ? Date.now() + Number(retry) * 1e3 : Date.parse(retry);
|
|
60
|
+
return new UsageLimit({
|
|
61
|
+
resource,
|
|
62
|
+
reason: "rate_limit",
|
|
63
|
+
message: `${resource === "ai" ? "AI" : "Service"} is temporarily unavailable because its usage limit was reached.`,
|
|
64
|
+
...Number.isFinite(retryTime) ? { retryAt: new Date(retryTime).toISOString() } : {}
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
//#endregion
|
|
68
|
+
export { readUsageLimit$1 as a, limitOperation as i, asUsageLimit as n, limitFromResponse as r, UsageLimit as t };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { c as
|
|
2
|
-
import { c as getToken, s as getSiteDomain } from "./auth-DLNN0D3Z.mjs";
|
|
1
|
+
import { c as getToken, s as getSiteDomain } from "./auth-CSkdO2Bb.mjs";
|
|
3
2
|
import { d as writeProjectConfig, o as readProjectConfig, t as attachSelectedPlatform } from "./project-C0Fqu05O.mjs";
|
|
4
|
-
import { O as intro, P as outro, T as cancel, j as log } from "./dist-
|
|
5
|
-
import { n as PlatformClient } from "./client-
|
|
6
|
-
import {
|
|
3
|
+
import { O as intro, P as outro, T as cancel, j as log } from "./dist-CTBk70IR.mjs";
|
|
4
|
+
import { n as PlatformClient } from "./client-RV8NVeB8.mjs";
|
|
5
|
+
import { c as import_picocolors, r as cliTitle } from "./output-Dm_A4Tbv.mjs";
|
|
6
|
+
import { a as promptProjectSelection, r as promptAndCreateProject } from "./create-project-bMf6ffLZ.mjs";
|
|
7
7
|
import { r as resolveProjectBySlug } from "./resolve-project-BG5ORGID.mjs";
|
|
8
8
|
//#region src/cli/link.ts
|
|
9
9
|
function projectLabel(slug, root, url) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { c as getToken } from "./auth-DLNN0D3Z.mjs";
|
|
1
|
+
import { c as getToken } from "./auth-CSkdO2Bb.mjs";
|
|
3
2
|
import { i as readDeploymentPlatform, o as readProjectConfig } from "./project-C0Fqu05O.mjs";
|
|
4
|
-
import { O as intro, P as outro, j as log } from "./dist-
|
|
5
|
-
import { n as PlatformClient } from "./client-
|
|
3
|
+
import { O as intro, P as outro, j as log } from "./dist-CTBk70IR.mjs";
|
|
4
|
+
import { n as PlatformClient } from "./client-RV8NVeB8.mjs";
|
|
5
|
+
import { a as dim, c as import_picocolors, d as tablePrefix, o as ensureUtc, r as cliTitle } from "./output-Dm_A4Tbv.mjs";
|
|
6
6
|
import { r as resolveProjectBySlug } from "./resolve-project-BG5ORGID.mjs";
|
|
7
7
|
//#region src/cli/list.ts
|
|
8
8
|
async function runListCommand(root, slug) {
|
|
@@ -43,7 +43,7 @@ async function runListCommand(root, slug) {
|
|
|
43
43
|
}
|
|
44
44
|
async function showCloudflareDeployments(root, slug) {
|
|
45
45
|
if (slug) throw new Error("project: A project name selects a Void platform project and is not used for direct Cloudflare apps.");
|
|
46
|
-
const { readCloudflareWorkerStatus, resolveCloudflareOperationContext } = await import("./cloudflare-operations-
|
|
46
|
+
const { readCloudflareWorkerStatus, resolveCloudflareOperationContext } = await import("./cloudflare-operations-AiWashgg.mjs");
|
|
47
47
|
const status = await readCloudflareWorkerStatus(resolveCloudflareOperationContext(root));
|
|
48
48
|
if (status.versions.length === 0) {
|
|
49
49
|
outro(`No deployments for ${status.workerName}.`);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as AuthUser } from "./auth-DkcFflXV.mjs";
|
|
2
|
-
import { a as CloudEnv, r as CloudContext } from "./handler-
|
|
2
|
+
import { a as CloudEnv, r as CloudContext } from "./handler-CZ4nAylQ.mjs";
|
|
3
3
|
//#region src/runtime/live.d.ts
|
|
4
4
|
type MaybePromise<T> = T | Promise<T>;
|
|
5
5
|
type LiveControlRequest = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as join, i as isAbsolute, u as resolve } from "./dist-BVqXeR_h.mjs";
|
|
2
|
-
import {
|
|
3
|
-
import { r as getMiniflareDatabasePath } from "./runner-
|
|
2
|
+
import { y as readRootWranglerConfig } from "./wrangler-7K-bW_DL.mjs";
|
|
3
|
+
import { r as getMiniflareDatabasePath } from "./runner-Ol0TNjk6.mjs";
|
|
4
4
|
import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
|
|
5
5
|
import { createHash } from "node:crypto";
|
|
6
6
|
//#region src/local-d1.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { c as
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { i as
|
|
1
|
+
import { _ as saveToken, a as getApiUrl, c as getToken, g as savePlatformToken, h as runPlatformLogin, l as getTokenSource, m as runLogin, p as removeToken, u as isStagingMode } from "./auth-CSkdO2Bb.mjs";
|
|
2
|
+
import { I as select, O as intro, P as outro, T as cancel, W as isCancel, j as log } from "./dist-CTBk70IR.mjs";
|
|
3
|
+
import { i as isExpiredTokenError, n as PlatformClient } from "./client-RV8NVeB8.mjs";
|
|
4
|
+
import { c as import_picocolors, i as createSpinner, r as cliTitle } from "./output-Dm_A4Tbv.mjs";
|
|
5
5
|
//#region src/cli/login.ts
|
|
6
6
|
async function selectPlatformLoginMethod(platform, requestedId) {
|
|
7
7
|
const providers = platform?.authenticationProviders ?? ["github", "google"];
|
|
@@ -29,7 +29,7 @@ async function selectPlatformLoginMethod(platform, requestedId) {
|
|
|
29
29
|
return methods.find((method) => method.id === provider);
|
|
30
30
|
}
|
|
31
31
|
async function promptForLoginToken(root = process.cwd(), platform) {
|
|
32
|
-
const { id: provider, label: providerName } = await selectPlatformLoginMethod(platform ?? await import("./platform-cmd-
|
|
32
|
+
const { id: provider, label: providerName } = await selectPlatformLoginMethod(platform ?? await import("./platform-cmd-Bt-1w6pY.mjs").then(({ discoverPlatform }) => discoverPlatform(getApiUrl(root))));
|
|
33
33
|
const s = createSpinner();
|
|
34
34
|
s.start(`Opening browser for ${providerName} login...`);
|
|
35
35
|
try {
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { c as getToken } from "./auth-DLNN0D3Z.mjs";
|
|
1
|
+
import { c as getToken } from "./auth-CSkdO2Bb.mjs";
|
|
3
2
|
import { i as readDeploymentPlatform, o as readProjectConfig } from "./project-C0Fqu05O.mjs";
|
|
4
|
-
import { O as intro, P as outro, j as log } from "./dist-
|
|
5
|
-
import { n as PlatformClient } from "./client-
|
|
3
|
+
import { O as intro, P as outro, j as log } from "./dist-CTBk70IR.mjs";
|
|
4
|
+
import { n as PlatformClient } from "./client-RV8NVeB8.mjs";
|
|
5
|
+
import { a as dim, c as import_picocolors, r as cliTitle } from "./output-Dm_A4Tbv.mjs";
|
|
6
6
|
//#region src/cli/logs.ts
|
|
7
7
|
async function runLogsCommand(root, filter, range, deployment, level) {
|
|
8
8
|
console.log();
|
|
9
9
|
intro(cliTitle("project logs"));
|
|
10
10
|
const platform = readDeploymentPlatform(root);
|
|
11
11
|
if (platform === "cloudflare") {
|
|
12
|
-
const { resolveCloudflareOperationContext, tailCloudflareWorker } = await import("./cloudflare-operations-
|
|
12
|
+
const { resolveCloudflareOperationContext, tailCloudflareWorker } = await import("./cloudflare-operations-AiWashgg.mjs");
|
|
13
13
|
if (range !== "1h") log.warn("Cloudflare tail streams live logs; --range does not select historical entries.");
|
|
14
14
|
if (level && level !== "all" && level !== "error") log.warn("Cloudflare tail cannot filter individual console levels; showing all invocation logs.");
|
|
15
15
|
await tailCloudflareWorker(resolveCloudflareOperationContext(root), {
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { a as join, n as dirname } from "./dist-BVqXeR_h.mjs";
|
|
2
|
-
import { r as cliTitle } from "./output-CCH48AMM.mjs";
|
|
3
2
|
import { o as TYPED_CONFIG_FILE, s as loadTypedVoidConfigFile } from "./project-paths-GgcMozYz.mjs";
|
|
4
|
-
import { g as validateConfig } from "./config-
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
3
|
+
import { g as validateConfig } from "./config-Br_JZD6u.mjs";
|
|
4
|
+
import { n as VOID_LOCK_FILE, o as seedCloudflareConfig, s as stashCloudflareDeployPointer } from "./cloudflare-config-Bktvwtpf.mjs";
|
|
5
|
+
import "./wrangler-7K-bW_DL.mjs";
|
|
6
|
+
import { O as intro, P as outro, j as log } from "./dist-CTBk70IR.mjs";
|
|
7
|
+
import { r as cliTitle } from "./output-Dm_A4Tbv.mjs";
|
|
7
8
|
import { existsSync, mkdirSync, readFileSync, renameSync, rmSync, unlinkSync, writeFileSync } from "node:fs";
|
|
8
9
|
import { parseSync } from "vite";
|
|
9
10
|
import { randomUUID } from "node:crypto";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as join } from "./dist-BVqXeR_h.mjs";
|
|
2
2
|
import { n as loadVoidAuthConfig, t as findVoidAuthConfig } from "./config-DPByhVck.mjs";
|
|
3
|
-
import { m as readConfig } from "./config-
|
|
4
|
-
import { r as getMiniflareDatabasePath } from "./runner-
|
|
3
|
+
import { m as readConfig } from "./config-Br_JZD6u.mjs";
|
|
4
|
+
import { r as getMiniflareDatabasePath } from "./runner-Ol0TNjk6.mjs";
|
|
5
5
|
import { a as loadLocalEnv } from "./env-_v349JBd.mjs";
|
|
6
6
|
import { r as resolveVoidAuthMigrationSchema } from "./drizzle-Beb2Am5S.mjs";
|
|
7
7
|
import { n as applyPgAuthMigrations, r as applySqliteAuthMigrations, t as applyMySqlAuthMigrations } from "./auth-migrations-9vif1uj8.mjs";
|