create-fate 1.5.2 → 1.6.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 (138) hide show
  1. package/README.md +1 -2
  2. package/bin/create-fate.mjs +14 -50
  3. package/package.json +1 -1
  4. package/templates/fate/README.md +1 -2
  5. package/templates/fate/_shared/vue-app/package.json +4 -3
  6. package/templates/fate/_shared/vue-app/vite.config.ts +18 -11
  7. package/templates/fate/drizzle/client/package.json +6 -6
  8. package/templates/fate/graphql/client/package.json +6 -6
  9. package/templates/fate/graphql/server/.gitignore +5 -0
  10. package/templates/fate/graphql/server/node_modules/.bin/esbuild +22 -0
  11. package/templates/fate/graphql/server/node_modules/.bin/eslint +22 -0
  12. package/templates/fate/graphql/server/node_modules/.bin/fate +22 -0
  13. package/templates/fate/graphql/server/node_modules/.bin/intent +22 -0
  14. package/templates/fate/graphql/server/node_modules/.bin/jiti +22 -0
  15. package/templates/fate/graphql/server/node_modules/.bin/nft +22 -0
  16. package/templates/fate/graphql/server/node_modules/.bin/nodemon +22 -0
  17. package/templates/fate/graphql/server/node_modules/.bin/oxfmt +22 -0
  18. package/templates/fate/graphql/server/node_modules/.bin/oxlint +22 -0
  19. package/templates/fate/graphql/server/node_modules/.bin/prisma +22 -0
  20. package/templates/fate/graphql/server/node_modules/.bin/prisma-json-types-generator +22 -0
  21. package/templates/fate/graphql/server/node_modules/.bin/prisma-pothos-types +22 -0
  22. package/templates/fate/graphql/server/node_modules/.bin/tsc +22 -0
  23. package/templates/fate/graphql/server/node_modules/.bin/tsgolint +22 -0
  24. package/templates/fate/graphql/server/node_modules/.bin/tsx +22 -0
  25. package/templates/fate/graphql/server/node_modules/.bin/vitest +22 -0
  26. package/templates/fate/graphql/server/node_modules/.bin/vp +22 -0
  27. package/templates/fate/graphql/server/node_modules/.bin/vpr +22 -0
  28. package/templates/fate/graphql/server/node_modules/.bin/yaml +22 -0
  29. package/templates/fate/graphql-client/README.md +11 -1
  30. package/templates/fate/graphql-client/env.ts +6 -0
  31. package/templates/fate/graphql-client/package.json +6 -6
  32. package/templates/fate/http/client/package.json +6 -6
  33. package/templates/fate/prisma/client/package.json +6 -6
  34. package/templates/fate/void/README.md +12 -0
  35. package/templates/fate/void/db/migrations/20260918045815_legal_dragon_lord.sql +15 -0
  36. package/templates/fate/{cloudflare/server/db/migrations/meta/20260508073357_snapshot.json → void/db/migrations/meta/20260918045815_snapshot.json} +174 -124
  37. package/templates/fate/void/db/migrations/meta/_journal.json +7 -0
  38. package/templates/fate/void/package.json +6 -7
  39. package/templates/fate/cloudflare/.github/workflows/push.yml +0 -27
  40. package/templates/fate/cloudflare/.vite-hooks/pre-commit +0 -1
  41. package/templates/fate/cloudflare/.vscode/extensions.json +0 -12
  42. package/templates/fate/cloudflare/.vscode/settings.json +0 -25
  43. package/templates/fate/cloudflare/AGENTS.md +0 -55
  44. package/templates/fate/cloudflare/README.md +0 -137
  45. package/templates/fate/cloudflare/_gitignore +0 -20
  46. package/templates/fate/cloudflare/client/node_modules/.bin/browserslist +0 -22
  47. package/templates/fate/cloudflare/client/node_modules/.bin/cf-wrangler +0 -22
  48. package/templates/fate/cloudflare/client/node_modules/.bin/drizzle-kit +0 -22
  49. package/templates/fate/cloudflare/client/node_modules/.bin/esbuild +0 -22
  50. package/templates/fate/cloudflare/client/node_modules/.bin/fate +0 -22
  51. package/templates/fate/cloudflare/client/node_modules/.bin/fbtee +0 -22
  52. package/templates/fate/cloudflare/client/node_modules/.bin/intent +0 -22
  53. package/templates/fate/cloudflare/client/node_modules/.bin/jiti +0 -22
  54. package/templates/fate/cloudflare/client/node_modules/.bin/oxfmt +0 -22
  55. package/templates/fate/cloudflare/client/node_modules/.bin/oxlint +0 -22
  56. package/templates/fate/cloudflare/client/node_modules/.bin/rolldown +0 -22
  57. package/templates/fate/cloudflare/client/node_modules/.bin/tsc +0 -22
  58. package/templates/fate/cloudflare/client/node_modules/.bin/tsx +0 -22
  59. package/templates/fate/cloudflare/client/node_modules/.bin/vitest +0 -22
  60. package/templates/fate/cloudflare/client/node_modules/.bin/void +0 -22
  61. package/templates/fate/cloudflare/client/node_modules/.bin/vp +0 -22
  62. package/templates/fate/cloudflare/client/node_modules/.bin/vpr +0 -22
  63. package/templates/fate/cloudflare/client/node_modules/.bin/workerd +0 -22
  64. package/templates/fate/cloudflare/client/node_modules/.bin/wrangler +0 -22
  65. package/templates/fate/cloudflare/client/node_modules/.bin/wrangler2 +0 -22
  66. package/templates/fate/cloudflare/client/package.json +0 -62
  67. package/templates/fate/cloudflare/client/pages/index.tsx +0 -96
  68. package/templates/fate/cloudflare/client/pages/layout.tsx +0 -68
  69. package/templates/fate/cloudflare/client/pages/login.tsx +0 -107
  70. package/templates/fate/cloudflare/client/pages/post/[id].tsx +0 -22
  71. package/templates/fate/cloudflare/client/pages/search.tsx +0 -99
  72. package/templates/fate/cloudflare/client/public/icon.svg +0 -1
  73. package/templates/fate/cloudflare/client/src/App.css +0 -153
  74. package/templates/fate/cloudflare/client/src/lib/AvailableLanguages.tsx +0 -5
  75. package/templates/fate/cloudflare/client/src/lib/LocaleContext.tsx +0 -61
  76. package/templates/fate/cloudflare/client/src/lib/cx.tsx +0 -6
  77. package/templates/fate/cloudflare/client/src/lib/env.tsx +0 -5
  78. package/templates/fate/cloudflare/client/src/ui/Badge.tsx +0 -31
  79. package/templates/fate/cloudflare/client/src/ui/Button.tsx +0 -108
  80. package/templates/fate/cloudflare/client/src/ui/Card.tsx +0 -32
  81. package/templates/fate/cloudflare/client/src/ui/CommentCard.tsx +0 -75
  82. package/templates/fate/cloudflare/client/src/ui/Error.tsx +0 -19
  83. package/templates/fate/cloudflare/client/src/ui/H2.tsx +0 -15
  84. package/templates/fate/cloudflare/client/src/ui/H3.tsx +0 -20
  85. package/templates/fate/cloudflare/client/src/ui/Header.tsx +0 -98
  86. package/templates/fate/cloudflare/client/src/ui/Input.tsx +0 -17
  87. package/templates/fate/cloudflare/client/src/ui/Link.tsx +0 -11
  88. package/templates/fate/cloudflare/client/src/ui/LocaleSwitcher.tsx +0 -34
  89. package/templates/fate/cloudflare/client/src/ui/PostCard.tsx +0 -303
  90. package/templates/fate/cloudflare/client/src/ui/Section.tsx +0 -23
  91. package/templates/fate/cloudflare/client/src/ui/UserCard.tsx +0 -131
  92. package/templates/fate/cloudflare/client/src/user/AuthClient.tsx +0 -6
  93. package/templates/fate/cloudflare/client/start.mjs +0 -11
  94. package/templates/fate/cloudflare/client/translations/de-DE.json +0 -632
  95. package/templates/fate/cloudflare/client/translations/ja-JP.json +0 -632
  96. package/templates/fate/cloudflare/client/vite.config.ts +0 -41
  97. package/templates/fate/cloudflare/client/void.json +0 -29
  98. package/templates/fate/cloudflare/package.json +0 -42
  99. package/templates/fate/cloudflare/pnpm-workspace.yaml +0 -41
  100. package/templates/fate/cloudflare/server/.env.example +0 -1
  101. package/templates/fate/cloudflare/server/db/db.ts +0 -30
  102. package/templates/fate/cloudflare/server/db/migrations/20260508073357_initial_schema.sql +0 -134
  103. package/templates/fate/cloudflare/server/db/migrations/20260508120500_seed_cloudflare_demo.sql +0 -170
  104. package/templates/fate/cloudflare/server/db/migrations/meta/_journal.json +0 -20
  105. package/templates/fate/cloudflare/server/db/queries.ts +0 -211
  106. package/templates/fate/cloudflare/server/db/schema.ts +0 -331
  107. package/templates/fate/cloudflare/server/node_modules/.bin/cf-wrangler +0 -22
  108. package/templates/fate/cloudflare/server/node_modules/.bin/drizzle-kit +0 -22
  109. package/templates/fate/cloudflare/server/node_modules/.bin/esbuild +0 -22
  110. package/templates/fate/cloudflare/server/node_modules/.bin/fate +0 -22
  111. package/templates/fate/cloudflare/server/node_modules/.bin/intent +0 -22
  112. package/templates/fate/cloudflare/server/node_modules/.bin/jiti +0 -22
  113. package/templates/fate/cloudflare/server/node_modules/.bin/oxfmt +0 -22
  114. package/templates/fate/cloudflare/server/node_modules/.bin/oxlint +0 -22
  115. package/templates/fate/cloudflare/server/node_modules/.bin/tsc +0 -22
  116. package/templates/fate/cloudflare/server/node_modules/.bin/tsx +0 -22
  117. package/templates/fate/cloudflare/server/node_modules/.bin/vitest +0 -22
  118. package/templates/fate/cloudflare/server/node_modules/.bin/vp +0 -22
  119. package/templates/fate/cloudflare/server/node_modules/.bin/vpr +0 -22
  120. package/templates/fate/cloudflare/server/node_modules/.bin/workerd +0 -22
  121. package/templates/fate/cloudflare/server/node_modules/.bin/wrangler +0 -22
  122. package/templates/fate/cloudflare/server/node_modules/.bin/wrangler2 +0 -22
  123. package/templates/fate/cloudflare/server/package.json +0 -34
  124. package/templates/fate/cloudflare/server/src/fate/commentPermissions.ts +0 -17
  125. package/templates/fate/cloudflare/server/src/fate/context.ts +0 -15
  126. package/templates/fate/cloudflare/server/src/fate/live.ts +0 -7
  127. package/templates/fate/cloudflare/server/src/fate/server.ts +0 -414
  128. package/templates/fate/cloudflare/server/src/fate/views.ts +0 -164
  129. package/templates/fate/cloudflare/server/src/index.ts +0 -80
  130. package/templates/fate/cloudflare/server/src/lib/auth.ts +0 -64
  131. package/templates/fate/cloudflare/server/src/lib/origins.ts +0 -17
  132. package/templates/fate/cloudflare/server/src/router.ts +0 -2
  133. package/templates/fate/cloudflare/server/src/user/SessionUser.tsx +0 -17
  134. package/templates/fate/cloudflare/server/tsconfig.json +0 -10
  135. package/templates/fate/cloudflare/server/wrangler.jsonc +0 -29
  136. package/templates/fate/cloudflare/tsconfig.json +0 -24
  137. package/templates/fate/cloudflare/vite.config.ts +0 -75
  138. package/templates/fate/graphql-client/.env.example +0 -3
@@ -0,0 +1,22 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/@pothos+plugin-prisma@4.15.0_@pothos+core@4.13.1_graphql@17.0.2__@prisma+client@7.10.0__233d97ab518cf9f22d3a9beed11eaaf2/node_modules/@pothos/plugin-prisma/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/@pothos+plugin-prisma@4.15.0_@pothos+core@4.13.1_graphql@17.0.2__@prisma+client@7.10.0__233d97ab518cf9f22d3a9beed11eaaf2/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/@pothos+plugin-prisma@4.15.0_@pothos+core@4.13.1_graphql@17.0.2__@prisma+client@7.10.0__233d97ab518cf9f22d3a9beed11eaaf2/node_modules/@pothos/plugin-prisma/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/@pothos+plugin-prisma@4.15.0_@pothos+core@4.13.1_graphql@17.0.2__@prisma+client@7.10.0__233d97ab518cf9f22d3a9beed11eaaf2/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../../../node_modules/.pnpm/@pothos+plugin-prisma@4.15.0_@pothos+core@4.13.1_graphql@17.0.2__@prisma+client@7.10.0__233d97ab518cf9f22d3a9beed11eaaf2/node_modules/@pothos/plugin-prisma/bin/generator.js" "$@"
19
+ else
20
+ exec node "$basedir/../../../node_modules/.pnpm/@pothos+plugin-prisma@4.15.0_@pothos+core@4.13.1_graphql@17.0.2__@prisma+client@7.10.0__233d97ab518cf9f22d3a9beed11eaaf2/node_modules/@pothos/plugin-prisma/bin/generator.js" "$@"
21
+ fi
22
+ # cmd-shim-target=/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/@pothos+plugin-prisma@4.15.0_@pothos+core@4.13.1_graphql@17.0.2__@prisma+client@7.10.0__233d97ab518cf9f22d3a9beed11eaaf2/node_modules/@pothos/plugin-prisma/bin/generator.js
@@ -0,0 +1,22 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/typescript@7.0.2/node_modules/typescript/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/typescript@7.0.2/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/typescript@7.0.2/node_modules/typescript/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/typescript@7.0.2/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../../../node_modules/.pnpm/typescript@7.0.2/node_modules/typescript/bin/tsc" "$@"
19
+ else
20
+ exec node "$basedir/../../../node_modules/.pnpm/typescript@7.0.2/node_modules/typescript/bin/tsc" "$@"
21
+ fi
22
+ # cmd-shim-target=/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/typescript@7.0.2/node_modules/typescript/bin/tsc
@@ -0,0 +1,22 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/oxlint-tsgolint@7.0.2001/node_modules/oxlint-tsgolint/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/oxlint-tsgolint@7.0.2001/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/oxlint-tsgolint@7.0.2001/node_modules/oxlint-tsgolint/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/oxlint-tsgolint@7.0.2001/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../../../node_modules/.pnpm/oxlint-tsgolint@7.0.2001/node_modules/oxlint-tsgolint/bin/tsgolint.js" "$@"
19
+ else
20
+ exec node "$basedir/../../../node_modules/.pnpm/oxlint-tsgolint@7.0.2001/node_modules/oxlint-tsgolint/bin/tsgolint.js" "$@"
21
+ fi
22
+ # cmd-shim-target=/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/oxlint-tsgolint@7.0.2001/node_modules/oxlint-tsgolint/bin/tsgolint.js
@@ -0,0 +1,22 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/tsx@4.23.12/node_modules/tsx/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/tsx@4.23.12/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/tsx@4.23.12/node_modules/tsx/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/tsx@4.23.12/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../../../node_modules/.pnpm/tsx@4.23.12/node_modules/tsx/dist/cli.mjs" "$@"
19
+ else
20
+ exec node "$basedir/../../../node_modules/.pnpm/tsx@4.23.12/node_modules/tsx/dist/cli.mjs" "$@"
21
+ fi
22
+ # cmd-shim-target=/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/tsx@4.23.12/node_modules/tsx/dist/cli.mjs
@@ -0,0 +1,22 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/vitest@4.1.11_@types+node@26.4.0_@vitest+browser-preview@4.1.11_@voidzero-dev+vite-plus_edd1a4add939afe258bf188a768a0327/node_modules/vitest/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/vitest@4.1.11_@types+node@26.4.0_@vitest+browser-preview@4.1.11_@voidzero-dev+vite-plus_edd1a4add939afe258bf188a768a0327/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/vitest@4.1.11_@types+node@26.4.0_@vitest+browser-preview@4.1.11_@voidzero-dev+vite-plus_edd1a4add939afe258bf188a768a0327/node_modules/vitest/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/vitest@4.1.11_@types+node@26.4.0_@vitest+browser-preview@4.1.11_@voidzero-dev+vite-plus_edd1a4add939afe258bf188a768a0327/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../../../node_modules/.pnpm/vitest@4.1.11_@types+node@26.4.0_@vitest+browser-preview@4.1.11_@voidzero-dev+vite-plus_edd1a4add939afe258bf188a768a0327/node_modules/vitest/vitest.mjs" "$@"
19
+ else
20
+ exec node "$basedir/../../../node_modules/.pnpm/vitest@4.1.11_@types+node@26.4.0_@vitest+browser-preview@4.1.11_@voidzero-dev+vite-plus_edd1a4add939afe258bf188a768a0327/node_modules/vitest/vitest.mjs" "$@"
21
+ fi
22
+ # cmd-shim-target=/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/vitest@4.1.11_@types+node@26.4.0_@vitest+browser-preview@4.1.11_@voidzero-dev+vite-plus_edd1a4add939afe258bf188a768a0327/node_modules/vitest/vitest.mjs
@@ -0,0 +1,22 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/vite-plus@0.3.0_@types+node@26.4.0_@voidzero-dev+vite-plus-core@0.3.0_@types+node@26.4._7fba0511d8df10da0ecb713ae55bd175/node_modules/vite-plus/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/vite-plus@0.3.0_@types+node@26.4.0_@voidzero-dev+vite-plus-core@0.3.0_@types+node@26.4._7fba0511d8df10da0ecb713ae55bd175/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/vite-plus@0.3.0_@types+node@26.4.0_@voidzero-dev+vite-plus-core@0.3.0_@types+node@26.4._7fba0511d8df10da0ecb713ae55bd175/node_modules/vite-plus/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/vite-plus@0.3.0_@types+node@26.4.0_@voidzero-dev+vite-plus-core@0.3.0_@types+node@26.4._7fba0511d8df10da0ecb713ae55bd175/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../../../node_modules/.pnpm/vite-plus@0.3.0_@types+node@26.4.0_@voidzero-dev+vite-plus-core@0.3.0_@types+node@26.4._7fba0511d8df10da0ecb713ae55bd175/node_modules/vite-plus/bin/vp" "$@"
19
+ else
20
+ exec node "$basedir/../../../node_modules/.pnpm/vite-plus@0.3.0_@types+node@26.4.0_@voidzero-dev+vite-plus-core@0.3.0_@types+node@26.4._7fba0511d8df10da0ecb713ae55bd175/node_modules/vite-plus/bin/vp" "$@"
21
+ fi
22
+ # cmd-shim-target=/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/vite-plus@0.3.0_@types+node@26.4.0_@voidzero-dev+vite-plus-core@0.3.0_@types+node@26.4._7fba0511d8df10da0ecb713ae55bd175/node_modules/vite-plus/bin/vp
@@ -0,0 +1,22 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/vite-plus@0.3.0_@types+node@26.4.0_@voidzero-dev+vite-plus-core@0.3.0_@types+node@26.4._7fba0511d8df10da0ecb713ae55bd175/node_modules/vite-plus/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/vite-plus@0.3.0_@types+node@26.4.0_@voidzero-dev+vite-plus-core@0.3.0_@types+node@26.4._7fba0511d8df10da0ecb713ae55bd175/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/vite-plus@0.3.0_@types+node@26.4.0_@voidzero-dev+vite-plus-core@0.3.0_@types+node@26.4._7fba0511d8df10da0ecb713ae55bd175/node_modules/vite-plus/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/vite-plus@0.3.0_@types+node@26.4.0_@voidzero-dev+vite-plus-core@0.3.0_@types+node@26.4._7fba0511d8df10da0ecb713ae55bd175/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../../../node_modules/.pnpm/vite-plus@0.3.0_@types+node@26.4.0_@voidzero-dev+vite-plus-core@0.3.0_@types+node@26.4._7fba0511d8df10da0ecb713ae55bd175/node_modules/vite-plus/bin/vpr" "$@"
19
+ else
20
+ exec node "$basedir/../../../node_modules/.pnpm/vite-plus@0.3.0_@types+node@26.4.0_@voidzero-dev+vite-plus-core@0.3.0_@types+node@26.4._7fba0511d8df10da0ecb713ae55bd175/node_modules/vite-plus/bin/vpr" "$@"
21
+ fi
22
+ # cmd-shim-target=/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/vite-plus@0.3.0_@types+node@26.4.0_@voidzero-dev+vite-plus-core@0.3.0_@types+node@26.4._7fba0511d8df10da0ecb713ae55bd175/node_modules/vite-plus/bin/vpr
@@ -0,0 +1,22 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -z "$NODE_PATH" ]; then
13
+ export NODE_PATH="/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/yaml@2.9.0/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/node_modules"
14
+ else
15
+ export NODE_PATH="/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/yaml@2.9.0/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/node_modules:$NODE_PATH"
16
+ fi
17
+ if [ -x "$basedir/node" ]; then
18
+ exec "$basedir/node" "$basedir/../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/bin.mjs" "$@"
19
+ else
20
+ exec node "$basedir/../../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/bin.mjs" "$@"
21
+ fi
22
+ # cmd-shim-target=/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/bin.mjs
@@ -12,7 +12,7 @@ vp create fate my-app --template graphql-client
12
12
 
13
13
  ## Connect Your Server
14
14
 
15
- Set the GraphQL endpoint in `.env`:
15
+ `env.ts` declares the public endpoint variables. Its sample GraphQL URL is a placeholder; replace it with your server's URL. For local development, create a gitignored `.env` file to override the default:
16
16
 
17
17
  ```bash
18
18
  VITE_GRAPHQL_URL="https://api.example.com/graphql"
@@ -24,6 +24,16 @@ If your server supports GraphQL SSE, set the live endpoint too:
24
24
  VITE_GRAPHQL_LIVE_URL="https://api.example.com/graphql/stream"
25
25
  ```
26
26
 
27
+ The live endpoint is optional; omit it or leave it empty to disable live updates. Void validates both URLs and uses `.env` only for local development. Keep the variable schema in `env.ts` and local values in `.env`.
28
+
29
+ For production, supply your public endpoints in the build environment or change their defaults in `env.ts`:
30
+
31
+ ```bash
32
+ VITE_GRAPHQL_URL="https://api.example.com/graphql" vp run build
33
+ ```
34
+
35
+ These `VITE_*` values are embedded in the client bundle. Do not put credentials in them. Production builds do not read `.env`.
36
+
27
37
  Then edit `src/fate/graphql.ts`. This file is the mapping layer between your GraphQL schema and _fate_:
28
38
 
29
39
  - `dataView(...)` describes the fields React components are allowed to select.
@@ -0,0 +1,6 @@
1
+ import { defineEnv, url } from 'void/env';
2
+
3
+ export default defineEnv({
4
+ VITE_GRAPHQL_LIVE_URL: url().optional(),
5
+ VITE_GRAPHQL_URL: url().default('https://api.example.com/graphql'),
6
+ });
@@ -23,15 +23,15 @@
23
23
  },
24
24
  "dependencies": {
25
25
  "@nkzw/fate": "latest",
26
- "@void/react": "^0.10.12",
26
+ "@void/react": "^0.20.1",
27
27
  "fbtee": "^5.0.0",
28
28
  "graphql-sse": "^2.6.1",
29
29
  "lucide-react": "^1.34.0",
30
- "react": "^19.2.8",
31
- "react-dom": "^19.2.8",
30
+ "react": "^19.3.0",
31
+ "react-dom": "^19.3.0",
32
32
  "react-error-boundary": "^6.1.3",
33
33
  "react-fate": "latest",
34
- "void": "^0.10.12"
34
+ "void": "^0.20.1"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@nkzw/eslint-plugin": "^2.0.0",
@@ -42,8 +42,8 @@
42
42
  "@swc/core": "^1.16.1",
43
43
  "@tailwindcss/vite": "^4.3.3",
44
44
  "@types/node": "^26.4.0",
45
- "@types/react": "^19.2.18",
46
- "@types/react-dom": "^19.2.5",
45
+ "@types/react": "^19.3.0",
46
+ "@types/react-dom": "^19.3.0",
47
47
  "@vitejs/plugin-react": "^6.1.0",
48
48
  "oxc-transform-react": "^0.147.0",
49
49
  "tailwindcss": "^4.3.3",
@@ -26,26 +26,26 @@
26
26
  "@nkzw/define-env": "^1.1.0",
27
27
  "@nkzw/stack": "^2.3.2",
28
28
  "@radix-ui/react-slot": "^1.3.3",
29
- "@void/react": "^0.10.12",
29
+ "@void/react": "^0.20.1",
30
30
  "better-auth": "1.7.2",
31
31
  "class-variance-authority": "^0.7.1",
32
32
  "clsx": "^2.1.1",
33
33
  "fbtee": "^5.0.0",
34
34
  "lucide-react": "^1.34.0",
35
- "react": "^19.2.8",
36
- "react-dom": "^19.2.8",
35
+ "react": "^19.3.0",
36
+ "react-dom": "^19.3.0",
37
37
  "react-error-boundary": "^6.1.3",
38
38
  "react-fate": "latest",
39
39
  "tailwind-merge": "^3.6.0",
40
- "void": "^0.10.12"
40
+ "void": "^0.20.1"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@nkzw/fbtee-compiler": "^5.0.0",
44
44
  "@nkzw/vite-plugin-fbtee": "^5.0.0",
45
45
  "@tailwindcss/vite": "^4.3.3",
46
46
  "@types/node": "^26.4.0",
47
- "@types/react": "^19.2.18",
48
- "@types/react-dom": "^19.2.5",
47
+ "@types/react": "^19.3.0",
48
+ "@types/react-dom": "^19.3.0",
49
49
  "@vitejs/plugin-react": "^6.1.0",
50
50
  "oxc-transform-react": "^0.147.0",
51
51
  "tailwindcss": "^4.3.3",
@@ -27,18 +27,18 @@
27
27
  "@nkzw/stack": "^2.3.2",
28
28
  "@radix-ui/react-slot": "^1.3.3",
29
29
  "@trpc/client": "^11.18.0",
30
- "@void/react": "^0.10.12",
30
+ "@void/react": "^0.20.1",
31
31
  "better-auth": "1.7.2",
32
32
  "class-variance-authority": "^0.7.1",
33
33
  "clsx": "^2.1.1",
34
34
  "fbtee": "^5.0.0",
35
35
  "lucide-react": "^1.34.0",
36
- "react": "^19.2.8",
37
- "react-dom": "^19.2.8",
36
+ "react": "^19.3.0",
37
+ "react-dom": "^19.3.0",
38
38
  "react-error-boundary": "^6.1.3",
39
39
  "react-fate": "latest",
40
40
  "tailwind-merge": "^3.6.0",
41
- "void": "^0.10.12"
41
+ "void": "^0.20.1"
42
42
  },
43
43
  "devDependencies": {
44
44
  "@nkzw/fbtee-compiler": "^5.0.0",
@@ -46,8 +46,8 @@
46
46
  "@tailwindcss/vite": "^4.3.3",
47
47
  "@trpc/server": "^11.18.0",
48
48
  "@types/node": "^26.4.0",
49
- "@types/react": "^19.2.18",
50
- "@types/react-dom": "^19.2.5",
49
+ "@types/react": "^19.3.0",
50
+ "@types/react-dom": "^19.3.0",
51
51
  "@vitejs/plugin-react": "^6.1.0",
52
52
  "oxc-transform-react": "^0.147.0",
53
53
  "tailwindcss": "^4.3.3",
@@ -54,6 +54,18 @@ Common commands from the project root:
54
54
  - `vp test` runs the test suite.
55
55
  - `vp run build` builds the app.
56
56
 
57
+ ## Cloudflare Deployment
58
+
59
+ Deploy directly to your own Cloudflare account:
60
+
61
+ ```sh
62
+ vp exec void deploy --platform cloudflare
63
+ ```
64
+
65
+ Void signs you into Cloudflare when needed, provisions resources, applies the checked-in database migrations, and deploys the app. Commit the resource IDs saved in `wrangler.jsonc` for subsequent deployments. Keep the template's `VOID_LIVE` Durable Object binding and class migration for live updates.
66
+
67
+ After changing the database schema or auth configuration, run `vp run db:generate`, review and commit the migration, then deploy. The template's migrations include the production Better Auth schema.
68
+
57
69
  ## Translations
58
70
 
59
71
  The React app uses fbtee 5 with its native Oxc Vite plugin and CLI. Setup and builds generate the runtime translation files automatically.
@@ -0,0 +1,15 @@
1
+ CREATE TABLE `verification` (
2
+ `id` text PRIMARY KEY NOT NULL,
3
+ `identifier` text NOT NULL,
4
+ `value` text NOT NULL,
5
+ `expiresAt` integer NOT NULL,
6
+ `createdAt` integer NOT NULL,
7
+ `updatedAt` integer NOT NULL
8
+ );
9
+ --> statement-breakpoint
10
+ CREATE INDEX `verification_identifier_idx` ON `verification` (`identifier`);--> statement-breakpoint
11
+ ALTER TABLE `session` ADD COLUMN `impersonatedBy` text;
12
+ --> statement-breakpoint
13
+ CREATE INDEX `session_userId_idx` ON `session` (`userId`);
14
+ --> statement-breakpoint
15
+ CREATE INDEX `account_userId_idx` ON `account` (`userId`);