create-fate 1.5.1 → 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 (146) hide show
  1. package/README.md +1 -2
  2. package/bin/create-fate.mjs +15 -51
  3. package/package.json +2 -2
  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/README.md +1 -1
  8. package/templates/fate/drizzle/client/package.json +9 -9
  9. package/templates/fate/drizzle/server/vite.config.ts +1 -0
  10. package/templates/fate/graphql/README.md +1 -1
  11. package/templates/fate/graphql/client/package.json +9 -9
  12. package/templates/fate/graphql/server/.gitignore +5 -0
  13. package/templates/fate/graphql/server/node_modules/.bin/esbuild +22 -0
  14. package/templates/fate/graphql/server/node_modules/.bin/eslint +22 -0
  15. package/templates/fate/graphql/server/node_modules/.bin/fate +22 -0
  16. package/templates/fate/graphql/server/node_modules/.bin/intent +22 -0
  17. package/templates/fate/graphql/server/node_modules/.bin/jiti +22 -0
  18. package/templates/fate/graphql/server/node_modules/.bin/nft +22 -0
  19. package/templates/fate/graphql/server/node_modules/.bin/nodemon +22 -0
  20. package/templates/fate/graphql/server/node_modules/.bin/oxfmt +22 -0
  21. package/templates/fate/graphql/server/node_modules/.bin/oxlint +22 -0
  22. package/templates/fate/graphql/server/node_modules/.bin/prisma +22 -0
  23. package/templates/fate/graphql/server/node_modules/.bin/prisma-json-types-generator +22 -0
  24. package/templates/fate/graphql/server/node_modules/.bin/prisma-pothos-types +22 -0
  25. package/templates/fate/graphql/server/node_modules/.bin/tsc +22 -0
  26. package/templates/fate/graphql/server/node_modules/.bin/tsgolint +22 -0
  27. package/templates/fate/graphql/server/node_modules/.bin/tsx +22 -0
  28. package/templates/fate/graphql/server/node_modules/.bin/vitest +22 -0
  29. package/templates/fate/graphql/server/node_modules/.bin/vp +22 -0
  30. package/templates/fate/graphql/server/node_modules/.bin/vpr +22 -0
  31. package/templates/fate/graphql/server/node_modules/.bin/yaml +22 -0
  32. package/templates/fate/graphql/server/vite.config.ts +1 -0
  33. package/templates/fate/graphql-client/README.md +12 -2
  34. package/templates/fate/graphql-client/env.ts +6 -0
  35. package/templates/fate/graphql-client/package.json +9 -9
  36. package/templates/fate/http/README.md +1 -1
  37. package/templates/fate/http/client/package.json +9 -9
  38. package/templates/fate/http/server/vite.config.ts +1 -0
  39. package/templates/fate/prisma/README.md +1 -1
  40. package/templates/fate/prisma/client/package.json +9 -9
  41. package/templates/fate/prisma/server/vite.config.ts +1 -0
  42. package/templates/fate/void/README.md +13 -1
  43. package/templates/fate/void/db/migrations/20260918045815_legal_dragon_lord.sql +15 -0
  44. package/templates/fate/{cloudflare/server/db/migrations/meta/20260508073357_snapshot.json → void/db/migrations/meta/20260918045815_snapshot.json} +174 -124
  45. package/templates/fate/void/db/migrations/meta/_journal.json +7 -0
  46. package/templates/fate/void/package.json +9 -10
  47. package/templates/fate/cloudflare/.github/workflows/push.yml +0 -27
  48. package/templates/fate/cloudflare/.vite-hooks/pre-commit +0 -1
  49. package/templates/fate/cloudflare/.vscode/extensions.json +0 -12
  50. package/templates/fate/cloudflare/.vscode/settings.json +0 -25
  51. package/templates/fate/cloudflare/AGENTS.md +0 -55
  52. package/templates/fate/cloudflare/README.md +0 -137
  53. package/templates/fate/cloudflare/_gitignore +0 -20
  54. package/templates/fate/cloudflare/client/node_modules/.bin/browserslist +0 -22
  55. package/templates/fate/cloudflare/client/node_modules/.bin/cf-wrangler +0 -22
  56. package/templates/fate/cloudflare/client/node_modules/.bin/drizzle-kit +0 -22
  57. package/templates/fate/cloudflare/client/node_modules/.bin/esbuild +0 -22
  58. package/templates/fate/cloudflare/client/node_modules/.bin/fate +0 -22
  59. package/templates/fate/cloudflare/client/node_modules/.bin/fbtee +0 -22
  60. package/templates/fate/cloudflare/client/node_modules/.bin/intent +0 -22
  61. package/templates/fate/cloudflare/client/node_modules/.bin/jiti +0 -22
  62. package/templates/fate/cloudflare/client/node_modules/.bin/oxfmt +0 -22
  63. package/templates/fate/cloudflare/client/node_modules/.bin/oxlint +0 -22
  64. package/templates/fate/cloudflare/client/node_modules/.bin/rolldown +0 -22
  65. package/templates/fate/cloudflare/client/node_modules/.bin/tsc +0 -22
  66. package/templates/fate/cloudflare/client/node_modules/.bin/tsx +0 -22
  67. package/templates/fate/cloudflare/client/node_modules/.bin/vitest +0 -22
  68. package/templates/fate/cloudflare/client/node_modules/.bin/void +0 -22
  69. package/templates/fate/cloudflare/client/node_modules/.bin/vp +0 -22
  70. package/templates/fate/cloudflare/client/node_modules/.bin/vpr +0 -22
  71. package/templates/fate/cloudflare/client/node_modules/.bin/workerd +0 -22
  72. package/templates/fate/cloudflare/client/node_modules/.bin/wrangler +0 -22
  73. package/templates/fate/cloudflare/client/node_modules/.bin/wrangler2 +0 -22
  74. package/templates/fate/cloudflare/client/package.json +0 -61
  75. package/templates/fate/cloudflare/client/pages/index.tsx +0 -96
  76. package/templates/fate/cloudflare/client/pages/layout.tsx +0 -68
  77. package/templates/fate/cloudflare/client/pages/login.tsx +0 -107
  78. package/templates/fate/cloudflare/client/pages/post/[id].tsx +0 -22
  79. package/templates/fate/cloudflare/client/pages/search.tsx +0 -99
  80. package/templates/fate/cloudflare/client/public/icon.svg +0 -1
  81. package/templates/fate/cloudflare/client/src/App.css +0 -153
  82. package/templates/fate/cloudflare/client/src/lib/AvailableLanguages.tsx +0 -5
  83. package/templates/fate/cloudflare/client/src/lib/LocaleContext.tsx +0 -61
  84. package/templates/fate/cloudflare/client/src/lib/cx.tsx +0 -6
  85. package/templates/fate/cloudflare/client/src/lib/env.tsx +0 -5
  86. package/templates/fate/cloudflare/client/src/ui/Badge.tsx +0 -31
  87. package/templates/fate/cloudflare/client/src/ui/Button.tsx +0 -108
  88. package/templates/fate/cloudflare/client/src/ui/Card.tsx +0 -32
  89. package/templates/fate/cloudflare/client/src/ui/CommentCard.tsx +0 -75
  90. package/templates/fate/cloudflare/client/src/ui/Error.tsx +0 -19
  91. package/templates/fate/cloudflare/client/src/ui/H2.tsx +0 -15
  92. package/templates/fate/cloudflare/client/src/ui/H3.tsx +0 -20
  93. package/templates/fate/cloudflare/client/src/ui/Header.tsx +0 -98
  94. package/templates/fate/cloudflare/client/src/ui/Input.tsx +0 -17
  95. package/templates/fate/cloudflare/client/src/ui/Link.tsx +0 -11
  96. package/templates/fate/cloudflare/client/src/ui/LocaleSwitcher.tsx +0 -34
  97. package/templates/fate/cloudflare/client/src/ui/PostCard.tsx +0 -303
  98. package/templates/fate/cloudflare/client/src/ui/Section.tsx +0 -23
  99. package/templates/fate/cloudflare/client/src/ui/UserCard.tsx +0 -131
  100. package/templates/fate/cloudflare/client/src/user/AuthClient.tsx +0 -6
  101. package/templates/fate/cloudflare/client/start.mjs +0 -11
  102. package/templates/fate/cloudflare/client/translations/de-DE.json +0 -632
  103. package/templates/fate/cloudflare/client/translations/ja-JP.json +0 -632
  104. package/templates/fate/cloudflare/client/vite.config.ts +0 -41
  105. package/templates/fate/cloudflare/client/void.json +0 -29
  106. package/templates/fate/cloudflare/package.json +0 -42
  107. package/templates/fate/cloudflare/pnpm-workspace.yaml +0 -41
  108. package/templates/fate/cloudflare/server/.env.example +0 -1
  109. package/templates/fate/cloudflare/server/db/db.ts +0 -30
  110. package/templates/fate/cloudflare/server/db/migrations/20260508073357_initial_schema.sql +0 -134
  111. package/templates/fate/cloudflare/server/db/migrations/20260508120500_seed_cloudflare_demo.sql +0 -170
  112. package/templates/fate/cloudflare/server/db/migrations/meta/_journal.json +0 -20
  113. package/templates/fate/cloudflare/server/db/queries.ts +0 -211
  114. package/templates/fate/cloudflare/server/db/schema.ts +0 -331
  115. package/templates/fate/cloudflare/server/node_modules/.bin/cf-wrangler +0 -22
  116. package/templates/fate/cloudflare/server/node_modules/.bin/drizzle-kit +0 -22
  117. package/templates/fate/cloudflare/server/node_modules/.bin/esbuild +0 -22
  118. package/templates/fate/cloudflare/server/node_modules/.bin/fate +0 -22
  119. package/templates/fate/cloudflare/server/node_modules/.bin/intent +0 -22
  120. package/templates/fate/cloudflare/server/node_modules/.bin/jiti +0 -22
  121. package/templates/fate/cloudflare/server/node_modules/.bin/oxfmt +0 -22
  122. package/templates/fate/cloudflare/server/node_modules/.bin/oxlint +0 -22
  123. package/templates/fate/cloudflare/server/node_modules/.bin/tsc +0 -22
  124. package/templates/fate/cloudflare/server/node_modules/.bin/tsx +0 -22
  125. package/templates/fate/cloudflare/server/node_modules/.bin/vitest +0 -22
  126. package/templates/fate/cloudflare/server/node_modules/.bin/vp +0 -22
  127. package/templates/fate/cloudflare/server/node_modules/.bin/vpr +0 -22
  128. package/templates/fate/cloudflare/server/node_modules/.bin/workerd +0 -22
  129. package/templates/fate/cloudflare/server/node_modules/.bin/wrangler +0 -22
  130. package/templates/fate/cloudflare/server/node_modules/.bin/wrangler2 +0 -22
  131. package/templates/fate/cloudflare/server/package.json +0 -34
  132. package/templates/fate/cloudflare/server/src/fate/commentPermissions.ts +0 -17
  133. package/templates/fate/cloudflare/server/src/fate/context.ts +0 -15
  134. package/templates/fate/cloudflare/server/src/fate/live.ts +0 -7
  135. package/templates/fate/cloudflare/server/src/fate/server.ts +0 -414
  136. package/templates/fate/cloudflare/server/src/fate/views.ts +0 -164
  137. package/templates/fate/cloudflare/server/src/index.ts +0 -80
  138. package/templates/fate/cloudflare/server/src/lib/auth.ts +0 -64
  139. package/templates/fate/cloudflare/server/src/lib/origins.ts +0 -17
  140. package/templates/fate/cloudflare/server/src/router.ts +0 -2
  141. package/templates/fate/cloudflare/server/src/user/SessionUser.tsx +0 -17
  142. package/templates/fate/cloudflare/server/tsconfig.json +0 -10
  143. package/templates/fate/cloudflare/server/wrangler.jsonc +0 -29
  144. package/templates/fate/cloudflare/tsconfig.json +0 -24
  145. package/templates/fate/cloudflare/vite.config.ts +0 -75
  146. 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/prisma@8.0.0-rc.12_@types+node@26.4.0_@types+react@19.2.18_@vercel+nft@1.11.0_@voidzero_cb61c5add8a9dbdcc790b43679066ac4/node_modules/prisma/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/prisma@8.0.0-rc.12_@types+node@26.4.0_@types+react@19.2.18_@vercel+nft@1.11.0_@voidzero_cb61c5add8a9dbdcc790b43679066ac4/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/prisma@8.0.0-rc.12_@types+node@26.4.0_@types+react@19.2.18_@vercel+nft@1.11.0_@voidzero_cb61c5add8a9dbdcc790b43679066ac4/node_modules/prisma/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/prisma@8.0.0-rc.12_@types+node@26.4.0_@types+react@19.2.18_@vercel+nft@1.11.0_@voidzero_cb61c5add8a9dbdcc790b43679066ac4/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/prisma@8.0.0-rc.12_@types+node@26.4.0_@types+react@19.2.18_@vercel+nft@1.11.0_@voidzero_cb61c5add8a9dbdcc790b43679066ac4/node_modules/prisma/dist/prisma.js" "$@"
19
+ else
20
+ exec node "$basedir/../../../node_modules/.pnpm/prisma@8.0.0-rc.12_@types+node@26.4.0_@types+react@19.2.18_@vercel+nft@1.11.0_@voidzero_cb61c5add8a9dbdcc790b43679066ac4/node_modules/prisma/dist/prisma.js" "$@"
21
+ fi
22
+ # cmd-shim-target=/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/prisma@8.0.0-rc.12_@types+node@26.4.0_@types+react@19.2.18_@vercel+nft@1.11.0_@voidzero_cb61c5add8a9dbdcc790b43679066ac4/node_modules/prisma/dist/prisma.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/prisma-json-types-generator@5.1.1_@prisma+client@7.10.0_prisma@8.0.0-rc.12_@types+node@_ed7edad184a45dc2522b44fee1651fc5/node_modules/prisma-json-types-generator/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/prisma-json-types-generator@5.1.1_@prisma+client@7.10.0_prisma@8.0.0-rc.12_@types+node@_ed7edad184a45dc2522b44fee1651fc5/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/prisma-json-types-generator@5.1.1_@prisma+client@7.10.0_prisma@8.0.0-rc.12_@types+node@_ed7edad184a45dc2522b44fee1651fc5/node_modules/prisma-json-types-generator/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/prisma-json-types-generator@5.1.1_@prisma+client@7.10.0_prisma@8.0.0-rc.12_@types+node@_ed7edad184a45dc2522b44fee1651fc5/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/prisma-json-types-generator@5.1.1_@prisma+client@7.10.0_prisma@8.0.0-rc.12_@types+node@_ed7edad184a45dc2522b44fee1651fc5/node_modules/prisma-json-types-generator/index.js" "$@"
19
+ else
20
+ exec node "$basedir/../../../node_modules/.pnpm/prisma-json-types-generator@5.1.1_@prisma+client@7.10.0_prisma@8.0.0-rc.12_@types+node@_ed7edad184a45dc2522b44fee1651fc5/node_modules/prisma-json-types-generator/index.js" "$@"
21
+ fi
22
+ # cmd-shim-target=/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/prisma-json-types-generator@5.1.1_@prisma+client@7.10.0_prisma@8.0.0-rc.12_@types+node@_ed7edad184a45dc2522b44fee1651fc5/node_modules/prisma-json-types-generator/index.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/@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
@@ -39,6 +39,7 @@ export default defineConfig({
39
39
  },
40
40
  },
41
41
  pack: {
42
+ deps: { resolveDepSubpath: true },
42
43
  entry: ['./src/app.tsx'],
43
44
  outputOptions: { codeSplitting: false, entryFileNames: 'index.js' },
44
45
  },
@@ -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.
@@ -70,7 +80,7 @@ Common commands:
70
80
 
71
81
  ## Translations
72
82
 
73
- The React app uses fbtee 4 with its native Oxc Vite plugin and CLI. Setup and builds generate the runtime translation files automatically.
83
+ The React app uses fbtee 5 with its native Oxc Vite plugin and CLI. Setup and builds generate the runtime translation files automatically.
74
84
 
75
85
  - Wrap UI text in `<fbt desc="Translator context">Text</fbt>`; use `fbs('Text', 'Translator context')` from `fbtee` for string attributes such as placeholders.
76
86
  - Run `vp run fbtee:collect` in the app root to extract strings, then `vp run fbtee:prepare` to update the editable German and Japanese files in `translations/`.
@@ -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,27 +23,27 @@
23
23
  },
24
24
  "dependencies": {
25
25
  "@nkzw/fate": "latest",
26
- "@void/react": "^0.10.12",
27
- "fbtee": "^4.0.0",
26
+ "@void/react": "^0.20.1",
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",
38
- "@nkzw/fbtee-cli": "^4.0.0",
38
+ "@nkzw/fbtee-compiler": "^5.0.0",
39
39
  "@nkzw/oxlint-config": "^2.0.1",
40
- "@nkzw/vite-plugin-fbtee": "^4.0.0",
40
+ "@nkzw/vite-plugin-fbtee": "^5.0.0",
41
41
  "@oxc-node/core": "^0.1.0",
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",
@@ -107,7 +107,7 @@ Common commands from the project root:
107
107
 
108
108
  ## Translations
109
109
 
110
- The React app uses fbtee 4 with its native Oxc Vite plugin and CLI. Setup and builds generate the runtime translation files automatically.
110
+ The React app uses fbtee 5 with its native Oxc Vite plugin and CLI. Setup and builds generate the runtime translation files automatically.
111
111
 
112
112
  - Wrap UI text in `<fbt desc="Translator context">Text</fbt>`; use `fbs('Text', 'Translator context')` from `fbtee` for string attributes such as placeholders.
113
113
  - Run `vp run fbtee:collect` in `client/` to extract strings, then `vp run fbtee:prepare` to update the editable German and Japanese files in `translations/`.
@@ -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
- "fbtee": "^4.0.0",
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
- "@nkzw/fbtee-cli": "^4.0.0",
44
- "@nkzw/vite-plugin-fbtee": "^4.0.0",
43
+ "@nkzw/fbtee-compiler": "^5.0.0",
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",
@@ -2,6 +2,7 @@ import { defineConfig } from 'vite-plus';
2
2
 
3
3
  export default defineConfig({
4
4
  pack: {
5
+ deps: { resolveDepSubpath: true },
5
6
  entry: ['./src/app.tsx'],
6
7
  outputOptions: { codeSplitting: false, entryFileNames: 'index.js' },
7
8
  },
@@ -121,7 +121,7 @@ Common commands from the project root:
121
121
 
122
122
  ## Translations
123
123
 
124
- The React app uses fbtee 4 with its native Oxc Vite plugin and CLI. Setup and builds generate the runtime translation files automatically.
124
+ The React app uses fbtee 5 with its native Oxc Vite plugin and CLI. Setup and builds generate the runtime translation files automatically.
125
125
 
126
126
  - Wrap UI text in `<fbt desc="Translator context">Text</fbt>`; use `fbs('Text', 'Translator context')` from `fbtee` for string attributes such as placeholders.
127
127
  - Run `vp run fbtee:collect` in `client/` to extract strings, then `vp run fbtee:prepare` to update the editable German and Japanese files in `translations/`.
@@ -27,27 +27,27 @@
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
- "fbtee": "^4.0.0",
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
- "@nkzw/fbtee-cli": "^4.0.0",
45
- "@nkzw/vite-plugin-fbtee": "^4.0.0",
44
+ "@nkzw/fbtee-compiler": "^5.0.0",
45
+ "@nkzw/vite-plugin-fbtee": "^5.0.0",
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",
@@ -2,6 +2,7 @@ import { defineConfig } from 'vite-plus';
2
2
 
3
3
  export default defineConfig({
4
4
  pack: {
5
+ deps: { resolveDepSubpath: true },
5
6
  entry: ['./src/app.tsx'],
6
7
  outputOptions: { codeSplitting: false, entryFileNames: 'index.js' },
7
8
  },
@@ -54,9 +54,21 @@ 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
- The React app uses fbtee 4 with its native Oxc Vite plugin and CLI. Setup and builds generate the runtime translation files automatically.
71
+ The React app uses fbtee 5 with its native Oxc Vite plugin and CLI. Setup and builds generate the runtime translation files automatically.
60
72
 
61
73
  - Wrap UI text in `<fbt desc="Translator context">Text</fbt>`; use `fbs('Text', 'Translator context')` from `fbtee` for string attributes such as placeholders.
62
74
  - Run `vp run fbtee:collect` in the app root to extract strings, then `vp run fbtee:prepare` to update the editable German and Japanese files in `translations/`.
@@ -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`);