@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.
- package/CHANGELOG.md +120 -0
- package/LICENSE.md +21 -0
- package/README.md +19 -0
- package/dist/acorn-AKFTBDM6.js +15 -0
- package/dist/angular-BOQ6FHSU.js +2 -0
- package/dist/babel-ZTOORN7K.js +15 -0
- package/dist/chunk-4LISTI44.js +1 -0
- package/dist/estree-KOJPX4S6.js +36 -0
- package/dist/flow-RCI44GYZ.js +19 -0
- package/dist/glimmer-GV5EF5E4.js +30 -0
- package/dist/graphql-YXQNPQWM.js +29 -0
- package/dist/html-ZAJTRROK.js +22 -0
- package/dist/index.js +300 -0
- package/dist/markdown-Q75DTQI7.js +63 -0
- package/dist/meriyah-32K7GBV5.js +4 -0
- package/dist/postcss-WWYO4PGL.js +54 -0
- package/dist/typescript-M6N7JDNQ.js +20 -0
- package/dist/yaml-LY7PNAYV.js +161 -0
- package/index.d.ts +19 -0
- package/package.json +122 -0
- package/template/extras/_cursor/conditional-rules/nextjs-framework.mdc +51 -0
- package/template/extras/_cursor/conditional-rules/npm.mdc +60 -0
- package/template/extras/_cursor/conditional-rules/pnpm.mdc +65 -0
- package/template/extras/_cursor/conditional-rules/yarn.mdc +60 -0
- package/template/extras/_cursor/rules/cursor-rules.mdc +88 -0
- package/template/extras/_cursor/rules/filemaker-api.mdc +176 -0
- package/template/extras/_cursor/rules/troubleshooting-patterns.mdc +240 -0
- package/template/extras/_cursor/rules/ui-components.mdc +57 -0
- package/template/extras/config/_eslint.js +27 -0
- package/template/extras/config/_prettier.config.js +6 -0
- package/template/extras/config/drizzle-config-mysql.ts +12 -0
- package/template/extras/config/drizzle-config-postgres.ts +12 -0
- package/template/extras/config/drizzle-config-sqlite.ts +12 -0
- package/template/extras/config/fmschema.config.mjs +9 -0
- package/template/extras/config/get-query-client.ts +6 -0
- package/template/extras/config/postcss.config.cjs +7 -0
- package/template/extras/config/query-provider-vite.tsx +19 -0
- package/template/extras/config/query-provider.tsx +21 -0
- package/template/extras/emailProviders/none/email.tsx +24 -0
- package/template/extras/emailProviders/plunk/email.tsx +26 -0
- package/template/extras/emailProviders/plunk/service.ts +4 -0
- package/template/extras/emailProviders/resend/email.tsx +23 -0
- package/template/extras/emailProviders/resend/service.ts +4 -0
- package/template/extras/fmaddon-auth/app/(main)/auth/profile/actions.ts +93 -0
- package/template/extras/fmaddon-auth/app/(main)/auth/profile/page.tsx +27 -0
- package/template/extras/fmaddon-auth/app/(main)/auth/profile/profile-form.tsx +56 -0
- package/template/extras/fmaddon-auth/app/(main)/auth/profile/reset-password-form.tsx +110 -0
- package/template/extras/fmaddon-auth/app/(main)/auth/profile/schema.ts +19 -0
- package/template/extras/fmaddon-auth/app/auth/forgot-password/actions.ts +37 -0
- package/template/extras/fmaddon-auth/app/auth/forgot-password/forgot-form.tsx +41 -0
- package/template/extras/fmaddon-auth/app/auth/forgot-password/page.tsx +21 -0
- package/template/extras/fmaddon-auth/app/auth/forgot-password/schema.ts +5 -0
- package/template/extras/fmaddon-auth/app/auth/login/actions.ts +34 -0
- package/template/extras/fmaddon-auth/app/auth/login/login-form.tsx +64 -0
- package/template/extras/fmaddon-auth/app/auth/login/page.tsx +26 -0
- package/template/extras/fmaddon-auth/app/auth/login/schema.ts +6 -0
- package/template/extras/fmaddon-auth/app/auth/reset-password/actions.ts +50 -0
- package/template/extras/fmaddon-auth/app/auth/reset-password/page.tsx +32 -0
- package/template/extras/fmaddon-auth/app/auth/reset-password/reset-password-form.tsx +59 -0
- package/template/extras/fmaddon-auth/app/auth/reset-password/schema.ts +14 -0
- package/template/extras/fmaddon-auth/app/auth/reset-password/verify-email/actions.ts +45 -0
- package/template/extras/fmaddon-auth/app/auth/reset-password/verify-email/page.tsx +32 -0
- package/template/extras/fmaddon-auth/app/auth/reset-password/verify-email/schema.ts +5 -0
- package/template/extras/fmaddon-auth/app/auth/reset-password/verify-email/verify-email-form.tsx +48 -0
- package/template/extras/fmaddon-auth/app/auth/signup/actions.ts +49 -0
- package/template/extras/fmaddon-auth/app/auth/signup/page.tsx +26 -0
- package/template/extras/fmaddon-auth/app/auth/signup/schema.ts +12 -0
- package/template/extras/fmaddon-auth/app/auth/signup/signup-form.tsx +67 -0
- package/template/extras/fmaddon-auth/app/auth/verify-email/actions.ts +110 -0
- package/template/extras/fmaddon-auth/app/auth/verify-email/email-verification-form.tsx +45 -0
- package/template/extras/fmaddon-auth/app/auth/verify-email/page.tsx +38 -0
- package/template/extras/fmaddon-auth/app/auth/verify-email/resend-button.tsx +35 -0
- package/template/extras/fmaddon-auth/app/auth/verify-email/schema.ts +5 -0
- package/template/extras/fmaddon-auth/components/auth/actions.ts +16 -0
- package/template/extras/fmaddon-auth/components/auth/protect.tsx +17 -0
- package/template/extras/fmaddon-auth/components/auth/redirect.tsx +26 -0
- package/template/extras/fmaddon-auth/components/auth/use-user.ts +59 -0
- package/template/extras/fmaddon-auth/components/auth/user-menu.tsx +51 -0
- package/template/extras/fmaddon-auth/emails/auth-code.tsx +156 -0
- package/template/extras/fmaddon-auth/middleware.ts +45 -0
- package/template/extras/fmaddon-auth/server/auth/utils/email-verification.ts +136 -0
- package/template/extras/fmaddon-auth/server/auth/utils/encryption.ts +51 -0
- package/template/extras/fmaddon-auth/server/auth/utils/index.ts +16 -0
- package/template/extras/fmaddon-auth/server/auth/utils/password-reset.ts +152 -0
- package/template/extras/fmaddon-auth/server/auth/utils/password.ts +67 -0
- package/template/extras/fmaddon-auth/server/auth/utils/redirect.ts +8 -0
- package/template/extras/fmaddon-auth/server/auth/utils/session.ts +192 -0
- package/template/extras/fmaddon-auth/server/auth/utils/user.ts +147 -0
- package/template/extras/prisma/schema/base-planetscale.prisma +24 -0
- package/template/extras/prisma/schema/base.prisma +20 -0
- package/template/extras/prisma/schema/with-auth-planetscale.prisma +77 -0
- package/template/extras/prisma/schema/with-auth.prisma +74 -0
- package/template/extras/src/app/_components/post-tw.tsx +50 -0
- package/template/extras/src/app/_components/post.tsx +54 -0
- package/template/extras/src/app/api/auth/[...nextauth]/route.ts +4 -0
- package/template/extras/src/app/api/trpc/[trpc]/route.ts +34 -0
- package/template/extras/src/app/clerk-auth/layout.tsx +10 -0
- package/template/extras/src/app/clerk-auth/signin/[[...sign-in]]/page.tsx +5 -0
- package/template/extras/src/app/clerk-auth/signup/[[...sign-up]]/page.tsx +5 -0
- package/template/extras/src/app/layout/base.tsx +34 -0
- package/template/extras/src/app/layout/main-shell.tsx +37 -0
- package/template/extras/src/app/layout/with-trpc-tw.tsx +24 -0
- package/template/extras/src/app/layout/with-trpc.tsx +24 -0
- package/template/extras/src/app/layout/with-tw.tsx +20 -0
- package/template/extras/src/app/next-auth/layout.tsx +22 -0
- package/template/extras/src/app/next-auth/signin/page.tsx +82 -0
- package/template/extras/src/app/next-auth/signup/action.ts +24 -0
- package/template/extras/src/app/next-auth/signup/page.tsx +40 -0
- package/template/extras/src/app/next-auth/signup/validation.ts +12 -0
- package/template/extras/src/app/page/base.tsx +6 -0
- package/template/extras/src/app/page/with-auth-trpc-tw.tsx +67 -0
- package/template/extras/src/app/page/with-auth-trpc.tsx +68 -0
- package/template/extras/src/app/page/with-trpc-tw.tsx +53 -0
- package/template/extras/src/app/page/with-trpc.tsx +54 -0
- package/template/extras/src/app/page/with-tw.tsx +37 -0
- package/template/extras/src/components/clerk-auth/clerk-provider.tsx +18 -0
- package/template/extras/src/components/clerk-auth/user-menu-mobile.tsx +36 -0
- package/template/extras/src/components/clerk-auth/user-menu.tsx +24 -0
- package/template/extras/src/components/next-auth/next-auth-provider.tsx +14 -0
- package/template/extras/src/components/next-auth/user-menu-mobile.tsx +31 -0
- package/template/extras/src/components/next-auth/user-menu.tsx +38 -0
- package/template/extras/src/env/with-auth.ts +31 -0
- package/template/extras/src/env/with-clerk.ts +20 -0
- package/template/extras/src/index.module.css +177 -0
- package/template/extras/src/middleware/clerk.ts +20 -0
- package/template/extras/src/middleware/next-auth.ts +5 -0
- package/template/extras/src/pages/_app/base.tsx +14 -0
- package/template/extras/src/pages/_app/with-auth-trpc-tw.tsx +23 -0
- package/template/extras/src/pages/_app/with-auth-trpc.tsx +23 -0
- package/template/extras/src/pages/_app/with-auth-tw.tsx +21 -0
- package/template/extras/src/pages/_app/with-auth.tsx +21 -0
- package/template/extras/src/pages/_app/with-trpc-tw.tsx +16 -0
- package/template/extras/src/pages/_app/with-trpc.tsx +16 -0
- package/template/extras/src/pages/_app/with-tw.tsx +14 -0
- package/template/extras/src/pages/api/auth/[...nextauth].ts +5 -0
- package/template/extras/src/pages/api/trpc/[trpc].ts +19 -0
- package/template/extras/src/pages/index/base.tsx +47 -0
- package/template/extras/src/pages/index/with-auth-trpc-tw.tsx +80 -0
- package/template/extras/src/pages/index/with-auth-trpc.tsx +81 -0
- package/template/extras/src/pages/index/with-trpc-tw.tsx +52 -0
- package/template/extras/src/pages/index/with-trpc.tsx +53 -0
- package/template/extras/src/pages/index/with-tw.tsx +45 -0
- package/template/extras/src/server/api/root.ts +23 -0
- package/template/extras/src/server/api/routers/post/base.ts +40 -0
- package/template/extras/src/server/api/routers/post/with-auth-drizzle.ts +39 -0
- package/template/extras/src/server/api/routers/post/with-auth-prisma.ts +41 -0
- package/template/extras/src/server/api/routers/post/with-auth.ts +37 -0
- package/template/extras/src/server/api/routers/post/with-drizzle.ts +30 -0
- package/template/extras/src/server/api/routers/post/with-prisma.ts +31 -0
- package/template/extras/src/server/api/trpc-app/base.ts +103 -0
- package/template/extras/src/server/api/trpc-app/with-auth-db.ts +133 -0
- package/template/extras/src/server/api/trpc-app/with-auth.ts +130 -0
- package/template/extras/src/server/api/trpc-app/with-db.ts +106 -0
- package/template/extras/src/server/api/trpc-pages/base.ts +122 -0
- package/template/extras/src/server/api/trpc-pages/with-auth-db.ts +160 -0
- package/template/extras/src/server/api/trpc-pages/with-auth.ts +158 -0
- package/template/extras/src/server/api/trpc-pages/with-db.ts +125 -0
- package/template/extras/src/server/data/users.ts +23 -0
- package/template/extras/src/server/db/db-prisma-planetscale.ts +22 -0
- package/template/extras/src/server/db/db-prisma.ts +17 -0
- package/template/extras/src/server/db/index-drizzle/with-mysql.ts +18 -0
- package/template/extras/src/server/db/index-drizzle/with-planetscale.ts +7 -0
- package/template/extras/src/server/db/index-drizzle/with-postgres.ts +18 -0
- package/template/extras/src/server/db/index-drizzle/with-sqlite.ts +19 -0
- package/template/extras/src/server/db/schema-drizzle/base-mysql.ts +34 -0
- package/template/extras/src/server/db/schema-drizzle/base-planetscale.ts +34 -0
- package/template/extras/src/server/db/schema-drizzle/base-postgres.ts +36 -0
- package/template/extras/src/server/db/schema-drizzle/base-sqlite.ts +30 -0
- package/template/extras/src/server/db/schema-drizzle/with-auth-mysql.ts +123 -0
- package/template/extras/src/server/db/schema-drizzle/with-auth-planetscale.ts +117 -0
- package/template/extras/src/server/db/schema-drizzle/with-auth-postgres.ts +130 -0
- package/template/extras/src/server/db/schema-drizzle/with-auth-sqlite.ts +116 -0
- package/template/extras/src/server/next-auth/base.ts +111 -0
- package/template/extras/src/server/next-auth/password.ts +13 -0
- package/template/extras/src/server/next-auth/with-drizzle.ts +83 -0
- package/template/extras/src/server/next-auth/with-prisma.ts +72 -0
- package/template/extras/src/trpc/query-client.ts +25 -0
- package/template/extras/src/trpc/react.tsx +76 -0
- package/template/extras/src/trpc/server.ts +30 -0
- package/template/extras/src/utils/api.ts +68 -0
- package/template/extras/start-database/mysql.sh +54 -0
- package/template/extras/start-database/postgres.sh +55 -0
- package/template/fm-addon/ProofKitAuth/de.xml +518 -0
- package/template/fm-addon/ProofKitAuth/en.xml +518 -0
- package/template/fm-addon/ProofKitAuth/es.xml +518 -0
- package/template/fm-addon/ProofKitAuth/fr.xml +518 -0
- package/template/fm-addon/ProofKitAuth/icon.png +0 -0
- package/template/fm-addon/ProofKitAuth/icon@2x.png +0 -0
- package/template/fm-addon/ProofKitAuth/info.json +11 -0
- package/template/fm-addon/ProofKitAuth/info_de.json +18 -0
- package/template/fm-addon/ProofKitAuth/info_en.json +8 -0
- package/template/fm-addon/ProofKitAuth/info_es.json +18 -0
- package/template/fm-addon/ProofKitAuth/info_fr.json +18 -0
- package/template/fm-addon/ProofKitAuth/info_it.json +18 -0
- package/template/fm-addon/ProofKitAuth/info_ja.json +18 -0
- package/template/fm-addon/ProofKitAuth/info_ko.json +18 -0
- package/template/fm-addon/ProofKitAuth/info_nl.json +18 -0
- package/template/fm-addon/ProofKitAuth/info_pt.json +18 -0
- package/template/fm-addon/ProofKitAuth/info_sv.json +18 -0
- package/template/fm-addon/ProofKitAuth/info_zh.json +18 -0
- package/template/fm-addon/ProofKitAuth/it.xml +518 -0
- package/template/fm-addon/ProofKitAuth/ja.xml +518 -0
- package/template/fm-addon/ProofKitAuth/ko.xml +518 -0
- package/template/fm-addon/ProofKitAuth/nl.xml +518 -0
- package/template/fm-addon/ProofKitAuth/preview.png +0 -0
- package/template/fm-addon/ProofKitAuth/pt.xml +518 -0
- package/template/fm-addon/ProofKitAuth/sv.xml +518 -0
- package/template/fm-addon/ProofKitAuth/template.xml +0 -0
- package/template/fm-addon/ProofKitAuth/zh.xml +518 -0
- package/template/fm-addon/ProofKitWV/de.xml +896 -0
- package/template/fm-addon/ProofKitWV/en.xml +896 -0
- package/template/fm-addon/ProofKitWV/es.xml +896 -0
- package/template/fm-addon/ProofKitWV/fr.xml +896 -0
- package/template/fm-addon/ProofKitWV/icon.png +0 -0
- package/template/fm-addon/ProofKitWV/icon@2x.png +0 -0
- package/template/fm-addon/ProofKitWV/info.json +11 -0
- package/template/fm-addon/ProofKitWV/info_de.json +18 -0
- package/template/fm-addon/ProofKitWV/info_en.json +11 -0
- package/template/fm-addon/ProofKitWV/info_es.json +18 -0
- package/template/fm-addon/ProofKitWV/info_fr.json +18 -0
- package/template/fm-addon/ProofKitWV/info_it.json +18 -0
- package/template/fm-addon/ProofKitWV/info_ja.json +18 -0
- package/template/fm-addon/ProofKitWV/info_ko.json +18 -0
- package/template/fm-addon/ProofKitWV/info_nl.json +18 -0
- package/template/fm-addon/ProofKitWV/info_pt.json +18 -0
- package/template/fm-addon/ProofKitWV/info_sv.json +18 -0
- package/template/fm-addon/ProofKitWV/info_zh.json +18 -0
- package/template/fm-addon/ProofKitWV/it.xml +896 -0
- package/template/fm-addon/ProofKitWV/ja.xml +896 -0
- package/template/fm-addon/ProofKitWV/ko.xml +896 -0
- package/template/fm-addon/ProofKitWV/nl.xml +896 -0
- package/template/fm-addon/ProofKitWV/preview.png +0 -0
- package/template/fm-addon/ProofKitWV/pt.xml +896 -0
- package/template/fm-addon/ProofKitWV/records_de.xml +0 -0
- package/template/fm-addon/ProofKitWV/records_en.xml +0 -0
- package/template/fm-addon/ProofKitWV/records_es.xml +0 -0
- package/template/fm-addon/ProofKitWV/records_fr.xml +0 -0
- package/template/fm-addon/ProofKitWV/records_it.xml +0 -0
- package/template/fm-addon/ProofKitWV/records_ja.xml +0 -0
- package/template/fm-addon/ProofKitWV/records_ko.xml +0 -0
- package/template/fm-addon/ProofKitWV/records_nl.xml +0 -0
- package/template/fm-addon/ProofKitWV/records_pt.xml +0 -0
- package/template/fm-addon/ProofKitWV/records_sv.xml +0 -0
- package/template/fm-addon/ProofKitWV/records_zh.xml +0 -0
- package/template/fm-addon/ProofKitWV/sv.xml +896 -0
- package/template/fm-addon/ProofKitWV/template.xml +0 -0
- package/template/fm-addon/ProofKitWV/zh.xml +896 -0
- package/template/nextjs/README.md +27 -0
- package/template/nextjs/_gitignore +37 -0
- package/template/nextjs/next.config.ts +12 -0
- package/template/nextjs/package.json +50 -0
- package/template/nextjs/postcss.config.cjs +14 -0
- package/template/nextjs/proofkit.json +1 -0
- package/template/nextjs/public/favicon.ico +0 -0
- package/template/nextjs/public/proofkit.png +0 -0
- package/template/nextjs/src/app/(main)/layout.tsx +6 -0
- package/template/nextjs/src/app/(main)/page.tsx +90 -0
- package/template/nextjs/src/app/layout.tsx +39 -0
- package/template/nextjs/src/app/navigation.tsx +12 -0
- package/template/nextjs/src/components/AppLogo.tsx +6 -0
- package/template/nextjs/src/components/AppShell/internal/AppShell.tsx +21 -0
- package/template/nextjs/src/components/AppShell/internal/Header.module.css +40 -0
- package/template/nextjs/src/components/AppShell/internal/Header.tsx +34 -0
- package/template/nextjs/src/components/AppShell/internal/HeaderMobileMenu.tsx +27 -0
- package/template/nextjs/src/components/AppShell/internal/HeaderNavLink.tsx +31 -0
- package/template/nextjs/src/components/AppShell/internal/config.ts +1 -0
- package/template/nextjs/src/components/AppShell/slot-header-center.tsx +13 -0
- package/template/nextjs/src/components/AppShell/slot-header-left.tsx +23 -0
- package/template/nextjs/src/components/AppShell/slot-header-mobile-content.tsx +43 -0
- package/template/nextjs/src/components/AppShell/slot-header-right.tsx +26 -0
- package/template/nextjs/src/config/env.ts +13 -0
- package/template/nextjs/src/config/theme/globals.css +1 -0
- package/template/nextjs/src/config/theme/mantine-theme.ts +22 -0
- package/template/nextjs/src/server/safe-action.ts +3 -0
- package/template/nextjs/src/utils/notification-helpers.ts +32 -0
- package/template/nextjs/tsconfig.json +40 -0
- package/template/pages/nextjs/blank/page.tsx +5 -0
- package/template/pages/nextjs/table/page.tsx +17 -0
- package/template/pages/nextjs/table/table.tsx +18 -0
- package/template/pages/nextjs/table-edit/actions.ts +23 -0
- package/template/pages/nextjs/table-edit/page.tsx +28 -0
- package/template/pages/nextjs/table-edit/schema.ts +4 -0
- package/template/pages/nextjs/table-edit/table.tsx +43 -0
- package/template/pages/nextjs/table-infinite/actions.ts +62 -0
- package/template/pages/nextjs/table-infinite/page.tsx +11 -0
- package/template/pages/nextjs/table-infinite/query.ts +44 -0
- package/template/pages/nextjs/table-infinite/table.tsx +107 -0
- package/template/pages/nextjs/table-infinite-edit/actions.ts +84 -0
- package/template/pages/nextjs/table-infinite-edit/page.tsx +23 -0
- package/template/pages/nextjs/table-infinite-edit/query.ts +81 -0
- package/template/pages/nextjs/table-infinite-edit/schema.ts +4 -0
- package/template/pages/nextjs/table-infinite-edit/table.tsx +130 -0
- package/template/pages/vite-wv/blank/index.tsx +0 -0
- package/template/pages/vite-wv/table/index.tsx +34 -0
- package/template/pages/vite-wv/table-edit/index.tsx +72 -0
- package/template/vite-wv/.vscode/settings.json +11 -0
- package/template/vite-wv/_gitignore +18 -0
- package/template/vite-wv/index.html +13 -0
- package/template/vite-wv/package.json +52 -0
- package/template/vite-wv/pnpm-lock.yaml +2294 -0
- package/template/vite-wv/postcss.config.cjs +14 -0
- package/template/vite-wv/proofkit.json +1 -0
- package/template/vite-wv/scripts/launch-fm.sh +3 -0
- package/template/vite-wv/scripts/upload.js +21 -0
- package/template/vite-wv/src/components/AppLogo.tsx +5 -0
- package/template/vite-wv/src/components/full-screen-loader.tsx +9 -0
- package/template/vite-wv/src/config/env.ts +16 -0
- package/template/vite-wv/src/config/theme/globals.css +1 -0
- package/template/vite-wv/src/config/theme/mantine-theme.ts +22 -0
- package/template/vite-wv/src/main.tsx +42 -0
- package/template/vite-wv/src/routeTree.gen.ts +111 -0
- package/template/vite-wv/src/routes/__root.tsx +21 -0
- package/template/vite-wv/src/routes/index.tsx +63 -0
- package/template/vite-wv/src/routes/secondary.tsx +28 -0
- package/template/vite-wv/src/utils/notification-helpers.ts +32 -0
- package/template/vite-wv/tsconfig.json +14 -0
- 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>
|