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
package/README.md CHANGED
@@ -10,8 +10,7 @@ The generated app is installed and the fate client is generated during creation.
10
10
 
11
11
  Choose between these templates:
12
12
 
13
- - `void`: Void pages router with Drizzle.
14
- - `cloudflare`: Cloudflare Workers with D1 and Drizzle.
13
+ - `void`: Void pages router with Drizzle, live updates, and native Cloudflare deployment.
15
14
  - `drizzle`: tRPC with Drizzle.
16
15
  - `graphql`: GraphQL with Prisma.
17
16
  - `graphql-client`: React client for an existing GraphQL server.
@@ -7,11 +7,6 @@ import { URL } from 'node:url';
7
7
  import { cancel, intro, isCancel, outro, select, text } from '@clack/prompts';
8
8
 
9
9
  const variants = {
10
- cloudflare: {
11
- description: 'Cloudflare Workers with D1 and Drizzle',
12
- label: 'Cloudflare',
13
- template: 'cloudflare',
14
- },
15
10
  drizzle: {
16
11
  description: 'tRPC with Drizzle',
17
12
  label: 'Drizzle',
@@ -38,7 +33,7 @@ const variants = {
38
33
  template: 'prisma',
39
34
  },
40
35
  void: {
41
- description: 'Void with void-fate and Drizzle',
36
+ description: 'Void with Drizzle, live updates, and native Cloudflare deployment',
42
37
  label: 'Void',
43
38
  template: 'void',
44
39
  },
@@ -55,17 +50,17 @@ const frontendFrameworks = {
55
50
  },
56
51
  };
57
52
 
58
- const fateDependencyNames = ['@nkzw/fate', 'cf-fate', 'react-fate', 'void-fate', 'vue-fate'];
53
+ const fateDependencyNames = ['@nkzw/fate', 'react-fate', 'void-fate', 'vue-fate'];
59
54
 
60
55
  const usage = () => {
61
56
  process.stdout
62
- .write(`Usage: create-fate [directory] [--template cloudflare|void|drizzle|graphql|graphql-client|http|prisma] [--framework react|vue]
57
+ .write(`Usage: create-fate [directory] [--template void|drizzle|graphql|graphql-client|http|prisma] [--framework react|vue]
63
58
 
64
59
  Create a new fate app.
65
60
 
66
61
  Options:
67
62
  --framework, -f UI framework to create (react or vue)
68
- --template, -t Template variant to create
63
+ --template, -t Template variant to create (default: void)
69
64
  --no-setup Skip dependency installation and fate client generation
70
65
  --help, -h Show this help message
71
66
  `);
@@ -184,6 +179,7 @@ const promptForTargetDir = async () => {
184
179
 
185
180
  const promptForVariant = async () => {
186
181
  const result = await select({
182
+ initialValue: 'void',
187
183
  message: 'Select a fate template',
188
184
  options: Object.entries(variants).map(([value, variant]) => ({
189
185
  hint: variant.description,
@@ -278,10 +274,6 @@ const resolveFateDependencyVersions = async (rootDir) => {
278
274
  return Object.fromEntries(
279
275
  await Promise.all(
280
276
  dependencies.map(async (dependencyName) => {
281
- if (dependencyName === 'cf-fate') {
282
- return [dependencyName, 'latest'];
283
- }
284
-
285
277
  try {
286
278
  return [dependencyName, `^${await fetchLatestPackageVersion(dependencyName)}`];
287
279
  } catch (error) {
@@ -352,7 +344,7 @@ const removePackageEntries = (record, names) => {
352
344
 
353
345
  const reactPackageEntries = [
354
346
  '@nkzw/babel-preset-fbtee',
355
- '@nkzw/fbtee-cli',
347
+ '@nkzw/fbtee-compiler',
356
348
  '@radix-ui/react-slot',
357
349
  '@nkzw/stack',
358
350
  '@nkzw/vite-plugin-fbtee',
@@ -443,29 +435,6 @@ const replaceInFiles = (dir, replacements) => {
443
435
  };
444
436
 
445
437
  const vueTransportConfigs = {
446
- cloudflare: {
447
- clientImports: `import env from '../src/lib/env.ts';`,
448
- createOptions: `{
449
- fetch: (input, init) =>
450
- fetch(input, {
451
- ...init,
452
- credentials: 'include',
453
- }),
454
- liveUrl: \`\${env('SERVER_URL')}/fate-live\`,
455
- url: \`\${env('SERVER_URL')}/fate\`,
456
- }`,
457
- dotenvConfig: `dotenv.config({
458
- path: join(root, '../server', process.env.NODE_ENV === 'development' || process.env.DEV ? '.env' : '.prod.env'),
459
- quiet: true,
460
- })`,
461
- envKeys: `['SERVER_URL']`,
462
- envValues: `{
463
- SERVER_URL: import.meta.env.VITE_SERVER_URL,
464
- }`,
465
- fateModule: '@app/server/src/router.ts',
466
- fateTransport: `transport: 'cloudflare',`,
467
- typeModule: '@app/server/src/router.ts',
468
- },
469
438
  drizzle: {
470
439
  clientImports: `import { httpBatchLink } from '@trpc/client';
471
440
  import env from '../src/lib/env.ts';`,
@@ -525,7 +494,7 @@ import env from '../src/lib/env.ts';`,
525
494
  : false,
526
495
  url: import.meta.env.VITE_GRAPHQL_URL,
527
496
  }`,
528
- dotenvConfig: `dotenv.config({ path: join(root, '.env'), quiet: true })`,
497
+ dotenvConfig: '',
529
498
  envKeys: `[]`,
530
499
  envValues: `{}`,
531
500
  fateModule: './src/fate/graphql.ts',
@@ -565,7 +534,7 @@ const shared = useShared<SharedData>();`,
565
534
  origin: shared.origin,
566
535
  userId: shared.auth.user?.id,
567
536
  }`,
568
- dotenvConfig: `dotenv.config({ path: join(root, '.env'), quiet: true })`,
537
+ dotenvConfig: '',
569
538
  envKeys: `[]`,
570
539
  envValues: `{}`,
571
540
  fateModule: './src/fate/server.ts',
@@ -657,13 +626,6 @@ const configureVuePackageJson = (frontendRoot, selectedVariant, originalPackageJ
657
626
  };
658
627
  }
659
628
 
660
- if (selectedVariant === 'cloudflare') {
661
- packageJson.dependencies = {
662
- ...packageJson.dependencies,
663
- 'cf-fate': 'latest',
664
- };
665
- }
666
-
667
629
  if (packageJson.description) {
668
630
  packageJson.description = packageJson.description.replaceAll('React', 'Vue');
669
631
  }
@@ -818,7 +780,6 @@ const configureVueTemplate = (targetPath, selectedVariant) => {
818
780
  const config = vueTransportConfigs[selectedVariant];
819
781
  replaceInFiles(frontendRoot, {
820
782
  __CREATE_FATE_OPTIONS__: config.createOptions,
821
- __DOTENV_CONFIG__: config.dotenvConfig,
822
783
  __ENV_KEYS__: config.envKeys,
823
784
  __ENV_VALUES__: config.envValues,
824
785
  __FATE_MODULE__: config.fateModule,
@@ -861,6 +822,13 @@ const configureVueTemplate = (targetPath, selectedVariant) => {
861
822
  ? 'build: {},'
862
823
  : "build: { outDir: join(root, '../dist/client') },",
863
824
  '/* __CLIENT_IMPORTS__ */': config.clientImports,
825
+ '/* __ENV_CONFIG__ */': config.dotenvConfig
826
+ ? `import { join } from 'node:path';
827
+ import dotenv from 'dotenv';
828
+
829
+ const root = process.cwd();
830
+ ${config.dotenvConfig};`
831
+ : '',
864
832
  '/* __FATE_TRANSPORT__ */': config.fateTransport,
865
833
  });
866
834
  };
@@ -909,10 +877,6 @@ const setupProject = (targetPath, selectedVariant) => {
909
877
  }
910
878
 
911
879
  switch (selectedVariant) {
912
- case 'cloudflare':
913
- runCommand('vp', ['run', '--filter', '@app/server', 'dev:setup'], targetPath);
914
- runCommand('vp', ['run', 'fate:generate'], targetPath);
915
- break;
916
880
  case 'graphql':
917
881
  case 'prisma':
918
882
  runCommand('vp', ['run', '--filter', '@app/server', 'dev:setup'], targetPath);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-fate",
3
- "version": "1.5.1",
3
+ "version": "1.6.0",
4
4
  "description": "Create a new fate app.",
5
5
  "homepage": "https://github.com/nkzw-tech/fate",
6
6
  "license": "MIT",
@@ -22,7 +22,7 @@
22
22
  ],
23
23
  "type": "module",
24
24
  "dependencies": {
25
- "@clack/prompts": "^1.7.0"
25
+ "@clack/prompts": "^1.8.1"
26
26
  },
27
27
  "engines": {
28
28
  "node": ">=24.0.0"
@@ -2,8 +2,7 @@
2
2
 
3
3
  This directory is the canonical source for fate project scaffolds.
4
4
 
5
- - `void/` contains the Void pages router + Drizzle template.
6
- - `cloudflare/` contains the Cloudflare Workers + D1 + Drizzle template.
5
+ - `void/` contains the Void pages router + Drizzle template, with live updates and native Cloudflare deployment.
7
6
  - `drizzle/` contains the tRPC + Drizzle template.
8
7
  - `graphql/` contains the GraphQL + Prisma template.
9
8
  - `graphql-client/` contains the existing GraphQL server template.
@@ -14,20 +14,21 @@
14
14
  "dev": "vp dev",
15
15
  "dev:setup": "vp run prepare:void && vp run fate:generate",
16
16
  "fate:generate": "vp exec fate generate",
17
- "prepare:void": "void prepare"
17
+ "prepare:void": "void prepare",
18
+ "test:all": "vp check && vp test"
18
19
  },
19
20
  "dependencies": {
20
21
  "@lucide/vue": "^1.34.0",
21
22
  "@nkzw/core": "^1.3.1",
22
23
  "@nkzw/define-env": "^1.1.0",
23
24
  "@trpc/client": "^11.18.0",
24
- "@void/vue": "^0.10.12",
25
+ "@void/vue": "^0.20.1",
25
26
  "class-variance-authority": "^0.7.1",
26
27
  "clsx": "^2.1.1",
27
28
  "dotenv": "^17.4.2",
28
29
  "graphql-sse": "^2.6.1",
29
30
  "tailwind-merge": "^3.6.0",
30
- "void": "^0.10.12",
31
+ "void": "^0.20.1",
31
32
  "vue": "^3.5.41",
32
33
  "vue-fate": "latest"
33
34
  },
@@ -1,14 +1,11 @@
1
- import { join } from 'node:path';
2
1
  import nkzw from '@nkzw/oxlint-config';
3
2
  import tailwindcss from '@tailwindcss/vite';
4
3
  import { voidVue } from '@void/vue/plugin';
5
- import dotenv from 'dotenv';
6
4
  import { defineConfig, lazyPlugins } from 'vite-plus';
7
5
  import { voidPlugin } from 'void';
8
6
  import { fate } from 'vue-fate/vite';
9
7
 
10
- const root = process.cwd();
11
- __DOTENV_CONFIG__;
8
+ /* __ENV_CONFIG__ */
12
9
 
13
10
  export default defineConfig({
14
11
  /* __BUILD_CONFIG__ */
@@ -32,6 +29,20 @@ export default defineConfig({
32
29
  extends: [nkzw],
33
30
  ignorePatterns: __LINT_IGNORE_PATTERNS__,
34
31
  options: { typeAware: true, typeCheck: true },
32
+ overrides: [
33
+ {
34
+ files: ['**/*.vue'],
35
+ globals: {
36
+ defineEmits: 'readonly',
37
+ defineExpose: 'readonly',
38
+ defineModel: 'readonly',
39
+ defineOptions: 'readonly',
40
+ defineProps: 'readonly',
41
+ defineSlots: 'readonly',
42
+ withDefaults: 'readonly',
43
+ },
44
+ },
45
+ ],
35
46
  rules: {
36
47
  '@typescript-eslint/no-explicit-any': 'off',
37
48
  },
@@ -43,16 +54,12 @@ export default defineConfig({
43
54
  /* __FATE_TRANSPORT__ */
44
55
  }),
45
56
  ],
46
- run: {
47
- tasks: {
48
- 'test:all': {
49
- command: 'vp check && vp test',
50
- },
51
- },
52
- },
53
57
  server: { port: 6001 },
54
58
  ssr: { noExternal: ['@nkzw/fate', 'vue-fate'] },
55
59
  staged: {
56
60
  '*': 'vp check --fix',
57
61
  },
62
+ test: {
63
+ passWithNoTests: true,
64
+ },
58
65
  });
@@ -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/`.
@@ -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
  },
@@ -122,7 +122,7 @@ Common commands from the project root:
122
122
 
123
123
  ## Translations
124
124
 
125
- The React app uses fbtee 4 with its native Oxc Vite plugin and CLI. Setup and builds generate the runtime translation files automatically.
125
+ The React app uses fbtee 5 with its native Oxc Vite plugin and CLI. Setup and builds generate the runtime translation files automatically.
126
126
 
127
127
  - Wrap UI text in `<fbt desc="Translator context">Text</fbt>`; use `fbs('Text', 'Translator context')` from `fbtee` for string attributes such as placeholders.
128
128
  - 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,27 +26,27 @@
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
  "graphql-sse": "^2.6.1",
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
  "@types/node": "^26.4.0",
48
- "@types/react": "^19.2.18",
49
- "@types/react-dom": "^19.2.5",
48
+ "@types/react": "^19.3.0",
49
+ "@types/react-dom": "^19.3.0",
50
50
  "@vitejs/plugin-react": "^6.1.0",
51
51
  "oxc-transform-react": "^0.147.0",
52
52
  "tailwindcss": "^4.3.3",
@@ -0,0 +1,5 @@
1
+ .pnpm-debug.log
2
+ /node_modules/
3
+ coverage/
4
+ tsconfig.tsbuildinfo
5
+ dist/
@@ -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/esbuild@0.28.2/node_modules/esbuild/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/esbuild@0.28.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/esbuild@0.28.2/node_modules/esbuild/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/esbuild@0.28.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/esbuild@0.28.2/node_modules/esbuild/bin/esbuild" "$@"
19
+ else
20
+ exec node "$basedir/../../../node_modules/.pnpm/esbuild@0.28.2/node_modules/esbuild/bin/esbuild" "$@"
21
+ fi
22
+ # cmd-shim-target=/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/esbuild@0.28.2/node_modules/esbuild/bin/esbuild
@@ -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/eslint@10.9.1_jiti@2.7.0/node_modules/eslint/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/eslint@10.9.1_jiti@2.7.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/eslint@10.9.1_jiti@2.7.0/node_modules/eslint/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/eslint@10.9.1_jiti@2.7.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/eslint@10.9.1_jiti@2.7.0/node_modules/eslint/bin/eslint.js" "$@"
19
+ else
20
+ exec node "$basedir/../../../node_modules/.pnpm/eslint@10.9.1_jiti@2.7.0/node_modules/eslint/bin/eslint.js" "$@"
21
+ fi
22
+ # cmd-shim-target=/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/eslint@10.9.1_jiti@2.7.0/node_modules/eslint/bin/eslint.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/@nkzw+fate@1.3.3_6aed83acac23b98e2a1dd4f13e5bd8d0/node_modules/@nkzw/fate/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/@nkzw+fate@1.3.3_6aed83acac23b98e2a1dd4f13e5bd8d0/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/@nkzw+fate@1.3.3_6aed83acac23b98e2a1dd4f13e5bd8d0/node_modules/@nkzw/fate/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/@nkzw+fate@1.3.3_6aed83acac23b98e2a1dd4f13e5bd8d0/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/@nkzw+fate@1.3.3_6aed83acac23b98e2a1dd4f13e5bd8d0/node_modules/@nkzw/fate/lib/cli.mjs" "$@"
19
+ else
20
+ exec node "$basedir/../../../node_modules/.pnpm/@nkzw+fate@1.3.3_6aed83acac23b98e2a1dd4f13e5bd8d0/node_modules/@nkzw/fate/lib/cli.mjs" "$@"
21
+ fi
22
+ # cmd-shim-target=/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/@nkzw+fate@1.3.3_6aed83acac23b98e2a1dd4f13e5bd8d0/node_modules/@nkzw/fate/lib/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/@trpc+server@11.18.0_typescript@7.0.2/node_modules/@trpc/server/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/@trpc+server@11.18.0_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/@trpc+server@11.18.0_typescript@7.0.2/node_modules/@trpc/server/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/@trpc+server@11.18.0_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/@trpc+server@11.18.0_typescript@7.0.2/node_modules/@trpc/server/bin/intent.js" "$@"
19
+ else
20
+ exec node "$basedir/../../../node_modules/.pnpm/@trpc+server@11.18.0_typescript@7.0.2/node_modules/@trpc/server/bin/intent.js" "$@"
21
+ fi
22
+ # cmd-shim-target=/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/@trpc+server@11.18.0_typescript@7.0.2/node_modules/@trpc/server/bin/intent.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/jiti@2.7.0/node_modules/jiti/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/jiti@2.7.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/jiti@2.7.0/node_modules/jiti/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/jiti@2.7.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/jiti@2.7.0/node_modules/jiti/lib/jiti-cli.mjs" "$@"
19
+ else
20
+ exec node "$basedir/../../../node_modules/.pnpm/jiti@2.7.0/node_modules/jiti/lib/jiti-cli.mjs" "$@"
21
+ fi
22
+ # cmd-shim-target=/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/jiti@2.7.0/node_modules/jiti/lib/jiti-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/@vercel+nft@1.11.0/node_modules/@vercel/nft/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/@vercel+nft@1.11.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/@vercel+nft@1.11.0/node_modules/@vercel/nft/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/@vercel+nft@1.11.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/@vercel+nft@1.11.0/node_modules/@vercel/nft/out/cli.js" "$@"
19
+ else
20
+ exec node "$basedir/../../../node_modules/.pnpm/@vercel+nft@1.11.0/node_modules/@vercel/nft/out/cli.js" "$@"
21
+ fi
22
+ # cmd-shim-target=/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/@vercel+nft@1.11.0/node_modules/@vercel/nft/out/cli.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/nodemon@3.1.14/node_modules/nodemon/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/nodemon@3.1.14/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/nodemon@3.1.14/node_modules/nodemon/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/nodemon@3.1.14/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/nodemon@3.1.14/node_modules/nodemon/bin/nodemon.js" "$@"
19
+ else
20
+ exec node "$basedir/../../../node_modules/.pnpm/nodemon@3.1.14/node_modules/nodemon/bin/nodemon.js" "$@"
21
+ fi
22
+ # cmd-shim-target=/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/nodemon@3.1.14/node_modules/nodemon/bin/nodemon.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/oxfmt@0.65.0_vite-plus@0.3.0_@types+node@26.4.0_@voidzero-dev+vite-plus-core@0.3.0_@typ_105f01627e9c3d16c446f66bc685806c/node_modules/oxfmt/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/oxfmt@0.65.0_vite-plus@0.3.0_@types+node@26.4.0_@voidzero-dev+vite-plus-core@0.3.0_@typ_105f01627e9c3d16c446f66bc685806c/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/oxfmt@0.65.0_vite-plus@0.3.0_@types+node@26.4.0_@voidzero-dev+vite-plus-core@0.3.0_@typ_105f01627e9c3d16c446f66bc685806c/node_modules/oxfmt/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/oxfmt@0.65.0_vite-plus@0.3.0_@types+node@26.4.0_@voidzero-dev+vite-plus-core@0.3.0_@typ_105f01627e9c3d16c446f66bc685806c/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/oxfmt@0.65.0_vite-plus@0.3.0_@types+node@26.4.0_@voidzero-dev+vite-plus-core@0.3.0_@typ_105f01627e9c3d16c446f66bc685806c/node_modules/oxfmt/bin/oxfmt" "$@"
19
+ else
20
+ exec node "$basedir/../../../node_modules/.pnpm/oxfmt@0.65.0_vite-plus@0.3.0_@types+node@26.4.0_@voidzero-dev+vite-plus-core@0.3.0_@typ_105f01627e9c3d16c446f66bc685806c/node_modules/oxfmt/bin/oxfmt" "$@"
21
+ fi
22
+ # cmd-shim-target=/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/oxfmt@0.65.0_vite-plus@0.3.0_@types+node@26.4.0_@voidzero-dev+vite-plus-core@0.3.0_@typ_105f01627e9c3d16c446f66bc685806c/node_modules/oxfmt/bin/oxfmt
@@ -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@1.79.0_oxlint-tsgolint@7.0.2001_vite-plus@0.3.0_@types+node@26.4.0_@voidzero-dev_51f4babab8c4376ca6bfd3bc638d665e/node_modules/oxlint/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/oxlint@1.79.0_oxlint-tsgolint@7.0.2001_vite-plus@0.3.0_@types+node@26.4.0_@voidzero-dev_51f4babab8c4376ca6bfd3bc638d665e/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@1.79.0_oxlint-tsgolint@7.0.2001_vite-plus@0.3.0_@types+node@26.4.0_@voidzero-dev_51f4babab8c4376ca6bfd3bc638d665e/node_modules/oxlint/node_modules:/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/oxlint@1.79.0_oxlint-tsgolint@7.0.2001_vite-plus@0.3.0_@types+node@26.4.0_@voidzero-dev_51f4babab8c4376ca6bfd3bc638d665e/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@1.79.0_oxlint-tsgolint@7.0.2001_vite-plus@0.3.0_@types+node@26.4.0_@voidzero-dev_51f4babab8c4376ca6bfd3bc638d665e/node_modules/oxlint/bin/oxlint" "$@"
19
+ else
20
+ exec node "$basedir/../../../node_modules/.pnpm/oxlint@1.79.0_oxlint-tsgolint@7.0.2001_vite-plus@0.3.0_@types+node@26.4.0_@voidzero-dev_51f4babab8c4376ca6bfd3bc638d665e/node_modules/oxlint/bin/oxlint" "$@"
21
+ fi
22
+ # cmd-shim-target=/Users/cpojer/Projects/fate/packages/create-fate/templates/fate/graphql/node_modules/.pnpm/oxlint@1.79.0_oxlint-tsgolint@7.0.2001_vite-plus@0.3.0_@types+node@26.4.0_@voidzero-dev_51f4babab8c4376ca6bfd3bc638d665e/node_modules/oxlint/bin/oxlint