@donotdev/cli 0.0.14 → 0.0.15

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 (151) hide show
  1. package/dependencies-matrix.json +356 -88
  2. package/dist/bin/commands/agent-setup.js +7 -1
  3. package/dist/bin/commands/build.js +118 -38
  4. package/dist/bin/commands/bump.js +74 -28
  5. package/dist/bin/commands/cacheout.js +37 -9
  6. package/dist/bin/commands/create-app.js +222 -115
  7. package/dist/bin/commands/create-project.js +455 -140
  8. package/dist/bin/commands/deploy.js +1736 -697
  9. package/dist/bin/commands/dev.js +138 -23
  10. package/dist/bin/commands/emu.js +215 -58
  11. package/dist/bin/commands/format.js +37 -9
  12. package/dist/bin/commands/lint.js +37 -9
  13. package/dist/bin/commands/preview.js +142 -23
  14. package/dist/bin/commands/supabase-setup.d.ts +6 -0
  15. package/dist/bin/commands/supabase-setup.d.ts.map +1 -0
  16. package/dist/bin/commands/supabase-setup.js +7 -0
  17. package/dist/bin/commands/supabase-setup.js.map +1 -0
  18. package/dist/bin/commands/sync-secrets.js +211 -34
  19. package/dist/bin/commands/type-check.d.ts +14 -0
  20. package/dist/bin/commands/type-check.d.ts.map +1 -0
  21. package/dist/bin/commands/type-check.js +314 -0
  22. package/dist/bin/commands/type-check.js.map +1 -0
  23. package/dist/bin/commands/wai.js +3 -1
  24. package/dist/bin/dndev.js +27 -2
  25. package/dist/bin/donotdev.js +27 -2
  26. package/dist/index.js +3960 -3015
  27. package/package.json +2 -2
  28. package/templates/app-demo/src/App.tsx.example +1 -0
  29. package/templates/app-demo/src/pages/FullPage.tsx.example +2 -2
  30. package/templates/app-demo/src/pages/components/DemoLayout.tsx.example +2 -2
  31. package/templates/app-demo/src/themes.css.example +5 -12
  32. package/templates/app-expo/.env.example +64 -0
  33. package/templates/app-expo/.expo/README.md.example +5 -0
  34. package/templates/app-expo/.gitignore.example +36 -0
  35. package/templates/app-expo/README.md.example +58 -0
  36. package/templates/app-expo/app/.gitkeep +2 -0
  37. package/templates/app-expo/app/_layout.tsx.example +41 -0
  38. package/templates/app-expo/app/form.tsx.example +52 -0
  39. package/templates/app-expo/app/index.tsx.example +89 -0
  40. package/templates/app-expo/app/list.tsx.example +32 -0
  41. package/templates/app-expo/app/profile.tsx.example +76 -0
  42. package/templates/app-expo/app/signin.tsx.example +53 -0
  43. package/templates/app-expo/app.json.example +39 -0
  44. package/templates/app-expo/babel.config.js.example +10 -0
  45. package/templates/app-expo/eas.json.example +20 -0
  46. package/templates/app-expo/expo-env.d.ts.example +4 -0
  47. package/templates/app-expo/metro.config.js.example +20 -0
  48. package/templates/app-expo/service-account-key.json.example +12 -0
  49. package/templates/app-expo/tsconfig.json.example +19 -0
  50. package/templates/app-next/.env.example +4 -33
  51. package/templates/app-next/src/app/ClientLayout.tsx.example +2 -0
  52. package/templates/app-next/src/app/layout.tsx.example +7 -6
  53. package/templates/app-next/src/globals.css.example +2 -11
  54. package/templates/app-next/src/pages/HomePage.tsx.example +1 -1
  55. package/templates/app-next/src/themes.css.example +10 -13
  56. package/templates/app-vite/.env.example +3 -32
  57. package/templates/app-vite/index.html.example +2 -24
  58. package/templates/app-vite/src/App.tsx.example +2 -0
  59. package/templates/app-vite/src/globals.css.example +2 -12
  60. package/templates/app-vite/src/pages/FormPageExample.tsx.example +1 -2
  61. package/templates/app-vite/src/pages/HomePage.tsx.example +1 -1
  62. package/templates/app-vite/src/themes.css.example +109 -79
  63. package/templates/app-vite/vercel.json.example +11 -0
  64. package/templates/functions-firebase/build.mjs.example +2 -72
  65. package/templates/functions-firebase/functions-firebase/.env.example.example +23 -25
  66. package/templates/functions-firebase/functions-firebase/build.mjs.example +2 -72
  67. package/templates/functions-firebase/functions-firebase/tsconfig.json.example +1 -1
  68. package/templates/functions-supabase/supabase/functions/cancel-subscription/index.ts.example +7 -0
  69. package/templates/functions-supabase/supabase/functions/change-plan/index.ts.example +11 -0
  70. package/templates/functions-supabase/supabase/functions/create-checkout-session/index.ts.example +11 -0
  71. package/templates/functions-supabase/supabase/functions/create-customer-portal/index.ts.example +7 -0
  72. package/templates/functions-supabase/supabase/functions/crud/index.ts.example +16 -0
  73. package/templates/functions-supabase/supabase/functions/delete-account/index.ts.example +7 -0
  74. package/templates/functions-supabase/supabase/functions/get-custom-claims/index.ts.example +7 -0
  75. package/templates/functions-supabase/supabase/functions/get-user-auth-status/index.ts.example +7 -0
  76. package/templates/functions-supabase/supabase/functions/refresh-subscription-status/index.ts.example +7 -0
  77. package/templates/functions-supabase/supabase/functions/remove-custom-claims/index.ts.example +7 -0
  78. package/templates/functions-supabase/supabase/functions/set-custom-claims/index.ts.example +7 -0
  79. package/templates/functions-supabase/supabase/migrations/20250101000000_idempotency.sql +24 -0
  80. package/templates/functions-supabase/supabase/migrations/20250101000001_rate_limits.sql +22 -0
  81. package/templates/functions-supabase/supabase/migrations/20250101000002_cleanup_jobs.sql +28 -0
  82. package/templates/functions-supabase/supabase/migrations/20250101000003_operation_metrics.sql +28 -0
  83. package/templates/functions-vercel/functions-vercel/tsconfig.json.example +1 -1
  84. package/templates/functions-vercel/functions-vercel/vercel.json.example +1 -1
  85. package/templates/functions-vercel/vercel.json.example +1 -1
  86. package/templates/github/github/workflows/firebase-deploy.yml.example +1 -1
  87. package/templates/github/workflows/firebase-deploy.yml.example +1 -1
  88. package/templates/overlay-firebase/env.fragment.example +34 -0
  89. package/templates/overlay-firebase/env.fragment.expo.example +34 -0
  90. package/templates/overlay-firebase/env.fragment.nextjs.example +34 -0
  91. package/templates/overlay-firebase/src/config/providers.expo.ts.example +49 -0
  92. package/templates/overlay-firebase/src/config/providers.ts.example +23 -0
  93. package/templates/overlay-supabase/env.fragment.example +7 -0
  94. package/templates/overlay-supabase/env.fragment.expo.example +7 -0
  95. package/templates/overlay-supabase/env.fragment.nextjs.example +7 -0
  96. package/templates/overlay-supabase/src/config/providers.expo.ts.example +35 -0
  97. package/templates/overlay-supabase/src/config/providers.ts.example +33 -0
  98. package/templates/overlay-supabase/vercel.headers.example +23 -0
  99. package/templates/overlay-supabase/vercel.json.example +22 -0
  100. package/templates/overlay-vercel/env.fragment.example +34 -0
  101. package/templates/overlay-vercel/env.fragment.nextjs.example +34 -0
  102. package/templates/overlay-vercel/src/config/providers.ts.example +24 -0
  103. package/templates/root-consumer/.claude/agents/architect.md.example +2 -310
  104. package/templates/root-consumer/.claude/agents/builder.md.example +2 -326
  105. package/templates/root-consumer/.claude/agents/coder.md.example +2 -83
  106. package/templates/root-consumer/.claude/agents/extractor.md.example +2 -231
  107. package/templates/root-consumer/.claude/agents/polisher.md.example +2 -132
  108. package/templates/root-consumer/.claude/agents/prompt-engineer.md.example +2 -81
  109. package/templates/root-consumer/.claude/commands/grill.md.example +30 -0
  110. package/templates/root-consumer/.claude/commands/techdebt.md.example +28 -0
  111. package/templates/root-consumer/.clinerules.example +1 -0
  112. package/templates/root-consumer/.cursor/rules/no-docs.mdc.example +15 -0
  113. package/templates/root-consumer/.cursorrules.example +1 -0
  114. package/templates/root-consumer/.github/copilot-instructions.md.example +1 -0
  115. package/templates/root-consumer/.windsurfrules.example +1 -0
  116. package/templates/root-consumer/AI.md.example +29 -123
  117. package/templates/root-consumer/CLAUDE.md.example +1 -134
  118. package/templates/root-consumer/CONVENTIONS.md.example +1 -0
  119. package/templates/root-consumer/GEMINI.md.example +1 -0
  120. package/templates/root-consumer/firebase.json.example +1 -1
  121. package/templates/root-consumer/guides/dndev/AGENT_START_HERE.md.example +20 -0
  122. package/templates/root-consumer/guides/dndev/COMPONENTS_ADV.md.example +0 -18
  123. package/templates/root-consumer/guides/dndev/COMPONENTS_UI.md.example +1 -1
  124. package/templates/root-consumer/guides/dndev/ENV_SETUP.md.example +99 -30
  125. package/templates/root-consumer/guides/dndev/INDEX.md.example +3 -1
  126. package/templates/root-consumer/guides/dndev/SETUP_CRUD.md.example +143 -12
  127. package/templates/root-consumer/guides/dndev/SETUP_FIREBASE.md.example +9 -3
  128. package/templates/root-consumer/guides/dndev/SETUP_SOC2.md.example +234 -0
  129. package/templates/root-consumer/guides/dndev/SETUP_SUPABASE.md.example +124 -0
  130. package/templates/root-consumer/guides/dndev/SETUP_THEMES.md.example +6 -2
  131. package/templates/root-consumer/guides/dndev/SETUP_VERCEL.md.example +176 -0
  132. package/templates/root-consumer/guides/dndev/USE_ROUTING.md.example +5 -9
  133. package/templates/root-consumer/guides/dndev/essences_reference.css.example +174 -0
  134. package/templates/root-consumer/guides/wai-way/agents/builder.md.example +10 -0
  135. package/templates/root-consumer/guides/wai-way/agents/extractor.md.example +25 -5
  136. package/templates/root-consumer/guides/wai-way/agents/polisher.md.example +13 -2
  137. package/templates/root-consumer/guides/wai-way/blueprints/0_brainstorm.md.example +2 -2
  138. package/templates/root-consumer/guides/wai-way/blueprints/1_scaffold.md.example +47 -11
  139. package/templates/root-consumer/guides/wai-way/blueprints/3_compose.md.example +15 -4
  140. package/templates/root-consumer/guides/wai-way/spec_template.md.example +7 -6
  141. package/templates/app-payload/.env.example +0 -28
  142. package/templates/app-payload/README.md.example +0 -233
  143. package/templates/app-payload/collections/Company.ts.example +0 -125
  144. package/templates/app-payload/collections/Hero.ts.example +0 -62
  145. package/templates/app-payload/collections/Media.ts.example +0 -41
  146. package/templates/app-payload/collections/Products.ts.example +0 -115
  147. package/templates/app-payload/collections/Services.ts.example +0 -104
  148. package/templates/app-payload/collections/Testimonials.ts.example +0 -92
  149. package/templates/app-payload/collections/Users.ts.example +0 -35
  150. package/templates/app-payload/src/server.ts.example +0 -79
  151. package/templates/app-payload/tsconfig.json.example +0 -24
@@ -1,92 +0,0 @@
1
- import { CollectionConfig } from 'payload/types';
2
-
3
- export const Testimonials: CollectionConfig = {
4
- slug: 'testimonials',
5
- admin: {
6
- useAsTitle: 'clientName',
7
- defaultColumns: ['clientName', 'company', 'rating', 'isActive', 'updatedAt'],
8
- },
9
- access: {
10
- read: () => true,
11
- },
12
- fields: [
13
- {
14
- name: 'clientName',
15
- type: 'text',
16
- required: true,
17
- admin: {
18
- description: 'Name of the client',
19
- },
20
- },
21
- {
22
- name: 'company',
23
- type: 'text',
24
- required: true,
25
- admin: {
26
- description: 'Company name',
27
- },
28
- },
29
- {
30
- name: 'position',
31
- type: 'text',
32
- admin: {
33
- description: 'Client\'s position at the company',
34
- },
35
- },
36
- {
37
- name: 'quote',
38
- type: 'textarea',
39
- required: true,
40
- admin: {
41
- description: 'The testimonial quote',
42
- },
43
- },
44
- {
45
- name: 'rating',
46
- type: 'select',
47
- required: true,
48
- defaultValue: '5',
49
- options: [
50
- { label: '5 Stars', value: '5' },
51
- { label: '4 Stars', value: '4' },
52
- { label: '3 Stars', value: '3' },
53
- { label: '2 Stars', value: '2' },
54
- { label: '1 Star', value: '1' },
55
- ],
56
- admin: {
57
- description: 'Rating out of 5 stars',
58
- },
59
- },
60
- {
61
- name: 'avatar',
62
- type: 'upload',
63
- relationTo: 'media',
64
- admin: {
65
- description: 'Client avatar or photo',
66
- },
67
- },
68
- {
69
- name: 'project',
70
- type: 'text',
71
- admin: {
72
- description: 'Project or service this testimonial is about',
73
- },
74
- },
75
- {
76
- name: 'isActive',
77
- type: 'checkbox',
78
- defaultValue: true,
79
- admin: {
80
- description: 'Whether this testimonial should be displayed',
81
- },
82
- },
83
- {
84
- name: 'order',
85
- type: 'number',
86
- defaultValue: 0,
87
- admin: {
88
- description: 'Display order (lower numbers appear first)',
89
- },
90
- },
91
- ],
92
- };
@@ -1,35 +0,0 @@
1
- import { CollectionConfig } from 'payload/types';
2
-
3
- export const Users: CollectionConfig = {
4
- slug: 'users',
5
- auth: { required: true },
6
- admin: {
7
- useAsTitle: 'email',
8
- },
9
- access: {
10
- read: () => true,
11
- },
12
- fields: [
13
- {
14
- name: 'name',
15
- type: 'text',
16
- required: true,
17
- },
18
- {
19
- name: 'role',
20
- type: 'select',
21
- required: true,
22
- defaultValue: 'editor',
23
- options: [
24
- {
25
- label: 'Admin',
26
- value: 'admin',
27
- },
28
- {
29
- label: 'Editor',
30
- value: 'editor',
31
- },
32
- ],
33
- },
34
- ],
35
- };
@@ -1,79 +0,0 @@
1
- import express from 'express';
2
- import payload from 'payload';
3
- import { resolve } from 'path';
4
- import cors from 'cors';
5
- import helmet from 'helmet';
6
- import compression from 'compression';
7
- import dotenv from 'dotenv';
8
-
9
- // Load environment variables
10
- dotenv.config();
11
-
12
- const app = express();
13
-
14
- // Security middleware
15
- app.use(helmet({
16
- contentSecurityPolicy: {
17
- directives: {
18
- defaultSrc: ["'self'"],
19
- styleSrc: ["'self'", "'unsafe-inline'"],
20
- scriptSrc: ["'self'"],
21
- imgSrc: ["'self'", "data:", "https:"],
22
- },
23
- },
24
- }));
25
-
26
- // CORS configuration
27
- app.use(cors({
28
- origin: [
29
- 'http://localhost:3000',
30
- 'https://{{projectName}}.com',
31
- 'https://admin.{{projectName}}.com',
32
- ],
33
- credentials: true,
34
- }));
35
-
36
- // Compression
37
- app.use(compression());
38
-
39
- // Body parsing
40
- app.use(express.json({ limit: '10mb' }));
41
- app.use(express.urlencoded({ extended: true, limit: '10mb' }));
42
-
43
- // Initialize Payload
44
- const start = async () => {
45
- await payload.init({
46
- secret: process.env.PAYLOAD_SECRET || 'your-secret-key',
47
- express: app,
48
- onInit: async () => {
49
- payload.logger.info(`Payload Admin URL: ${payload.getAdminURL()}`);
50
- },
51
- });
52
-
53
- // Health check endpoint
54
- app.get('/health', (req, res) => {
55
- res.json({ status: 'ok', timestamp: new Date().toISOString() });
56
- });
57
-
58
- // API documentation
59
- app.get('/api', (req, res) => {
60
- res.json({
61
- message: '{{projectName}} CMS API',
62
- version: '1.0.0',
63
- endpoints: {
64
- admin: payload.getAdminURL(),
65
- api: '/api',
66
- health: '/health',
67
- },
68
- });
69
- });
70
-
71
- const PORT = process.env.PORT || 3001;
72
- app.listen(PORT, () => {
73
- console.log(`🚀 {{projectName}} CMS running on port ${PORT}`);
74
- console.log(`📊 Admin panel: ${payload.getAdminURL()}`);
75
- console.log(`🔗 API endpoint: http://localhost:${PORT}/api`);
76
- });
77
- };
78
-
79
- start();
@@ -1,24 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.json",
3
- "compilerOptions": {
4
- "target": "ES2020",
5
- "lib": ["ES2020"],
6
- "baseUrl": ".",
7
- "types": ["node"],
8
- "paths": {
9
- "@/*": ["./src/*"],
10
- "@donotdev/*": ["../dndev/packages/*/src"]
11
- }
12
- },
13
- "include": [
14
- "src/**/*",
15
- "collections/**/*",
16
- "payload.config.ts",
17
- "src/server.ts"
18
- ],
19
- "exclude": [
20
- "node_modules",
21
- "dist",
22
- ".payload"
23
- ]
24
- }