void 0.10.1 → 0.10.3

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 (70) hide show
  1. package/dist/{auth-cmd-DBnbrX9Y.mjs → auth-cmd-CblKzAdD.mjs} +2 -2
  2. package/dist/{better-auth-shared-a7H3wk9J.d.mts → better-auth-shared-jkksALri.d.mts} +2 -2
  3. package/dist/build-cmd-CJQSRupz.mjs +140 -0
  4. package/dist/{cache-DNX0hLsO.mjs → cache-CMzjhxHh.mjs} +1 -1
  5. package/dist/{cancel-deploy-CDzkVaYZ.mjs → cancel-deploy-S2N8NSv6.mjs} +1 -1
  6. package/dist/cli/cli.mjs +208 -29
  7. package/dist/{client-D4awzTnj.mjs → client-YIzxv2ZO.mjs} +30 -1
  8. package/dist/{create-project-CGodxfzH.mjs → create-project-pLQdzEPe.mjs} +1 -1
  9. package/dist/{db-ERzz4oly.mjs → db-hAmBumot.mjs} +3 -3
  10. package/dist/{delete-CJZGDLBR.mjs → delete-CfSe3EJO.mjs} +1 -1
  11. package/dist/{deploy-Cwa5sooV.mjs → deploy-DpOdwtla.mjs} +138 -4
  12. package/dist/{domain-WvoAHE6w.mjs → domain-CkowysQx.mjs} +1 -1
  13. package/dist/{env-Cx4czPsR.mjs → env-CIwG2y7G.mjs} +1 -1
  14. package/dist/{env-helpers-ZatKyjen.d.mts → env-helpers-B_ks681T.d.mts} +1 -1
  15. package/dist/{gen-Dgi4D7GC.mjs → gen-q6McxXgE.mjs} +1 -1
  16. package/dist/{github-cmd-CUB041gj.mjs → github-cmd-D3L0f93X.mjs} +147 -3
  17. package/dist/{handler-DczZlaXR.d.mts → handler-B7rCOy21.d.mts} +3 -3
  18. package/dist/index.d.mts +3 -3
  19. package/dist/index.mjs +5 -5
  20. package/dist/{init-DvaRDMIc.mjs → init-CZP69LJu.mjs} +13 -22
  21. package/dist/{link-CpbWJY3P.mjs → link-BKLElphS.mjs} +2 -2
  22. package/dist/{list-BkwE5vH4.mjs → list-B7qXBBjo.mjs} +1 -1
  23. package/dist/{login-Ca6mhQVI.mjs → login-B3l_sDwT.mjs} +1 -1
  24. package/dist/{logs-ArQzZquo.mjs → logs-AXm660MB.mjs} +1 -1
  25. package/dist/{mcp-Cc2MMXdQ.mjs → mcp-D2plINxM.mjs} +1 -1
  26. package/dist/pages/client.d.mts +1 -1
  27. package/dist/pages/head-client.d.mts +1 -1
  28. package/dist/pages/head.d.mts +1 -1
  29. package/dist/pages/index.d.mts +2 -2
  30. package/dist/pages/islands-plugin.d.mts +1 -1
  31. package/dist/pages/protocol.d.mts +2 -2
  32. package/dist/{project-cmd-CWZeawuN.mjs → project-cmd-InegJruy.mjs} +8 -8
  33. package/dist/{protocol-63PHtCHS.d.mts → protocol-6UZCowS1.d.mts} +3 -3
  34. package/dist/{rollback-BJ60ktsW.mjs → rollback-CHVE-DeT.mjs} +1 -1
  35. package/dist/runtime/auth.d.mts +1 -1
  36. package/dist/runtime/better-auth-pg.d.mts +1 -1
  37. package/dist/runtime/better-auth.d.mts +1 -1
  38. package/dist/runtime/client-react.d.mts +2 -2
  39. package/dist/runtime/client-solid.d.mts +2 -2
  40. package/dist/runtime/client-svelte.d.mts +2 -2
  41. package/dist/runtime/client-vue.d.mts +2 -2
  42. package/dist/runtime/client.d.mts +2 -2
  43. package/dist/runtime/env-helpers.d.mts +1 -1
  44. package/dist/runtime/env-public-client.d.mts +1 -1
  45. package/dist/runtime/env-public.d.mts +2 -2
  46. package/dist/runtime/fetch-stream.d.mts +1 -1
  47. package/dist/runtime/fetch.d.mts +1 -1
  48. package/dist/runtime/handler.d.mts +1 -1
  49. package/dist/runtime/live.d.mts +2 -2
  50. package/dist/runtime/validator.d.mts +1 -1
  51. package/dist/runtime/ws-server.d.mts +2 -2
  52. package/dist/runtime/ws.d.mts +3 -3
  53. package/dist/{secret-BRbXyu7E.mjs → secret-CVKwIOm3.mjs} +1 -1
  54. package/package.json +2 -2
  55. package/skills/void/docs/guide/deployment.md +1 -12
  56. package/skills/void/docs/guide/pages-routing/markdown.md +12 -0
  57. package/skills/void/docs/node_modules/void/node_modules/@void/md/README.md +2 -1
  58. package/skills/void/docs/node_modules/void/node_modules/@void/md/node_modules/markdown-it-footnote/README.md +135 -0
  59. package/skills/void/docs/reference/cli.md +71 -8
  60. /package/dist/{auth-nEUVHuFI.d.mts → auth-Dz2CCn4T.d.mts} +0 -0
  61. /package/dist/{fetch-error-BQMdPvge.d.mts → fetch-error-B6RaJ-eZ.d.mts} +0 -0
  62. /package/dist/{head-JAH2l3fg.d.mts → head-eOUCWUNy.d.mts} +0 -0
  63. /package/dist/{prepare-DH2WnEpD.mjs → prepare-DRRboRqH.mjs} +0 -0
  64. /package/dist/{providers-BkiAlEad.d.mts → providers-BJIoduK9.d.mts} +0 -0
  65. /package/dist/{runner-pg-BAheiT6v.mjs → runner-pg-EuhrFW3D.mjs} +0 -0
  66. /package/dist/{skills--OMgLmXW.mjs → skills-Dl3u05da.mjs} +0 -0
  67. /package/dist/{standard-schema-BCBv-QaP.d.mts → standard-schema-Cy0lfeWv.d.mts} +0 -0
  68. /package/dist/{subcommand-prompt-ClwpLlKD.mjs → subcommand-prompt-B8ng0FTS.mjs} +0 -0
  69. /package/dist/{types-BnHMXezo.d.mts → types-BodZGegX.d.mts} +0 -0
  70. /package/dist/{yarn-pnp-DhCHHLAz.mjs → yarn-pnp-WLW2IHUY.mjs} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { i as dim, l as tablePrefix, n as cliTitle, s as import_picocolors } from "./output-DeiS4oEX.mjs";
2
- import { d as getToken, n as PlatformClient, u as getSiteDomain } from "./client-D4awzTnj.mjs";
2
+ import { d as getSiteDomain, f as getToken, n as PlatformClient } from "./client-YIzxv2ZO.mjs";
3
3
  import { c as R, g as ge, y as ye } from "./dist-abzUneor.mjs";
4
4
  //#region src/cli/projects.ts
5
5
  async function runProjectsCommand(root) {
@@ -34,32 +34,32 @@ async function runProjectsCommand(root) {
34
34
  //#region src/cli/project-cmd.ts
35
35
  async function runProjectCommand(root, args) {
36
36
  if (args.subcommand === "status") {
37
- const { runListCommand } = await import("./list-BkwE5vH4.mjs");
37
+ const { runListCommand } = await import("./list-B7qXBBjo.mjs");
38
38
  return runListCommand(root, args.name || void 0);
39
39
  }
40
40
  if (args.subcommand === "link") {
41
- const { runLink } = await import("./link-CpbWJY3P.mjs");
41
+ const { runLink } = await import("./link-BKLElphS.mjs");
42
42
  return runLink(root, args.name || void 0);
43
43
  }
44
44
  if (args.subcommand === "list") return runProjectsCommand(root);
45
45
  if (args.subcommand === "logs") {
46
- const { runLogsCommand } = await import("./logs-ArQzZquo.mjs");
46
+ const { runLogsCommand } = await import("./logs-AXm660MB.mjs");
47
47
  return runLogsCommand(root, args.filter, args.range, args.deployment || void 0, args.level || void 0);
48
48
  }
49
49
  if (args.subcommand === "rollback") {
50
- const { runRollbackCommand } = await import("./rollback-BJ60ktsW.mjs");
50
+ const { runRollbackCommand } = await import("./rollback-CHVE-DeT.mjs");
51
51
  return runRollbackCommand(root, args.deployId || void 0);
52
52
  }
53
53
  if (args.subcommand === "cancel") {
54
- const { runCancelDeployCommand } = await import("./cancel-deploy-CDzkVaYZ.mjs");
54
+ const { runCancelDeployCommand } = await import("./cancel-deploy-S2N8NSv6.mjs");
55
55
  return runCancelDeployCommand(root, args.deployId || void 0);
56
56
  }
57
57
  if (args.subcommand === "delete") {
58
- const { runDeleteCommand } = await import("./delete-CJZGDLBR.mjs");
58
+ const { runDeleteCommand } = await import("./delete-CfSe3EJO.mjs");
59
59
  return runDeleteCommand(root, args.name || void 0, { force: args.force });
60
60
  }
61
61
  if (args.subcommand === "purge-cache") {
62
- const { runPurgeCacheCommand } = await import("./cache-DNX0hLsO.mjs");
62
+ const { runPurgeCacheCommand } = await import("./cache-CMzjhxHh.mjs");
63
63
  return runPurgeCacheCommand(root, args.projectSlug || void 0);
64
64
  }
65
65
  }
@@ -1,6 +1,6 @@
1
- import { n as HeadDescriptor, t as HeadConfig } from "./head-JAH2l3fg.mjs";
2
- import { n as CloudBindings, r as CloudContext } from "./handler-DczZlaXR.mjs";
3
- import { a as PageRenderMode, t as DevCssAsset } from "./types-BnHMXezo.mjs";
1
+ import { n as HeadDescriptor, t as HeadConfig } from "./head-eOUCWUNy.mjs";
2
+ import { n as CloudBindings, r as CloudContext } from "./handler-B7rCOy21.mjs";
3
+ import { a as PageRenderMode, t as DevCssAsset } from "./types-BodZGegX.mjs";
4
4
 
5
5
  //#region src/pages/protocol.d.ts
6
6
  /** Escape characters that are unsafe inside inline <script> tags to prevent XSS. */
@@ -1,5 +1,5 @@
1
1
  import { a as ensureUtc, i as dim, n as cliTitle, r as createSpinner, s as import_picocolors } from "./output-DeiS4oEX.mjs";
2
- import { d as getToken, n as PlatformClient } from "./client-D4awzTnj.mjs";
2
+ import { f as getToken, n as PlatformClient } from "./client-YIzxv2ZO.mjs";
3
3
  import { _ as me, c as R, g as ge, i as Ee, v as ue, x as q, y as ye } from "./dist-abzUneor.mjs";
4
4
  import { r as readProjectConfig } from "./project-CH9pdo16.mjs";
5
5
  //#region src/cli/rollback.ts
@@ -1,2 +1,2 @@
1
- import { a as VoidAuthConfigContext, c as getSession, i as VoidAuthConfig, l as getUser, n as AuthState, o as authContext, r as AuthUser, s as defineAuth, t as AuthSession, u as requireAuth } from "../auth-nEUVHuFI.mjs";
1
+ import { a as VoidAuthConfigContext, c as getSession, i as VoidAuthConfig, l as getUser, n as AuthState, o as authContext, r as AuthUser, s as defineAuth, t as AuthSession, u as requireAuth } from "../auth-Dz2CCn4T.mjs";
2
2
  export { AuthSession, AuthState, AuthUser, VoidAuthConfig, VoidAuthConfigContext, authContext, defineAuth, getSession, getUser, requireAuth };
@@ -1,4 +1,4 @@
1
- import { i as VoidAuthRuntimeOptions, n as VoidAuthEnv, r as VoidAuthRuntimeApi, t as VoidAuthDialect } from "../better-auth-shared-a7H3wk9J.mjs";
1
+ import { i as VoidAuthRuntimeOptions, n as VoidAuthEnv, r as VoidAuthRuntimeApi, t as VoidAuthDialect } from "../better-auth-shared-jkksALri.mjs";
2
2
 
3
3
  //#region src/runtime/better-auth-pg.d.ts
4
4
  declare const resolveVoidAuthOptions: VoidAuthRuntimeApi["resolveVoidAuthOptions"];
@@ -1,4 +1,4 @@
1
- import { i as VoidAuthRuntimeOptions, n as VoidAuthEnv, r as VoidAuthRuntimeApi, t as VoidAuthDialect } from "../better-auth-shared-a7H3wk9J.mjs";
1
+ import { i as VoidAuthRuntimeOptions, n as VoidAuthEnv, r as VoidAuthRuntimeApi, t as VoidAuthDialect } from "../better-auth-shared-jkksALri.mjs";
2
2
 
3
3
  //#region src/runtime/better-auth.d.ts
4
4
  declare const resolveVoidAuthOptions: VoidAuthRuntimeApi["resolveVoidAuthOptions"];
@@ -1,6 +1,6 @@
1
- import { n as AuthState, r as AuthUser, t as AuthSession } from "../auth-nEUVHuFI.mjs";
1
+ import { n as AuthState, r as AuthUser, t as AuthSession } from "../auth-Dz2CCn4T.mjs";
2
2
  import { auth, createAuthClient } from "./auth-client-react.mjs";
3
- import { t as FetchError } from "../fetch-error-BQMdPvge.mjs";
3
+ import { t as FetchError } from "../fetch-error-B6RaJ-eZ.mjs";
4
4
  import { fetch } from "./fetch.mjs";
5
5
  import { fetchStream } from "./fetch-stream.mjs";
6
6
  export { type AuthSession, type AuthState, type AuthUser, FetchError, FetchError as StreamError, auth, createAuthClient, fetch, fetchStream };
@@ -1,6 +1,6 @@
1
- import { n as AuthState, r as AuthUser, t as AuthSession } from "../auth-nEUVHuFI.mjs";
1
+ import { n as AuthState, r as AuthUser, t as AuthSession } from "../auth-Dz2CCn4T.mjs";
2
2
  import { auth, createAuthClient } from "./auth-client-solid.mjs";
3
- import { t as FetchError } from "../fetch-error-BQMdPvge.mjs";
3
+ import { t as FetchError } from "../fetch-error-B6RaJ-eZ.mjs";
4
4
  import { fetch } from "./fetch.mjs";
5
5
  import { fetchStream } from "./fetch-stream.mjs";
6
6
  export { type AuthSession, type AuthState, type AuthUser, FetchError, FetchError as StreamError, auth, createAuthClient, fetch, fetchStream };
@@ -1,6 +1,6 @@
1
- import { n as AuthState, r as AuthUser, t as AuthSession } from "../auth-nEUVHuFI.mjs";
1
+ import { n as AuthState, r as AuthUser, t as AuthSession } from "../auth-Dz2CCn4T.mjs";
2
2
  import { auth, createAuthClient } from "./auth-client-svelte.mjs";
3
- import { t as FetchError } from "../fetch-error-BQMdPvge.mjs";
3
+ import { t as FetchError } from "../fetch-error-B6RaJ-eZ.mjs";
4
4
  import { fetch } from "./fetch.mjs";
5
5
  import { fetchStream } from "./fetch-stream.mjs";
6
6
  export { type AuthSession, type AuthState, type AuthUser, FetchError, FetchError as StreamError, auth, createAuthClient, fetch, fetchStream };
@@ -1,6 +1,6 @@
1
- import { n as AuthState, r as AuthUser, t as AuthSession } from "../auth-nEUVHuFI.mjs";
1
+ import { n as AuthState, r as AuthUser, t as AuthSession } from "../auth-Dz2CCn4T.mjs";
2
2
  import { auth, createAuthClient } from "./auth-client-vue.mjs";
3
- import { t as FetchError } from "../fetch-error-BQMdPvge.mjs";
3
+ import { t as FetchError } from "../fetch-error-B6RaJ-eZ.mjs";
4
4
  import { fetch } from "./fetch.mjs";
5
5
  import { fetchStream } from "./fetch-stream.mjs";
6
6
  export { type AuthSession, type AuthState, type AuthUser, FetchError, FetchError as StreamError, auth, createAuthClient, fetch, fetchStream };
@@ -1,6 +1,6 @@
1
- import { n as AuthState, r as AuthUser, t as AuthSession } from "../auth-nEUVHuFI.mjs";
1
+ import { n as AuthState, r as AuthUser, t as AuthSession } from "../auth-Dz2CCn4T.mjs";
2
2
  import { auth, createAuthClient } from "./auth-client.mjs";
3
- import { t as FetchError } from "../fetch-error-BQMdPvge.mjs";
3
+ import { t as FetchError } from "../fetch-error-B6RaJ-eZ.mjs";
4
4
  import { fetch } from "./fetch.mjs";
5
5
  import { fetchStream } from "./fetch-stream.mjs";
6
6
  export { type AuthSession, type AuthState, type AuthUser, FetchError, FetchError as StreamError, auth, createAuthClient, fetch, fetchStream };
@@ -1,2 +1,2 @@
1
- import { a as getSecretOverride, c as oneOf, i as email, l as string, n as SECRET_OVERRIDE_SYMBOL, o as json, r as boolean, s as number, t as EnvSchema, u as url } from "../env-helpers-ZatKyjen.mjs";
1
+ import { a as getSecretOverride, c as oneOf, i as email, l as string, n as SECRET_OVERRIDE_SYMBOL, o as json, r as boolean, s as number, t as EnvSchema, u as url } from "../env-helpers-B_ks681T.mjs";
2
2
  export { EnvSchema, SECRET_OVERRIDE_SYMBOL, boolean, email, getSecretOverride, json, number, oneOf, string, url };
@@ -1,4 +1,4 @@
1
- import { c as oneOf, i as email, l as string, o as json, r as boolean, s as number, t as EnvSchema, u as url } from "../env-helpers-ZatKyjen.mjs";
1
+ import { c as oneOf, i as email, l as string, o as json, r as boolean, s as number, t as EnvSchema, u as url } from "../env-helpers-B_ks681T.mjs";
2
2
 
3
3
  //#region src/runtime/env-public-client.d.ts
4
4
  declare const env: Record<string, unknown>;
@@ -1,6 +1,6 @@
1
1
  /// <reference types="@cloudflare/workers-types" />
2
- import { t as StandardSchemaV1 } from "../standard-schema-BCBv-QaP.mjs";
3
- import { c as oneOf, i as email, l as string, o as json, r as boolean, s as number, t as EnvSchema, u as url } from "../env-helpers-ZatKyjen.mjs";
2
+ import { t as StandardSchemaV1 } from "../standard-schema-Cy0lfeWv.mjs";
3
+ import { c as oneOf, i as email, l as string, o as json, r as boolean, s as number, t as EnvSchema, u as url } from "../env-helpers-B_ks681T.mjs";
4
4
  import * as _$_cloudflare_sandbox0 from "@cloudflare/sandbox";
5
5
 
6
6
  //#region src/runtime/env-public.d.ts
@@ -1,4 +1,4 @@
1
- import { t as FetchError } from "../fetch-error-BQMdPvge.mjs";
1
+ import { t as FetchError } from "../fetch-error-B6RaJ-eZ.mjs";
2
2
  import { RouteMap } from "void/routes";
3
3
 
4
4
  //#region src/runtime/fetch-stream.d.ts
@@ -1,4 +1,4 @@
1
- import { t as FetchError } from "../fetch-error-BQMdPvge.mjs";
1
+ import { t as FetchError } from "../fetch-error-B6RaJ-eZ.mjs";
2
2
  import { RouteMap } from "void/routes";
3
3
 
4
4
  //#region src/runtime/fetch.d.ts
@@ -1,3 +1,3 @@
1
1
  /// <reference types="@cloudflare/workers-types" />
2
- import { C as defer, E as ValidatorSlots, S as InferProps, T as HandlerInput, _ as defineQueue, a as CloudEnv, b as Deferred, c as QueueRetryOptions, d as TypedQueueHandler, f as VoidAssetRewriteError, g as defineMiddleware, h as defineHead, i as CloudContextVariables, l as RenderAssetTags, m as defineHandler, n as CloudBindings, o as QueueBatch, p as basicAuth, r as CloudContext, s as QueueMessage, t as BasicAuthOptions, u as TypedHandler, v as defineRender, w as ValidationError, y as defineScheduled } from "../handler-DczZlaXR.mjs";
2
+ import { C as defer, E as ValidatorSlots, S as InferProps, T as HandlerInput, _ as defineQueue, a as CloudEnv, b as Deferred, c as QueueRetryOptions, d as TypedQueueHandler, f as VoidAssetRewriteError, g as defineMiddleware, h as defineHead, i as CloudContextVariables, l as RenderAssetTags, m as defineHandler, n as CloudBindings, o as QueueBatch, p as basicAuth, r as CloudContext, s as QueueMessage, t as BasicAuthOptions, u as TypedHandler, v as defineRender, w as ValidationError, y as defineScheduled } from "../handler-B7rCOy21.mjs";
3
3
  export { BasicAuthOptions, CloudBindings, CloudContext, CloudContextVariables, CloudEnv, Deferred, HandlerInput, InferProps, QueueBatch, QueueMessage, QueueRetryOptions, RenderAssetTags, TypedHandler, TypedQueueHandler, ValidationError, ValidatorSlots, VoidAssetRewriteError, basicAuth, defer, defineHandler, defineHead, defineMiddleware, defineQueue, defineRender, defineScheduled };
@@ -1,6 +1,6 @@
1
1
  /// <reference types="@cloudflare/workers-types" />
2
- import { r as AuthUser } from "../auth-nEUVHuFI.mjs";
3
- import { a as CloudEnv, r as CloudContext } from "../handler-DczZlaXR.mjs";
2
+ import { r as AuthUser } from "../auth-Dz2CCn4T.mjs";
3
+ import { a as CloudEnv, r as CloudContext } from "../handler-B7rCOy21.mjs";
4
4
 
5
5
  //#region src/runtime/live.d.ts
6
6
  type MaybePromise<T> = T | Promise<T>;
@@ -1,2 +1,2 @@
1
- import { D as runValidation, E as ValidatorSlots, T as HandlerInput } from "../handler-DczZlaXR.mjs";
1
+ import { D as runValidation, E as ValidatorSlots, T as HandlerInput } from "../handler-B7rCOy21.mjs";
2
2
  export { HandlerInput, ValidatorSlots, runValidation };
@@ -1,5 +1,5 @@
1
- import { n as AuthState } from "../auth-nEUVHuFI.mjs";
2
- import { i as VoidAuthRuntimeOptions, n as VoidAuthEnv } from "../better-auth-shared-a7H3wk9J.mjs";
1
+ import { n as AuthState } from "../auth-Dz2CCn4T.mjs";
2
+ import { i as VoidAuthRuntimeOptions, n as VoidAuthEnv } from "../better-auth-shared-jkksALri.mjs";
3
3
  import { AnyWebSocketDefinition } from "./ws.mjs";
4
4
 
5
5
  //#region src/runtime/ws-server.d.ts
@@ -1,6 +1,6 @@
1
- import { r as AuthUser } from "../auth-nEUVHuFI.mjs";
2
- import { t as StandardSchemaV1 } from "../standard-schema-BCBv-QaP.mjs";
3
- import { a as CloudEnv } from "../handler-DczZlaXR.mjs";
1
+ import { r as AuthUser } from "../auth-Dz2CCn4T.mjs";
2
+ import { t as StandardSchemaV1 } from "../standard-schema-Cy0lfeWv.mjs";
3
+ import { a as CloudEnv } from "../handler-B7rCOy21.mjs";
4
4
  import { WebSocketRouteMap } from "void/routes";
5
5
 
6
6
  //#region src/runtime/ws.d.ts
@@ -1,5 +1,5 @@
1
1
  import { n as cliTitle } from "./output-DeiS4oEX.mjs";
2
- import { d as getToken, n as PlatformClient } from "./client-D4awzTnj.mjs";
2
+ import { f as getToken, n as PlatformClient } from "./client-YIzxv2ZO.mjs";
3
3
  import { _ as me, c as R, g as ge, n as Ce, u as Se, v as ue, x as q, y as ye } from "./dist-abzUneor.mjs";
4
4
  import { r as readProjectConfig } from "./project-CH9pdo16.mjs";
5
5
  import { r as resolveProjectBySlug, t as getRequestedProjectSlug } from "./resolve-project-D4O1_fZz.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "void",
3
- "version": "0.10.1",
3
+ "version": "0.10.3",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/voidzero-dev/void.git",
@@ -353,7 +353,7 @@
353
353
  "valibot": ">=1.0.0-beta.7",
354
354
  "vite": "^8.0.0",
355
355
  "zod": "^3.25.0 || ^4.0.0",
356
- "@void/md": "0.10.1"
356
+ "@void/md": "0.10.3"
357
357
  },
358
358
  "peerDependenciesMeta": {
359
359
  "@void/md": {
@@ -66,7 +66,7 @@ If your CI pipeline runs typechecking or other static analysis before deploy, ru
66
66
 
67
67
  You can deploy from a GitHub repo on every push to `main`. Running `void init --github` generates `.github/workflows/void-deploy.yml` in your project.
68
68
 
69
- The workflow authenticates with [GitHub OIDC](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect) — there is **no long-lived `VOID_TOKEN` secret to store or rotate**. The job requests a short-lived OIDC token from GitHub, exchanges it at `POST $VOID_API_URL/auth/github-oidc` for a short-lived project-scoped deploy token (about 15 minutes on the free tier; longer on higher plans, capped at ~60 minutes), then runs `void deploy --project <slug>`:
69
+ The workflow authenticates with [GitHub OIDC](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect) — there is **no long-lived `VOID_TOKEN` secret to store or rotate**. `void deploy` detects GitHub Actions and does the exchange itself: it requests a short-lived OIDC token from GitHub (audience `void`), exchanges it at `POST $VOID_API_URL/auth/github-oidc` for a short-lived project-scoped deploy token (about 15 minutes on the free tier; longer on higher plans, capped at ~60 minutes), and deploys — so the workflow is a single `void deploy` step. `permissions: id-token: write` is still required: it is what lets the job (and the CLI) mint the OIDC token.
70
70
 
71
71
  ```yaml
72
72
  name: Deploy to Void
@@ -98,17 +98,6 @@ jobs:
98
98
  node-version: lts/*
99
99
  cache: npm
100
100
  - run: npm ci
101
- - name: Exchange GitHub OIDC token for a Void deploy token
102
- run: |
103
- OIDC_TOKEN="$(curl -sf \
104
- -H "Authorization: Bearer $ACTIONS_ID_TOKEN_REQUEST_TOKEN" \
105
- "$ACTIONS_ID_TOKEN_REQUEST_URL&audience=void" | jq -r '.value')"
106
- VOID_TOKEN="$(curl -sf \
107
- -H 'Content-Type: application/json' \
108
- -d "$(jq -n --arg t "$OIDC_TOKEN" --arg p "$VOID_PROJECT" '{oidcToken: $t, project: $p}')" \
109
- "$VOID_API_URL/auth/github-oidc" | jq -r '.token')"
110
- echo "::add-mask::$VOID_TOKEN"
111
- echo "VOID_TOKEN=$VOID_TOKEN" >> "$GITHUB_ENV"
112
101
  - name: Deploy
113
102
  run: npx void deploy --project "$VOID_PROJECT"
114
103
  ```
@@ -437,6 +437,18 @@ Import code from external files:
437
437
 
438
438
  Shortcodes convert to unicode: `:tada:` becomes :tada:, `:rocket:` becomes :rocket:.
439
439
 
440
+ ### Footnotes
441
+
442
+ Reference a footnote inline and define it anywhere in the document:
443
+
444
+ ```md
445
+ Here is a statement with a footnote.[^1]
446
+
447
+ [^1]: And here is the footnote body.
448
+ ```
449
+
450
+ The references and definitions render into a linked footnote list at the end of the content.
451
+
440
452
  ### Attributes
441
453
 
442
454
  Add classes, IDs, or attributes to any element:
@@ -115,6 +115,7 @@ Full VitePress-parity feature set:
115
115
  - **Custom containers** — `:::tip`, `:::info`, `:::warning`, `:::danger`, `:::details`
116
116
  - **GitHub alerts** — `> [!NOTE]`, `> [!TIP]`, `> [!WARNING]`, `> [!IMPORTANT]`, `> [!CAUTION]`
117
117
  - **Emoji** — `:emoji_name:` shortcodes
118
+ - **Footnotes** — `text[^1]` refs with matching `[^1]: definition` blocks
118
119
  - **Attributes** — `{.class #id}` on elements via `markdown-it-attrs`
119
120
  - **Anchor links** — auto-generated heading anchors
120
121
  - **Table of contents** — `[[toc]]` directive
@@ -143,7 +144,7 @@ import '@void/md/theme.css'; // or theme-content.css
143
144
 
144
145
  ## Tests
145
146
 
146
- - `test/unit/compile.test.ts` — compilation pipeline: basic, frontmatter, title extraction, headings, Shiki, emoji, anchors
147
+ - `test/unit/compile.test.ts` — compilation pipeline: basic, frontmatter, title extraction, headings, Shiki, emoji, footnotes, anchors
147
148
  - `test/unit/extract-script.test.ts` — script extraction: island imports, client code, edge cases
148
149
  - `test/unit/plugins.test.ts` — markdown-it plugins: containers, GitHub alerts, links, images, line numbers, emoji, TOC
149
150
  - `test/unit/emit-vue.test.ts` — Vue component emission with and without islands
@@ -0,0 +1,135 @@
1
+ # markdown-it-footnote
2
+
3
+ [![CI](https://github.com/markdown-it/markdown-it-footnote/actions/workflows/ci.yml/badge.svg)](https://github.com/markdown-it/markdown-it-footnote/actions/workflows/ci.yml)
4
+ [![NPM version](https://img.shields.io/npm/v/markdown-it-footnote.svg?style=flat)](https://www.npmjs.org/package/markdown-it-footnote)
5
+ [![Coverage Status](https://img.shields.io/coveralls/markdown-it/markdown-it-footnote/master.svg?style=flat)](https://coveralls.io/r/markdown-it/markdown-it-footnote?branch=master)
6
+
7
+ > Footnotes plugin for [markdown-it](https://github.com/markdown-it/markdown-it) markdown parser.
8
+
9
+ __v2.+ requires `markdown-it` v5.+, see changelog.__
10
+
11
+ Markup is based on [pandoc](http://johnmacfarlane.net/pandoc/README.html#footnotes) definition.
12
+
13
+ __Normal footnote__:
14
+
15
+ ```
16
+ Here is a footnote reference,[^1] and another.[^longnote]
17
+
18
+ [^1]: Here is the footnote.
19
+
20
+ [^longnote]: Here's one with multiple blocks.
21
+
22
+ Subsequent paragraphs are indented to show that they
23
+ belong to the previous footnote.
24
+ ```
25
+
26
+ html:
27
+
28
+ ```html
29
+ <p>Here is a footnote reference,<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup> and another.<sup class="footnote-ref"><a href="#fn2" id="fnref2">[2]</a></sup></p>
30
+ <p>This paragraph won’t be part of the note, because it
31
+ isn’t indented.</p>
32
+ <hr class="footnotes-sep">
33
+ <section class="footnotes">
34
+ <ol class="footnotes-list">
35
+ <li id="fn1" class="footnote-item"><p>Here is the footnote. <a href="#fnref1" class="footnote-backref">↩</a></p>
36
+ </li>
37
+ <li id="fn2" class="footnote-item"><p>Here’s one with multiple blocks.</p>
38
+ <p>Subsequent paragraphs are indented to show that they
39
+ belong to the previous footnote. <a href="#fnref2" class="footnote-backref">↩</a></p>
40
+ </li>
41
+ </ol>
42
+ </section>
43
+ ```
44
+
45
+ __Inline footnote__:
46
+
47
+ ```
48
+ Here is an inline note.^[Inlines notes are easier to write, since
49
+ you don't have to pick an identifier and move down to type the
50
+ note.]
51
+ ```
52
+
53
+ html:
54
+
55
+ ```html
56
+ <p>Here is an inline note.<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup></p>
57
+ <hr class="footnotes-sep">
58
+ <section class="footnotes">
59
+ <ol class="footnotes-list">
60
+ <li id="fn1" class="footnote-item"><p>Inlines notes are easier to write, since
61
+ you don’t have to pick an identifier and move down to type the
62
+ note. <a href="#fnref1" class="footnote-backref">↩</a></p>
63
+ </li>
64
+ </ol>
65
+ </section>
66
+ ```
67
+
68
+
69
+ ## Install
70
+
71
+ node.js, browser:
72
+
73
+ ```bash
74
+ npm install markdown-it-footnote --save
75
+ bower install markdown-it-footnote --save
76
+ ```
77
+
78
+ ## Use
79
+
80
+ ```js
81
+ var md = require('markdown-it')()
82
+ .use(require('markdown-it-footnote'));
83
+
84
+ md.render(/*...*/) // See examples above
85
+ ```
86
+
87
+ _Differences in browser._ If you load script directly into the page, without
88
+ package system, module will add itself globally as `window.markdownitFootnote`.
89
+
90
+
91
+ ### Customize
92
+
93
+ If you want to customize the output, you'll need to replace the template
94
+ functions. To see which templates exist and their default implementations,
95
+ look in [`index.js`](index.js). The API of these template functions is out of
96
+ scope for this plugin's documentation; you can read more about it [in the
97
+ markdown-it
98
+ documentation](https://github.com/markdown-it/markdown-it/blob/master/docs/architecture.md#renderer).
99
+
100
+ To demonstrate with an example, here is how you might replace the `<hr>` that
101
+ this plugin emits by default with an `<h4>` emitted by your own template
102
+ function override:
103
+
104
+ ```js
105
+ const md = require('markdown-it')().use(require('markdown-it-footnote'));
106
+
107
+ md.renderer.rules.footnote_block_open = () => (
108
+ '<h4 class="mt-3">Footnotes</h4>\n' +
109
+ '<section class="footnotes">\n' +
110
+ '<ol class="footnotes-list">\n'
111
+ );
112
+ ```
113
+
114
+ Here's another example that customizes footnotes for epub books:
115
+
116
+ ```js
117
+ const backrefLabel = 'back to text';
118
+
119
+ const epubRules = {
120
+ footnote_ref: ['<a', '<a epub:type="noteref"'],
121
+ footnote_open: ['<li', '<li epub:type="footnote"'],
122
+ footnote_anchor: ['<a', `<a aria-label="${backrefLabel}"`],
123
+ }
124
+
125
+ Object.keys(epubRules).map(rule => {
126
+ let defaultRender = md.renderer.rules[rule];
127
+ md.renderer.rules[rule] = (tokens, idx, options, env, self) => {
128
+ return defaultRender(tokens, idx, options, env, self).replace(...epubRules[rule]);
129
+ }
130
+ })
131
+ ```
132
+
133
+ ## License
134
+
135
+ [MIT](https://github.com/markdown-it/markdown-it-footnote/blob/master/LICENSE)
@@ -35,6 +35,7 @@ Use this page as a command reference. If you are setting up a project for the fi
35
35
  | `void project rollback` | Roll back to a previous deployment |
36
36
  | `void project cancel` | Cancel an active deployment |
37
37
  | `void project purge-cache` | Purge all cached pages |
38
+ | `void build logs` | Stream, tail, or download build logs |
38
39
  | `void mcp` | Start the Void MCP server |
39
40
  | `void init` | Setup wizard for new or existing projects |
40
41
 
@@ -86,7 +87,7 @@ After that, the full interactive flow walks through:
86
87
  4. **Skills:** links Void skills using the same detected or selected agent context.
87
88
  5. **MCP config:** writes MCP server config using that same agent context.
88
89
  6. **Demo code:** for existing non-Pages projects, optionally scaffolds a `db/migrations/` directory plus an API route and typed fetch example.
89
- 7. **GitHub Actions:** optionally creates `.github/workflows/void-deploy.yml`. The workflow deploys on pushes to `main` and authenticates via [GitHub OIDC](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect) — no long-lived `VOID_TOKEN` secret is stored in the repo. The job requests an OIDC token (audience `void`), exchanges it at `POST $VOID_API_URL/auth/github-oidc` for a short-lived project-scoped deploy token, then runs `void deploy --project <slug>` with the right package manager. The project slug is baked in from your linked project (`.void/project.json`) when known; otherwise the workflow reads a `VOID_PROJECT` repository variable.
90
+ 7. **GitHub Actions:** optionally creates `.github/workflows/void-deploy.yml`. The workflow deploys on pushes to `main` and authenticates via [GitHub OIDC](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect) — no long-lived `VOID_TOKEN` secret is stored in the repo. The workflow is a single `void deploy` step: when it runs in GitHub Actions, `void deploy` mints an OIDC token (audience `void`), exchanges it at `POST $VOID_API_URL/auth/github-oidc` for a short-lived project-scoped deploy token, and deploys. `permissions: id-token: write` is retained so the CLI can mint that token. The project slug is baked in from your linked project (`.void/project.json`) when known; otherwise the workflow reads a `VOID_PROJECT` repository variable.
90
91
  8. **`env.ts` scaffold:** if the project has no `env.ts` but has `.env` / `.env.example` / `.env.local` / `.env.development*` files on disk, generates an `env.ts` pre-populated with their keys. Values get conservative type inference (`boolean`/`url`/`number`/`string`) — the file carries a banner nudging you to tighten anything the heuristic got wrong.
91
92
  9. **Project setup:** optionally logs you in, lets you select or create a project, and writes `.void/project.json` so your first deploy can just be `void deploy`.
92
93
 
@@ -606,13 +607,16 @@ Connect a GitHub repository to a Void project for automatic deploys. On every pu
606
607
 
607
608
  **Options**
608
609
 
609
- | Flag | Description |
610
- | --------------------- | ------------------------------------------------------------------------------- |
611
- | `--project <name>` | Project name (alias for the positional argument) |
612
- | `--installation <id>` | GitHub App installation ID (required when you have multiple installations) |
613
- | `--repo <owner/repo>` | Repository full name — required unless the installation grants exactly one repo |
614
- | `--branch <name>` | Branch to deploy from — **required in non-interactive mode** |
615
- | `--executor <type>` | Build executor: `container` (default) or `github_actions` |
610
+ | Flag | Description |
611
+ | --------------------- | --------------------------------------------------------------------------------- |
612
+ | `--project <name>` | Project name (alias for the positional argument) |
613
+ | `--installation <id>` | GitHub App installation ID (required when you have multiple installations) |
614
+ | `--repo <owner/repo>` | Repository full name — required unless the installation grants exactly one repo |
615
+ | `--branch <name>` | Branch to deploy from — **required in non-interactive mode** |
616
+ | `--executor <type>` | Build executor: `container` (default) or `github_actions` |
617
+ | `--workflow <path>` | Authorized deploy workflow file — defaults to `.github/workflows/void-deploy.yml` |
618
+
619
+ The `--workflow` path is the workflow file the GitHub OIDC exchange authorizes to mint this project's deploy token. It defaults to the scaffolded `.github/workflows/void-deploy.yml`; set it only if your deploy step lives in a different workflow file (it must be under `.github/workflows/` and end in `.yml`/`.yaml`). Because the exchange is secretless, **only this one workflow** can mint a deploy token — any other workflow in the repo (including an unsafe `pull_request_target`) is rejected. Pointing it at a broad, multi-purpose workflow widens that trust, so prefer a dedicated file.
616
620
 
617
621
  **Non-interactive use (CI)**
618
622
 
@@ -627,6 +631,65 @@ void github connect my-app \
627
631
 
628
632
  **Project resolution** follows the same order as deploy: positional / `--project`, `VOID_PROJECT`, linked project (`.void/project.json`).
629
633
 
634
+ ### `void github update`
635
+
636
+ ```
637
+ void github update [project] [options]
638
+ ```
639
+
640
+ Update an existing connection's deploy **branch**, **build executor**, and/or authorized **workflow file**. Use this to change settings on a project that is already connected — for example, flipping the executor from `container` to `github_actions` for a monorepo whose Void app lives in a subdirectory, moving the deploy branch, or pointing the OIDC trust at a different workflow file. The project must already be connected (run `void github connect` first); the repository and installation are not changed.
641
+
642
+ **Options**
643
+
644
+ | Flag | Description |
645
+ | ------------------- | ---------------------------------------------------------------- |
646
+ | `--project <name>` | Project name (alias for the positional argument) |
647
+ | `--branch <name>` | New branch to deploy from |
648
+ | `--executor <type>` | New build executor: `container` or `github_actions` |
649
+ | `--workflow <path>` | New authorized deploy workflow file (under `.github/workflows/`) |
650
+
651
+ Interactively (TTY), `void github update` shows the current branch and executor and prompts for new values, defaulting each to the current setting. `--workflow` is flag-only — it is never prompted for; pass it explicitly to change the authorized workflow file. When stdin is not a TTY, it never prompts: pass at least one of `--branch` / `--executor` / `--workflow`, or it fails closed. If nothing actually changes, the command reports "no changes" and does not call the API.
652
+
653
+ ```
654
+ void github update my-app --executor github_actions
655
+ ```
656
+
657
+ **Project resolution** follows the same order as deploy: positional / `--project`, `VOID_PROJECT`, linked project (`.void/project.json`).
658
+
659
+ ## Build
660
+
661
+ Inspect Deploy-on-GitHub builds.
662
+
663
+ ### `void build logs`
664
+
665
+ ```
666
+ void build logs [build] [--follow] [--output <file>] [--project <slug>]
667
+ ```
668
+
669
+ Stream, tail, or download the build logs for a **container** build. With no
670
+ `[build]` argument, targets the project's most recent build.
671
+
672
+ | Flag | Purpose | Default |
673
+ | ------------------------ | ----------------------------------------------------------------- | ------- |
674
+ | `--follow`, `-f` | Live-tail: poll until the build reaches a terminal status. | off |
675
+ | `--output <file>`, `-o` | Write logs to a file instead of stdout (appends while following). | stdout |
676
+ | `--project <slug>`, `-p` | Target project. | linked |
677
+
678
+ **Project resolution** follows the same order as deploy: positional / `--project`,
679
+ `VOID_PROJECT`, linked project (`.void/project.json`).
680
+
681
+ Builds run on **GitHub Actions** keep their logs on GitHub — the command prints
682
+ the Actions run URL instead of streaming. Only the last 10,000 log lines of a
683
+ container build are retained.
684
+
685
+ Examples:
686
+
687
+ ```
688
+ void build logs # print the latest build's logs
689
+ void build logs -f # follow the latest build until it finishes
690
+ void build logs bld_123 -o build.log # download a specific build's logs
691
+ ```
692
+
630
693
  ## Custom Domains
631
694
 
632
695
  ### `void domain add`