@batijs/cli 0.0.596 → 0.0.598

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 (92) hide show
  1. package/dist/boilerplates/@batijs/auth0/files/$.env.js +1 -1
  2. package/dist/boilerplates/@batijs/auth0/files/$TODO.md.js +1 -1
  3. package/dist/boilerplates/@batijs/auth0/files/$wrangler.jsonc.js +1 -1
  4. package/dist/boilerplates/@batijs/authjs/files/$package.json.js +2 -2
  5. package/dist/boilerplates/@batijs/aws/files/$README.md.js +1 -1
  6. package/dist/boilerplates/@batijs/aws/files/$TODO.md.js +1 -1
  7. package/dist/boilerplates/@batijs/aws/files/$package.json.js +2 -2
  8. package/dist/boilerplates/@batijs/aws/files/$tsconfig.json.js +1 -1
  9. package/dist/boilerplates/@batijs/biome/files/$package.json.js +2 -2
  10. package/dist/boilerplates/@batijs/cloudflare/files/$TODO.md.js +1 -1
  11. package/dist/boilerplates/@batijs/cloudflare/files/$package.json.js +3 -3
  12. package/dist/boilerplates/@batijs/cloudflare/files/$tsconfig.json.js +1 -1
  13. package/dist/boilerplates/@batijs/cloudflare/files/wrangler.jsonc +1 -1
  14. package/dist/boilerplates/@batijs/compiled/files/$package.json.js +2 -2
  15. package/dist/boilerplates/@batijs/compiled/files/$vite.config.ts.js +1 -1
  16. package/dist/boilerplates/@batijs/d1/files/$TODO.md.js +1 -1
  17. package/dist/boilerplates/@batijs/d1/files/$package.json.js +3 -3
  18. package/dist/boilerplates/@batijs/d1/files/$wrangler.jsonc.js +1 -1
  19. package/dist/boilerplates/@batijs/d1-kysely/files/$package.json.js +2 -2
  20. package/dist/boilerplates/@batijs/d1-sqlite/files/$package.json.js +2 -2
  21. package/dist/boilerplates/@batijs/drizzle/files/$.env.js +1 -1
  22. package/dist/boilerplates/@batijs/drizzle/files/$TODO.md.js +1 -1
  23. package/dist/boilerplates/@batijs/drizzle/files/$package.json.js +2 -2
  24. package/dist/boilerplates/@batijs/drizzle/files/database/drizzle/queries/todos.ts +8 -5
  25. package/dist/boilerplates/@batijs/drizzle/types/database/drizzle/queries/todos.d.ts +2 -2
  26. package/dist/boilerplates/@batijs/eslint/files/$package.json.js +1 -1
  27. package/dist/boilerplates/@batijs/eslint/files/eslint.config.ts +2 -0
  28. package/dist/boilerplates/@batijs/express/files/$package.json.js +2 -2
  29. package/dist/boilerplates/@batijs/fastify/files/$package.json.js +2 -2
  30. package/dist/boilerplates/@batijs/google-analytics/files/$.env.js +1 -1
  31. package/dist/boilerplates/@batijs/h3/files/$package.json.js +2 -2
  32. package/dist/boilerplates/@batijs/hono/files/$package.json.js +2 -2
  33. package/dist/boilerplates/@batijs/kysely/files/$.env.js +1 -1
  34. package/dist/boilerplates/@batijs/kysely/files/$TODO.md.js +1 -1
  35. package/dist/boilerplates/@batijs/kysely/files/$package.json.js +2 -2
  36. package/dist/boilerplates/@batijs/mantine/files/$README.md.js +1 -1
  37. package/dist/boilerplates/@batijs/mantine/files/$package.json.js +2 -2
  38. package/dist/boilerplates/@batijs/oxlint/files/$package.json.js +3 -3
  39. package/dist/boilerplates/@batijs/photon/files/$README.md.js +1 -1
  40. package/dist/boilerplates/@batijs/photon/files/$package.json.js +2 -2
  41. package/dist/boilerplates/@batijs/plausible.io/files/$TODO.md.js +1 -1
  42. package/dist/boilerplates/@batijs/pnpm/files/$pnpm-workspace.yaml.js +1 -1
  43. package/dist/boilerplates/@batijs/prettier/files/$package.json.js +2 -2
  44. package/dist/boilerplates/@batijs/prisma/files/$.env.js +1 -1
  45. package/dist/boilerplates/@batijs/prisma/files/$TODO.md.js +1 -1
  46. package/dist/boilerplates/@batijs/prisma/files/$package.json.js +2 -2
  47. package/dist/boilerplates/@batijs/react/files/$README.md.js +1 -1
  48. package/dist/boilerplates/@batijs/react/files/$package.json.js +2 -2
  49. package/dist/boilerplates/@batijs/react/files/$tsconfig.json.js +1 -1
  50. package/dist/boilerplates/@batijs/react/files/$vite.config.ts.js +1 -1
  51. package/dist/boilerplates/@batijs/react-sentry/files/$package.json.js +2 -2
  52. package/dist/boilerplates/@batijs/sentry/files/$.env.js +1 -1
  53. package/dist/boilerplates/@batijs/sentry/files/$README.md.js +1 -1
  54. package/dist/boilerplates/@batijs/sentry/files/$TODO.md.js +1 -1
  55. package/dist/boilerplates/@batijs/sentry/files/$package.json.js +2 -2
  56. package/dist/boilerplates/@batijs/sentry/files/$vite.config.ts.js +1 -1
  57. package/dist/boilerplates/@batijs/sentry/files/pages/$+client.ts.js +1 -1
  58. package/dist/boilerplates/@batijs/shadcn-ui/files/$README.md.js +1 -1
  59. package/dist/boilerplates/@batijs/shadcn-ui/files/$package.json.js +2 -2
  60. package/dist/boilerplates/@batijs/shadcn-ui/files/$tsconfig.json.js +1 -1
  61. package/dist/boilerplates/@batijs/shadcn-ui/files/$vite.config.ts.js +1 -1
  62. package/dist/boilerplates/@batijs/shared/files/$README.md.js +1 -1
  63. package/dist/boilerplates/@batijs/shared/files/$TODO.md.js +1 -1
  64. package/dist/boilerplates/@batijs/shared-server/files/$package.json.js +2 -2
  65. package/dist/boilerplates/@batijs/solid/files/$README.md.js +1 -1
  66. package/dist/boilerplates/@batijs/solid/files/$package.json.js +2 -2
  67. package/dist/boilerplates/@batijs/solid/files/$tsconfig.json.js +1 -1
  68. package/dist/boilerplates/@batijs/solid/files/$vite.config.ts.js +1 -1
  69. package/dist/boilerplates/@batijs/solid-sentry/files/$package.json.js +2 -2
  70. package/dist/boilerplates/@batijs/sqlite/files/$.env.js +1 -1
  71. package/dist/boilerplates/@batijs/sqlite/files/$TODO.md.js +1 -1
  72. package/dist/boilerplates/@batijs/sqlite/files/$package.json.js +2 -2
  73. package/dist/boilerplates/@batijs/storybook/bati.config.js +28 -0
  74. package/dist/boilerplates/@batijs/storybook/hooks/after.js +26 -0
  75. package/dist/boilerplates/@batijs/tailwindcss/files/$package.json.js +2 -2
  76. package/dist/boilerplates/@batijs/tailwindcss/files/$vite.config.ts.js +1 -1
  77. package/dist/boilerplates/@batijs/telefunc/files/$package.json.js +2 -2
  78. package/dist/boilerplates/@batijs/telefunc/files/$vite.config.ts.js +1 -1
  79. package/dist/boilerplates/@batijs/trpc/files/$package.json.js +2 -2
  80. package/dist/boilerplates/@batijs/trpc/types/trpc/client.d.ts +2 -2
  81. package/dist/boilerplates/@batijs/ts-rest/files/$package.json.js +2 -2
  82. package/dist/boilerplates/@batijs/vercel/files/$package.json.js +2 -2
  83. package/dist/boilerplates/@batijs/vercel/files/pages/$+config.ts.js +1 -1
  84. package/dist/boilerplates/@batijs/vue/files/$README.md.js +1 -1
  85. package/dist/boilerplates/@batijs/vue/files/$package.json.js +2 -2
  86. package/dist/boilerplates/@batijs/vue/files/$tsconfig.json.js +1 -1
  87. package/dist/boilerplates/@batijs/vue/files/$vite.config.ts.js +1 -1
  88. package/dist/boilerplates/@batijs/vue-sentry/files/$package.json.js +2 -2
  89. package/dist/boilerplates/boilerplates.json +6 -0
  90. package/dist/{chunk-XZYTALZZ.js → chunk-CYY44RJP.js} +2 -2
  91. package/dist/index.js +64 -31
  92. package/package.json +6 -6
package/dist/index.js CHANGED
@@ -10,7 +10,7 @@ import {
10
10
  export_which,
11
11
  hhe,
12
12
  lUs
13
- } from "./chunk-XZYTALZZ.js";
13
+ } from "./chunk-CYY44RJP.js";
14
14
  import "./chunk-IAWYWZSL.js";
15
15
  import {
16
16
  __commonJS,
@@ -593,7 +593,7 @@ Please report this issue to https://github.com/vikejs/bati`
593
593
  }
594
594
  }
595
595
 
596
- // ../features/dist/chunk-E7UTPAVH.js
596
+ // ../features/dist/chunk-C6ZJJWQB.js
597
597
  var features = [
598
598
  // Vike
599
599
  {
@@ -1143,6 +1143,22 @@ var features = [
1143
1143
  image: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAuMDAgMC4wMCAxMTQ2LjAwIDE3ODMuMDAiPgo8cGF0aCBmaWxsPSIjNzE1MmExIiBkPSIKICBNIDM3Mi4yNCAxMjc5Ljc3CiAgUSAzNDYuNTQgMTI5OC44OCAzMjIuMTggMTMxOS42OAogIEMgMjkyLjkwIDEzNDQuNjYgMjYzLjgwIDEzNjkuNzYgMjM0LjEzIDEzOTQuMjkKICBDIDIwMi45MyAxNDIwLjA5IDE3NS40MyAxNDU1LjExIDEzMC4zNCAxNDQ3LjYyCiAgQyAxMDEuNDYgMTQ0Mi44MyA3NS4xMCAxNDIzLjM2IDY4LjE3IDEzOTMuOTYKICBDIDQ3LjM2IDEzMDUuNzggMjYuNDMgMTIxNy42MiA2LjQ0IDExMjkuMjUKICBRIDMuNjAgMTExNi42OCAyLjU1IDExMDkuNjQKICBDIC04Ljg3IDEwMzIuNDMgMjMuMTAgOTU1LjU1IDgzLjQ3IDkwNi44OQogIFEgMTM0Ljk3IDg2NS4zOCAxODcuNTMgODI1LjIxCiAgQyAxOTEuNDkgODIyLjE4IDE5My4yMSA4MTkuMDYgMTkyLjkxIDgxNC4yNQogIEMgMTc5LjY3IDYwMy40MyAyNDguMjYgMzk5LjYwIDM2MS40NiAyMjQuMjAKICBDIDM4My43MiAxODkuNjkgNDA4LjY2IDE1Ni40NyA0MzUuMDcgMTIzLjU3CiAgQyA0NzMuODUgNzUuMjQgNTE3LjU1IDMyLjM2IDU3MC42NiAwLjYwCiAgQSAwLjgxIDAuODAgLTQ1LjMgMCAxIDU3MS41MCAwLjU5CiAgQyA2NDguNjkgNDYuMTcgNzA1LjA0IDExNi4wMCA3NTYuNzcgMTg4LjU0CiAgUSA3NjIuODYgMTk3LjA3IDc2OC4yMSAyMDQuOTUKICBDIDg4OS44MiAzODQuMTEgOTY0LjI0IDYwMC4xNyA5NDkuNTkgODE4LjczCiAgQSAwLjk5IDAuOTggMjEuNSAwIDAgOTQ5Ljk1IDgxOS41NQogIEMgOTkyLjA4IDg1My4zOSAxMDM4LjgyIDg4OC43OSAxMDcyLjIxIDkxNy4wMwogIFEgMTA4OC4xMCA5MzAuNDYgMTEwMy42MyA5NTIuMzQKICBRIDExNDYuNzYgMTAxMy4wOSAxMTQ1LjI5IDEwODcuMjQKICBDIDExNDUuMDIgMTEwMS4wNiAxMTQyLjgyIDExMTQuMTUgMTEzOS42OCAxMTI5LjQ4CiAgQyAxMTIxLjQzIDEyMTguNzMgMTEwMi4yMSAxMzE1LjQ2IDEwODMuOTMgMTM5Ni45MwogIEMgMTA3My41NCAxNDQzLjIwIDEwMTMuNzMgMTQ2My4wMiA5NzQuNjAgMTQ0Mi4xMwogIFEgOTY4LjY2IDE0MzguOTYgOTU4LjcwIDE0MzAuODMKICBDIDg5Ni40OCAxMzc5Ljk2IDgzNC42MiAxMzI4LjcwIDc3Mi40OSAxMjc3Ljg5CiAgQSAwLjg1IDAuODQgNDMuMyAwIDAgNzcxLjM4IDEyNzcuOTIKICBDIDcxOS4xMSAxMzI1LjgyIDY1Mi4zMyAxMzU0Ljg4IDU4MS40NSAxMzU3LjY4CiAgQyA1MDUuMTMgMTM2MC42OSA0MzAuMjkgMTMzMC43MyAzNzMuMTQgMTI3OS44MQogIEEgMC43MSAwLjcxIDAuMCAwIDAgMzcyLjI0IDEyNzkuNzcKICBaCiAgTSA0MDkuOTcgNTkyLjcwCiAgQyA0MjEuNDggNjg1LjIxIDUwNy45OSA3NDIuODggNTk5LjI0IDcyOC40NgogIEMgNjM1LjgyIDcyMi42OCA2NjguMDcgNzA1LjQ4IDY5Mi45NCA2NzguNDQKICBDIDc1MC40OCA2MTUuODUgNzQ2LjQ4IDUyMC4yNiA2ODQuMTkgNDYyLjU1CiAgUSA2MzkuMjEgNDIwLjg5IDU3Ni4wMSA0MTguNjEKICBDIDQ4MC42NyA0MTUuMTggMzk3Ljg4IDQ5NS40NSA0MDkuOTcgNTkyLjcwCiAgWiIKLz4KPGVsbGlwc2UgZmlsbD0iIzcxNTJhMSIgY3g9IjAuMDAiIGN5PSIwLjAwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1NjkuODYsNTc2LjU1KSByb3RhdGUoLTAuMSkiIHJ4PSI3OS41MCIgcnk9Ijc2LjQ1Ii8+CjxwYXRoIGZpbGw9IiM3MTUyYTEiIGQ9IgogIE0gNDYyLjgzIDE2MTkuNzkKICBBIDAuNzAgMC43MCAwLjAgMCAwIDQ2MS43MiAxNjE5LjYyCiAgUSA0NDguMTIgMTYzMy4wMCA0MzQuMzYgMTY0Ni4zNgogIFEgNDIwLjc0IDE2NTkuNTcgNDEzLjQ0IDE2NjUuMTkKICBDIDM5NC4yMCAxNjc5Ljk5IDM1OS43NCAxNjY3LjIxIDM1NC43NyAxNjQzLjI1CiAgUSAzNTQuMDYgMTYzOS44MyAzNTQuMDIgMTYzMy4yMQogIFEgMzUzLjUwIDE1NTIuNTQgMzU0LjA4IDE0NzEuODcKICBRIDM1NC4xNCAxNDYyLjk2IDM1NS41NiAxNDU4LjQzCiAgUSAzNTguMzEgMTQ0OS42OSAzNjUuMTYgMTQ0My45MAogIFEgMzg3LjA4IDE0MjUuMzggNDEyLjEyIDE0MzguMDgKICBDIDUwOS4xMSAxNDg3LjI5IDYzMi4zMyAxNDg2LjE0IDcyOS41MyAxNDM4LjUzCiAgUSA3MzYuNjkgMTQzNS4wMiA3NDEuMDEgMTQzNC4xMAogIEMgNzU4Ljk2IDE0MzAuMjcgNzgwLjcyIDE0MzkuNTggNzg2LjY1IDE0NTguMTQKICBRIDc4OC4yMCAxNDYzLjAwIDc4OC4yOCAxNDc0LjUzCiAgUSA3ODkuMDMgMTU5Mi4yMyA3ODguMzAgMTYzOS43NQogIFEgNzg4LjI2IDE2NDIuNjIgNzg2LjQ4IDE2NDcuMzkKICBDIDc3OS4xOCAxNjY3LjA2IDc1Mi4wNSAxNjc3LjQwIDczMy4zNyAxNjY3Ljc4CiAgQyA3MjguMTkgMTY2NS4xMSA3MjEuNTYgMTY1OS4wMCA3MTcuNjkgMTY1NS4zMQogIFEgNjk4Ljg2IDE2MzcuMzkgNjgwLjI4IDE2MTkuMzYKICBBIDAuNTAgMC41MCAwLjAgMCAwIDY3OS40OSAxNjE5LjQ5CiAgQyA2NTUuODUgMTY2NC42MSA2MzIuODkgMTcxMC4yMCA2MDguNzcgMTc1NS4xMwogIFEgNjAyLjU0IDE3NjYuNzQgNjAyLjM3IDE3NjYuOTkKICBDIDU5MC4yNCAxNzg1LjQzIDU1OS41NiAxNzg2LjkyIDU0NC4yNSAxNzcxLjg5CiAgUSA1NDAuODcgMTc2OC41OCA1MzYuNDIgMTc2MC4yNwogIEMgNTExLjQ0IDE3MTMuNjUgNDg3LjU5IDE2NjYuNDQgNDYyLjgzIDE2MTkuNzkKICBaIgovPgo8L3N2Zz4K",
1144
1144
  url: "https://logrocket.com",
1145
1145
  disabled: true
1146
+ },
1147
+ // Tooling
1148
+ {
1149
+ category: "Tooling",
1150
+ label: "Storybook",
1151
+ flag: "storybook",
1152
+ image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDY0IDY0Ij48dGl0bGU+aWNvbi1zdG9yeWJvb2stc3F1YXJlPC90aXRsZT48ZGVmcz48cGF0aCBpZD0icGF0aC0xIiBkPSJNMS45NDY0OTk1NSw1Ny4xMzA5NDcyIEwwLjAwMjI1OTczMTE2LDUuOTU0NzY2NjMgQy0wLjA2MTk1MDg4MzMsNC4yNjQ2MTgxNCAxLjI0OTkyMjg4LDIuODMyMjM2OTcgMi45NTg3MTUxOSwyLjcyNjczNDE4IEw0Ny4wMjI2NTM4LDAuMDA2MTc2Mjg0OTEgQzQ4Ljc2MjAwMDUsLTAuMTAxMjEyOTYgNTAuMjYwMTQ1OCwxLjIwNDYyOTggNTAuMzY4ODU1LDIuOTIyODU3NzEgQzUwLjM3Mjk1MDUsMi45ODc1OTM5MSA1MC4zNzUsMy4wNTI0NDA2MyA1MC4zNzUsMy4xMTczMDMxNSBMNTAuMzc1LDU4Ljg4MjgwMjggQzUwLjM3NSw2MC42MDQzODMxIDQ4Ljk2MjIyOTYsNjIgNDcuMjE5NDg5NCw2MiBDNDcuMTcyMjc3Niw2MiA0Ny4xMjUwNzIxLDYxLjk5ODk1MzQgNDcuMDc3OTA4LDYxLjk5Njg2MDYgTDQuOTU4MjA5MDQsNjAuMTI4MDk5NyBDMy4zMTc4MTMzMyw2MC4wNTUzMTg5IDIuMDA4MDgyMDMsNTguNzUxOTE4IDEuOTQ2NDk5NTUsNTcuMTMwOTQ3MiBaIi8+PC9kZWZzPjxnIGlkPSJpY29uLXN0b3J5Ym9vay1zcXVhcmUiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiPjxnIGlkPSJpY29uIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3LjAwMDAwMCwgMS4wMDAwMDApIj48cGF0aCBpZD0iQ29tYmluZWQtU2hhcGUiIGZpbGw9IiNGRjQ3ODUiIGZpbGwtcnVsZT0ibm9uemVybyIgZD0iTTUwLjM2ODg1NSwyLjkyMjg1NzcxIEM1MC4zNzI5NTA1LDIuOTg3NTkzOTEgNTAuMzc1LDMuMDUyNDQwNjMgNTAuMzc1LDMuMTE3MzAzMTUgTDUwLjM3NSw1OC44ODI4MDI4IEM1MC4zNzUsNjAuNjA0MzgzMSA0OC45NjIyMjk2LDYyIDQ3LjIxOTQ4OTQsNjIgQzQ3LjE3MjI3NzYsNjIgNDcuMTI1MDcyMSw2MS45OTg5NTM0IDQ3LjA3NzkwOCw2MS45OTY4NjA2IEw0Ljk1ODIwOTA0LDYwLjEyODA5OTcgQzMuMzE3ODEzMzMsNjAuMDU1MzE4OSAyLjAwODA4MjAzLDU4Ljc1MTkxOCAxLjk0NjQ5OTU1LDU3LjEzMDk0NzIgTDAuMDAyMjU5NzMxMTYsNS45NTQ3NjY2MyBDLTAuMDYxOTUwODgzMyw0LjI2NDYxODE0IDEuMjQ5OTIyODgsMi44MzIyMzY5NyAyLjk1ODcxNTE5LDIuNzI2NzM0MTggTDM3LjQ5OSwwLjU5NCBMMzcuMTk4MTMyNCw3LjYyMDc4NzY2IEMzNy4xOTQ3MjI3LDcuNzAxNzk2NjQgMzcuMjEyODIyNCw3Ljc4MTc4NzMxIDM3LjI0OTk4NjksNy44NTMwNTUyNSBMMzcuMjkzNDE1OCw3LjkyMTEzMDI2IEMzNy40NTA1Mjk2LDguMTI1NzM2MzcgMzcuNzQ1ODAwMiw4LjE2NTc4Mjg4IDM3Ljk1MjkyMDksOC4wMTA1NzY3IEwzNy45NTI5MjA5LDguMDEwNTc2NyBMNDAuNzE1ODE5NSw1Ljk0MDE5Njc4IEw0My4wNDkzOTY1LDcuNzU2MTg1MzcgQzQzLjEzNjgzODgsNy44MjQyMzI3OSA0My4yNDU4NjM0LDcuODU5NDY1ODQgNDMuMzU3MTEwNiw3Ljg1NTYyODEzIEM0My42MTY5MjEzLDcuODQ2NjY1NTMgNDMuODIwMTg0NCw3LjYzMTMzOTEgNDMuODExMTExNSw3LjM3NDY4MzE2IEw0My44MTExMTE1LDcuMzc0NjgzMTYgTDQzLjU1LDAuMjIgTDQ3LjAyMjY1MzgsMC4wMDYxNzYyODQ5MSBDNDguNzYyMDAwNSwtMC4xMDEyMTI5NiA1MC4yNjAxNDU4LDEuMjA0NjI5OCA1MC4zNjg4NTUsMi45MjI4NTc3MSBaIi8+PG1hc2sgaWQ9Im1hc2stMiIgZmlsbD0iI2ZmZiI+PHVzZSB4bGluazpocmVmPSIjcGF0aC0xIi8+PC9tYXNrPjxwYXRoIGlkPSJTIiBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik0yOC45MzM4Mzc0LDIzLjQ4MTQzMzEgQzI4LjkzMzgzNzQsMjQuNjk0ODAyOCAzNy4xMzAwNTExLDI0LjExMzI2NjQgMzguMjMwMzIwNiwyMy4yNjA5NTc4IEMzOC4yMzAzMjA2LDE0Ljk5ODE5OTUgMzMuNzg0MTc2NCwxMC42NTYyNSAyNS42NDI1MzU5LDEwLjY1NjI1IEMxNy41MDA4OTUyLDEwLjY1NjI1IDEyLjkzOTI2NjgsMTUuMDY1NzU0MiAxMi45MzkyNjY4LDIxLjY4MDAxNCBDMTIuOTM5MjY2OCwzMy4xOTk4NDk5IDI4LjUyOTY0MjQsMzMuNDIwMzI1MSAyOC41Mjk2NDI0LDM5LjcwMzg3MiBDMjguNTI5NjQyNCw0MS40Njc2NzQ1IDI3LjY2MzUxMDUsNDIuNTE0OTMyMyAyNS43NTgwMjAxLDQyLjUxNDkzMjMgQzIzLjI3NTEwODQsNDIuNTE0OTMyMyAyMi4yOTM0OTIyLDQxLjI1MDQ2OTIgMjIuNDA4OTc2NSwzNi45NTEyMDA0IEMyMi40MDg5NzY1LDM2LjAxODUzMDQgMTIuOTM5MjY2OCwzNS43Mjc3NjIxIDEyLjY1MDU1NjEsMzYuOTUxMjAwNCBDMTEuOTE1MzgxMiw0Ny4zNjk4NTkxIDE4LjQyNDc2OTMsNTAuMzc1IDI1Ljg3MzUwNDQsNTAuMzc1IEMzMy4wOTEyNzA5LDUwLjM3NSAzOC43NSw0Ni41Mzg2MDY5IDM4Ljc1LDM5LjU5MzYzNDEgQzM4Ljc1LDI3LjI0NzAxNTkgMjIuOTI4NjU1NiwyNy41Nzc3Mjg5IDIyLjkyODY1NTYsMjEuNDU5NTM4NyBDMjIuOTI4NjU1NiwxOC45NzkxOTEyIDI0Ljc3NjQwMzksMTguNjQ4NDc4MyAyNS44NzM1MDQ0LDE4LjY0ODQ3ODMgQzI3LjAyODM0NywxOC42NDg0NzgzIDI5LjEwNzA2MzgsMTguODUxNDUxMyAyOC45MzM4Mzc0LDIzLjQ4MTQzMzEgWiIgbWFzaz0idXJsKCNtYXNrLTIpIi8+PHBhdGggaWQ9ImJvb2ttYXJrIiBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik0zNi44MTI5MTY5LDcuMjc0MDYxMDYgTDM3LjEyMTUyMzMsMC4zNjY4MTQ5NzQgTDQzLjMyNjE1MDMsMCBMNDMuNTkzNDUwMyw3LjAzMjIyNjUzIEM0My42MDI3NTMxLDcuMjg0NDI5NDMgNDMuMzk0MzM5OSw3LjQ5NjAxOTkxIDQzLjEyNzk0NjQsNy41MDQ4MjcgQzQzLjAxMzg4MDQsNy41MDg1OTgxMiA0Mi45MDIwOTM1LDcuNDczOTc2MzcgNDIuODEyNDM1Niw3LjQwNzEwOTU5IEw0MC40MTk3MzIzLDUuNjIyNjI4ODEgTDM3LjU4NjgyOTYsNy42NTcwODcxOCBDMzcuMzc0NDYxMSw3LjgwOTYwMDUgMzcuMDcxNzA5Miw3Ljc3MDI0ODggMzYuOTEwNjE0Niw3LjU2OTE5MjY2IEMzNi44NDI4MDE4LDcuNDg0NTU4MDQgMzYuODA4MjU1NSw3LjM4MDE5OSAzNi44MTI5MTY5LDcuMjc0MDYxMDYgWiIgbWFzaz0idXJsKCNtYXNrLTIpIi8+PC9nPjwvZz48L3N2Zz4=",
1153
+ url: "https://storybook.js.org",
1154
+ tagline: "Build, test & document components",
1155
+ repo: "storybookjs/storybook",
1156
+ links: [
1157
+ {
1158
+ label: "Docs",
1159
+ href: "https://storybook.js.org/docs"
1160
+ }
1161
+ ]
1146
1162
  }
1147
1163
  ];
1148
1164
  var flags = features.map((f) => f.flag);
@@ -1189,6 +1205,7 @@ var RulesMessage = /* @__PURE__ */ ((RulesMessage2) => {
1189
1205
  RulesMessage2[RulesMessage2["ERROR_SHADCN_R_REACT"] = 8] = "ERROR_SHADCN_R_REACT";
1190
1206
  RulesMessage2[RulesMessage2["WARN_SHADCN_R_TAILWINDCSS"] = 9] = "WARN_SHADCN_R_TAILWINDCSS";
1191
1207
  RulesMessage2[RulesMessage2["INFO_STACKBLITZ_COMPAT"] = 10] = "INFO_STACKBLITZ_COMPAT";
1208
+ RulesMessage2[RulesMessage2["ERROR_STORYBOOK_R_UI_FRAMEWORK"] = 11] = "ERROR_STORYBOOK_R_UI_FRAMEWORK";
1192
1209
  return RulesMessage2;
1193
1210
  })(RulesMessage || {});
1194
1211
  function requires(message, ifPresent, mustAlsoInclude) {
@@ -1252,6 +1269,12 @@ var rules_default = [
1252
1269
  }),
1253
1270
  filter(10, (fts) => {
1254
1271
  return fts.has("drizzle") || fts.has("sqlite") || fts.has("kysely") || fts.has("cloudflare");
1272
+ }),
1273
+ filter(11, (fts) => {
1274
+ if (fts.has("storybook")) {
1275
+ return !fts.has("react") && !fts.has("vue") && !fts.has("solid");
1276
+ }
1277
+ return false;
1255
1278
  })
1256
1279
  ];
1257
1280
  function execRules(fts, rulesMessages2) {
@@ -1270,7 +1293,7 @@ function execRules(fts, rulesMessages2) {
1270
1293
  return messages;
1271
1294
  }
1272
1295
 
1273
- // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.30/node_modules/@inquirer/core/dist/lib/key.js
1296
+ // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.37/node_modules/@inquirer/core/dist/lib/key.js
1274
1297
  var isUpKey = (key, keybindings = []) => (
1275
1298
  // The up key
1276
1299
  key.name === "up" || // Vim keybinding: hjkl keys map to left/down/up/right
@@ -1287,7 +1310,7 @@ var isBackspaceKey = (key) => key.name === "backspace";
1287
1310
  var isNumberKey = (key) => "1234567890".includes(key.name);
1288
1311
  var isEnterKey = (key) => key.name === "enter" || key.name === "return";
1289
1312
 
1290
- // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.30/node_modules/@inquirer/core/dist/lib/errors.js
1313
+ // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.37/node_modules/@inquirer/core/dist/lib/errors.js
1291
1314
  var AbortPromptError = class extends Error {
1292
1315
  name = "AbortPromptError";
1293
1316
  message = "Prompt was aborted";
@@ -1310,10 +1333,10 @@ var ValidationError = class extends Error {
1310
1333
  name = "ValidationError";
1311
1334
  };
1312
1335
 
1313
- // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.30/node_modules/@inquirer/core/dist/lib/use-state.js
1336
+ // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.37/node_modules/@inquirer/core/dist/lib/use-state.js
1314
1337
  import { AsyncResource as AsyncResource2 } from "async_hooks";
1315
1338
 
1316
- // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.30/node_modules/@inquirer/core/dist/lib/hook-engine.js
1339
+ // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.37/node_modules/@inquirer/core/dist/lib/hook-engine.js
1317
1340
  import { AsyncLocalStorage, AsyncResource } from "async_hooks";
1318
1341
  var hookStorage = new AsyncLocalStorage();
1319
1342
  function createStore(rl) {
@@ -1419,7 +1442,7 @@ var effectScheduler = {
1419
1442
  }
1420
1443
  };
1421
1444
 
1422
- // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.30/node_modules/@inquirer/core/dist/lib/use-state.js
1445
+ // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.37/node_modules/@inquirer/core/dist/lib/use-state.js
1423
1446
  function useState(defaultValue) {
1424
1447
  return withPointer((pointer) => {
1425
1448
  const setState = AsyncResource2.bind(function setState2(newValue) {
@@ -1437,7 +1460,7 @@ function useState(defaultValue) {
1437
1460
  });
1438
1461
  }
1439
1462
 
1440
- // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.30/node_modules/@inquirer/core/dist/lib/use-effect.js
1463
+ // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.37/node_modules/@inquirer/core/dist/lib/use-effect.js
1441
1464
  function useEffect(cb, depArray) {
1442
1465
  withPointer((pointer) => {
1443
1466
  const oldDeps = pointer.get();
@@ -1449,7 +1472,7 @@ function useEffect(cb, depArray) {
1449
1472
  });
1450
1473
  }
1451
1474
 
1452
- // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.30/node_modules/@inquirer/core/dist/lib/theme.js
1475
+ // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.37/node_modules/@inquirer/core/dist/lib/theme.js
1453
1476
  import { styleText } from "util";
1454
1477
 
1455
1478
  // ../../node_modules/.pnpm/@inquirer+figures@2.0.3/node_modules/@inquirer/figures/dist/index.js
@@ -1744,7 +1767,7 @@ var figures = shouldUseMain ? mainSymbols : fallbackSymbols;
1744
1767
  var dist_default = figures;
1745
1768
  var replacements = Object.entries(specialMainSymbols);
1746
1769
 
1747
- // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.30/node_modules/@inquirer/core/dist/lib/theme.js
1770
+ // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.37/node_modules/@inquirer/core/dist/lib/theme.js
1748
1771
  var defaultTheme = {
1749
1772
  prefix: {
1750
1773
  idle: styleText("blue", "?"),
@@ -1765,7 +1788,7 @@ var defaultTheme = {
1765
1788
  }
1766
1789
  };
1767
1790
 
1768
- // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.30/node_modules/@inquirer/core/dist/lib/make-theme.js
1791
+ // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.37/node_modules/@inquirer/core/dist/lib/make-theme.js
1769
1792
  function isPlainObject(value) {
1770
1793
  if (typeof value !== "object" || value === null)
1771
1794
  return false;
@@ -1793,7 +1816,7 @@ function makeTheme(...themes) {
1793
1816
  return deepMerge(...themesToMerge);
1794
1817
  }
1795
1818
 
1796
- // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.30/node_modules/@inquirer/core/dist/lib/use-prefix.js
1819
+ // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.37/node_modules/@inquirer/core/dist/lib/use-prefix.js
1797
1820
  function usePrefix({ status = "idle", theme }) {
1798
1821
  const [showLoader, setShowLoader] = useState(false);
1799
1822
  const [tick, setTick] = useState(0);
@@ -1824,7 +1847,7 @@ function usePrefix({ status = "idle", theme }) {
1824
1847
  return typeof prefix === "string" ? prefix : prefix[iconName] ?? prefix["idle"];
1825
1848
  }
1826
1849
 
1827
- // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.30/node_modules/@inquirer/core/dist/lib/use-memo.js
1850
+ // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.37/node_modules/@inquirer/core/dist/lib/use-memo.js
1828
1851
  function useMemo(fn, dependencies) {
1829
1852
  return withPointer((pointer) => {
1830
1853
  const prev = pointer.get();
@@ -1837,12 +1860,12 @@ function useMemo(fn, dependencies) {
1837
1860
  });
1838
1861
  }
1839
1862
 
1840
- // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.30/node_modules/@inquirer/core/dist/lib/use-ref.js
1863
+ // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.37/node_modules/@inquirer/core/dist/lib/use-ref.js
1841
1864
  function useRef(val) {
1842
1865
  return useState({ current: val })[0];
1843
1866
  }
1844
1867
 
1845
- // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.30/node_modules/@inquirer/core/dist/lib/use-keypress.js
1868
+ // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.37/node_modules/@inquirer/core/dist/lib/use-keypress.js
1846
1869
  function useKeypress(userHandler) {
1847
1870
  const signal = useRef(userHandler);
1848
1871
  signal.current = userHandler;
@@ -1861,7 +1884,7 @@ function useKeypress(userHandler) {
1861
1884
  }, []);
1862
1885
  }
1863
1886
 
1864
- // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.30/node_modules/@inquirer/core/dist/lib/utils.js
1887
+ // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.37/node_modules/@inquirer/core/dist/lib/utils.js
1865
1888
  var import_cli_width = __toESM(require_cli_width(), 1);
1866
1889
 
1867
1890
  // ../../node_modules/.pnpm/fast-string-truncated-width@3.0.3/node_modules/fast-string-truncated-width/dist/utils.js
@@ -2200,7 +2223,7 @@ function wrapAnsi(string, columns, options) {
2200
2223
  return String(string).normalize().split(CRLF_OR_LF).map((line) => exec(line, columns, options)).join("\n");
2201
2224
  }
2202
2225
 
2203
- // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.30/node_modules/@inquirer/core/dist/lib/utils.js
2226
+ // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.37/node_modules/@inquirer/core/dist/lib/utils.js
2204
2227
  function breakLines(content, width) {
2205
2228
  return content.split("\n").flatMap((line) => wrapAnsi(line, width, { trim: false, hard: true }).split("\n").map((str) => str.trimEnd())).join("\n");
2206
2229
  }
@@ -2208,7 +2231,7 @@ function readlineWidth() {
2208
2231
  return (0, import_cli_width.default)({ defaultWidth: 80, output: readline().output });
2209
2232
  }
2210
2233
 
2211
- // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.30/node_modules/@inquirer/core/dist/lib/pagination/use-pagination.js
2234
+ // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.37/node_modules/@inquirer/core/dist/lib/pagination/use-pagination.js
2212
2235
  function usePointerPosition({ active, renderedItems, pageSize, loop }) {
2213
2236
  const state = useRef({
2214
2237
  lastPointer: active,
@@ -2297,7 +2320,7 @@ function usePagination({ items, active, renderItem, pageSize, loop = true }) {
2297
2320
  return pageBuffer.filter((line) => typeof line === "string").join("\n");
2298
2321
  }
2299
2322
 
2300
- // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.30/node_modules/@inquirer/core/dist/lib/create-prompt.js
2323
+ // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.37/node_modules/@inquirer/core/dist/lib/create-prompt.js
2301
2324
  var import_mute_stream = __toESM(require_lib(), 1);
2302
2325
  import * as readline2 from "readline";
2303
2326
  import { AsyncResource as AsyncResource3 } from "async_hooks";
@@ -2553,7 +2576,7 @@ var {
2553
2576
  unload
2554
2577
  } = signalExitWrap(processOk(process3) ? new SignalExit(process3) : new SignalExitFallback());
2555
2578
 
2556
- // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.30/node_modules/@inquirer/core/dist/lib/screen-manager.js
2579
+ // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.37/node_modules/@inquirer/core/dist/lib/screen-manager.js
2557
2580
  import { stripVTControlCharacters } from "util";
2558
2581
 
2559
2582
  // ../../node_modules/.pnpm/@inquirer+ansi@2.0.3/node_modules/@inquirer/ansi/dist/index.js
@@ -2572,7 +2595,7 @@ var cursorTo = (x, y) => {
2572
2595
  var eraseLine = ESC2 + "2K";
2573
2596
  var eraseLines = (lines) => lines > 0 ? (eraseLine + cursorUp(1)).repeat(lines - 1) + eraseLine + cursorLeft : "";
2574
2597
 
2575
- // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.30/node_modules/@inquirer/core/dist/lib/screen-manager.js
2598
+ // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.37/node_modules/@inquirer/core/dist/lib/screen-manager.js
2576
2599
  var height = (content) => content.split("\n").length;
2577
2600
  var lastLine = (content) => content.split("\n").pop() ?? "";
2578
2601
  var ScreenManager = class {
@@ -2632,7 +2655,7 @@ var ScreenManager = class {
2632
2655
  }
2633
2656
  };
2634
2657
 
2635
- // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.30/node_modules/@inquirer/core/dist/lib/promise-polyfill.js
2658
+ // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.37/node_modules/@inquirer/core/dist/lib/promise-polyfill.js
2636
2659
  var PromisePolyfill = class extends Promise {
2637
2660
  // Available starting from Node 22
2638
2661
  // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/withResolvers
@@ -2647,7 +2670,7 @@ var PromisePolyfill = class extends Promise {
2647
2670
  }
2648
2671
  };
2649
2672
 
2650
- // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.30/node_modules/@inquirer/core/dist/lib/create-prompt.js
2673
+ // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.37/node_modules/@inquirer/core/dist/lib/create-prompt.js
2651
2674
  var nativeSetImmediate = globalThis.setImmediate;
2652
2675
  function getCallSites() {
2653
2676
  const _prepareStackTrace = Error.prepareStackTrace;
@@ -2743,7 +2766,7 @@ function createPrompt(view) {
2743
2766
  return prompt;
2744
2767
  }
2745
2768
 
2746
- // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.30/node_modules/@inquirer/core/dist/lib/Separator.js
2769
+ // ../../node_modules/.pnpm/@inquirer+core@11.1.5_@types+node@20.19.37/node_modules/@inquirer/core/dist/lib/Separator.js
2747
2770
  import { styleText as styleText2 } from "util";
2748
2771
  var Separator = class {
2749
2772
  separator = styleText2("dim", Array.from({ length: 15 }).join(dist_default.line));
@@ -2758,7 +2781,7 @@ var Separator = class {
2758
2781
  }
2759
2782
  };
2760
2783
 
2761
- // ../../node_modules/.pnpm/@inquirer+select@5.1.0_@types+node@20.19.30/node_modules/@inquirer/select/dist/index.js
2784
+ // ../../node_modules/.pnpm/@inquirer+select@5.1.0_@types+node@20.19.37/node_modules/@inquirer/select/dist/index.js
2762
2785
  import { styleText as styleText3 } from "util";
2763
2786
  var selectTheme = {
2764
2787
  icon: { cursor: dist_default.pointer },
@@ -3505,7 +3528,7 @@ function kebabCase2(str, joiner) {
3505
3528
  // package.json
3506
3529
  var package_default = {
3507
3530
  name: "@batijs/cli",
3508
- version: "0.0.596",
3531
+ version: "0.0.598",
3509
3532
  type: "module",
3510
3533
  scripts: {
3511
3534
  "check-types": "tsc --noEmit",
@@ -3521,7 +3544,7 @@ var package_default = {
3521
3544
  "@batijs/build": "workspace:*",
3522
3545
  "@batijs/compile": "workspace:*",
3523
3546
  "@inquirer/prompts": "^8.3.0",
3524
- "@types/node": "^20.19.30",
3547
+ "@types/node": "^20.19.37",
3525
3548
  "@types/which": "^3.0.4",
3526
3549
  citty: "^0.2.1",
3527
3550
  colorette: "^2.0.20",
@@ -3595,7 +3618,10 @@ Choose one of them or remove selected Server`
3595
3618
  [RulesMessage.WARN_SHADCN_R_TAILWINDCSS]: warning(
3596
3619
  `${inverse(bold2("shadcn/ui"))} integration is tied to ${inverse(bold2("TailwindCSS"))}. Using another CSS library with it may have unpredictable behaviour.`
3597
3620
  ),
3598
- [RulesMessage.INFO_STACKBLITZ_COMPAT]: null
3621
+ [RulesMessage.INFO_STACKBLITZ_COMPAT]: null,
3622
+ [RulesMessage.ERROR_STORYBOOK_R_UI_FRAMEWORK]: error(
3623
+ `${inverse(bold2("Storybook"))} is only supported with ${inverse(bold2("React"))}, ${inverse(bold2("Vue"))}, or ${inverse(bold2("Solid"))}`
3624
+ )
3599
3625
  };
3600
3626
 
3601
3627
  // index.ts
@@ -3932,7 +3958,14 @@ function checkRules(flags2) {
3932
3958
  }
3933
3959
  async function retrieveHooks(hooks) {
3934
3960
  const map = /* @__PURE__ */ new Map();
3935
- for (const hook of hooks) {
3961
+ const sortedHooks = Array.from(hooks.entries()).sort(([b1], [b2]) => {
3962
+ if (b1.config.enforce === "pre") return 1;
3963
+ if (b1.config.enforce === "post") return -1;
3964
+ if (b2.config.enforce === "pre") return -1;
3965
+ if (b2.config.enforce === "post") return 1;
3966
+ return 0;
3967
+ });
3968
+ for (const [, hook] of sortedHooks) {
3936
3969
  for await (const file of walk(hook)) {
3937
3970
  const parsed = parse2(file);
3938
3971
  const importFile = isWin2 ? `file://${file}` : file;
@@ -3998,7 +4031,7 @@ async function run() {
3998
4031
  async run(commandContext) {
3999
4032
  const args = await checkArguments(commandContext.args);
4000
4033
  const sources = [];
4001
- const hooks = [];
4034
+ const hooks = /* @__PURE__ */ new Map();
4002
4035
  const flags2 = [
4003
4036
  ...new Set(
4004
4037
  Object.entries(args).filter(([, val]) => val === true).flatMap(([key]) => {
@@ -4033,7 +4066,7 @@ async function run() {
4033
4066
  sources.push(join(dir, bl.folder, "files"));
4034
4067
  }
4035
4068
  if (bl.subfolders.includes("hooks")) {
4036
- hooks.push(join(dir, bl.folder, "hooks"));
4069
+ hooks.set(bl, join(dir, bl.folder, "hooks"));
4037
4070
  }
4038
4071
  }
4039
4072
  const hooksMap = await retrieveHooks(hooks);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@batijs/cli",
3
- "version": "0.0.596",
3
+ "version": "0.0.598",
4
4
  "type": "module",
5
5
  "keywords": [],
6
6
  "description": "Next-gen scaffolder. Get started with fully-functional apps, and choose any tool you want",
@@ -9,7 +9,7 @@
9
9
  "license": "MIT",
10
10
  "devDependencies": {
11
11
  "@inquirer/prompts": "^8.3.0",
12
- "@types/node": "^20.19.30",
12
+ "@types/node": "^20.19.37",
13
13
  "@types/which": "^3.0.4",
14
14
  "citty": "^0.2.1",
15
15
  "colorette": "^2.0.20",
@@ -20,12 +20,12 @@
20
20
  "typescript": "^5.9.3",
21
21
  "unplugin-purge-polyfills": "^0.1.0",
22
22
  "vite": "^7.3.1",
23
- "@batijs/build": "0.0.596",
24
- "@batijs/compile": "0.0.596"
23
+ "@batijs/build": "0.0.598",
24
+ "@batijs/compile": "0.0.598"
25
25
  },
26
26
  "dependencies": {
27
- "@batijs/features": "0.0.596",
28
- "@batijs/core": "0.0.596"
27
+ "@batijs/core": "0.0.598",
28
+ "@batijs/features": "0.0.598"
29
29
  },
30
30
  "bin": "./cli.js",
31
31
  "exports": {