@donotdev/cli 0.0.3
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/LICENSE.md +48 -0
- package/README.md +291 -0
- package/dependencies-matrix.json +694 -0
- package/dist/bin/commands/build.d.ts +11 -0
- package/dist/bin/commands/build.d.ts.map +1 -0
- package/dist/bin/commands/build.js +8162 -0
- package/dist/bin/commands/build.js.map +1 -0
- package/dist/bin/commands/bump.d.ts +11 -0
- package/dist/bin/commands/bump.d.ts.map +1 -0
- package/dist/bin/commands/bump.js +8004 -0
- package/dist/bin/commands/bump.js.map +1 -0
- package/dist/bin/commands/cacheout.d.ts +11 -0
- package/dist/bin/commands/cacheout.d.ts.map +1 -0
- package/dist/bin/commands/cacheout.js +7630 -0
- package/dist/bin/commands/cacheout.js.map +1 -0
- package/dist/bin/commands/create-app.d.ts +11 -0
- package/dist/bin/commands/create-app.d.ts.map +1 -0
- package/dist/bin/commands/create-app.js +9032 -0
- package/dist/bin/commands/create-app.js.map +1 -0
- package/dist/bin/commands/create-project.d.ts +11 -0
- package/dist/bin/commands/create-project.d.ts.map +1 -0
- package/dist/bin/commands/create-project.js +9643 -0
- package/dist/bin/commands/create-project.js.map +1 -0
- package/dist/bin/commands/deploy.d.ts +11 -0
- package/dist/bin/commands/deploy.d.ts.map +1 -0
- package/dist/bin/commands/deploy.js +9007 -0
- package/dist/bin/commands/deploy.js.map +1 -0
- package/dist/bin/commands/dev.d.ts +11 -0
- package/dist/bin/commands/dev.d.ts.map +1 -0
- package/dist/bin/commands/dev.js +7892 -0
- package/dist/bin/commands/dev.js.map +1 -0
- package/dist/bin/commands/emu.d.ts +11 -0
- package/dist/bin/commands/emu.d.ts.map +1 -0
- package/dist/bin/commands/emu.js +8302 -0
- package/dist/bin/commands/emu.js.map +1 -0
- package/dist/bin/commands/format.d.ts +11 -0
- package/dist/bin/commands/format.d.ts.map +1 -0
- package/dist/bin/commands/format.js +8009 -0
- package/dist/bin/commands/format.js.map +1 -0
- package/dist/bin/commands/lint.d.ts +11 -0
- package/dist/bin/commands/lint.d.ts.map +1 -0
- package/dist/bin/commands/lint.js +7481 -0
- package/dist/bin/commands/lint.js.map +1 -0
- package/dist/bin/commands/preview.d.ts +11 -0
- package/dist/bin/commands/preview.d.ts.map +1 -0
- package/dist/bin/commands/preview.js +7909 -0
- package/dist/bin/commands/preview.js.map +1 -0
- package/dist/bin/commands/sync-secrets.d.ts +11 -0
- package/dist/bin/commands/sync-secrets.d.ts.map +1 -0
- package/dist/bin/commands/sync-secrets.js +8227 -0
- package/dist/bin/commands/sync-secrets.js.map +1 -0
- package/dist/bin/dndev.js +222 -0
- package/dist/bin/donotdev.js +222 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12820 -0
- package/dist/index.js.map +1 -0
- package/package.json +71 -0
- package/templates/app-demo/index.html.example +20 -0
- package/templates/app-demo/public/favicon.ico.example +0 -0
- package/templates/app-demo/public/fonts/Roboto-400-cyrillic-ext.woff2.example +0 -0
- package/templates/app-demo/public/fonts/Roboto-400-cyrillic.woff2.example +0 -0
- package/templates/app-demo/public/fonts/Roboto-400-greek-ext.woff2.example +0 -0
- package/templates/app-demo/public/fonts/Roboto-400-greek.woff2.example +0 -0
- package/templates/app-demo/public/fonts/Roboto-400-latin-ext.woff2.example +0 -0
- package/templates/app-demo/public/fonts/Roboto-400-latin.woff2.example +0 -0
- package/templates/app-demo/public/fonts/Roboto-400-vietnamese.woff2.example +0 -0
- package/templates/app-demo/public/fonts/Roboto-700-cyrillic-ext.woff2.example +0 -0
- package/templates/app-demo/public/fonts/Roboto-700-cyrillic.woff2.example +0 -0
- package/templates/app-demo/public/fonts/Roboto-700-greek-ext.woff2.example +0 -0
- package/templates/app-demo/public/fonts/Roboto-700-greek.woff2.example +0 -0
- package/templates/app-demo/public/fonts/Roboto-700-latin-ext.woff2.example +0 -0
- package/templates/app-demo/public/fonts/Roboto-700-latin.woff2.example +0 -0
- package/templates/app-demo/public/fonts/Roboto-700-vietnamese.woff2.example +0 -0
- package/templates/app-demo/public/fonts/fonts.css.example +144 -0
- package/templates/app-demo/public/logo.png.example +0 -0
- package/templates/app-demo/public/logo.svg.example +1 -0
- package/templates/app-demo/public/manifest.json.example +10 -0
- package/templates/app-demo/src/App.tsx.example +17 -0
- package/templates/app-demo/src/Routes.tsx.example +20 -0
- package/templates/app-demo/src/components/ThemeToggle.tsx.example +48 -0
- package/templates/app-demo/src/globals.css.example +4 -0
- package/templates/app-demo/src/main.tsx.example +27 -0
- package/templates/app-demo/src/pages/DetailPage.tsx.example +103 -0
- package/templates/app-demo/src/pages/FullPage.tsx.example +142 -0
- package/templates/app-demo/src/pages/HomePage.tsx.example +79 -0
- package/templates/app-demo/src/pages/components/ComponentRenderer.tsx.example +511 -0
- package/templates/app-demo/src/pages/components/ComponentsData.tsx.example +152 -0
- package/templates/app-demo/src/pages/components/DemoLayout.tsx.example +266 -0
- package/templates/app-demo/src/pages/components/LayoutRoute.tsx.example +20 -0
- package/templates/app-demo/src/pages/components/componentConfig.ts.example +921 -0
- package/templates/app-demo/src/themes.css.example +179 -0
- package/templates/app-demo/tsconfig.json.example +9 -0
- package/templates/app-demo/vite.config.ts.example +53 -0
- package/templates/app-next/.env.example +92 -0
- package/templates/app-next/next.config.ts.example +8 -0
- package/templates/app-next/postcss.config.js.example +58 -0
- package/templates/app-next/service-account-key.json.example +2 -0
- package/templates/app-next/src/app/ClientLayout.tsx.example +39 -0
- package/templates/app-next/src/app/layout.tsx.example +52 -0
- package/templates/app-next/src/app/not-found.tsx.example +21 -0
- package/templates/app-next/src/config/app.ts.example +75 -0
- package/templates/app-next/src/config/legal.ts.example +170 -0
- package/templates/app-next/src/globals.css.example +15 -0
- package/templates/app-next/src/locales/dndev_en.json.example +516 -0
- package/templates/app-next/src/pages/HomePage.tsx.example +20 -0
- package/templates/app-next/src/pages/legal/LegalNoticePage.tsx.example +75 -0
- package/templates/app-next/src/pages/legal/PrivacyPage.tsx.example +69 -0
- package/templates/app-next/src/pages/legal/TermsPage.tsx.example +71 -0
- package/templates/app-next/src/themes.css.example +179 -0
- package/templates/app-next/tsconfig.json.example +11 -0
- package/templates/app-payload/.env.example +28 -0
- package/templates/app-payload/README.md.example +233 -0
- package/templates/app-payload/collections/Company.ts.example +125 -0
- package/templates/app-payload/collections/Hero.ts.example +62 -0
- package/templates/app-payload/collections/Media.ts.example +41 -0
- package/templates/app-payload/collections/Products.ts.example +115 -0
- package/templates/app-payload/collections/Services.ts.example +104 -0
- package/templates/app-payload/collections/Testimonials.ts.example +92 -0
- package/templates/app-payload/collections/Users.ts.example +35 -0
- package/templates/app-payload/src/server.ts.example +79 -0
- package/templates/app-payload/tsconfig.json.example +24 -0
- package/templates/app-vite/.env.example +77 -0
- package/templates/app-vite/index.html.example +127 -0
- package/templates/app-vite/service-account-key.json.example +2 -0
- package/templates/app-vite/src/App.tsx.example +39 -0
- package/templates/app-vite/src/Routes.tsx.example +16 -0
- package/templates/app-vite/src/config/app.ts.example +75 -0
- package/templates/app-vite/src/config/legal.ts.example +170 -0
- package/templates/app-vite/src/globals.css.example +11 -0
- package/templates/app-vite/src/locales/dndev_en.json.example +516 -0
- package/templates/app-vite/src/main.tsx.example +21 -0
- package/templates/app-vite/src/pages/HomePage.tsx.example +22 -0
- package/templates/app-vite/src/pages/NotFoundPage.tsx.example +33 -0
- package/templates/app-vite/src/pages/legal/LegalNoticePage.tsx.example +75 -0
- package/templates/app-vite/src/pages/legal/PrivacyPage.tsx.example +69 -0
- package/templates/app-vite/src/pages/legal/TermsPage.tsx.example +71 -0
- package/templates/app-vite/src/pages/locales/README.md.example +1 -0
- package/templates/app-vite/src/pages/locales/example_en.json.example +5 -0
- package/templates/app-vite/src/themes.css.example +179 -0
- package/templates/app-vite/tsconfig.json.example +9 -0
- package/templates/app-vite/vite.config.ts.example +9 -0
- package/templates/functions-firebase/README.md.example +129 -0
- package/templates/functions-firebase/build.mjs.example +52 -0
- package/templates/functions-firebase/functions-firebase/.env.example.example +45 -0
- package/templates/functions-firebase/functions-firebase/README.md.example +123 -0
- package/templates/functions-firebase/functions-firebase/build.mjs.example +52 -0
- package/templates/functions-firebase/functions-firebase/src/auth/getCustomClaims.ts.example +19 -0
- package/templates/functions-firebase/functions-firebase/src/auth/getUserAuthStatus.ts.example +21 -0
- package/templates/functions-firebase/functions-firebase/src/auth/index.ts.example +11 -0
- package/templates/functions-firebase/functions-firebase/src/auth/removeCustomClaims.ts.example +21 -0
- package/templates/functions-firebase/functions-firebase/src/auth/setCustomClaims.ts.example +21 -0
- package/templates/functions-firebase/functions-firebase/src/billing/handleStripeWebhook.ts.example +24 -0
- package/templates/functions-firebase/functions-firebase/src/billing/index.ts.example +10 -0
- package/templates/functions-firebase/functions-firebase/src/billing/processPaymentSuccess.ts.example +14 -0
- package/templates/functions-firebase/functions-firebase/src/billing/refreshSubscriptionStatus.ts.example +14 -0
- package/templates/functions-firebase/functions-firebase/src/crud/createEntity.ts.example +19 -0
- package/templates/functions-firebase/functions-firebase/src/crud/deleteEntity.ts.example +14 -0
- package/templates/functions-firebase/functions-firebase/src/crud/getEntity.ts.example +14 -0
- package/templates/functions-firebase/functions-firebase/src/crud/index.ts.example +12 -0
- package/templates/functions-firebase/functions-firebase/src/crud/listEntities.ts.example +14 -0
- package/templates/functions-firebase/functions-firebase/src/crud/updateEntity.ts.example +14 -0
- package/templates/functions-firebase/functions-firebase/src/index.ts.example +45 -0
- package/templates/functions-firebase/functions-firebase/src/oauth/checkGitHubAccess.ts.example +14 -0
- package/templates/functions-firebase/functions-firebase/src/oauth/disconnect.ts.example +14 -0
- package/templates/functions-firebase/functions-firebase/src/oauth/exchangeToken.ts.example +14 -0
- package/templates/functions-firebase/functions-firebase/src/oauth/getConnections.ts.example +14 -0
- package/templates/functions-firebase/functions-firebase/src/oauth/grantGitHubAccess.ts.example +14 -0
- package/templates/functions-firebase/functions-firebase/src/oauth/index.ts.example +17 -0
- package/templates/functions-firebase/functions-firebase/src/oauth/refreshToken.ts.example +14 -0
- package/templates/functions-firebase/functions-firebase/src/oauth/revokeGitHubAccess.ts.example +14 -0
- package/templates/functions-firebase/functions-firebase/tsconfig.json.example +21 -0
- package/templates/functions-firebase/functions.yaml.example +14 -0
- package/templates/functions-firebase/src/auth/getCustomClaims.ts.example +19 -0
- package/templates/functions-firebase/src/auth/getUserAuthStatus.ts.example +21 -0
- package/templates/functions-firebase/src/auth/index.ts.example +11 -0
- package/templates/functions-firebase/src/auth/removeCustomClaims.ts.example +21 -0
- package/templates/functions-firebase/src/auth/setCustomClaims.ts.example +21 -0
- package/templates/functions-firebase/src/billing/handleStripeWebhook.ts.example +24 -0
- package/templates/functions-firebase/src/billing/index.ts.example +10 -0
- package/templates/functions-firebase/src/billing/processPaymentSuccess.ts.example +14 -0
- package/templates/functions-firebase/src/billing/refreshSubscriptionStatus.ts.example +14 -0
- package/templates/functions-firebase/src/crud/createEntity.ts.example +19 -0
- package/templates/functions-firebase/src/crud/deleteEntity.ts.example +14 -0
- package/templates/functions-firebase/src/crud/getEntity.ts.example +14 -0
- package/templates/functions-firebase/src/crud/index.ts.example +12 -0
- package/templates/functions-firebase/src/crud/listEntities.ts.example +14 -0
- package/templates/functions-firebase/src/crud/updateEntity.ts.example +14 -0
- package/templates/functions-firebase/src/index.ts.example +45 -0
- package/templates/functions-firebase/src/oauth/checkGitHubAccess.ts.example +14 -0
- package/templates/functions-firebase/src/oauth/disconnect.ts.example +14 -0
- package/templates/functions-firebase/src/oauth/exchangeToken.ts.example +14 -0
- package/templates/functions-firebase/src/oauth/getConnections.ts.example +14 -0
- package/templates/functions-firebase/src/oauth/grantGitHubAccess.ts.example +14 -0
- package/templates/functions-firebase/src/oauth/index.ts.example +17 -0
- package/templates/functions-firebase/src/oauth/refreshToken.ts.example +14 -0
- package/templates/functions-firebase/src/oauth/revokeGitHubAccess.ts.example +14 -0
- package/templates/functions-firebase/tsconfig.json.example +24 -0
- package/templates/functions-vercel/README.md.example +116 -0
- package/templates/functions-vercel/build.mjs.example +52 -0
- package/templates/functions-vercel/functions-vercel/.env.example.example +37 -0
- package/templates/functions-vercel/functions-vercel/README.md.example +116 -0
- package/templates/functions-vercel/functions-vercel/build.mjs.example +52 -0
- package/templates/functions-vercel/functions-vercel/src/api/auth/getCustomClaims.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/auth/getUserAuthStatus.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/auth/removeCustomClaims.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/auth/setCustomClaims.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/billing/handleStripeWebhook.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/billing/processPaymentSuccess.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/billing/refreshSubscriptionStatus.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/crud/createEntity.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/crud/deleteEntity.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/crud/getEntity.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/crud/listEntities.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/crud/updateEntity.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/oauth/checkGitHubAccess.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/oauth/disconnect.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/oauth/exchangeToken.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/oauth/getConnections.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/oauth/grantGitHubAccess.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/oauth/refreshToken.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/src/api/oauth/revokeGitHubAccess.ts.example +20 -0
- package/templates/functions-vercel/functions-vercel/tsconfig.json.example +21 -0
- package/templates/functions-vercel/functions-vercel/vercel.json.example +14 -0
- package/templates/functions-vercel/src/api/auth/getCustomClaims.ts.example +20 -0
- package/templates/functions-vercel/src/api/auth/getUserAuthStatus.ts.example +20 -0
- package/templates/functions-vercel/src/api/auth/removeCustomClaims.ts.example +20 -0
- package/templates/functions-vercel/src/api/auth/setCustomClaims.ts.example +20 -0
- package/templates/functions-vercel/src/api/billing/handleStripeWebhook.ts.example +20 -0
- package/templates/functions-vercel/src/api/billing/processPaymentSuccess.ts.example +20 -0
- package/templates/functions-vercel/src/api/billing/refreshSubscriptionStatus.ts.example +20 -0
- package/templates/functions-vercel/src/api/crud/createEntity.ts.example +20 -0
- package/templates/functions-vercel/src/api/crud/deleteEntity.ts.example +20 -0
- package/templates/functions-vercel/src/api/crud/getEntity.ts.example +20 -0
- package/templates/functions-vercel/src/api/crud/listEntities.ts.example +20 -0
- package/templates/functions-vercel/src/api/crud/updateEntity.ts.example +20 -0
- package/templates/functions-vercel/src/api/oauth/checkGitHubAccess.ts.example +20 -0
- package/templates/functions-vercel/src/api/oauth/disconnect.ts.example +20 -0
- package/templates/functions-vercel/src/api/oauth/exchangeToken.ts.example +20 -0
- package/templates/functions-vercel/src/api/oauth/getConnections.ts.example +20 -0
- package/templates/functions-vercel/src/api/oauth/grantGitHubAccess.ts.example +20 -0
- package/templates/functions-vercel/src/api/oauth/refreshToken.ts.example +20 -0
- package/templates/functions-vercel/src/api/oauth/revokeGitHubAccess.ts.example +20 -0
- package/templates/functions-vercel/tsconfig.json.example +24 -0
- package/templates/functions-vercel/vercel.json.example +14 -0
- package/templates/github/github/workflows/firebase-deploy.yml.example +79 -0
- package/templates/github/workflows/firebase-deploy.yml.example +79 -0
- package/templates/root-consumer/.env.example +19 -0
- package/templates/root-consumer/.gitignore.example +82 -0
- package/templates/root-consumer/.prettierrc.cjs.example +12 -0
- package/templates/root-consumer/CLAUDE.md.example +73 -0
- package/templates/root-consumer/README.md.example +295 -0
- package/templates/root-consumer/bunfig.toml.example +68 -0
- package/templates/root-consumer/eslint.config.js.example +336 -0
- package/templates/root-consumer/firebase.json.example +348 -0
- package/templates/root-consumer/guides/AGENT_START_HERE.md.example +98 -0
- package/templates/root-consumer/guides/APP_CHECK_SETUP.md.example +111 -0
- package/templates/root-consumer/guides/AUTH_SETUP.md.example +92 -0
- package/templates/root-consumer/guides/BILLING_SETUP.md.example +120 -0
- package/templates/root-consumer/guides/CLI.md.example +293 -0
- package/templates/root-consumer/guides/COMPONENTS.md.example +875 -0
- package/templates/root-consumer/guides/CONFIG_SETUP.md.example +132 -0
- package/templates/root-consumer/guides/EMULATOR_SETUP.md.example +48 -0
- package/templates/root-consumer/guides/FEATURES.md.example +286 -0
- package/templates/root-consumer/guides/FRAMEWORK_OVERVIEW.md.example +97 -0
- package/templates/root-consumer/guides/FUNCTIONS.md.example +177 -0
- package/templates/root-consumer/guides/GETTING_STARTED.md.example +451 -0
- package/templates/root-consumer/guides/HOW_TO_USE.md.example +296 -0
- package/templates/root-consumer/guides/I18N_SETUP.md.example +204 -0
- package/templates/root-consumer/guides/IMPORT_PATTERNS.md.example +79 -0
- package/templates/root-consumer/guides/INDEX.md.example +50 -0
- package/templates/root-consumer/guides/INSTALLATION.md.example +296 -0
- package/templates/root-consumer/guides/LAYOUTS.md.example +310 -0
- package/templates/root-consumer/guides/PAGES_SETUP.md.example +123 -0
- package/templates/root-consumer/guides/STYLING.md.example +273 -0
- package/templates/root-consumer/guides/THEMING_SETUP.md.example +119 -0
- package/templates/root-consumer/guides/VERSION_CONTROL.md.example +181 -0
- package/templates/root-consumer/tsconfig.functions.json.example +15 -0
- package/templates/root-consumer/tsconfig.json.example +18 -0
- package/templates/root-consumer/turbo.json.example +46 -0
- package/templates/root-consumer/vercel.json.example +124 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Agent Behavior - All Projects
|
|
2
|
+
|
|
3
|
+
**⚠️ CRITICAL: READ FIRST - ENFORCE ALWAYS ⚠️**
|
|
4
|
+
|
|
5
|
+
**NEVER act without explicit command. Questions = analysis only.**
|
|
6
|
+
**Commands = execute immediately. No assumptions, no auto-actions.**
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
**PRIME DIRECTIVE: PRECISION OVER SPEED.**
|
|
11
|
+
|
|
12
|
+
## **Correctness is non-negotiable. Concise, even at the cost of grammar. Never guess, every output must be verifiable. Check every assumption against actual codebase, documentation or user. If ambiguity exists, ask. No exceptions.**
|
|
13
|
+
|
|
14
|
+
## Identity & Persona Mandate
|
|
15
|
+
|
|
16
|
+
**Human user** - Architect, Product Owner, Product Manager
|
|
17
|
+
**AI assistant** - Lead Developer, UX/UI Designer, Expert Adviser
|
|
18
|
+
|
|
19
|
+
**Objective:** Multi-faceted, critical advisor applications. Blunt, on-point feedback driving applications quality. No sugarcoating.
|
|
20
|
+
|
|
21
|
+
Persona adapts to task:
|
|
22
|
+
|
|
23
|
+
- **Lead Developer:** Implementation, code quality, patterns respect
|
|
24
|
+
- **UX/UI Designer:** UX/UI considerations
|
|
25
|
+
- **Expert Adviser:** Strategic feedback, trade-offs
|
|
26
|
+
|
|
27
|
+
## Communication Style
|
|
28
|
+
|
|
29
|
+
Extremely concise. Sacrifice grammar for concision while maintaining correctness.
|
|
30
|
+
Never guess, always search (codebase, documentation, online) or ask.
|
|
31
|
+
|
|
32
|
+
**Response hygiene:**
|
|
33
|
+
|
|
34
|
+
- NO MIRRORING - never echo user's tone, mood, or phrasing
|
|
35
|
+
- ALWAYS DELIVER facts, analysis, decisions; no motivation or encouragement
|
|
36
|
+
- ALWAYS and ONLY execute the task at hand
|
|
37
|
+
|
|
38
|
+
**Examples:**
|
|
39
|
+
|
|
40
|
+
- ❌ "I will now proceed to update the configuration file"
|
|
41
|
+
- ✅ "Updating config"
|
|
42
|
+
- ❌ "Added support for dark mode theming"
|
|
43
|
+
- ✅ "add dark mode support"
|
|
44
|
+
- ❌ "I have implemented the feature you requested"
|
|
45
|
+
- ✅ "Done"
|
|
46
|
+
|
|
47
|
+
**ALWAYS DO**
|
|
48
|
+
|
|
49
|
+
- Brutal, blunt honest feedback
|
|
50
|
+
- Challenge ideas aggressively
|
|
51
|
+
- Provide pros/cons/trade-offs with evidence/research/studies
|
|
52
|
+
- Suggest better approaches
|
|
53
|
+
- Extremely concise
|
|
54
|
+
- **NEVER act without explicit command** - Questions are for analysis only
|
|
55
|
+
- **NEVER ask follow-up questions** like "Do you want me to...?" or "Should I...?"
|
|
56
|
+
|
|
57
|
+
## Plans
|
|
58
|
+
|
|
59
|
+
At end of each plan, list unresolved questions (if any). Extremely concise.
|
|
60
|
+
|
|
61
|
+
**Example:**
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
**Unresolved:**
|
|
65
|
+
- Auth strategy ? (google or more?)
|
|
66
|
+
- Backend target? (Vercel vs Firebase)
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Environment Constraints
|
|
70
|
+
|
|
71
|
+
## General Principles
|
|
72
|
+
- **Code reading/writing:** Be critical and concise/precise. Question redundant systems, conflicting logic, unnecessary complexity. You need to **ANALYZE** code.
|
|
73
|
+
- **Conventions:** Always follow project's conventions when updating/adding/fixing files
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
# {{projectName}}
|
|
2
|
+
|
|
3
|
+
**Built with [DoNotDev Framework](https://donotdev.com)**
|
|
4
|
+
|
|
5
|
+
## 🚀 Quick Start
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# Install dependencies
|
|
9
|
+
bun install
|
|
10
|
+
|
|
11
|
+
# Start development server
|
|
12
|
+
bun run dev
|
|
13
|
+
|
|
14
|
+
# Build for production
|
|
15
|
+
bun run build
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## 📦 What's Included
|
|
19
|
+
|
|
20
|
+
This project is scaffolded with:
|
|
21
|
+
|
|
22
|
+
- ✅ **DoNotDev Framework** - Modern React framework with auth, billing, i18n
|
|
23
|
+
- ✅ **Vite** - Lightning-fast development
|
|
24
|
+
- ✅ **TypeScript** - Type-safe throughout
|
|
25
|
+
- ✅ **Firebase** - Authentication & database ready
|
|
26
|
+
- ✅ **Stripe** - Billing integration ready (optional)
|
|
27
|
+
- ✅ **i18n** - Multi-language support (8 languages)
|
|
28
|
+
- ✅ **Themes** - Dark mode & custom themes
|
|
29
|
+
|
|
30
|
+
## 📁 Project Structure
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
{{projectName}}/
|
|
34
|
+
├── src/
|
|
35
|
+
│ ├── pages/ # Auto-discovered routes
|
|
36
|
+
│ │ └── HomePage.tsx # Your landing page
|
|
37
|
+
│ ├── components/ # Your components
|
|
38
|
+
│ ├── App.tsx # App entry point
|
|
39
|
+
│ └── main.tsx # Vite entry
|
|
40
|
+
├── public/
|
|
41
|
+
│ └── assets/
|
|
42
|
+
│ ├── themes/ # Custom theme files
|
|
43
|
+
│ └── locales/ # Translation files
|
|
44
|
+
├── CLAUDE.md # Guide for AI agents
|
|
45
|
+
└── package.json
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## 🔧 Configuration
|
|
49
|
+
|
|
50
|
+
### License Key
|
|
51
|
+
|
|
52
|
+
This project uses `@donotdev` packages from npm. To remove the watermark, add your license key:
|
|
53
|
+
|
|
54
|
+
1. Get your license key from [donotdev.com/pricing](https://donotdev.com/pricing)
|
|
55
|
+
2. Add to `.env` file:
|
|
56
|
+
```env
|
|
57
|
+
VITE_DONOTDEV_LICENSE_KEY=dndev_your_key_here
|
|
58
|
+
```
|
|
59
|
+
Or for Next.js:
|
|
60
|
+
```env
|
|
61
|
+
NEXT_PUBLIC_DONOTDEV_LICENSE_KEY=dndev_your_key_here
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Environment Variables
|
|
65
|
+
|
|
66
|
+
1. Copy `.env.example` to `.env`:
|
|
67
|
+
```bash
|
|
68
|
+
cp .env.example .env
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
2. Update the values:
|
|
72
|
+
```env
|
|
73
|
+
VITE_FIREBASE_API_KEY=your-api-key
|
|
74
|
+
VITE_FIREBASE_PROJECT_ID=your-project-id
|
|
75
|
+
VITE_FIREBASE_AUTH_DOMAIN=your-auth-domain
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Features Configuration
|
|
79
|
+
|
|
80
|
+
Edit `vite.config.ts` to enable/disable features:
|
|
81
|
+
|
|
82
|
+
```typescript
|
|
83
|
+
export default defineConfig({
|
|
84
|
+
plugins: [
|
|
85
|
+
doNotDevPlugin({
|
|
86
|
+
features: {
|
|
87
|
+
enabled: ['auth', 'billing', 'oauth'],
|
|
88
|
+
},
|
|
89
|
+
}),
|
|
90
|
+
],
|
|
91
|
+
});
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## 🎨 Customization
|
|
95
|
+
|
|
96
|
+
### Adding Your Logo
|
|
97
|
+
|
|
98
|
+
Add your `logo.svg` to `public/`:
|
|
99
|
+
|
|
100
|
+
- Framework will prompt during build if missing: "Do you want us to provide one from the framework?"
|
|
101
|
+
- Or manually copy from `node_modules/@donotdev/ui/assets/logo.svg`
|
|
102
|
+
- Framework automatically generates favicon, app icons, and PWA assets from your logo
|
|
103
|
+
|
|
104
|
+
### Add a New Page
|
|
105
|
+
|
|
106
|
+
Create a file in `src/pages/`:
|
|
107
|
+
|
|
108
|
+
```tsx
|
|
109
|
+
// src/pages/AboutPage.tsx
|
|
110
|
+
import { PageContainer } from '@donotdev/ui';
|
|
111
|
+
import { Info } from 'lucide-react';
|
|
112
|
+
import type { PageMeta } from '@donotdev/core';
|
|
113
|
+
|
|
114
|
+
export const meta: PageMeta = {
|
|
115
|
+
namespace: 'about',
|
|
116
|
+
icon: <Info />,
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
export default function AboutPage() {
|
|
120
|
+
return (
|
|
121
|
+
<PageContainer variant="standard">
|
|
122
|
+
<h1>About Us</h1>
|
|
123
|
+
</PageContainer>
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Route auto-discovered as `/about` ✨
|
|
129
|
+
|
|
130
|
+
### Add Translations
|
|
131
|
+
|
|
132
|
+
Create/edit `public/assets/locales/about_en.json`:
|
|
133
|
+
|
|
134
|
+
```json
|
|
135
|
+
{
|
|
136
|
+
"title": "About Us",
|
|
137
|
+
"description": "Learn more about our mission"
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Add Custom Theme
|
|
142
|
+
|
|
143
|
+
Edit `src/themes.css`:
|
|
144
|
+
|
|
145
|
+
```css
|
|
146
|
+
.ocean {
|
|
147
|
+
--theme-icon: 'Waves';
|
|
148
|
+
--theme-label: 'Ocean';
|
|
149
|
+
--primary: #0ea5e9;
|
|
150
|
+
--background: #0a1929;
|
|
151
|
+
}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## 🔐 Authentication
|
|
155
|
+
|
|
156
|
+
Enable Firebase Auth:
|
|
157
|
+
|
|
158
|
+
1. Set up Firebase project
|
|
159
|
+
2. Enable authentication methods
|
|
160
|
+
3. Update `.env` with Firebase credentials
|
|
161
|
+
4. Use in your pages:
|
|
162
|
+
|
|
163
|
+
```tsx
|
|
164
|
+
import { useAuth } from '@donotdev/auth';
|
|
165
|
+
|
|
166
|
+
export default function ProfilePage() {
|
|
167
|
+
const { user, signOut } = useAuth();
|
|
168
|
+
return <div>Hello, {user?.displayName}!</div>;
|
|
169
|
+
}
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## 💳 Billing (Optional)
|
|
173
|
+
|
|
174
|
+
Enable Stripe:
|
|
175
|
+
|
|
176
|
+
1. Create Stripe account
|
|
177
|
+
2. Add Stripe keys to `.env`
|
|
178
|
+
3. Enable in `vite.config.ts`
|
|
179
|
+
4. Use in your pages:
|
|
180
|
+
|
|
181
|
+
```tsx
|
|
182
|
+
import { useStripeBilling } from '@donotdev/billing';
|
|
183
|
+
|
|
184
|
+
export default function PricingPage() {
|
|
185
|
+
const { createCheckoutSession } = useStripeBilling();
|
|
186
|
+
return <button onClick={() => createCheckoutSession('pro')}>
|
|
187
|
+
Upgrade to Pro
|
|
188
|
+
</button>;
|
|
189
|
+
}
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
## 🚢 Deployment
|
|
193
|
+
|
|
194
|
+
### Firebase Hosting
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
# Install Firebase CLI
|
|
198
|
+
npm install -g firebase-tools
|
|
199
|
+
|
|
200
|
+
# Login and init
|
|
201
|
+
firebase login
|
|
202
|
+
firebase init hosting
|
|
203
|
+
|
|
204
|
+
# Deploy
|
|
205
|
+
bun run build
|
|
206
|
+
firebase deploy
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### Vercel
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
# Install Vercel CLI
|
|
213
|
+
npm install -g vercel
|
|
214
|
+
|
|
215
|
+
# Deploy
|
|
216
|
+
vercel
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
## 🤖 Working with AI Agents
|
|
220
|
+
|
|
221
|
+
This project includes `CLAUDE.md` - a guide for AI agents like Claude, ChatGPT, etc.
|
|
222
|
+
|
|
223
|
+
When working with an AI:
|
|
224
|
+
1. The AI will automatically read `CLAUDE.md`
|
|
225
|
+
2. The AI will understand the framework conventions
|
|
226
|
+
3. Ask the AI to create pages, add features, fix bugs, etc.
|
|
227
|
+
|
|
228
|
+
**Example prompts:**
|
|
229
|
+
- "Create a blog page with post listing"
|
|
230
|
+
- "Add French translations for the home page"
|
|
231
|
+
- "Create a protected dashboard page that requires authentication"
|
|
232
|
+
- "Add a pricing page with Stripe integration"
|
|
233
|
+
|
|
234
|
+
## 📚 Documentation
|
|
235
|
+
|
|
236
|
+
- **Framework Docs**: [docs.donotdev.com](https://docs.donotdev.com)
|
|
237
|
+
- **CLAUDE.md**: AI agent guide (in this project)
|
|
238
|
+
- **Component Library**: [donotdev.com/components](https://donotdev.com/components)
|
|
239
|
+
|
|
240
|
+
## 🆘 Troubleshooting
|
|
241
|
+
|
|
242
|
+
### Build Errors
|
|
243
|
+
|
|
244
|
+
```bash
|
|
245
|
+
# Clear cache and reinstall
|
|
246
|
+
rm -rf node_modules bun.lock
|
|
247
|
+
bun install
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### Firebase Connection Issues
|
|
251
|
+
|
|
252
|
+
- Verify `.env` has correct Firebase credentials
|
|
253
|
+
- Check Firebase console for project status
|
|
254
|
+
- Ensure authentication is enabled
|
|
255
|
+
|
|
256
|
+
### Hot Reload Not Working
|
|
257
|
+
|
|
258
|
+
- Check Vite config port (default: 5173)
|
|
259
|
+
- Ensure no other process is using the port
|
|
260
|
+
|
|
261
|
+
## 📝 Scripts
|
|
262
|
+
|
|
263
|
+
```bash
|
|
264
|
+
bun run dev # Start development server
|
|
265
|
+
bun run build # Build for production
|
|
266
|
+
bun run preview # Preview production build
|
|
267
|
+
bun run lint # Lint code
|
|
268
|
+
bun run type-check # TypeScript validation
|
|
269
|
+
dndev format # Format code with Prettier
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
### Code Formatting
|
|
273
|
+
|
|
274
|
+
The project includes `.prettierrc.cjs` which extends the framework's Prettier configuration. Run `dndev format` to format all TypeScript files according to the project's Prettier rules.
|
|
275
|
+
|
|
276
|
+
## 🙏 Built With
|
|
277
|
+
|
|
278
|
+
- [DoNotDev Framework](https://donotdev.com) - Application framework
|
|
279
|
+
- [React 19](https://react.dev) - UI library
|
|
280
|
+
- [Vite](https://vitejs.dev) - Build tool
|
|
281
|
+
- [TypeScript](https://www.typescriptlang.org) - Type safety
|
|
282
|
+
- [Firebase](https://firebase.google.com) - Backend services
|
|
283
|
+
- [Stripe](https://stripe.com) - Payment processing
|
|
284
|
+
|
|
285
|
+
## 📄 License
|
|
286
|
+
|
|
287
|
+
Your project license here (MIT, Apache, proprietary, etc.)
|
|
288
|
+
|
|
289
|
+
## 🤝 Contributing
|
|
290
|
+
|
|
291
|
+
[Add your contribution guidelines here]
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
**Need help?** Check [DoNotDev Documentation](https://docs.donotdev.com) or open an issue.
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# Bun Configuration for DoNotDev Framework
|
|
2
|
+
# Copy this to bunfig.toml and adjust as needed
|
|
3
|
+
# Documentation: https://bun.sh/docs/runtime/bunfig
|
|
4
|
+
|
|
5
|
+
[install]
|
|
6
|
+
# Enable workspace support for monorepo
|
|
7
|
+
workspace = true
|
|
8
|
+
|
|
9
|
+
# Dependency installation settings
|
|
10
|
+
exact = false # Allow version ranges (^, ~) for flexibility
|
|
11
|
+
production = false # Install devDependencies (needed for framework development)
|
|
12
|
+
optional = true # Install optional dependencies
|
|
13
|
+
peer = true # Warn on missing peer dependencies (mandatory peers like valibot must be installed)
|
|
14
|
+
|
|
15
|
+
# Workspace linking strategy
|
|
16
|
+
# "hoisted" = shared node_modules at root (faster, less disk space, better tool compatibility)
|
|
17
|
+
# "isolated" = separate node_modules per package (better phantom dependency protection)
|
|
18
|
+
linker = "hoisted"
|
|
19
|
+
|
|
20
|
+
# Hoist essential tools for cross-platform compatibility
|
|
21
|
+
# NOTE: path-to-regexp is required for Firebase emulators compatibility
|
|
22
|
+
publicHoistPattern = [
|
|
23
|
+
"*eslint*",
|
|
24
|
+
"*typescript*",
|
|
25
|
+
"*prettier*",
|
|
26
|
+
"*turbo*",
|
|
27
|
+
"*react*",
|
|
28
|
+
"*@types/react*",
|
|
29
|
+
"*esbuild*",
|
|
30
|
+
"@esbuild/*",
|
|
31
|
+
"@donotdev/*",
|
|
32
|
+
"vite",
|
|
33
|
+
"next",
|
|
34
|
+
"path-to-regexp"
|
|
35
|
+
]
|
|
36
|
+
|
|
37
|
+
# Cache configuration
|
|
38
|
+
cache = true # Enable dependency caching (default, massive speed boost)
|
|
39
|
+
|
|
40
|
+
# Security scanning (optional - requires installation)
|
|
41
|
+
# [install.security]
|
|
42
|
+
# scanner = "@socketsecurity/bun-security-scanner"
|
|
43
|
+
|
|
44
|
+
[run]
|
|
45
|
+
# Use Bun runtime for scripts (significantly faster than Node.js)
|
|
46
|
+
bun = true
|
|
47
|
+
|
|
48
|
+
# Cross-platform shell handling
|
|
49
|
+
# "bun" = use Bun's internal shell (RECOMMENDED for cross-platform compatibility)
|
|
50
|
+
# Ensures consistent behavior across Windows/WSL/Mac/Linux
|
|
51
|
+
shell = "bun"
|
|
52
|
+
|
|
53
|
+
[install.lockfile]
|
|
54
|
+
# Lockfile version (v2 is modern standard for Bun 1.3+)
|
|
55
|
+
version = 2
|
|
56
|
+
|
|
57
|
+
# Additional notes:
|
|
58
|
+
# - Always commit bun.lockb to version control
|
|
59
|
+
# - Use workspace:* protocol for internal package dependencies
|
|
60
|
+
# - For merge conflicts in bun.lockb: accept one side, run bun install, commit
|
|
61
|
+
#
|
|
62
|
+
# Firebase Emulators Compatibility:
|
|
63
|
+
# If using Firebase emulators, add these overrides to your root package.json:
|
|
64
|
+
# "overrides": {
|
|
65
|
+
# "path-to-regexp": "0.1.7",
|
|
66
|
+
# "express>path-to-regexp": "0.1.7",
|
|
67
|
+
# "firebase-tools>express>path-to-regexp": "0.1.7"
|
|
68
|
+
# }
|