@donotdev/cli 0.0.13 → 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 (162) hide show
  1. package/dependencies-matrix.json +357 -89
  2. package/dist/bin/commands/agent-setup.d.ts +6 -0
  3. package/dist/bin/commands/agent-setup.d.ts.map +1 -0
  4. package/dist/bin/commands/agent-setup.js +629 -0
  5. package/dist/bin/commands/agent-setup.js.map +1 -0
  6. package/dist/bin/commands/build.js +131 -50
  7. package/dist/bin/commands/bump.js +137 -49
  8. package/dist/bin/commands/cacheout.js +50 -21
  9. package/dist/bin/commands/create-app.js +270 -261
  10. package/dist/bin/commands/create-project.js +418 -197
  11. package/dist/bin/commands/deploy.js +1752 -712
  12. package/dist/bin/commands/dev.js +151 -35
  13. package/dist/bin/commands/emu.js +228 -70
  14. package/dist/bin/commands/format.js +50 -21
  15. package/dist/bin/commands/lint.js +50 -21
  16. package/dist/bin/commands/preview.js +155 -35
  17. package/dist/bin/commands/supabase-setup.d.ts +6 -0
  18. package/dist/bin/commands/supabase-setup.d.ts.map +1 -0
  19. package/dist/bin/commands/supabase-setup.js +7 -0
  20. package/dist/bin/commands/supabase-setup.js.map +1 -0
  21. package/dist/bin/commands/sync-secrets.js +224 -46
  22. package/dist/bin/commands/type-check.d.ts +14 -0
  23. package/dist/bin/commands/type-check.d.ts.map +1 -0
  24. package/dist/bin/commands/type-check.js +314 -0
  25. package/dist/bin/commands/type-check.js.map +1 -0
  26. package/dist/bin/commands/wai.js +7399 -11
  27. package/dist/bin/dndev.js +27 -2
  28. package/dist/bin/donotdev.js +27 -2
  29. package/dist/index.js +3960 -2996
  30. package/package.json +2 -2
  31. package/templates/app-demo/src/App.tsx.example +1 -0
  32. package/templates/app-demo/src/pages/FullPage.tsx.example +2 -2
  33. package/templates/app-demo/src/pages/components/DemoLayout.tsx.example +2 -2
  34. package/templates/app-demo/src/themes.css.example +5 -12
  35. package/templates/app-expo/.env.example +64 -0
  36. package/templates/app-expo/.expo/README.md.example +5 -0
  37. package/templates/app-expo/.gitignore.example +36 -0
  38. package/templates/app-expo/README.md.example +58 -0
  39. package/templates/app-expo/app/.gitkeep +2 -0
  40. package/templates/app-expo/app/_layout.tsx.example +41 -0
  41. package/templates/app-expo/app/form.tsx.example +52 -0
  42. package/templates/app-expo/app/index.tsx.example +89 -0
  43. package/templates/app-expo/app/list.tsx.example +32 -0
  44. package/templates/app-expo/app/profile.tsx.example +76 -0
  45. package/templates/app-expo/app/signin.tsx.example +53 -0
  46. package/templates/app-expo/app.json.example +39 -0
  47. package/templates/app-expo/babel.config.js.example +10 -0
  48. package/templates/app-expo/eas.json.example +20 -0
  49. package/templates/app-expo/expo-env.d.ts.example +4 -0
  50. package/templates/app-expo/metro.config.js.example +20 -0
  51. package/templates/app-expo/service-account-key.json.example +12 -0
  52. package/templates/app-expo/tsconfig.json.example +19 -0
  53. package/templates/app-next/.env.example +4 -33
  54. package/templates/app-next/src/app/ClientLayout.tsx.example +2 -0
  55. package/templates/app-next/src/app/layout.tsx.example +7 -6
  56. package/templates/app-next/src/globals.css.example +2 -11
  57. package/templates/app-next/src/pages/HomePage.tsx.example +1 -1
  58. package/templates/app-next/src/themes.css.example +10 -13
  59. package/templates/app-vite/.env.example +3 -32
  60. package/templates/app-vite/index.html.example +2 -24
  61. package/templates/app-vite/src/App.tsx.example +2 -0
  62. package/templates/app-vite/src/globals.css.example +2 -12
  63. package/templates/app-vite/src/pages/FormPageExample.tsx.example +1 -2
  64. package/templates/app-vite/src/pages/HomePage.tsx.example +1 -1
  65. package/templates/app-vite/src/themes.css.example +109 -79
  66. package/templates/app-vite/vercel.json.example +11 -0
  67. package/templates/functions-firebase/build.mjs.example +2 -72
  68. package/templates/functions-firebase/functions-firebase/.env.example.example +23 -25
  69. package/templates/functions-firebase/functions-firebase/build.mjs.example +2 -72
  70. package/templates/functions-firebase/functions-firebase/tsconfig.json.example +1 -1
  71. package/templates/functions-supabase/supabase/functions/cancel-subscription/index.ts.example +7 -0
  72. package/templates/functions-supabase/supabase/functions/change-plan/index.ts.example +11 -0
  73. package/templates/functions-supabase/supabase/functions/create-checkout-session/index.ts.example +11 -0
  74. package/templates/functions-supabase/supabase/functions/create-customer-portal/index.ts.example +7 -0
  75. package/templates/functions-supabase/supabase/functions/crud/index.ts.example +16 -0
  76. package/templates/functions-supabase/supabase/functions/delete-account/index.ts.example +7 -0
  77. package/templates/functions-supabase/supabase/functions/get-custom-claims/index.ts.example +7 -0
  78. package/templates/functions-supabase/supabase/functions/get-user-auth-status/index.ts.example +7 -0
  79. package/templates/functions-supabase/supabase/functions/refresh-subscription-status/index.ts.example +7 -0
  80. package/templates/functions-supabase/supabase/functions/remove-custom-claims/index.ts.example +7 -0
  81. package/templates/functions-supabase/supabase/functions/set-custom-claims/index.ts.example +7 -0
  82. package/templates/functions-supabase/supabase/migrations/20250101000000_idempotency.sql +24 -0
  83. package/templates/functions-supabase/supabase/migrations/20250101000001_rate_limits.sql +22 -0
  84. package/templates/functions-supabase/supabase/migrations/20250101000002_cleanup_jobs.sql +28 -0
  85. package/templates/functions-supabase/supabase/migrations/20250101000003_operation_metrics.sql +28 -0
  86. package/templates/functions-vercel/functions-vercel/tsconfig.json.example +1 -1
  87. package/templates/functions-vercel/functions-vercel/vercel.json.example +1 -1
  88. package/templates/functions-vercel/vercel.json.example +1 -1
  89. package/templates/github/github/workflows/firebase-deploy.yml.example +1 -1
  90. package/templates/github/workflows/firebase-deploy.yml.example +1 -1
  91. package/templates/overlay-firebase/env.fragment.example +34 -0
  92. package/templates/overlay-firebase/env.fragment.expo.example +34 -0
  93. package/templates/overlay-firebase/env.fragment.nextjs.example +34 -0
  94. package/templates/overlay-firebase/src/config/providers.expo.ts.example +49 -0
  95. package/templates/overlay-firebase/src/config/providers.ts.example +23 -0
  96. package/templates/overlay-supabase/env.fragment.example +7 -0
  97. package/templates/overlay-supabase/env.fragment.expo.example +7 -0
  98. package/templates/overlay-supabase/env.fragment.nextjs.example +7 -0
  99. package/templates/overlay-supabase/src/config/providers.expo.ts.example +35 -0
  100. package/templates/overlay-supabase/src/config/providers.ts.example +33 -0
  101. package/templates/overlay-supabase/vercel.headers.example +23 -0
  102. package/templates/overlay-supabase/vercel.json.example +22 -0
  103. package/templates/overlay-vercel/env.fragment.example +34 -0
  104. package/templates/overlay-vercel/env.fragment.nextjs.example +34 -0
  105. package/templates/overlay-vercel/src/config/providers.ts.example +24 -0
  106. package/templates/root-consumer/.claude/agents/architect.md.example +2 -310
  107. package/templates/root-consumer/.claude/agents/builder.md.example +2 -326
  108. package/templates/root-consumer/.claude/agents/coder.md.example +2 -83
  109. package/templates/root-consumer/.claude/agents/extractor.md.example +2 -231
  110. package/templates/root-consumer/.claude/agents/polisher.md.example +2 -132
  111. package/templates/root-consumer/.claude/agents/prompt-engineer.md.example +2 -81
  112. package/templates/root-consumer/.claude/commands/brainstorm.md.example +1 -1
  113. package/templates/root-consumer/.claude/commands/build.md.example +1 -1
  114. package/templates/root-consumer/.claude/commands/design.md.example +1 -1
  115. package/templates/root-consumer/.claude/commands/grill.md.example +30 -0
  116. package/templates/root-consumer/.claude/commands/polish.md.example +1 -1
  117. package/templates/root-consumer/.claude/commands/techdebt.md.example +28 -0
  118. package/templates/root-consumer/.clinerules.example +1 -0
  119. package/templates/root-consumer/.cursor/rules/no-docs.mdc.example +15 -0
  120. package/templates/root-consumer/.cursorrules.example +1 -0
  121. package/templates/root-consumer/.dndev/args.json.example +6 -0
  122. package/templates/root-consumer/.gemini/settings.json.example +2 -2
  123. package/templates/root-consumer/.github/copilot-instructions.md.example +1 -0
  124. package/templates/root-consumer/.windsurfrules.example +1 -0
  125. package/templates/root-consumer/AI.md.example +25 -108
  126. package/templates/root-consumer/CLAUDE.md.example +1 -128
  127. package/templates/root-consumer/CONVENTIONS.md.example +1 -0
  128. package/templates/root-consumer/GEMINI.md.example +1 -0
  129. package/templates/root-consumer/firebase.json.example +1 -1
  130. package/templates/root-consumer/guides/dndev/AGENT_START_HERE.md.example +54 -0
  131. package/templates/root-consumer/guides/dndev/COMPONENTS_ADV.md.example +0 -18
  132. package/templates/root-consumer/guides/dndev/COMPONENTS_UI.md.example +1 -1
  133. package/templates/root-consumer/guides/dndev/ENV_SETUP.md.example +99 -30
  134. package/templates/root-consumer/guides/dndev/GOTCHAS.md.example +186 -0
  135. package/templates/root-consumer/guides/dndev/INDEX.md.example +4 -1
  136. package/templates/root-consumer/guides/dndev/SETUP_CRUD.md.example +143 -12
  137. package/templates/root-consumer/guides/dndev/SETUP_FIREBASE.md.example +9 -3
  138. package/templates/root-consumer/guides/dndev/SETUP_FUNCTIONS.md.example +12 -7
  139. package/templates/root-consumer/guides/dndev/SETUP_SOC2.md.example +234 -0
  140. package/templates/root-consumer/guides/dndev/SETUP_SUPABASE.md.example +124 -0
  141. package/templates/root-consumer/guides/dndev/SETUP_THEMES.md.example +6 -2
  142. package/templates/root-consumer/guides/dndev/SETUP_VERCEL.md.example +176 -0
  143. package/templates/root-consumer/guides/dndev/USE_ROUTING.md.example +5 -9
  144. package/templates/root-consumer/guides/dndev/essences_reference.css.example +174 -0
  145. package/templates/root-consumer/guides/wai-way/agents/builder.md.example +10 -0
  146. package/templates/root-consumer/guides/wai-way/agents/extractor.md.example +25 -5
  147. package/templates/root-consumer/guides/wai-way/agents/polisher.md.example +13 -2
  148. package/templates/root-consumer/guides/wai-way/blueprints/0_brainstorm.md.example +2 -2
  149. package/templates/root-consumer/guides/wai-way/blueprints/1_scaffold.md.example +47 -11
  150. package/templates/root-consumer/guides/wai-way/blueprints/3_compose.md.example +15 -4
  151. package/templates/root-consumer/guides/wai-way/spec_template.md.example +7 -6
  152. package/templates/app-payload/.env.example +0 -28
  153. package/templates/app-payload/README.md.example +0 -233
  154. package/templates/app-payload/collections/Company.ts.example +0 -125
  155. package/templates/app-payload/collections/Hero.ts.example +0 -62
  156. package/templates/app-payload/collections/Media.ts.example +0 -41
  157. package/templates/app-payload/collections/Products.ts.example +0 -115
  158. package/templates/app-payload/collections/Services.ts.example +0 -104
  159. package/templates/app-payload/collections/Testimonials.ts.example +0 -92
  160. package/templates/app-payload/collections/Users.ts.example +0 -35
  161. package/templates/app-payload/src/server.ts.example +0 -79
  162. package/templates/app-payload/tsconfig.json.example +0 -24
@@ -1,104 +0,0 @@
1
- import { CollectionConfig } from 'payload/types';
2
-
3
- export const Services: CollectionConfig = {
4
- slug: 'services',
5
- admin: {
6
- useAsTitle: 'name',
7
- defaultColumns: ['name', 'category', 'isActive', 'updatedAt'],
8
- },
9
- access: {
10
- read: () => true,
11
- },
12
- fields: [
13
- {
14
- name: 'name',
15
- type: 'text',
16
- required: true,
17
- admin: {
18
- description: 'Name of the service',
19
- },
20
- },
21
- {
22
- name: 'description',
23
- type: 'textarea',
24
- required: true,
25
- admin: {
26
- description: 'Detailed description of the service',
27
- },
28
- },
29
- {
30
- name: 'shortDescription',
31
- type: 'text',
32
- required: true,
33
- admin: {
34
- description: 'Brief description for cards and previews',
35
- },
36
- },
37
- {
38
- name: 'category',
39
- type: 'select',
40
- required: true,
41
- options: [
42
- { label: 'Consulting', value: 'consulting' },
43
- { label: 'Training', value: 'training' },
44
- { label: 'Development', value: 'development' },
45
- { label: 'Support', value: 'support' },
46
- ],
47
- admin: {
48
- description: 'Category of the service',
49
- },
50
- },
51
- {
52
- name: 'icon',
53
- type: 'text',
54
- admin: {
55
- description: 'Icon name (e.g., "Code", "Users", "Settings")',
56
- },
57
- },
58
- {
59
- name: 'features',
60
- type: 'array',
61
- fields: [
62
- {
63
- name: 'feature',
64
- type: 'text',
65
- required: true,
66
- },
67
- ],
68
- admin: {
69
- description: 'List of features included in this service',
70
- },
71
- },
72
- {
73
- name: 'pricing',
74
- type: 'text',
75
- admin: {
76
- description: 'Pricing information (e.g., "Starting at $500/month")',
77
- },
78
- },
79
- {
80
- name: 'image',
81
- type: 'upload',
82
- relationTo: 'media',
83
- admin: {
84
- description: 'Service image or icon',
85
- },
86
- },
87
- {
88
- name: 'isActive',
89
- type: 'checkbox',
90
- defaultValue: true,
91
- admin: {
92
- description: 'Whether this service should be displayed',
93
- },
94
- },
95
- {
96
- name: 'order',
97
- type: 'number',
98
- defaultValue: 0,
99
- admin: {
100
- description: 'Display order (lower numbers appear first)',
101
- },
102
- },
103
- ],
104
- };
@@ -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
- }