void 0.1.6 → 0.7.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 (333) hide show
  1. package/AGENT_PROMPT.md +15 -0
  2. package/README.md +62 -123
  3. package/dist/auth-BdsJ0Aff.d.mts +43 -0
  4. package/dist/auth-cmd-Dx8oPKZC.mjs +43 -0
  5. package/dist/auth-migrations-BAtAck2g.mjs +117 -0
  6. package/dist/better-auth-shared-C9_GHSkR.d.mts +71 -0
  7. package/dist/better-auth-shared-CdYmQGry.mjs +163 -0
  8. package/dist/cache-W82I8ihI.mjs +47 -0
  9. package/dist/cancel-deploy-BOBTqqh0.mjs +59 -0
  10. package/dist/cf-access-Dee5cXxL.mjs +22 -0
  11. package/dist/chunk-DJd-R1mw.mjs +34 -0
  12. package/dist/cli/cli.d.mts +1 -0
  13. package/dist/cli/cli.mjs +1807 -0
  14. package/dist/client-snXOjrp1.mjs +565 -0
  15. package/dist/collect-CjeZgz5D.mjs +55 -0
  16. package/dist/config-BIa9HwVX.mjs +573 -0
  17. package/dist/config-BzM9Dy7T.mjs +37 -0
  18. package/dist/config-CvHtTM0q.mjs +30 -0
  19. package/dist/create-project-BIA15W7z.mjs +90 -0
  20. package/dist/db-DsRoMcfN.mjs +895 -0
  21. package/dist/defer-DcxEsVH1.mjs +49 -0
  22. package/dist/delete-DAP6yDc7.mjs +64 -0
  23. package/dist/deploy-BPKblFx6.mjs +2424 -0
  24. package/dist/discover-B7FkXBLB.mjs +40 -0
  25. package/dist/dist-DUyXJLkq.mjs +2667 -0
  26. package/dist/dist-Dayj3gCK.mjs +1287 -0
  27. package/dist/domain-BGofcQ6I.mjs +79 -0
  28. package/dist/dotenv-DwO4ti0Z.mjs +173 -0
  29. package/dist/drizzle-NnudE_UN.mjs +232 -0
  30. package/dist/env-CyG3tvU0.mjs +301 -0
  31. package/dist/env-helpers-Dr9Y7RnE.d.mts +52 -0
  32. package/dist/env-raw-BDL4TvdN.mjs +32 -0
  33. package/dist/env-types-DknSA4SO.mjs +64 -0
  34. package/dist/env-validation-DJKjR_8q.mjs +163 -0
  35. package/dist/fetch-error-BQ8sZ5Nd.mjs +266 -0
  36. package/dist/fetch-error-CVZ5CGA-.d.mts +20 -0
  37. package/dist/gen-U0Ktr4Zd.mjs +761 -0
  38. package/dist/handler-B0ds0OHJ.d.mts +269 -0
  39. package/dist/head-P-egrtFE.d.mts +45 -0
  40. package/dist/headers-DCXc7mDs.mjs +279 -0
  41. package/dist/index.d.mts +32 -0
  42. package/dist/index.mjs +4695 -0
  43. package/dist/init-C7wS5iGP.mjs +2625 -0
  44. package/dist/link-p2R6NbgN.mjs +49 -0
  45. package/dist/list-Bfel-QLc.mjs +113 -0
  46. package/dist/log-DXdqnmhF.mjs +26 -0
  47. package/dist/login-CkcXUiIu.mjs +72 -0
  48. package/dist/logs-DmkrRvx6.mjs +98 -0
  49. package/dist/magic-string.es-D6g9UnIy.mjs +1011 -0
  50. package/dist/mcp-CaQzfeUi.mjs +373 -0
  51. package/dist/node-DDfXj10V.mjs +54 -0
  52. package/dist/output-BwlcIYSR.mjs +139 -0
  53. package/dist/pages/client.d.mts +198 -0
  54. package/dist/pages/client.mjs +980 -0
  55. package/dist/pages/head-client.d.mts +15 -0
  56. package/dist/pages/head-client.mjs +90 -0
  57. package/dist/pages/head.d.mts +2 -0
  58. package/dist/pages/head.mjs +112 -0
  59. package/dist/pages/index.d.mts +38 -0
  60. package/dist/pages/index.mjs +76 -0
  61. package/dist/pages/islands-plugin.d.mts +50 -0
  62. package/dist/pages/islands-plugin.mjs +195 -0
  63. package/dist/pages/prefetch.d.mts +31 -0
  64. package/dist/pages/prefetch.mjs +90 -0
  65. package/dist/pages/protocol.d.mts +3 -0
  66. package/dist/pages/protocol.mjs +193 -0
  67. package/dist/pages/serialize.d.mts +10 -0
  68. package/dist/pages/serialize.mjs +14 -0
  69. package/dist/pathe.M-eThtNZ-D-kmWkCS.mjs +150 -0
  70. package/dist/plugin-inference-oZ6Ybu2_.mjs +2447 -0
  71. package/dist/prepare-BAtWufvm.mjs +99 -0
  72. package/dist/preset-D4I73kT4.mjs +221 -0
  73. package/dist/project-TqORyHn8.mjs +72 -0
  74. package/dist/project-cmd-B7lQp3F3.mjs +67 -0
  75. package/dist/project-slug-CKam8lF9.mjs +11 -0
  76. package/dist/project-tsconfig-DfkESbDL.mjs +63 -0
  77. package/dist/protocol-BWzXs2A2.d.mts +34 -0
  78. package/dist/providers-B3aMxWzP.mjs +67 -0
  79. package/dist/resolve-project-Br5BR03U.mjs +29 -0
  80. package/dist/rollback-gyC59l7U.mjs +92 -0
  81. package/dist/route-types-DReF1gUY.mjs +255 -0
  82. package/dist/routes-stub.d.mts +55 -0
  83. package/dist/routes-stub.mjs +1 -0
  84. package/dist/runner-6Ep3fNQu.mjs +123 -0
  85. package/dist/runner-pg-D0wWHYnr.mjs +57 -0
  86. package/dist/runtime/ai.d.mts +127 -0
  87. package/dist/runtime/ai.mjs +348 -0
  88. package/dist/runtime/auth-client-react.d.mts +8 -0
  89. package/dist/runtime/auth-client-react.mjs +6 -0
  90. package/dist/runtime/auth-client-solid.d.mts +8 -0
  91. package/dist/runtime/auth-client-solid.mjs +6 -0
  92. package/dist/runtime/auth-client-svelte.d.mts +8 -0
  93. package/dist/runtime/auth-client-svelte.mjs +6 -0
  94. package/dist/runtime/auth-client-vue.d.mts +8 -0
  95. package/dist/runtime/auth-client-vue.mjs +6 -0
  96. package/dist/runtime/auth-client.d.mts +8 -0
  97. package/dist/runtime/auth-client.mjs +6 -0
  98. package/dist/runtime/auth.d.mts +2 -0
  99. package/dist/runtime/auth.mjs +22 -0
  100. package/dist/runtime/better-auth-pg.d.mts +11 -0
  101. package/dist/runtime/better-auth-pg.mjs +51 -0
  102. package/dist/runtime/better-auth.d.mts +11 -0
  103. package/dist/runtime/better-auth.mjs +33 -0
  104. package/dist/runtime/client.d.mts +6 -0
  105. package/dist/runtime/client.mjs +5 -0
  106. package/dist/runtime/db-pg.d.mts +2 -0
  107. package/dist/runtime/db-pg.mjs +1 -0
  108. package/dist/runtime/db.d.mts +17 -0
  109. package/dist/runtime/db.mjs +30 -0
  110. package/dist/runtime/drizzle-arktype.d.mts +1 -0
  111. package/dist/runtime/drizzle-arktype.mjs +2 -0
  112. package/dist/runtime/drizzle-valibot.d.mts +1 -0
  113. package/dist/runtime/drizzle-valibot.mjs +2 -0
  114. package/dist/runtime/drizzle-zod.d.mts +1 -0
  115. package/dist/runtime/drizzle-zod.mjs +2 -0
  116. package/dist/runtime/env-helpers.d.mts +2 -0
  117. package/dist/runtime/env-helpers.mjs +173 -0
  118. package/dist/runtime/env-public-client.d.mts +22 -0
  119. package/dist/runtime/env-public-client.mjs +54 -0
  120. package/dist/runtime/env-public.d.mts +143 -0
  121. package/dist/runtime/env-public.mjs +366 -0
  122. package/dist/runtime/env.d.mts +13 -0
  123. package/dist/runtime/env.mjs +51 -0
  124. package/dist/runtime/fetch-stream.d.mts +51 -0
  125. package/dist/runtime/fetch-stream.mjs +81 -0
  126. package/dist/runtime/fetch.d.mts +59 -0
  127. package/dist/runtime/fetch.mjs +18 -0
  128. package/dist/runtime/handler.d.mts +3 -0
  129. package/dist/runtime/handler.mjs +85 -0
  130. package/dist/runtime/isr.d.mts +26 -0
  131. package/dist/runtime/isr.mjs +43 -0
  132. package/dist/runtime/kv.d.mts +48 -0
  133. package/dist/runtime/kv.mjs +106 -0
  134. package/dist/runtime/log.d.mts +24 -0
  135. package/dist/runtime/log.mjs +31 -0
  136. package/dist/runtime/migration-handler-pg.d.mts +6 -0
  137. package/dist/runtime/migration-handler-pg.mjs +85 -0
  138. package/dist/runtime/migration-handler.d.mts +19 -0
  139. package/dist/runtime/migration-handler.mjs +92 -0
  140. package/dist/runtime/queues.d.mts +7 -0
  141. package/dist/runtime/queues.mjs +8 -0
  142. package/dist/runtime/remote/binding-handler.d.mts +15 -0
  143. package/dist/runtime/remote/binding-handler.mjs +208 -0
  144. package/dist/runtime/remote/index.d.mts +8 -0
  145. package/dist/runtime/remote/index.mjs +461 -0
  146. package/dist/runtime/response.d.mts +14 -0
  147. package/dist/runtime/response.mjs +30 -0
  148. package/dist/runtime/sandbox.d.mts +17 -0
  149. package/dist/runtime/sandbox.mjs +19 -0
  150. package/dist/runtime/schema-d1.d.mts +1 -0
  151. package/dist/runtime/schema-d1.mjs +2 -0
  152. package/dist/runtime/schema-pg.d.mts +1 -0
  153. package/dist/runtime/schema-pg.mjs +2 -0
  154. package/dist/runtime/seed.d.mts +30 -0
  155. package/dist/runtime/seed.mjs +6 -0
  156. package/dist/runtime/storage.d.mts +7 -0
  157. package/dist/runtime/storage.mjs +14 -0
  158. package/dist/runtime/validator.d.mts +2 -0
  159. package/dist/runtime/validator.mjs +72 -0
  160. package/dist/runtime/ws-server.d.mts +26 -0
  161. package/dist/runtime/ws-server.mjs +296 -0
  162. package/dist/runtime/ws.d.mts +123 -0
  163. package/dist/runtime/ws.mjs +103 -0
  164. package/dist/scan-Ba4hFwlH.mjs +324 -0
  165. package/dist/scan-C6HMEIdW.mjs +318 -0
  166. package/dist/secret-CeRSukgM.mjs +109 -0
  167. package/dist/skills-ipldjlKE.mjs +62 -0
  168. package/dist/standard-schema-9CRjx-uR.d.mts +42 -0
  169. package/dist/subcommand-prompt-BKjuNAPb.mjs +349 -0
  170. package/dist/sveltekit.d.mts +20 -0
  171. package/dist/sveltekit.mjs +61 -0
  172. package/dist/types-mHOEwpW4.d.mts +57 -0
  173. package/dist/validate-CaMavMxu.mjs +146 -0
  174. package/dist/yarn-pnp-BFqMV_bl.mjs +196 -0
  175. package/getting-started-prompt.txt +26 -0
  176. package/package.json +322 -30
  177. package/schema.json +364 -0
  178. package/skills/migrate-vite-cloudflare-to-void/SKILL.md +175 -0
  179. package/skills/void/SKILL.md +75 -0
  180. package/skills/void/command/void.md +7 -0
  181. package/skills/void/docs/guide/ai.md +235 -0
  182. package/skills/void/docs/guide/app-types.md +103 -0
  183. package/skills/void/docs/guide/auth.md +257 -0
  184. package/skills/void/docs/guide/database/d1.md +106 -0
  185. package/skills/void/docs/guide/database/postgresql.md +106 -0
  186. package/skills/void/docs/guide/database.md +418 -0
  187. package/skills/void/docs/guide/deployment.md +98 -0
  188. package/skills/void/docs/guide/edge/headers.md +79 -0
  189. package/skills/void/docs/guide/edge/prerendering.md +83 -0
  190. package/skills/void/docs/guide/edge/redirects.md +116 -0
  191. package/skills/void/docs/guide/edge/revalidation.md +131 -0
  192. package/skills/void/docs/guide/edge/rewrites.md +354 -0
  193. package/skills/void/docs/guide/edge/static-assets.md +72 -0
  194. package/skills/void/docs/guide/env-vars.md +298 -0
  195. package/skills/void/docs/guide/index.md +80 -0
  196. package/skills/void/docs/guide/jobs.md +91 -0
  197. package/skills/void/docs/guide/kv.md +107 -0
  198. package/skills/void/docs/guide/pages-routing/actions-and-forms.md +419 -0
  199. package/skills/void/docs/guide/pages-routing/head.md +130 -0
  200. package/skills/void/docs/guide/pages-routing/islands.md +405 -0
  201. package/skills/void/docs/guide/pages-routing/layouts.md +362 -0
  202. package/skills/void/docs/guide/pages-routing/loaders.md +267 -0
  203. package/skills/void/docs/guide/pages-routing/markdown.md +625 -0
  204. package/skills/void/docs/guide/pages-routing/overview.md +236 -0
  205. package/skills/void/docs/guide/pages-routing/view-transitions.md +140 -0
  206. package/skills/void/docs/guide/queues.md +140 -0
  207. package/skills/void/docs/guide/quickstart.md +233 -0
  208. package/skills/void/docs/guide/remote-dev.md +67 -0
  209. package/skills/void/docs/guide/sandboxes.md +82 -0
  210. package/skills/void/docs/guide/server-routing.md +246 -0
  211. package/skills/void/docs/guide/ssg.md +74 -0
  212. package/skills/void/docs/guide/ssr.md +105 -0
  213. package/skills/void/docs/guide/storage.md +67 -0
  214. package/skills/void/docs/guide/type-safety.md +179 -0
  215. package/skills/void/docs/guide/typed-fetch.md +113 -0
  216. package/skills/void/docs/guide/websockets.md +190 -0
  217. package/skills/void/docs/index.md +48 -0
  218. package/skills/void/docs/integrations/agents.md +84 -0
  219. package/skills/void/docs/integrations/cloudflare.md +284 -0
  220. package/skills/void/docs/integrations/frameworks/analog.md +182 -0
  221. package/skills/void/docs/integrations/frameworks/astro.md +197 -0
  222. package/skills/void/docs/integrations/frameworks/nuxt.md +164 -0
  223. package/skills/void/docs/integrations/frameworks/overview.md +136 -0
  224. package/skills/void/docs/integrations/frameworks/react-router.md +137 -0
  225. package/skills/void/docs/integrations/frameworks/sveltekit.md +191 -0
  226. package/skills/void/docs/integrations/frameworks/tanstack-start.md +140 -0
  227. package/skills/void/docs/integrations/hono.md +97 -0
  228. package/skills/void/docs/integrations/nodejs-bun-deno.md +210 -0
  229. package/skills/void/docs/node_modules/@iconify/vue/README.md +408 -0
  230. package/skills/void/docs/node_modules/@iconify/vue/offline/readme.md +5 -0
  231. package/skills/void/docs/node_modules/@voidzero-dev/vitepress-theme/README.md +103 -0
  232. package/skills/void/docs/node_modules/oxc-minify/README.md +78 -0
  233. package/skills/void/docs/node_modules/reka-ui/README.md +80 -0
  234. package/skills/void/docs/node_modules/vitepress/README.md +28 -0
  235. package/skills/void/docs/node_modules/vitepress/template/api-examples.md +49 -0
  236. package/skills/void/docs/node_modules/vitepress/template/index.md +28 -0
  237. package/skills/void/docs/node_modules/vitepress/template/markdown-examples.md +85 -0
  238. package/skills/void/docs/node_modules/vitepress-plugin-group-icons/README.md +101 -0
  239. package/skills/void/docs/node_modules/void/AGENTS.md +204 -0
  240. package/skills/void/docs/node_modules/void/AGENT_PROMPT.md +15 -0
  241. package/skills/void/docs/node_modules/void/README.md +89 -0
  242. package/skills/void/docs/node_modules/void/node_modules/@clack/prompts/CHANGELOG.md +591 -0
  243. package/skills/void/docs/node_modules/void/node_modules/@clack/prompts/README.md +375 -0
  244. package/skills/void/docs/node_modules/void/node_modules/@cloudflare/sandbox/README.md +174 -0
  245. package/skills/void/docs/node_modules/void/node_modules/@cloudflare/vite-plugin/README.md +37 -0
  246. package/skills/void/docs/node_modules/void/node_modules/@cloudflare/workers-types/README.md +135 -0
  247. package/skills/void/docs/node_modules/void/node_modules/@electric-sql/pglite/README.md +189 -0
  248. package/skills/void/docs/node_modules/void/node_modules/@hono/oauth-providers/CHANGELOG.md +143 -0
  249. package/skills/void/docs/node_modules/void/node_modules/@hono/oauth-providers/README.md +1272 -0
  250. package/skills/void/docs/node_modules/void/node_modules/@napi-rs/keyring/README.md +19 -0
  251. package/skills/void/docs/node_modules/void/node_modules/@types/better-sqlite3/README.md +15 -0
  252. package/skills/void/docs/node_modules/void/node_modules/@types/node/README.md +15 -0
  253. package/skills/void/docs/node_modules/void/node_modules/@types/pg/README.md +15 -0
  254. package/skills/void/docs/node_modules/void/node_modules/@typescript/native-preview/README.md +22 -0
  255. package/skills/void/docs/node_modules/void/node_modules/@typescript/native-preview/vendor/vscode-jsonrpc/README.md +69 -0
  256. package/skills/void/docs/node_modules/void/node_modules/@void/md/README.md +152 -0
  257. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/@shikijs/engine-javascript/README.md +9 -0
  258. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/@shikijs/transformers/README.md +9 -0
  259. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/@types/node/README.md +15 -0
  260. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/gray-matter/CHANGELOG.md +24 -0
  261. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/gray-matter/README.md +565 -0
  262. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-exit/README.md +124 -0
  263. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-anchor/README.md +600 -0
  264. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-attrs/README.md +386 -0
  265. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-container/README.md +95 -0
  266. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-emoji/README.md +101 -0
  267. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/pathe/README.md +73 -0
  268. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/shiki/README.md +15 -0
  269. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/tinyglobby/README.md +25 -0
  270. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/tsdown/README.md +55 -0
  271. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite/LICENSE.md +2230 -0
  272. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vite/README.md +20 -0
  273. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/vue/README.md +58 -0
  274. package/skills/void/docs/node_modules/void/node_modules/arktype/README.md +165 -0
  275. package/skills/void/docs/node_modules/void/node_modules/better-auth/LICENSE.md +20 -0
  276. package/skills/void/docs/node_modules/void/node_modules/better-auth/README.md +32 -0
  277. package/skills/void/docs/node_modules/void/node_modules/better-sqlite3/README.md +99 -0
  278. package/skills/void/docs/node_modules/void/node_modules/blake3-jit/README.md +108 -0
  279. package/skills/void/docs/node_modules/void/node_modules/drizzle-arktype/README.md +51 -0
  280. package/skills/void/docs/node_modules/void/node_modules/drizzle-kit/README.md +79 -0
  281. package/skills/void/docs/node_modules/void/node_modules/drizzle-orm/README.md +44 -0
  282. package/skills/void/docs/node_modules/void/node_modules/drizzle-valibot/README.md +51 -0
  283. package/skills/void/docs/node_modules/void/node_modules/drizzle-zod/README.md +65 -0
  284. package/skills/void/docs/node_modules/void/node_modules/es-module-lexer/README.md +390 -0
  285. package/skills/void/docs/node_modules/void/node_modules/estree-walker/README.md +48 -0
  286. package/skills/void/docs/node_modules/void/node_modules/hono/README.md +85 -0
  287. package/skills/void/docs/node_modules/void/node_modules/ignore/README.md +452 -0
  288. package/skills/void/docs/node_modules/void/node_modules/jsonc-parser/CHANGELOG.md +76 -0
  289. package/{LICENSE → skills/void/docs/node_modules/void/node_modules/jsonc-parser/LICENSE.md} +21 -21
  290. package/skills/void/docs/node_modules/void/node_modules/jsonc-parser/README.md +364 -0
  291. package/skills/void/docs/node_modules/void/node_modules/jsonc-parser/SECURITY.md +41 -0
  292. package/skills/void/docs/node_modules/void/node_modules/magic-string/README.md +325 -0
  293. package/skills/void/docs/node_modules/void/node_modules/ofetch/README.md +398 -0
  294. package/skills/void/docs/node_modules/void/node_modules/pathe/README.md +73 -0
  295. package/skills/void/docs/node_modules/void/node_modules/pg/README.md +95 -0
  296. package/skills/void/docs/node_modules/void/node_modules/pglite-server/LICENSE.md +21 -0
  297. package/skills/void/docs/node_modules/void/node_modules/pglite-server/README.md +135 -0
  298. package/skills/void/docs/node_modules/void/node_modules/picocolors/README.md +21 -0
  299. package/skills/void/docs/node_modules/void/node_modules/tinyglobby/README.md +25 -0
  300. package/skills/void/docs/node_modules/void/node_modules/tsdown/README.md +55 -0
  301. package/skills/void/docs/node_modules/void/node_modules/valibot/LICENSE.md +9 -0
  302. package/skills/void/docs/node_modules/void/node_modules/valibot/README.md +94 -0
  303. package/skills/void/docs/node_modules/void/node_modules/vite/LICENSE.md +2230 -0
  304. package/skills/void/docs/node_modules/void/node_modules/vite/README.md +20 -0
  305. package/skills/void/docs/node_modules/void/node_modules/wrangler/README.md +63 -0
  306. package/skills/void/docs/node_modules/void/node_modules/zod/README.md +191 -0
  307. package/skills/void/docs/node_modules/void/skills/migrate-vite-cloudflare-to-void/SKILL.md +175 -0
  308. package/skills/void/docs/node_modules/void/skills/void/SKILL.md +75 -0
  309. package/skills/void/docs/node_modules/void/skills/void/command/void.md +7 -0
  310. package/skills/void/docs/reference/api.md +917 -0
  311. package/skills/void/docs/reference/cli.md +561 -0
  312. package/skills/void/docs/reference/config.md +408 -0
  313. package/skills/void/docs/reference/resource-inference.md +149 -0
  314. package/skills/void/docs/reference/structure.md +176 -0
  315. package/.npmignore +0 -29
  316. package/.travis.yml +0 -9
  317. package/favicon.ico +0 -0
  318. package/index.js +0 -14
  319. package/lib/Job.js +0 -150
  320. package/lib/Void.js +0 -99
  321. package/lib/scan.js +0 -19
  322. package/test/credentials.js +0 -20
  323. package/test/job.js +0 -64
  324. package/test/static/dir1/test6.html +0 -0
  325. package/test/static/dir2/test7.html +0 -0
  326. package/test/static/dir2/test8.html +0 -0
  327. package/test/static/dir2/test9.html +0 -0
  328. package/test/static/test1.html +0 -0
  329. package/test/static/test2.html +0 -0
  330. package/test/static/test3.html +0 -0
  331. package/test/void.js +0 -31
  332. /package/{test/static/dir1/test4.html → skills/void/docs/integrations/auth-providers.md} +0 -0
  333. /package/{test/static/dir1/test5.html → skills/void/docs/integrations/payment-processors.md} +0 -0
@@ -0,0 +1,49 @@
1
+ import { n as cliTitle, s as import_picocolors } from "./output-BwlcIYSR.mjs";
2
+ import { _ as me, c as R, g as ge, y as ye } from "./dist-Dayj3gCK.mjs";
3
+ import { a as writeProjectConfig, r as readProjectConfig } from "./project-TqORyHn8.mjs";
4
+ import { n as PlatformClient, o as getSiteDomain, s as getToken } from "./client-snXOjrp1.mjs";
5
+ import { n as promptProjectSelection, t as promptAndCreateProject } from "./create-project-BIA15W7z.mjs";
6
+ //#region src/cli/link.ts
7
+ async function runLink(root, slug) {
8
+ console.log();
9
+ ge(cliTitle("project link"));
10
+ const existing = readProjectConfig(root);
11
+ if (existing) {
12
+ R.warn(`Already linked to ${import_picocolors.default.blue(existing.slug)}.${getSiteDomain(root)}`);
13
+ ye("To re-link, delete .void/project.json and run again.");
14
+ return;
15
+ }
16
+ const token = getToken(root);
17
+ if (!token) {
18
+ me("No auth token found. Run `void auth login` first.");
19
+ process.exit(1);
20
+ }
21
+ const client = new PlatformClient(token, { root });
22
+ const projects = await client.listProjects();
23
+ if (slug) {
24
+ const project = projects.find((p) => p.slug === slug);
25
+ if (!project) {
26
+ me(`project: No project found with slug '${slug}'.`);
27
+ process.exit(1);
28
+ }
29
+ writeProjectConfig(root, {
30
+ projectId: project.id,
31
+ slug: project.slug
32
+ });
33
+ ye(`Linked to ${import_picocolors.default.blue(project.slug)}.${getSiteDomain(root)}`);
34
+ return;
35
+ }
36
+ const result = await promptProjectSelection(projects, "Select a project:", root);
37
+ if (result.action === "create") {
38
+ const config = await promptAndCreateProject(root, client);
39
+ ye(`Created and linked to ${import_picocolors.default.blue(config.slug)}.${getSiteDomain(root)}`);
40
+ return;
41
+ }
42
+ writeProjectConfig(root, {
43
+ projectId: result.project.id,
44
+ slug: result.project.slug
45
+ });
46
+ ye(`Linked to ${import_picocolors.default.blue(result.project.slug)}.${getSiteDomain(root)}`);
47
+ }
48
+ //#endregion
49
+ export { runLink };
@@ -0,0 +1,113 @@
1
+ import { a as ensureUtc, i as dim, l as tablePrefix, n as cliTitle, s as import_picocolors } from "./output-BwlcIYSR.mjs";
2
+ import { c as R, g as ge, y as ye } from "./dist-Dayj3gCK.mjs";
3
+ import { r as readProjectConfig } from "./project-TqORyHn8.mjs";
4
+ import { n as PlatformClient, s as getToken } from "./client-snXOjrp1.mjs";
5
+ import { r as resolveProjectBySlug } from "./resolve-project-Br5BR03U.mjs";
6
+ //#region src/cli/list.ts
7
+ async function runListCommand(root, slug) {
8
+ console.log();
9
+ ge(cliTitle("project status"));
10
+ const token = getToken(root);
11
+ if (!token) {
12
+ R.error("Not logged in. Run `void auth login` first.");
13
+ process.exit(1);
14
+ }
15
+ const client = new PlatformClient(token, { root });
16
+ let projectId;
17
+ let projectSlug;
18
+ if (slug) {
19
+ const config = resolveProjectBySlug(await client.listProjects(), slug);
20
+ if (!config) {
21
+ R.error(`project: No project found with slug '${slug}'.`);
22
+ process.exit(1);
23
+ }
24
+ projectId = config.projectId;
25
+ projectSlug = slug;
26
+ } else {
27
+ const linked = readProjectConfig(root);
28
+ if (!linked) {
29
+ R.error("No linked project found. Pass a project name: void project status <name>");
30
+ process.exit(1);
31
+ }
32
+ projectId = linked.projectId;
33
+ projectSlug = linked.slug;
34
+ }
35
+ await showDeployments(client, projectId, projectSlug);
36
+ }
37
+ async function showDeployments(client, projectId, slug) {
38
+ const { deployments, activeDeploymentId } = await client.listDeployments(projectId);
39
+ if (deployments.length === 0) {
40
+ ye(`No deployments for ${slug}.`);
41
+ return;
42
+ }
43
+ const latest = deployments[0];
44
+ if (latest.status === "failed" && latest.error_message) R.error(`project: Latest deploy failed: '${latest.error_message}'.`);
45
+ const rows = deployments.map((d) => formatDeploymentRow(d, activeDeploymentId));
46
+ const idWidth = Math.max(2, ...rows.map((r) => r.id.length));
47
+ const typeWidth = Math.max(4, ...rows.map((r) => r.appType.length));
48
+ const statusWidth = Math.max(6, ...rows.map((r) => r.statusRaw.length));
49
+ const sourceWidth = Math.max(6, ...rows.map((r) => r.source.length));
50
+ const commitWidth = Math.max(6, ...rows.map((r) => r.commit.length));
51
+ const isrWidth = Math.max(3, ...rows.map((r) => r.isr.length));
52
+ const prefix = tablePrefix();
53
+ const header = `${prefix}${dim(`${"id".padEnd(idWidth)} ${"type".padEnd(typeWidth)} ${"status".padEnd(statusWidth)} ${"source".padEnd(sourceWidth)} ${"commit".padEnd(commitWidth)} ${"isr".padEnd(isrWidth)} deployed`)}`;
54
+ const lines = rows.map((row) => `${prefix}${row.id.padEnd(idWidth)} ${row.appType.padEnd(typeWidth)} ${row.statusColored}${"".padEnd(statusWidth - row.statusRaw.length)} ${row.source.padEnd(sourceWidth)} ${row.commit.padEnd(commitWidth)} ${row.isr.padEnd(isrWidth)} ${row.deployed}`);
55
+ console.log(prefix);
56
+ console.log(header);
57
+ for (const line of lines) console.log(line);
58
+ ye(`${slug} — ${deployments.length} deployment(s)`);
59
+ }
60
+ function computeDisplayStatus(d, activeDeploymentId) {
61
+ if (d.status === "failed") return "failed";
62
+ if (d.status !== "live") return d.status;
63
+ if (d.id === activeDeploymentId) return "live";
64
+ if (d.retained) return "retained";
65
+ return "evicted";
66
+ }
67
+ function colorStatus(status) {
68
+ switch (status) {
69
+ case "live": return import_picocolors.default.bold(import_picocolors.default.green(status));
70
+ case "retained": return dim(import_picocolors.default.green(status));
71
+ case "evicted": return dim(status);
72
+ case "failed":
73
+ case "canceled": return import_picocolors.default.red(status);
74
+ case "canceling": return import_picocolors.default.yellow(status);
75
+ default: return status;
76
+ }
77
+ }
78
+ function formatDeploymentRow(d, activeDeploymentId) {
79
+ let manifest = null;
80
+ if (d.manifest) try {
81
+ manifest = JSON.parse(d.manifest);
82
+ } catch {}
83
+ const appType = manifest?.type ?? (manifest?.framework ? "framework" : "void");
84
+ const isr = manifest?.revalidate && manifest.revalidate > 0 ? `${manifest.revalidate}s` : "-";
85
+ const source = d.source ?? "-";
86
+ const commit = d.commit ? d.commit.slice(0, 7) : "-";
87
+ const statusRaw = computeDisplayStatus(d, activeDeploymentId);
88
+ const statusColored = colorStatus(statusRaw);
89
+ const deployed = d.deployed_at ? formatRelativeTime(d.deployed_at) : "-";
90
+ return {
91
+ id: d.id,
92
+ appType,
93
+ statusRaw,
94
+ statusColored,
95
+ source,
96
+ commit,
97
+ isr,
98
+ deployed
99
+ };
100
+ }
101
+ function formatRelativeTime(iso) {
102
+ const diffMs = Date.now() - new Date(ensureUtc(iso)).getTime();
103
+ if (diffMs < 0) return "just now";
104
+ const seconds = Math.floor(diffMs / 1e3);
105
+ if (seconds < 60) return "just now";
106
+ const minutes = Math.floor(seconds / 60);
107
+ if (minutes < 60) return `${minutes}m ago`;
108
+ const hours = Math.floor(minutes / 60);
109
+ if (hours < 24) return `${hours}h ago`;
110
+ return `${Math.floor(hours / 24)}d ago`;
111
+ }
112
+ //#endregion
113
+ export { runListCommand };
@@ -0,0 +1,26 @@
1
+ //#region src/log.ts
2
+ const tag = "\x1B[1m\x1B[35m[void]\x1B[39m\x1B[22m";
3
+ const timeFormat = new Intl.DateTimeFormat(void 0, {
4
+ hour: "numeric",
5
+ minute: "numeric",
6
+ second: "numeric"
7
+ });
8
+ let showTimestamp = true;
9
+ function setShowTimestamp(value) {
10
+ showTimestamp = value;
11
+ }
12
+ function prefix() {
13
+ if (!showTimestamp) return tag;
14
+ return `\x1b[2m${timeFormat.format()}\x1b[22m ${tag}`;
15
+ }
16
+ function voidLog(msg) {
17
+ console.log(`${prefix()} ${msg}`);
18
+ }
19
+ function voidWarn(msg) {
20
+ console.log(`${prefix()} \x1b[33m${msg}\x1b[39m`);
21
+ }
22
+ function voidError(msg) {
23
+ console.log(`${prefix()} \x1b[31m${msg}\x1b[39m`);
24
+ }
25
+ //#endregion
26
+ export { voidWarn as i, voidError as n, voidLog as r, setShowTimestamp as t };
@@ -0,0 +1,72 @@
1
+ import { n as cliTitle, r as createSpinner, s as import_picocolors } from "./output-BwlcIYSR.mjs";
2
+ import { _ as me, c as R, g as ge, i as Ee, x as q, y as ye } from "./dist-Dayj3gCK.mjs";
3
+ import { c as getTokenSource, d as runLogin, f as saveToken, i as isExpiredTokenError, l as isStagingMode, n as PlatformClient, s as getToken, u as removeToken } from "./client-snXOjrp1.mjs";
4
+ //#region src/cli/login.ts
5
+ async function promptForLoginToken(root = process.cwd()) {
6
+ const provider = await Ee({
7
+ message: "Choose a login provider:",
8
+ options: [{
9
+ value: "github",
10
+ label: "GitHub"
11
+ }, {
12
+ value: "google",
13
+ label: "Google"
14
+ }]
15
+ });
16
+ if (q(provider)) {
17
+ me("Login cancelled.");
18
+ process.exit(0);
19
+ }
20
+ const providerName = provider === "github" ? "GitHub" : "Google";
21
+ const s = createSpinner();
22
+ s.start(`Opening browser for ${providerName} login...`);
23
+ try {
24
+ const token = await runLogin(root, provider, (url) => {
25
+ s.message(`Waiting for ${providerName} login. If your browser didn't open, visit:\n${import_picocolors.default.cyan(url)}`);
26
+ });
27
+ saveToken(token, root);
28
+ s.stop("Logged in!");
29
+ return token;
30
+ } catch (err) {
31
+ s.stop("Login failed");
32
+ throw err;
33
+ }
34
+ }
35
+ async function runLoginCommand(root = process.cwd()) {
36
+ console.log();
37
+ ge(cliTitle("login"));
38
+ const existing = getToken(root);
39
+ let expiredEnvToken = false;
40
+ if (existing) {
41
+ const tokenSource = getTokenSource();
42
+ const client = new PlatformClient(existing, { root });
43
+ try {
44
+ await client.whoami();
45
+ if (tokenSource === "ci") {
46
+ R.warn("Already authenticated via `VOID_TOKEN`.");
47
+ ye("Unset `VOID_TOKEN` to log in with a different account.");
48
+ return;
49
+ }
50
+ R.warn("Already logged in.");
51
+ ye("To re-login, run `void auth logout` first.");
52
+ return;
53
+ } catch (error) {
54
+ if (!isExpiredTokenError(error)) throw error;
55
+ if (tokenSource === "ci") {
56
+ expiredEnvToken = true;
57
+ R.warn("`VOID_TOKEN` is invalid or expired. Continuing with a new login.");
58
+ } else {
59
+ removeToken(root);
60
+ R.warn("Stored auth token expired. Starting a new login.");
61
+ }
62
+ }
63
+ }
64
+ await promptForLoginToken(root);
65
+ if (expiredEnvToken) {
66
+ ye(`${isStagingMode(root) ? "Staging token saved." : "Token saved."} Unset \`VOID_TOKEN\` to use it.`);
67
+ return;
68
+ }
69
+ ye(isStagingMode(root) ? "Staging token saved." : "Token saved.");
70
+ }
71
+ //#endregion
72
+ export { runLoginCommand as n, promptForLoginToken as t };
@@ -0,0 +1,98 @@
1
+ import { i as dim, n as cliTitle, s as import_picocolors } from "./output-BwlcIYSR.mjs";
2
+ import { c as R, g as ge, y as ye } from "./dist-Dayj3gCK.mjs";
3
+ import { r as readProjectConfig } from "./project-TqORyHn8.mjs";
4
+ import { n as PlatformClient, s as getToken } from "./client-snXOjrp1.mjs";
5
+ //#region src/cli/logs.ts
6
+ async function runLogsCommand(root, filter, range, deployment, level) {
7
+ console.log();
8
+ ge(cliTitle("project logs"));
9
+ const token = getToken(root);
10
+ if (!token) {
11
+ R.error("Not logged in. Run `void auth login` first.");
12
+ process.exit(1);
13
+ }
14
+ if (!/^\d+(m|h|d)$/.test(range)) {
15
+ R.error(`logs: Invalid range '${range}'. Use a format like 15m, 2h, or 3d.`);
16
+ process.exit(1);
17
+ }
18
+ const linked = readProjectConfig(root);
19
+ if (!linked) {
20
+ R.error("No linked project. Run `void project link` first.");
21
+ process.exit(1);
22
+ }
23
+ const client = new PlatformClient(token, { root });
24
+ let entries;
25
+ try {
26
+ entries = await client.getLogs(linked.projectId, range, 200, deployment || void 0, level || void 0);
27
+ } catch (err) {
28
+ R.error(err instanceof Error ? err.message : String(err));
29
+ process.exit(1);
30
+ }
31
+ entries = filterLogEntries(entries, level, filter);
32
+ if (entries.length === 0) {
33
+ ye(`No logs found in the last ${range}.`);
34
+ return;
35
+ }
36
+ for (const entry of entries) printEntry(entry);
37
+ ye(dim(`${entries.length} log entries`));
38
+ }
39
+ function printEntry(entry) {
40
+ const time = formatTime(entry.timestamp);
41
+ const method = entry.method || "-";
42
+ const url = entry.url || "-";
43
+ const status = entry.status || "-";
44
+ const statusNum = parseInt(status, 10);
45
+ const coloredStatus = entry.outcome === "exception" || statusNum >= 500 ? import_picocolors.default.red(status) : statusNum >= 400 ? import_picocolors.default.yellow(status) : status;
46
+ console.log(`${dim(time)} ${method} ${url} ${coloredStatus}`);
47
+ for (const l of entry.logs) {
48
+ const text = l.message.map(String).join(" ");
49
+ const level = l.level ?? "log";
50
+ if (level === "error") console.log(` ${import_picocolors.default.red(`[${level}]`)} ${text}`);
51
+ else if (level === "warn") console.log(` ${import_picocolors.default.yellow(`[${level}]`)} ${text}`);
52
+ else console.log(` ${dim(`[${level}]`)} ${text}`);
53
+ }
54
+ for (const ex of entry.exceptions) console.log(` ${import_picocolors.default.red("[exception]")} ${ex.name}: ${ex.message}`);
55
+ }
56
+ function formatTime(ts) {
57
+ return new Date(ts).toLocaleTimeString("en-GB", { hour12: false });
58
+ }
59
+ /**
60
+ * Filter log entries by `--level` then by `--filter` substring. Exported for tests.
61
+ *
62
+ * - `level === 'error'`: keep entries with any error-level log line, OR a
63
+ * non-empty `exceptions[]`, OR `outcome !== 'ok'` (exceptions and non-ok
64
+ * outcomes are inherently errors).
65
+ * - `level === 'warn' | 'info' | 'log' | 'debug'`: keep entries with at least
66
+ * one matching log line. Mirrors `journalctl -p` — does NOT include error.
67
+ * - `level` falsy or `'all'`: no level filter.
68
+ *
69
+ * `filter` is a plain substring search over log message text and exception
70
+ * name/message; case-insensitive. Applied after the level filter.
71
+ */
72
+ function filterLogEntries(entries, level, filter) {
73
+ let result = entries;
74
+ if (level && level !== "all") result = result.filter((entry) => {
75
+ if (level === "error") {
76
+ if (entry.outcome !== "ok") return true;
77
+ if (entry.exceptions.length > 0) return true;
78
+ for (const l of entry.logs) if (l.level === "error") return true;
79
+ return false;
80
+ }
81
+ for (const l of entry.logs) if ((l.level ?? "log") === level) return true;
82
+ return false;
83
+ });
84
+ if (filter) {
85
+ const lower = filter.toLowerCase();
86
+ result = result.filter((entry) => {
87
+ for (const l of entry.logs) if (l.message.map(String).join(" ").toLowerCase().includes(lower)) return true;
88
+ for (const ex of entry.exceptions) {
89
+ if (ex.name.toLowerCase().includes(lower)) return true;
90
+ if (ex.message.toLowerCase().includes(lower)) return true;
91
+ }
92
+ return false;
93
+ });
94
+ }
95
+ return result;
96
+ }
97
+ //#endregion
98
+ export { runLogsCommand };