@proofkit/cli 1.0.0-beta.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 (317) hide show
  1. package/CHANGELOG.md +120 -0
  2. package/LICENSE.md +21 -0
  3. package/README.md +19 -0
  4. package/dist/acorn-AKFTBDM6.js +15 -0
  5. package/dist/angular-BOQ6FHSU.js +2 -0
  6. package/dist/babel-ZTOORN7K.js +15 -0
  7. package/dist/chunk-4LISTI44.js +1 -0
  8. package/dist/estree-KOJPX4S6.js +36 -0
  9. package/dist/flow-RCI44GYZ.js +19 -0
  10. package/dist/glimmer-GV5EF5E4.js +30 -0
  11. package/dist/graphql-YXQNPQWM.js +29 -0
  12. package/dist/html-ZAJTRROK.js +22 -0
  13. package/dist/index.js +300 -0
  14. package/dist/markdown-Q75DTQI7.js +63 -0
  15. package/dist/meriyah-32K7GBV5.js +4 -0
  16. package/dist/postcss-WWYO4PGL.js +54 -0
  17. package/dist/typescript-M6N7JDNQ.js +20 -0
  18. package/dist/yaml-LY7PNAYV.js +161 -0
  19. package/index.d.ts +19 -0
  20. package/package.json +122 -0
  21. package/template/extras/_cursor/conditional-rules/nextjs-framework.mdc +51 -0
  22. package/template/extras/_cursor/conditional-rules/npm.mdc +60 -0
  23. package/template/extras/_cursor/conditional-rules/pnpm.mdc +65 -0
  24. package/template/extras/_cursor/conditional-rules/yarn.mdc +60 -0
  25. package/template/extras/_cursor/rules/cursor-rules.mdc +88 -0
  26. package/template/extras/_cursor/rules/filemaker-api.mdc +176 -0
  27. package/template/extras/_cursor/rules/troubleshooting-patterns.mdc +240 -0
  28. package/template/extras/_cursor/rules/ui-components.mdc +57 -0
  29. package/template/extras/config/_eslint.js +27 -0
  30. package/template/extras/config/_prettier.config.js +6 -0
  31. package/template/extras/config/drizzle-config-mysql.ts +12 -0
  32. package/template/extras/config/drizzle-config-postgres.ts +12 -0
  33. package/template/extras/config/drizzle-config-sqlite.ts +12 -0
  34. package/template/extras/config/fmschema.config.mjs +9 -0
  35. package/template/extras/config/get-query-client.ts +6 -0
  36. package/template/extras/config/postcss.config.cjs +7 -0
  37. package/template/extras/config/query-provider-vite.tsx +19 -0
  38. package/template/extras/config/query-provider.tsx +21 -0
  39. package/template/extras/emailProviders/none/email.tsx +24 -0
  40. package/template/extras/emailProviders/plunk/email.tsx +26 -0
  41. package/template/extras/emailProviders/plunk/service.ts +4 -0
  42. package/template/extras/emailProviders/resend/email.tsx +23 -0
  43. package/template/extras/emailProviders/resend/service.ts +4 -0
  44. package/template/extras/fmaddon-auth/app/(main)/auth/profile/actions.ts +93 -0
  45. package/template/extras/fmaddon-auth/app/(main)/auth/profile/page.tsx +27 -0
  46. package/template/extras/fmaddon-auth/app/(main)/auth/profile/profile-form.tsx +56 -0
  47. package/template/extras/fmaddon-auth/app/(main)/auth/profile/reset-password-form.tsx +110 -0
  48. package/template/extras/fmaddon-auth/app/(main)/auth/profile/schema.ts +19 -0
  49. package/template/extras/fmaddon-auth/app/auth/forgot-password/actions.ts +37 -0
  50. package/template/extras/fmaddon-auth/app/auth/forgot-password/forgot-form.tsx +41 -0
  51. package/template/extras/fmaddon-auth/app/auth/forgot-password/page.tsx +21 -0
  52. package/template/extras/fmaddon-auth/app/auth/forgot-password/schema.ts +5 -0
  53. package/template/extras/fmaddon-auth/app/auth/login/actions.ts +34 -0
  54. package/template/extras/fmaddon-auth/app/auth/login/login-form.tsx +64 -0
  55. package/template/extras/fmaddon-auth/app/auth/login/page.tsx +26 -0
  56. package/template/extras/fmaddon-auth/app/auth/login/schema.ts +6 -0
  57. package/template/extras/fmaddon-auth/app/auth/reset-password/actions.ts +50 -0
  58. package/template/extras/fmaddon-auth/app/auth/reset-password/page.tsx +32 -0
  59. package/template/extras/fmaddon-auth/app/auth/reset-password/reset-password-form.tsx +59 -0
  60. package/template/extras/fmaddon-auth/app/auth/reset-password/schema.ts +14 -0
  61. package/template/extras/fmaddon-auth/app/auth/reset-password/verify-email/actions.ts +45 -0
  62. package/template/extras/fmaddon-auth/app/auth/reset-password/verify-email/page.tsx +32 -0
  63. package/template/extras/fmaddon-auth/app/auth/reset-password/verify-email/schema.ts +5 -0
  64. package/template/extras/fmaddon-auth/app/auth/reset-password/verify-email/verify-email-form.tsx +48 -0
  65. package/template/extras/fmaddon-auth/app/auth/signup/actions.ts +49 -0
  66. package/template/extras/fmaddon-auth/app/auth/signup/page.tsx +26 -0
  67. package/template/extras/fmaddon-auth/app/auth/signup/schema.ts +12 -0
  68. package/template/extras/fmaddon-auth/app/auth/signup/signup-form.tsx +67 -0
  69. package/template/extras/fmaddon-auth/app/auth/verify-email/actions.ts +110 -0
  70. package/template/extras/fmaddon-auth/app/auth/verify-email/email-verification-form.tsx +45 -0
  71. package/template/extras/fmaddon-auth/app/auth/verify-email/page.tsx +38 -0
  72. package/template/extras/fmaddon-auth/app/auth/verify-email/resend-button.tsx +35 -0
  73. package/template/extras/fmaddon-auth/app/auth/verify-email/schema.ts +5 -0
  74. package/template/extras/fmaddon-auth/components/auth/actions.ts +16 -0
  75. package/template/extras/fmaddon-auth/components/auth/protect.tsx +17 -0
  76. package/template/extras/fmaddon-auth/components/auth/redirect.tsx +26 -0
  77. package/template/extras/fmaddon-auth/components/auth/use-user.ts +59 -0
  78. package/template/extras/fmaddon-auth/components/auth/user-menu.tsx +51 -0
  79. package/template/extras/fmaddon-auth/emails/auth-code.tsx +156 -0
  80. package/template/extras/fmaddon-auth/middleware.ts +45 -0
  81. package/template/extras/fmaddon-auth/server/auth/utils/email-verification.ts +136 -0
  82. package/template/extras/fmaddon-auth/server/auth/utils/encryption.ts +51 -0
  83. package/template/extras/fmaddon-auth/server/auth/utils/index.ts +16 -0
  84. package/template/extras/fmaddon-auth/server/auth/utils/password-reset.ts +152 -0
  85. package/template/extras/fmaddon-auth/server/auth/utils/password.ts +67 -0
  86. package/template/extras/fmaddon-auth/server/auth/utils/redirect.ts +8 -0
  87. package/template/extras/fmaddon-auth/server/auth/utils/session.ts +192 -0
  88. package/template/extras/fmaddon-auth/server/auth/utils/user.ts +147 -0
  89. package/template/extras/prisma/schema/base-planetscale.prisma +24 -0
  90. package/template/extras/prisma/schema/base.prisma +20 -0
  91. package/template/extras/prisma/schema/with-auth-planetscale.prisma +77 -0
  92. package/template/extras/prisma/schema/with-auth.prisma +74 -0
  93. package/template/extras/src/app/_components/post-tw.tsx +50 -0
  94. package/template/extras/src/app/_components/post.tsx +54 -0
  95. package/template/extras/src/app/api/auth/[...nextauth]/route.ts +4 -0
  96. package/template/extras/src/app/api/trpc/[trpc]/route.ts +34 -0
  97. package/template/extras/src/app/clerk-auth/layout.tsx +10 -0
  98. package/template/extras/src/app/clerk-auth/signin/[[...sign-in]]/page.tsx +5 -0
  99. package/template/extras/src/app/clerk-auth/signup/[[...sign-up]]/page.tsx +5 -0
  100. package/template/extras/src/app/layout/base.tsx +34 -0
  101. package/template/extras/src/app/layout/main-shell.tsx +37 -0
  102. package/template/extras/src/app/layout/with-trpc-tw.tsx +24 -0
  103. package/template/extras/src/app/layout/with-trpc.tsx +24 -0
  104. package/template/extras/src/app/layout/with-tw.tsx +20 -0
  105. package/template/extras/src/app/next-auth/layout.tsx +22 -0
  106. package/template/extras/src/app/next-auth/signin/page.tsx +82 -0
  107. package/template/extras/src/app/next-auth/signup/action.ts +24 -0
  108. package/template/extras/src/app/next-auth/signup/page.tsx +40 -0
  109. package/template/extras/src/app/next-auth/signup/validation.ts +12 -0
  110. package/template/extras/src/app/page/base.tsx +6 -0
  111. package/template/extras/src/app/page/with-auth-trpc-tw.tsx +67 -0
  112. package/template/extras/src/app/page/with-auth-trpc.tsx +68 -0
  113. package/template/extras/src/app/page/with-trpc-tw.tsx +53 -0
  114. package/template/extras/src/app/page/with-trpc.tsx +54 -0
  115. package/template/extras/src/app/page/with-tw.tsx +37 -0
  116. package/template/extras/src/components/clerk-auth/clerk-provider.tsx +18 -0
  117. package/template/extras/src/components/clerk-auth/user-menu-mobile.tsx +36 -0
  118. package/template/extras/src/components/clerk-auth/user-menu.tsx +24 -0
  119. package/template/extras/src/components/next-auth/next-auth-provider.tsx +14 -0
  120. package/template/extras/src/components/next-auth/user-menu-mobile.tsx +31 -0
  121. package/template/extras/src/components/next-auth/user-menu.tsx +38 -0
  122. package/template/extras/src/env/with-auth.ts +31 -0
  123. package/template/extras/src/env/with-clerk.ts +20 -0
  124. package/template/extras/src/index.module.css +177 -0
  125. package/template/extras/src/middleware/clerk.ts +20 -0
  126. package/template/extras/src/middleware/next-auth.ts +5 -0
  127. package/template/extras/src/pages/_app/base.tsx +14 -0
  128. package/template/extras/src/pages/_app/with-auth-trpc-tw.tsx +23 -0
  129. package/template/extras/src/pages/_app/with-auth-trpc.tsx +23 -0
  130. package/template/extras/src/pages/_app/with-auth-tw.tsx +21 -0
  131. package/template/extras/src/pages/_app/with-auth.tsx +21 -0
  132. package/template/extras/src/pages/_app/with-trpc-tw.tsx +16 -0
  133. package/template/extras/src/pages/_app/with-trpc.tsx +16 -0
  134. package/template/extras/src/pages/_app/with-tw.tsx +14 -0
  135. package/template/extras/src/pages/api/auth/[...nextauth].ts +5 -0
  136. package/template/extras/src/pages/api/trpc/[trpc].ts +19 -0
  137. package/template/extras/src/pages/index/base.tsx +47 -0
  138. package/template/extras/src/pages/index/with-auth-trpc-tw.tsx +80 -0
  139. package/template/extras/src/pages/index/with-auth-trpc.tsx +81 -0
  140. package/template/extras/src/pages/index/with-trpc-tw.tsx +52 -0
  141. package/template/extras/src/pages/index/with-trpc.tsx +53 -0
  142. package/template/extras/src/pages/index/with-tw.tsx +45 -0
  143. package/template/extras/src/server/api/root.ts +23 -0
  144. package/template/extras/src/server/api/routers/post/base.ts +40 -0
  145. package/template/extras/src/server/api/routers/post/with-auth-drizzle.ts +39 -0
  146. package/template/extras/src/server/api/routers/post/with-auth-prisma.ts +41 -0
  147. package/template/extras/src/server/api/routers/post/with-auth.ts +37 -0
  148. package/template/extras/src/server/api/routers/post/with-drizzle.ts +30 -0
  149. package/template/extras/src/server/api/routers/post/with-prisma.ts +31 -0
  150. package/template/extras/src/server/api/trpc-app/base.ts +103 -0
  151. package/template/extras/src/server/api/trpc-app/with-auth-db.ts +133 -0
  152. package/template/extras/src/server/api/trpc-app/with-auth.ts +130 -0
  153. package/template/extras/src/server/api/trpc-app/with-db.ts +106 -0
  154. package/template/extras/src/server/api/trpc-pages/base.ts +122 -0
  155. package/template/extras/src/server/api/trpc-pages/with-auth-db.ts +160 -0
  156. package/template/extras/src/server/api/trpc-pages/with-auth.ts +158 -0
  157. package/template/extras/src/server/api/trpc-pages/with-db.ts +125 -0
  158. package/template/extras/src/server/data/users.ts +23 -0
  159. package/template/extras/src/server/db/db-prisma-planetscale.ts +22 -0
  160. package/template/extras/src/server/db/db-prisma.ts +17 -0
  161. package/template/extras/src/server/db/index-drizzle/with-mysql.ts +18 -0
  162. package/template/extras/src/server/db/index-drizzle/with-planetscale.ts +7 -0
  163. package/template/extras/src/server/db/index-drizzle/with-postgres.ts +18 -0
  164. package/template/extras/src/server/db/index-drizzle/with-sqlite.ts +19 -0
  165. package/template/extras/src/server/db/schema-drizzle/base-mysql.ts +34 -0
  166. package/template/extras/src/server/db/schema-drizzle/base-planetscale.ts +34 -0
  167. package/template/extras/src/server/db/schema-drizzle/base-postgres.ts +36 -0
  168. package/template/extras/src/server/db/schema-drizzle/base-sqlite.ts +30 -0
  169. package/template/extras/src/server/db/schema-drizzle/with-auth-mysql.ts +123 -0
  170. package/template/extras/src/server/db/schema-drizzle/with-auth-planetscale.ts +117 -0
  171. package/template/extras/src/server/db/schema-drizzle/with-auth-postgres.ts +130 -0
  172. package/template/extras/src/server/db/schema-drizzle/with-auth-sqlite.ts +116 -0
  173. package/template/extras/src/server/next-auth/base.ts +111 -0
  174. package/template/extras/src/server/next-auth/password.ts +13 -0
  175. package/template/extras/src/server/next-auth/with-drizzle.ts +83 -0
  176. package/template/extras/src/server/next-auth/with-prisma.ts +72 -0
  177. package/template/extras/src/trpc/query-client.ts +25 -0
  178. package/template/extras/src/trpc/react.tsx +76 -0
  179. package/template/extras/src/trpc/server.ts +30 -0
  180. package/template/extras/src/utils/api.ts +68 -0
  181. package/template/extras/start-database/mysql.sh +54 -0
  182. package/template/extras/start-database/postgres.sh +55 -0
  183. package/template/fm-addon/ProofKitAuth/de.xml +518 -0
  184. package/template/fm-addon/ProofKitAuth/en.xml +518 -0
  185. package/template/fm-addon/ProofKitAuth/es.xml +518 -0
  186. package/template/fm-addon/ProofKitAuth/fr.xml +518 -0
  187. package/template/fm-addon/ProofKitAuth/icon.png +0 -0
  188. package/template/fm-addon/ProofKitAuth/icon@2x.png +0 -0
  189. package/template/fm-addon/ProofKitAuth/info.json +11 -0
  190. package/template/fm-addon/ProofKitAuth/info_de.json +18 -0
  191. package/template/fm-addon/ProofKitAuth/info_en.json +8 -0
  192. package/template/fm-addon/ProofKitAuth/info_es.json +18 -0
  193. package/template/fm-addon/ProofKitAuth/info_fr.json +18 -0
  194. package/template/fm-addon/ProofKitAuth/info_it.json +18 -0
  195. package/template/fm-addon/ProofKitAuth/info_ja.json +18 -0
  196. package/template/fm-addon/ProofKitAuth/info_ko.json +18 -0
  197. package/template/fm-addon/ProofKitAuth/info_nl.json +18 -0
  198. package/template/fm-addon/ProofKitAuth/info_pt.json +18 -0
  199. package/template/fm-addon/ProofKitAuth/info_sv.json +18 -0
  200. package/template/fm-addon/ProofKitAuth/info_zh.json +18 -0
  201. package/template/fm-addon/ProofKitAuth/it.xml +518 -0
  202. package/template/fm-addon/ProofKitAuth/ja.xml +518 -0
  203. package/template/fm-addon/ProofKitAuth/ko.xml +518 -0
  204. package/template/fm-addon/ProofKitAuth/nl.xml +518 -0
  205. package/template/fm-addon/ProofKitAuth/preview.png +0 -0
  206. package/template/fm-addon/ProofKitAuth/pt.xml +518 -0
  207. package/template/fm-addon/ProofKitAuth/sv.xml +518 -0
  208. package/template/fm-addon/ProofKitAuth/template.xml +0 -0
  209. package/template/fm-addon/ProofKitAuth/zh.xml +518 -0
  210. package/template/fm-addon/ProofKitWV/de.xml +896 -0
  211. package/template/fm-addon/ProofKitWV/en.xml +896 -0
  212. package/template/fm-addon/ProofKitWV/es.xml +896 -0
  213. package/template/fm-addon/ProofKitWV/fr.xml +896 -0
  214. package/template/fm-addon/ProofKitWV/icon.png +0 -0
  215. package/template/fm-addon/ProofKitWV/icon@2x.png +0 -0
  216. package/template/fm-addon/ProofKitWV/info.json +11 -0
  217. package/template/fm-addon/ProofKitWV/info_de.json +18 -0
  218. package/template/fm-addon/ProofKitWV/info_en.json +11 -0
  219. package/template/fm-addon/ProofKitWV/info_es.json +18 -0
  220. package/template/fm-addon/ProofKitWV/info_fr.json +18 -0
  221. package/template/fm-addon/ProofKitWV/info_it.json +18 -0
  222. package/template/fm-addon/ProofKitWV/info_ja.json +18 -0
  223. package/template/fm-addon/ProofKitWV/info_ko.json +18 -0
  224. package/template/fm-addon/ProofKitWV/info_nl.json +18 -0
  225. package/template/fm-addon/ProofKitWV/info_pt.json +18 -0
  226. package/template/fm-addon/ProofKitWV/info_sv.json +18 -0
  227. package/template/fm-addon/ProofKitWV/info_zh.json +18 -0
  228. package/template/fm-addon/ProofKitWV/it.xml +896 -0
  229. package/template/fm-addon/ProofKitWV/ja.xml +896 -0
  230. package/template/fm-addon/ProofKitWV/ko.xml +896 -0
  231. package/template/fm-addon/ProofKitWV/nl.xml +896 -0
  232. package/template/fm-addon/ProofKitWV/preview.png +0 -0
  233. package/template/fm-addon/ProofKitWV/pt.xml +896 -0
  234. package/template/fm-addon/ProofKitWV/records_de.xml +0 -0
  235. package/template/fm-addon/ProofKitWV/records_en.xml +0 -0
  236. package/template/fm-addon/ProofKitWV/records_es.xml +0 -0
  237. package/template/fm-addon/ProofKitWV/records_fr.xml +0 -0
  238. package/template/fm-addon/ProofKitWV/records_it.xml +0 -0
  239. package/template/fm-addon/ProofKitWV/records_ja.xml +0 -0
  240. package/template/fm-addon/ProofKitWV/records_ko.xml +0 -0
  241. package/template/fm-addon/ProofKitWV/records_nl.xml +0 -0
  242. package/template/fm-addon/ProofKitWV/records_pt.xml +0 -0
  243. package/template/fm-addon/ProofKitWV/records_sv.xml +0 -0
  244. package/template/fm-addon/ProofKitWV/records_zh.xml +0 -0
  245. package/template/fm-addon/ProofKitWV/sv.xml +896 -0
  246. package/template/fm-addon/ProofKitWV/template.xml +0 -0
  247. package/template/fm-addon/ProofKitWV/zh.xml +896 -0
  248. package/template/nextjs/README.md +27 -0
  249. package/template/nextjs/_gitignore +37 -0
  250. package/template/nextjs/next.config.ts +12 -0
  251. package/template/nextjs/package.json +50 -0
  252. package/template/nextjs/postcss.config.cjs +14 -0
  253. package/template/nextjs/proofkit.json +1 -0
  254. package/template/nextjs/public/favicon.ico +0 -0
  255. package/template/nextjs/public/proofkit.png +0 -0
  256. package/template/nextjs/src/app/(main)/layout.tsx +6 -0
  257. package/template/nextjs/src/app/(main)/page.tsx +90 -0
  258. package/template/nextjs/src/app/layout.tsx +39 -0
  259. package/template/nextjs/src/app/navigation.tsx +12 -0
  260. package/template/nextjs/src/components/AppLogo.tsx +6 -0
  261. package/template/nextjs/src/components/AppShell/internal/AppShell.tsx +21 -0
  262. package/template/nextjs/src/components/AppShell/internal/Header.module.css +40 -0
  263. package/template/nextjs/src/components/AppShell/internal/Header.tsx +34 -0
  264. package/template/nextjs/src/components/AppShell/internal/HeaderMobileMenu.tsx +27 -0
  265. package/template/nextjs/src/components/AppShell/internal/HeaderNavLink.tsx +31 -0
  266. package/template/nextjs/src/components/AppShell/internal/config.ts +1 -0
  267. package/template/nextjs/src/components/AppShell/slot-header-center.tsx +13 -0
  268. package/template/nextjs/src/components/AppShell/slot-header-left.tsx +23 -0
  269. package/template/nextjs/src/components/AppShell/slot-header-mobile-content.tsx +43 -0
  270. package/template/nextjs/src/components/AppShell/slot-header-right.tsx +26 -0
  271. package/template/nextjs/src/config/env.ts +13 -0
  272. package/template/nextjs/src/config/theme/globals.css +1 -0
  273. package/template/nextjs/src/config/theme/mantine-theme.ts +22 -0
  274. package/template/nextjs/src/server/safe-action.ts +3 -0
  275. package/template/nextjs/src/utils/notification-helpers.ts +32 -0
  276. package/template/nextjs/tsconfig.json +40 -0
  277. package/template/pages/nextjs/blank/page.tsx +5 -0
  278. package/template/pages/nextjs/table/page.tsx +17 -0
  279. package/template/pages/nextjs/table/table.tsx +18 -0
  280. package/template/pages/nextjs/table-edit/actions.ts +23 -0
  281. package/template/pages/nextjs/table-edit/page.tsx +28 -0
  282. package/template/pages/nextjs/table-edit/schema.ts +4 -0
  283. package/template/pages/nextjs/table-edit/table.tsx +43 -0
  284. package/template/pages/nextjs/table-infinite/actions.ts +62 -0
  285. package/template/pages/nextjs/table-infinite/page.tsx +11 -0
  286. package/template/pages/nextjs/table-infinite/query.ts +44 -0
  287. package/template/pages/nextjs/table-infinite/table.tsx +107 -0
  288. package/template/pages/nextjs/table-infinite-edit/actions.ts +84 -0
  289. package/template/pages/nextjs/table-infinite-edit/page.tsx +23 -0
  290. package/template/pages/nextjs/table-infinite-edit/query.ts +81 -0
  291. package/template/pages/nextjs/table-infinite-edit/schema.ts +4 -0
  292. package/template/pages/nextjs/table-infinite-edit/table.tsx +130 -0
  293. package/template/pages/vite-wv/blank/index.tsx +0 -0
  294. package/template/pages/vite-wv/table/index.tsx +34 -0
  295. package/template/pages/vite-wv/table-edit/index.tsx +72 -0
  296. package/template/vite-wv/.vscode/settings.json +11 -0
  297. package/template/vite-wv/_gitignore +18 -0
  298. package/template/vite-wv/index.html +13 -0
  299. package/template/vite-wv/package.json +52 -0
  300. package/template/vite-wv/pnpm-lock.yaml +2294 -0
  301. package/template/vite-wv/postcss.config.cjs +14 -0
  302. package/template/vite-wv/proofkit.json +1 -0
  303. package/template/vite-wv/scripts/launch-fm.sh +3 -0
  304. package/template/vite-wv/scripts/upload.js +21 -0
  305. package/template/vite-wv/src/components/AppLogo.tsx +5 -0
  306. package/template/vite-wv/src/components/full-screen-loader.tsx +9 -0
  307. package/template/vite-wv/src/config/env.ts +16 -0
  308. package/template/vite-wv/src/config/theme/globals.css +1 -0
  309. package/template/vite-wv/src/config/theme/mantine-theme.ts +22 -0
  310. package/template/vite-wv/src/main.tsx +42 -0
  311. package/template/vite-wv/src/routeTree.gen.ts +111 -0
  312. package/template/vite-wv/src/routes/__root.tsx +21 -0
  313. package/template/vite-wv/src/routes/index.tsx +63 -0
  314. package/template/vite-wv/src/routes/secondary.tsx +28 -0
  315. package/template/vite-wv/src/utils/notification-helpers.ts +32 -0
  316. package/template/vite-wv/tsconfig.json +14 -0
  317. package/template/vite-wv/vite.config.ts +18 -0
@@ -0,0 +1,51 @@
1
+ ---
2
+ description:
3
+ globs:
4
+ alwaysApply: true
5
+ ---
6
+ # Next.js Framework Configuration
7
+
8
+ This rule documents the Next.js framework setup and conventions used in this project.
9
+
10
+ <rule>
11
+ name: nextjs_framework
12
+ description: Documents Next.js framework setup, routing conventions, and best practices
13
+ filters:
14
+ - type: file_extension
15
+ pattern: "\\.(ts|tsx)$"
16
+ - type: directory
17
+ pattern: "src/(app|components)/"
18
+
19
+ conventions:
20
+ routing:
21
+ - App Router is used (not Pages Router)
22
+ - Routes are defined in src/app directory
23
+ - Layout components should be named layout.tsx
24
+ - Page components should be named page.tsx
25
+ - Loading states should be in loading.tsx
26
+ - Error boundaries should be in error.tsx
27
+
28
+ components:
29
+ - React Server Components (RSC) are default
30
+ - Client components must be marked with "use client"
31
+ - Components live in src/components/
32
+ - Shared layouts in src/components/layouts/
33
+ - UI components in src/components/ui/
34
+
35
+ data_fetching:
36
+ - Server components fetch data directly
37
+ - Client components use React Query
38
+ - API routes defined in src/app/api/
39
+ - Server actions used for mutations
40
+
41
+ frameworks:
42
+ next: "15.1.7"
43
+ react: "19.0.0-rc"
44
+ typescript: "^5"
45
+ mantine: "^7.17.0"
46
+ tanstack_query: "^5.59.0"
47
+
48
+ metadata:
49
+ priority: high
50
+ version: 1.0
51
+ </rule>
@@ -0,0 +1,60 @@
1
+ ---
2
+ description: |
3
+ This rule documents the package manager configuration and usage. It should be included when:
4
+ 1. Installing dependencies
5
+ 2. Running scripts
6
+ 3. Managing project packages
7
+ 4. Running development commands
8
+ 5. Executing build or test operations
9
+ globs:
10
+ - "package.json"
11
+ - "package-lock.json"
12
+ - ".npmrc"
13
+ alwaysApply: true
14
+ ---
15
+ # Package Manager Configuration
16
+
17
+ This rule documents the package manager setup and usage requirements.
18
+
19
+ <rule>
20
+ name: package_manager
21
+ description: Documents package manager configuration and usage requirements
22
+
23
+ configuration:
24
+ name: "npm"
25
+ version: "latest"
26
+ commands:
27
+ install: "npm install"
28
+ build: "npm run build"
29
+ dev: "npm run dev"
30
+ typegen: "npm run typegen"
31
+ typecheck: "npm run tsc"
32
+ notes: "Always use npm instead of yarn or pnpm for consistency"
33
+ dev_server_guidelines:
34
+ - "Never relaunch the dev server command if it may already be running"
35
+ - "Use npm run dev only when explicitly needed to start the server for the first time"
36
+ - "For code changes, just save the files and the server will automatically reload"
37
+
38
+ examples:
39
+ - description: "Installing dependencies"
40
+ correct: "npm install"
41
+ incorrect:
42
+ - "pnpm install"
43
+ - "yarn install"
44
+
45
+ - description: "Running scripts"
46
+ correct: "npm run script-name"
47
+ incorrect:
48
+ - "pnpm run script-name"
49
+ - "yarn script-name"
50
+
51
+ - description: "Adding dependencies"
52
+ correct: "npm install package-name"
53
+ incorrect:
54
+ - "pnpm add package-name"
55
+ - "yarn add package-name"
56
+
57
+ metadata:
58
+ priority: high
59
+ version: 1.0
60
+ </rule>
@@ -0,0 +1,65 @@
1
+ ---
2
+ description: |
3
+ globs:
4
+ alwaysApply: true
5
+ ---
6
+ ---
7
+ description: |
8
+ This rule documents the package manager configuration and usage. It should be included when:
9
+ 1. Installing dependencies
10
+ 2. Running scripts
11
+ 3. Managing project packages
12
+ 4. Running development commands
13
+ 5. Executing build or test operations
14
+ globs:
15
+ - "package.json"
16
+ - "pnpm-lock.yaml"
17
+ - ".npmrc"
18
+ alwaysApply: true
19
+ ---
20
+ # Package Manager Configuration
21
+
22
+ This rule documents the package manager setup and usage requirements.
23
+
24
+ <rule>
25
+ name: package_manager
26
+ description: Documents package manager configuration and usage requirements
27
+
28
+ configuration:
29
+ name: "pnpm"
30
+ version: "latest"
31
+ commands:
32
+ install: "pnpm install"
33
+ build: "pnpm build"
34
+ dev: "pnpm dev"
35
+ typegen: "pnpm typegen"
36
+ typecheck: "pnpm tsc"
37
+ notes: "Always use pnpm instead of npm or yarn for consistency"
38
+ dev_server_guidelines:
39
+ - "Never relaunch the dev server command if it may already be running"
40
+ - "Use pnpm dev only when explicitly needed to start the server for the first time"
41
+ - "For code changes, just save the files and the server will automatically reload"
42
+
43
+ examples:
44
+ - description: "Installing dependencies"
45
+ correct: "pnpm install"
46
+ incorrect:
47
+ - "npm install"
48
+ - "yarn install"
49
+
50
+ - description: "Running scripts"
51
+ correct: "pnpm run script-name"
52
+ incorrect:
53
+ - "npm run script-name"
54
+ - "yarn script-name"
55
+
56
+ - description: "Adding dependencies"
57
+ correct: "pnpm add package-name"
58
+ incorrect:
59
+ - "npm install package-name"
60
+ - "yarn add package-name"
61
+
62
+ metadata:
63
+ priority: high
64
+ version: 1.0
65
+ </rule>
@@ -0,0 +1,60 @@
1
+ ---
2
+ description: |
3
+ This rule documents the package manager configuration and usage. It should be included when:
4
+ 1. Installing dependencies
5
+ 2. Running scripts
6
+ 3. Managing project packages
7
+ 4. Running development commands
8
+ 5. Executing build or test operations
9
+ globs:
10
+ - "package.json"
11
+ - "yarn.lock"
12
+ - ".yarnrc"
13
+ alwaysApply: true
14
+ ---
15
+ # Package Manager Configuration
16
+
17
+ This rule documents the package manager setup and usage requirements.
18
+
19
+ <rule>
20
+ name: package_manager
21
+ description: Documents package manager configuration and usage requirements
22
+
23
+ configuration:
24
+ name: "yarn"
25
+ version: "latest"
26
+ commands:
27
+ install: "yarn install"
28
+ build: "yarn build"
29
+ dev: "yarn dev"
30
+ typegen: "yarn typegen"
31
+ typecheck: "yarn tsc"
32
+ notes: "Always use yarn instead of npm or pnpm for consistency"
33
+ dev_server_guidelines:
34
+ - "Never relaunch the dev server command if it may already be running"
35
+ - "Use yarn dev only when explicitly needed to start the server for the first time"
36
+ - "For code changes, just save the files and the server will automatically reload"
37
+
38
+ examples:
39
+ - description: "Installing dependencies"
40
+ correct: "yarn install"
41
+ incorrect:
42
+ - "npm install"
43
+ - "pnpm install"
44
+
45
+ - description: "Running scripts"
46
+ correct: "yarn script-name"
47
+ incorrect:
48
+ - "npm run script-name"
49
+ - "pnpm run script-name"
50
+
51
+ - description: "Adding dependencies"
52
+ correct: "yarn add package-name"
53
+ incorrect:
54
+ - "npm install package-name"
55
+ - "pnpm add package-name"
56
+
57
+ metadata:
58
+ priority: high
59
+ version: 1.0
60
+ </rule>
@@ -0,0 +1,88 @@
1
+ ---
2
+ description: |
3
+ This rule documents how to manage and organize Cursor rules. It should be included when:
4
+ 1. Creating or modifying Cursor rules
5
+ 2. Organizing documentation for the codebase
6
+ 3. Setting up new development patterns
7
+ 4. Adding project-wide conventions
8
+ 5. Managing rule file locations
9
+ 6. Updating rule descriptions or globs
10
+ 7. Working with .cursor directory structure
11
+ globs:
12
+ - ".cursor/rules/*.mdc"
13
+ - ".cursor/config/*.json"
14
+ - ".cursor/settings/*.json"
15
+ alwaysApply: true
16
+ ---
17
+ # Cursor Rules Location
18
+
19
+ Rules for placing and organizing Cursor rule files in the repository.
20
+
21
+ <rule>
22
+ name: cursor_rules_location
23
+ description: Standards for placing Cursor rule files in the correct directory
24
+ filters:
25
+ # Match any .mdc files
26
+ - type: file_extension
27
+ pattern: "\\.mdc$"
28
+ # Match files that look like Cursor rules
29
+ - type: content
30
+ pattern: "(?s)<rule>.*?</rule>"
31
+ # Match file creation events
32
+ - type: event
33
+ pattern: "file_create"
34
+
35
+ actions:
36
+ - type: reject
37
+ conditions:
38
+ - pattern: "^(?!\\.\\/\\.cursor\\/rules\\/.*\\.mdc$)"
39
+ message: "Cursor rule files (.mdc) must be placed in the .cursor/rules directory"
40
+
41
+ - type: suggest
42
+ message: |
43
+ When creating Cursor rules:
44
+
45
+ 1. Always place rule files in PROJECT_ROOT/.cursor/rules/:
46
+ ```
47
+ .cursor/rules/
48
+ ├── your-rule-name.mdc
49
+ ├── another-rule.mdc
50
+ └── ...
51
+ ```
52
+
53
+ 2. Follow the naming convention:
54
+ - Use kebab-case for filenames
55
+ - Always use .mdc extension
56
+ - Make names descriptive of the rule's purpose
57
+
58
+ 3. Directory structure:
59
+ ```
60
+ PROJECT_ROOT/
61
+ ├── .cursor/
62
+ │ └── rules/
63
+ │ ├── your-rule-name.mdc
64
+ │ └── ...
65
+ └── ...
66
+ ```
67
+
68
+ 4. Never place rule files:
69
+ - In the project root
70
+ - In subdirectories outside .cursor/rules
71
+ - In any other location
72
+ - Inside of the cursor-rules.mdc file
73
+
74
+ examples:
75
+ - input: |
76
+ # Bad: Rule file in wrong location
77
+ rules/my-rule.mdc
78
+ my-rule.mdc
79
+ .rules/my-rule.mdc
80
+
81
+ # Good: Rule file in correct location
82
+ .cursor/rules/my-rule.mdc
83
+ output: "Correctly placed Cursor rule file"
84
+
85
+ metadata:
86
+ priority: high
87
+ version: 1.0
88
+ </rule>
@@ -0,0 +1,176 @@
1
+ ---
2
+ description: |
3
+ This rule provides guidance for working with the FileMaker Data API in this project. It should be included when:
4
+ 1. Working with database operations or data fetching
5
+ 2. Encountering database-related errors or type issues
6
+ 3. Making changes to FileMaker schemas or layouts
7
+ 4. Implementing new data access patterns
8
+ 5. Discussing alternative data storage solutions
9
+ 6. Working with server-side API routes or actions
10
+ globs:
11
+ - "src/**/*.ts"
12
+ - "src/**/*.tsx"
13
+ - "**/fmschema.config.mjs"
14
+ - "src/**/actions/*.ts"
15
+ alwaysApply: true
16
+ ---
17
+ # FileMaker Data API Integration
18
+
19
+ This rule documents how the FileMaker Data API is integrated and used in the project.
20
+
21
+ <rule>
22
+ name: filemaker_api
23
+ description: Documents FileMaker Data API integration patterns and conventions. FileMaker is the ONLY data source for this application - no SQL or other databases should be used.
24
+ filters:
25
+ - type: file_extension
26
+ pattern: "\\.(ts|tsx)$"
27
+ - type: directory
28
+ pattern: "src/server/"
29
+ - type: content
30
+ pattern: "(@proofkit/cli|ZodError|typegen)"
31
+
32
+ data_source_policy:
33
+ exclusive_source: "FileMaker Data API"
34
+ prohibited:
35
+ - "SQL databases"
36
+ - "NoSQL databases"
37
+ - "Local storage for persistent data"
38
+ - "Direct file system storage"
39
+ reason: "All data operations must go through FileMaker to maintain data integrity and business logic"
40
+
41
+ troubleshooting:
42
+ priority_order:
43
+ - "ALWAYS run `{package-manager} typegen` first for ANY data loading issues"
44
+ - "DO NOT check environment variables unless you have a specific error message pointing to them"
45
+ - "Check for FileMaker schema changes"
46
+ - "Verify type definitions match current schema"
47
+ - "Review Zod validation errors"
48
+ rationale: "Most data loading issues are resolved by running typegen. Environment variables are rarely the cause of data loading problems and should not be investigated unless specific error messages indicate an authentication or connection issue."
49
+
50
+ conventions:
51
+ api_setup:
52
+ - Uses @proofkit/fmdapi package version ^5.0.0
53
+ - Configuration in fmschema.config.mjs
54
+ - Environment variables in .env for connection details
55
+ - Type generation via `{package-manager} typegen` command
56
+
57
+ data_access:
58
+ - ALL data operations MUST use FileMaker Data API
59
+ - Server-side only API calls via @proofkit/fmdapi
60
+ - Type-safe database operations
61
+ - Centralized error handling
62
+ - Connection pooling and session management
63
+ - No direct database connections outside FileMaker
64
+
65
+ data_operations:
66
+ create:
67
+ - Use layout.create({ fieldData: {...} })
68
+ - Validate input against Zod schemas
69
+ - Returns recordId of created record
70
+ - Handle duplicates via FileMaker business logic
71
+ read:
72
+ - Use layout.get({ recordId }) for single record by ID
73
+ - Use layout.find({ query, limit, offset, sort }) for multiple records
74
+ - Use layout.maybeFindFirst({ query }) for optional single record
75
+ - Support for complex queries and sorting
76
+ update:
77
+ - Use layout.update({ recordId, fieldData })
78
+ - Follow FileMaker field naming conventions
79
+ - Respect FileMaker validation rules
80
+ delete:
81
+ - Use layout.delete({ recordId })
82
+ - Respect FileMaker deletion rules
83
+ - Handle cascading deletes via FileMaker
84
+ query_options:
85
+ - Limit and offset for pagination
86
+ - Sort by multiple fields with ascend/descend
87
+ - Complex query criteria with operators (==, *, etc.)
88
+ - Optional type-safe responses with Zod validation
89
+
90
+ security:
91
+ - Credentials stored in environment variables
92
+ - No direct client-side FM API access
93
+ - API routes validate authentication
94
+ - Data sanitization before queries
95
+ - All database access through FileMaker only
96
+
97
+ type_generation:
98
+ process:
99
+ - "IMPORTANT: Running `{package-manager} typegen` solves almost all data loading problems"
100
+ - "Run `{package-manager} typegen` after any FileMaker schema changes"
101
+ - "Run `{package-manager} typegen` as first step when troubleshooting data issues"
102
+ - "Types are generated from FileMaker database schema"
103
+ - "Generated types are used in server actions and components"
104
+ - "Zod schemas validate runtime data against types"
105
+
106
+ common_issues:
107
+ schema_changes:
108
+ symptoms:
109
+ - "No data appearing in tables"
110
+ - "ZodError during runtime"
111
+ - "Missing or renamed fields"
112
+ - "Type mismatches in responses"
113
+ - "Empty query results"
114
+ solution: "ALWAYS run `{package-manager} typegen && {package-manager} tsc` first"
115
+ important_note: "Do NOT check environment variables as a cause for data loading problems unless you have a specific known error that points to environment variables. Most data loading issues are resolved by running typegen."
116
+
117
+ field_types:
118
+ symptoms:
119
+ - "Unexpected null values"
120
+ - "Type conversion errors"
121
+ - "Invalid date formats"
122
+ solution: "Update Zod schemas and type definitions"
123
+
124
+ security_notes:
125
+ - "Never display, log, or commit environment variables"
126
+ - "Never check environment variable values directly"
127
+ - "Keep .env files out of version control"
128
+ - "When troubleshooting, only verify if variables exist, never their values"
129
+
130
+ patterns:
131
+ - Server actions wrap FM API calls
132
+ - Type definitions generated from FM schema
133
+ - Error boundaries for FM API errors
134
+ - Rate limiting on API routes
135
+ - Caching strategies for frequent queries
136
+
137
+ dependencies:
138
+ fmdapi: "@proofkit/fmdapi@^5.0.0"
139
+ proofkit: "@proofkit/cli@^1.0.0"
140
+
141
+ keywords:
142
+ database:
143
+ - "FileMaker"
144
+ - "FMREST"
145
+ - "Database schema"
146
+ - "Field types"
147
+ - "Type generation"
148
+ - "Schema changes"
149
+ - "Exclusive data source"
150
+ - "No SQL"
151
+ - "FileMaker only"
152
+ - "Data API"
153
+ errors:
154
+ - "ZodError"
155
+ - "TypeError"
156
+ - "ValidationError"
157
+ - "Missing field"
158
+ - "Runtime error"
159
+ commands:
160
+ - "typegen"
161
+ - "tsc"
162
+ - "type checking"
163
+ - "schema update"
164
+ operations:
165
+ - "FM.create"
166
+ - "FM.find"
167
+ - "FM.get"
168
+ - "FM.update"
169
+ - "FM.delete"
170
+ - "FileMaker layout"
171
+ - "FileMaker query"
172
+
173
+ metadata:
174
+ priority: high
175
+ version: 1.0
176
+ </rule>