popeye-cli 1.7.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/README.md +102 -5
  2. package/cheatsheet.md +407 -0
  3. package/dist/cli/commands/db.d.ts +10 -0
  4. package/dist/cli/commands/db.d.ts.map +1 -0
  5. package/dist/cli/commands/db.js +240 -0
  6. package/dist/cli/commands/db.js.map +1 -0
  7. package/dist/cli/commands/doctor.d.ts +18 -0
  8. package/dist/cli/commands/doctor.d.ts.map +1 -0
  9. package/dist/cli/commands/doctor.js +255 -0
  10. package/dist/cli/commands/doctor.js.map +1 -0
  11. package/dist/cli/commands/index.d.ts +2 -0
  12. package/dist/cli/commands/index.d.ts.map +1 -1
  13. package/dist/cli/commands/index.js +2 -0
  14. package/dist/cli/commands/index.js.map +1 -1
  15. package/dist/cli/index.d.ts.map +1 -1
  16. package/dist/cli/index.js +3 -1
  17. package/dist/cli/index.js.map +1 -1
  18. package/dist/cli/interactive.d.ts.map +1 -1
  19. package/dist/cli/interactive.js +96 -0
  20. package/dist/cli/interactive.js.map +1 -1
  21. package/dist/generators/admin-wizard.d.ts +25 -0
  22. package/dist/generators/admin-wizard.d.ts.map +1 -0
  23. package/dist/generators/admin-wizard.js +123 -0
  24. package/dist/generators/admin-wizard.js.map +1 -0
  25. package/dist/generators/all.d.ts.map +1 -1
  26. package/dist/generators/all.js +10 -3
  27. package/dist/generators/all.js.map +1 -1
  28. package/dist/generators/database.d.ts +58 -0
  29. package/dist/generators/database.d.ts.map +1 -0
  30. package/dist/generators/database.js +229 -0
  31. package/dist/generators/database.js.map +1 -0
  32. package/dist/generators/fullstack.d.ts.map +1 -1
  33. package/dist/generators/fullstack.js +23 -7
  34. package/dist/generators/fullstack.js.map +1 -1
  35. package/dist/generators/index.d.ts +2 -0
  36. package/dist/generators/index.d.ts.map +1 -1
  37. package/dist/generators/index.js +2 -0
  38. package/dist/generators/index.js.map +1 -1
  39. package/dist/generators/templates/admin-wizard-python.d.ts +32 -0
  40. package/dist/generators/templates/admin-wizard-python.d.ts.map +1 -0
  41. package/dist/generators/templates/admin-wizard-python.js +425 -0
  42. package/dist/generators/templates/admin-wizard-python.js.map +1 -0
  43. package/dist/generators/templates/admin-wizard-react.d.ts +48 -0
  44. package/dist/generators/templates/admin-wizard-react.d.ts.map +1 -0
  45. package/dist/generators/templates/admin-wizard-react.js +554 -0
  46. package/dist/generators/templates/admin-wizard-react.js.map +1 -0
  47. package/dist/generators/templates/database-docker.d.ts +23 -0
  48. package/dist/generators/templates/database-docker.d.ts.map +1 -0
  49. package/dist/generators/templates/database-docker.js +221 -0
  50. package/dist/generators/templates/database-docker.js.map +1 -0
  51. package/dist/generators/templates/database-python.d.ts +54 -0
  52. package/dist/generators/templates/database-python.d.ts.map +1 -0
  53. package/dist/generators/templates/database-python.js +723 -0
  54. package/dist/generators/templates/database-python.js.map +1 -0
  55. package/dist/generators/templates/database-typescript.d.ts +34 -0
  56. package/dist/generators/templates/database-typescript.d.ts.map +1 -0
  57. package/dist/generators/templates/database-typescript.js +232 -0
  58. package/dist/generators/templates/database-typescript.js.map +1 -0
  59. package/dist/generators/templates/fullstack.d.ts.map +1 -1
  60. package/dist/generators/templates/fullstack.js +29 -0
  61. package/dist/generators/templates/fullstack.js.map +1 -1
  62. package/dist/generators/templates/index.d.ts +5 -0
  63. package/dist/generators/templates/index.d.ts.map +1 -1
  64. package/dist/generators/templates/index.js +5 -0
  65. package/dist/generators/templates/index.js.map +1 -1
  66. package/dist/state/index.d.ts +10 -0
  67. package/dist/state/index.d.ts.map +1 -1
  68. package/dist/state/index.js +21 -0
  69. package/dist/state/index.js.map +1 -1
  70. package/dist/types/database-runtime.d.ts +86 -0
  71. package/dist/types/database-runtime.d.ts.map +1 -0
  72. package/dist/types/database-runtime.js +61 -0
  73. package/dist/types/database-runtime.js.map +1 -0
  74. package/dist/types/database.d.ts +85 -0
  75. package/dist/types/database.d.ts.map +1 -0
  76. package/dist/types/database.js +71 -0
  77. package/dist/types/database.js.map +1 -0
  78. package/dist/types/index.d.ts +2 -0
  79. package/dist/types/index.d.ts.map +1 -1
  80. package/dist/types/index.js +4 -0
  81. package/dist/types/index.js.map +1 -1
  82. package/dist/types/workflow.d.ts +21 -0
  83. package/dist/types/workflow.d.ts.map +1 -1
  84. package/dist/types/workflow.js +2 -0
  85. package/dist/types/workflow.js.map +1 -1
  86. package/dist/workflow/db-setup-runner.d.ts +63 -0
  87. package/dist/workflow/db-setup-runner.d.ts.map +1 -0
  88. package/dist/workflow/db-setup-runner.js +336 -0
  89. package/dist/workflow/db-setup-runner.js.map +1 -0
  90. package/dist/workflow/db-state-machine.d.ts +30 -0
  91. package/dist/workflow/db-state-machine.d.ts.map +1 -0
  92. package/dist/workflow/db-state-machine.js +51 -0
  93. package/dist/workflow/db-state-machine.js.map +1 -0
  94. package/dist/workflow/index.d.ts +2 -0
  95. package/dist/workflow/index.d.ts.map +1 -1
  96. package/dist/workflow/index.js +2 -0
  97. package/dist/workflow/index.js.map +1 -1
  98. package/package.json +1 -1
  99. package/src/cli/commands/db.ts +281 -0
  100. package/src/cli/commands/doctor.ts +273 -0
  101. package/src/cli/commands/index.ts +2 -0
  102. package/src/cli/index.ts +4 -0
  103. package/src/cli/interactive.ts +102 -0
  104. package/src/generators/admin-wizard.ts +146 -0
  105. package/src/generators/all.ts +10 -3
  106. package/src/generators/database.ts +286 -0
  107. package/src/generators/fullstack.ts +26 -9
  108. package/src/generators/index.ts +12 -0
  109. package/src/generators/templates/admin-wizard-python.ts +431 -0
  110. package/src/generators/templates/admin-wizard-react.ts +560 -0
  111. package/src/generators/templates/database-docker.ts +227 -0
  112. package/src/generators/templates/database-python.ts +734 -0
  113. package/src/generators/templates/database-typescript.ts +238 -0
  114. package/src/generators/templates/fullstack.ts +29 -0
  115. package/src/generators/templates/index.ts +5 -0
  116. package/src/state/index.ts +28 -0
  117. package/src/types/database-runtime.ts +69 -0
  118. package/src/types/database.ts +84 -0
  119. package/src/types/index.ts +29 -0
  120. package/src/types/workflow.ts +5 -0
  121. package/src/workflow/db-setup-runner.ts +391 -0
  122. package/src/workflow/db-state-machine.ts +58 -0
  123. package/src/workflow/index.ts +2 -0
  124. package/tests/generators/admin-wizard-orchestrator.test.ts +64 -0
  125. package/tests/generators/admin-wizard-templates.test.ts +366 -0
  126. package/tests/generators/cross-phase-integration.test.ts +383 -0
  127. package/tests/generators/database.test.ts +456 -0
  128. package/tests/generators/fe-be-db-integration.test.ts +613 -0
  129. package/tests/types/database-runtime.test.ts +158 -0
  130. package/tests/types/database.test.ts +187 -0
  131. package/tests/workflow/db-setup-runner.test.ts +211 -0
  132. package/tests/workflow/db-state-machine.test.ts +117 -0
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Admin Wizard generator orchestration module
3
+ * Creates the admin wizard backend + frontend layers for fullstack projects
4
+ */
5
+ import { promises as fs } from 'node:fs';
6
+ import path from 'node:path';
7
+ import { generateAdminAuthMiddleware, generateMiddlewareInit, generateAdminDbRoutes, } from './templates/admin-wizard-python.js';
8
+ import { generateUseAdminApiHook, generateDbStatusBanner, generateConnectionForm, generateMigrationProgress, generateDbSetupStepper, generateAdminIndex, } from './templates/admin-wizard-react.js';
9
+ /** Python dependencies required by the admin wizard */
10
+ export const ADMIN_WIZARD_PYTHON_DEPS = ['python-multipart>=0.0.7'];
11
+ /**
12
+ * Create a directory if it doesn't exist
13
+ */
14
+ async function ensureDir(dirPath) {
15
+ await fs.mkdir(dirPath, { recursive: true });
16
+ }
17
+ /**
18
+ * Write a file with content
19
+ */
20
+ async function writeFile(filePath, content) {
21
+ await fs.writeFile(filePath, content, 'utf-8');
22
+ }
23
+ /**
24
+ * Generate the complete admin wizard layer (backend middleware/routes + frontend components)
25
+ *
26
+ * Creates middleware/, routes/admin_db.py in the backend, and admin/ components
27
+ * in the frontend. Also augments requirements.txt with admin dependencies.
28
+ *
29
+ * @param projectDir - Root project directory (contains apps/)
30
+ * @param packageName - Python package name (snake_case)
31
+ * @returns List of absolute file paths created
32
+ */
33
+ export async function generateAdminWizardLayer(projectDir, packageName) {
34
+ const backendDir = path.join(projectDir, 'apps', 'backend');
35
+ const srcPkgDir = path.join(backendDir, 'src', packageName);
36
+ const frontendDir = path.join(projectDir, 'apps', 'frontend');
37
+ const filesCreated = [];
38
+ // Ensure directories
39
+ await ensureDir(path.join(srcPkgDir, 'middleware'));
40
+ await ensureDir(path.join(frontendDir, 'src', 'admin'));
41
+ // Define all files to generate
42
+ const files = [
43
+ // Backend: middleware
44
+ {
45
+ path: path.join(srcPkgDir, 'middleware', '__init__.py'),
46
+ content: generateMiddlewareInit(),
47
+ },
48
+ {
49
+ path: path.join(srcPkgDir, 'middleware', 'admin_auth.py'),
50
+ content: generateAdminAuthMiddleware(),
51
+ },
52
+ // Backend: admin routes
53
+ {
54
+ path: path.join(srcPkgDir, 'routes', 'admin_db.py'),
55
+ content: generateAdminDbRoutes(packageName),
56
+ },
57
+ // Frontend: admin components
58
+ {
59
+ path: path.join(frontendDir, 'src', 'admin', 'useAdminApi.ts'),
60
+ content: generateUseAdminApiHook(),
61
+ },
62
+ {
63
+ path: path.join(frontendDir, 'src', 'admin', 'DbStatusBanner.tsx'),
64
+ content: generateDbStatusBanner(),
65
+ },
66
+ {
67
+ path: path.join(frontendDir, 'src', 'admin', 'ConnectionForm.tsx'),
68
+ content: generateConnectionForm(),
69
+ },
70
+ {
71
+ path: path.join(frontendDir, 'src', 'admin', 'MigrationProgress.tsx'),
72
+ content: generateMigrationProgress(),
73
+ },
74
+ {
75
+ path: path.join(frontendDir, 'src', 'admin', 'DbSetupStepper.tsx'),
76
+ content: generateDbSetupStepper(),
77
+ },
78
+ {
79
+ path: path.join(frontendDir, 'src', 'admin', 'index.ts'),
80
+ content: generateAdminIndex(),
81
+ },
82
+ ];
83
+ // Write all files
84
+ for (const file of files) {
85
+ await writeFile(file.path, file.content);
86
+ filesCreated.push(file.path);
87
+ }
88
+ // Augment requirements.txt with admin deps
89
+ const reqPath = path.join(backendDir, 'requirements.txt');
90
+ try {
91
+ const existingReqs = await fs.readFile(reqPath, 'utf-8');
92
+ if (!existingReqs.includes('# Admin')) {
93
+ const adminSection = `\n# Admin\n${ADMIN_WIZARD_PYTHON_DEPS.join('\n')}\n`;
94
+ await writeFile(reqPath, existingReqs.trimEnd() + adminSection);
95
+ }
96
+ }
97
+ catch {
98
+ // requirements.txt doesn't exist yet - will be created by the main generator
99
+ }
100
+ return filesCreated;
101
+ }
102
+ /**
103
+ * Get the list of relative file paths generated by the admin wizard layer
104
+ *
105
+ * @param packageName - Python package name (snake_case)
106
+ * @returns List of relative file paths
107
+ */
108
+ export function getAdminWizardFiles(packageName) {
109
+ return [
110
+ // Backend
111
+ `apps/backend/src/${packageName}/middleware/__init__.py`,
112
+ `apps/backend/src/${packageName}/middleware/admin_auth.py`,
113
+ `apps/backend/src/${packageName}/routes/admin_db.py`,
114
+ // Frontend
115
+ 'apps/frontend/src/admin/useAdminApi.ts',
116
+ 'apps/frontend/src/admin/DbStatusBanner.tsx',
117
+ 'apps/frontend/src/admin/ConnectionForm.tsx',
118
+ 'apps/frontend/src/admin/MigrationProgress.tsx',
119
+ 'apps/frontend/src/admin/DbSetupStepper.tsx',
120
+ 'apps/frontend/src/admin/index.ts',
121
+ ];
122
+ }
123
+ //# sourceMappingURL=admin-wizard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-wizard.js","sourceRoot":"","sources":["../../src/generators/admin-wizard.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"all.d.ts","sourceRoot":"","sources":["../../src/generators/all.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAmB,MAAM,qBAAqB,CAAC;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGpD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAMlE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,sEAAsE;IACtE,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC;AAuBD;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAmFpE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CA4BnE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAmDpE;AA4HD;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,iBAAiB,GAC9B;IACD,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjD,CAEA;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG;IACtD,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjD,CAEA;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,gBAAgB,CAAC,CAsI3B;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAuChE;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IACpE,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC,CAqCD"}
1
+ {"version":3,"file":"all.d.ts","sourceRoot":"","sources":["../../src/generators/all.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAmB,MAAM,qBAAqB,CAAC;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGpD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAMlE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAK9D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,sEAAsE;IACtE,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC;AAuBD;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAmFpE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CA4BnE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAmDpE;AA4HD;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,iBAAiB,GAC9B;IACD,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjD,CAEA;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG;IACtD,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjD,CAEA;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,gBAAgB,CAAC,CAsI3B;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CA2ChE;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IACpE,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC,CAqCD"}
@@ -8,6 +8,9 @@ import { generateFullstackProject } from './fullstack.js';
8
8
  import { generateWebsiteProject } from './website.js';
9
9
  import { buildWebsiteContext, validateWebsiteContext } from './website-context.js';
10
10
  import { generateDesignTokensPackage as generateDesignTokensPackageImpl, generateUiPackage as generateUiPackageImpl, } from './shared-packages.js';
11
+ import { generateAllDockerComposeWithDb } from './templates/database-docker.js';
12
+ import { getAdminWizardFiles } from './admin-wizard.js';
13
+ import { getDatabaseFiles } from './database.js';
11
14
  /**
12
15
  * Create a directory if it doesn't exist
13
16
  */
@@ -420,14 +423,14 @@ export async function generateAllProject(spec, outputDir, options = {}) {
420
423
  path: path.join(projectDir, '.popeye', 'workspace.json'),
421
424
  content: generateAllWorkspaceJson(projectName),
422
425
  },
423
- // Docker compose (override to include website)
426
+ // Docker compose (override to include website + postgres)
424
427
  {
425
428
  path: path.join(projectDir, 'docker-compose.yml'),
426
- content: generateAllDockerCompose(projectName),
429
+ content: generateAllDockerComposeWithDb(projectName),
427
430
  },
428
431
  {
429
432
  path: path.join(projectDir, 'infra', 'docker', 'docker-compose.yml'),
430
- content: generateAllDockerCompose(projectName),
433
+ content: generateAllDockerComposeWithDb(projectName),
431
434
  },
432
435
  // README
433
436
  {
@@ -500,6 +503,10 @@ export function getAllProjectFiles(projectName) {
500
503
  'packages/ui/src/button.tsx',
501
504
  'packages/ui/src/card.tsx',
502
505
  'packages/contracts/.gitkeep',
506
+ // Database layer
507
+ ...getDatabaseFiles(packageName, 'sqlalchemy'),
508
+ // Admin wizard layer
509
+ ...getAdminWizardFiles(packageName),
503
510
  ];
504
511
  }
505
512
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"all.js","sourceRoot":"","sources":["../../src/generators/all.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"all.js","sourceRoot":"","sources":["../../src/generators/all.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Database generator orchestration module
3
+ * Creates complete database layers for fullstack and TS backend projects
4
+ */
5
+ import type { BackendOrm } from '../types/database.js';
6
+ /** Python database dependencies */
7
+ export declare const DB_PYTHON_DEPS: string[];
8
+ /**
9
+ * Options for database layer generation
10
+ */
11
+ interface DatabaseLayerOptions {
12
+ includeVector?: boolean;
13
+ }
14
+ /**
15
+ * Generate the complete Python database layer for a backend project
16
+ *
17
+ * Creates database/, migrations/, and supporting files under apps/backend/
18
+ *
19
+ * @param projectDir - Root project directory (contains apps/)
20
+ * @param projectName - Project name (used for naming)
21
+ * @param packageName - Python package name (snake_case)
22
+ * @param options - Generation options
23
+ * @returns List of absolute file paths created
24
+ */
25
+ export declare function generatePythonDatabaseLayer(projectDir: string, _projectName: string, packageName: string, options?: DatabaseLayerOptions): Promise<string[]>;
26
+ /**
27
+ * Generate the complete TypeScript database layer for a project
28
+ *
29
+ * Creates prisma/ and src/db/ directories with Prisma-based DB files
30
+ * NOTE: Not wired into any generator in Phase 1
31
+ *
32
+ * @param projectDir - Project directory (where prisma/ and src/ live)
33
+ * @param projectName - Project name
34
+ * @param options - Generation options
35
+ * @returns List of absolute file paths created
36
+ */
37
+ export declare function generateTypeScriptDatabaseLayer(projectDir: string, projectName: string, _options?: DatabaseLayerOptions): Promise<string[]>;
38
+ /**
39
+ * Append database dependencies to an existing requirements.txt
40
+ *
41
+ * Idempotent: checks for existing "# Database" section to avoid duplicates.
42
+ * Handles empty input gracefully.
43
+ *
44
+ * @param baseContent - Existing requirements.txt content
45
+ * @param dbDeps - Database dependency strings to add
46
+ * @returns Augmented requirements.txt content
47
+ */
48
+ export declare function augmentRequirements(baseContent: string, dbDeps: string[]): string;
49
+ /**
50
+ * Get the list of relative file paths generated for a database layer
51
+ *
52
+ * @param packageName - Python package name (for sqlalchemy) or project name (for prisma)
53
+ * @param orm - ORM type
54
+ * @returns List of relative file paths
55
+ */
56
+ export declare function getDatabaseFiles(packageName: string, orm: BackendOrm): string[];
57
+ export {};
58
+ //# sourceMappingURL=database.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/generators/database.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAwBvD,mCAAmC;AACnC,eAAO,MAAM,cAAc,UAK1B,CAAC;AAEF;;GAEG;AACH,UAAU,oBAAoB;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAgBD;;;;;;;;;;GAUG;AACH,wBAAsB,2BAA2B,CAC/C,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,MAAM,EAAE,CAAC,CA0FnB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,+BAA+B,CACnD,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,QAAQ,GAAE,oBAAyB,GAClC,OAAO,CAAC,MAAM,EAAE,CAAC,CAwCnB;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAWjF;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM,EAAE,CA8B/E"}
@@ -0,0 +1,229 @@
1
+ /**
2
+ * Database generator orchestration module
3
+ * Creates complete database layers for fullstack and TS backend projects
4
+ */
5
+ import { promises as fs } from 'node:fs';
6
+ import path from 'node:path';
7
+ import { generateDbConnection, generateDbModels, generateDbInit, generateDbSettings, generateAlembicIni, generateAlembicEnvPy, generateAlembicScriptMako, generateInitialMigration, generateDbVectorHelpers, generateDbStartupHook, generateDbHealthRoute, generateDbConftest, } from './templates/database-python.js';
8
+ import { generatePrismaSchema, generatePrismaClient, generatePrismaSeed, generatePrismaDbHealth, generatePrismaVectorHelpers, generatePrismaDbInit, } from './templates/database-typescript.js';
9
+ /** Python database dependencies */
10
+ export const DB_PYTHON_DEPS = [
11
+ 'sqlalchemy[asyncio]>=2.0.0',
12
+ 'asyncpg>=0.29.0',
13
+ 'alembic>=1.13.0',
14
+ 'pgvector>=0.2.5',
15
+ ];
16
+ /**
17
+ * Create a directory if it doesn't exist
18
+ */
19
+ async function ensureDir(dirPath) {
20
+ await fs.mkdir(dirPath, { recursive: true });
21
+ }
22
+ /**
23
+ * Write a file with content
24
+ */
25
+ async function writeFile(filePath, content) {
26
+ await fs.writeFile(filePath, content, 'utf-8');
27
+ }
28
+ /**
29
+ * Generate the complete Python database layer for a backend project
30
+ *
31
+ * Creates database/, migrations/, and supporting files under apps/backend/
32
+ *
33
+ * @param projectDir - Root project directory (contains apps/)
34
+ * @param projectName - Project name (used for naming)
35
+ * @param packageName - Python package name (snake_case)
36
+ * @param options - Generation options
37
+ * @returns List of absolute file paths created
38
+ */
39
+ export async function generatePythonDatabaseLayer(projectDir, _projectName, packageName, options = {}) {
40
+ const includeVector = options.includeVector !== false;
41
+ const backendDir = path.join(projectDir, 'apps', 'backend');
42
+ const srcPkgDir = path.join(backendDir, 'src', packageName);
43
+ const filesCreated = [];
44
+ // Ensure directories exist
45
+ await ensureDir(path.join(srcPkgDir, 'database'));
46
+ await ensureDir(path.join(srcPkgDir, 'routes'));
47
+ await ensureDir(path.join(backendDir, 'migrations', 'versions'));
48
+ await ensureDir(path.join(backendDir, 'tests'));
49
+ // Define all files to generate
50
+ const files = [
51
+ // Database package
52
+ {
53
+ path: path.join(srcPkgDir, 'database', '__init__.py'),
54
+ content: generateDbInit(packageName),
55
+ },
56
+ {
57
+ path: path.join(srcPkgDir, 'database', 'connection.py'),
58
+ content: generateDbConnection(packageName),
59
+ },
60
+ {
61
+ path: path.join(srcPkgDir, 'database', 'models.py'),
62
+ content: generateDbModels(packageName),
63
+ },
64
+ {
65
+ path: path.join(srcPkgDir, 'database', 'settings.py'),
66
+ content: generateDbSettings(packageName),
67
+ },
68
+ // Alembic migrations
69
+ {
70
+ path: path.join(backendDir, 'alembic.ini'),
71
+ content: generateAlembicIni(packageName),
72
+ },
73
+ {
74
+ path: path.join(backendDir, 'migrations', 'env.py'),
75
+ content: generateAlembicEnvPy(packageName),
76
+ },
77
+ {
78
+ path: path.join(backendDir, 'migrations', 'script.py.mako'),
79
+ content: generateAlembicScriptMako(),
80
+ },
81
+ {
82
+ path: path.join(backendDir, 'migrations', 'versions', '001_initial.py'),
83
+ content: generateInitialMigration(packageName),
84
+ },
85
+ // Startup hook
86
+ {
87
+ path: path.join(srcPkgDir, 'startup.py'),
88
+ content: generateDbStartupHook(packageName),
89
+ },
90
+ // Health route
91
+ {
92
+ path: path.join(srcPkgDir, 'routes', 'health_db.py'),
93
+ content: generateDbHealthRoute(packageName),
94
+ },
95
+ // Test fixtures
96
+ {
97
+ path: path.join(backendDir, 'tests', 'conftest_db.py'),
98
+ content: generateDbConftest(packageName),
99
+ },
100
+ ];
101
+ // Add vector helpers if requested
102
+ if (includeVector) {
103
+ files.push({
104
+ path: path.join(srcPkgDir, 'database', 'vector.py'),
105
+ content: generateDbVectorHelpers(packageName),
106
+ });
107
+ }
108
+ // Write all files
109
+ for (const file of files) {
110
+ await writeFile(file.path, file.content);
111
+ filesCreated.push(file.path);
112
+ }
113
+ // Augment requirements.txt with DB deps
114
+ const reqPath = path.join(backendDir, 'requirements.txt');
115
+ try {
116
+ const existingReqs = await fs.readFile(reqPath, 'utf-8');
117
+ const augmented = augmentRequirements(existingReqs, DB_PYTHON_DEPS);
118
+ await writeFile(reqPath, augmented);
119
+ }
120
+ catch {
121
+ // requirements.txt doesn't exist yet - will be created by the main generator
122
+ }
123
+ return filesCreated;
124
+ }
125
+ /**
126
+ * Generate the complete TypeScript database layer for a project
127
+ *
128
+ * Creates prisma/ and src/db/ directories with Prisma-based DB files
129
+ * NOTE: Not wired into any generator in Phase 1
130
+ *
131
+ * @param projectDir - Project directory (where prisma/ and src/ live)
132
+ * @param projectName - Project name
133
+ * @param options - Generation options
134
+ * @returns List of absolute file paths created
135
+ */
136
+ export async function generateTypeScriptDatabaseLayer(projectDir, projectName, _options = {}) {
137
+ const filesCreated = [];
138
+ // Ensure directories
139
+ await ensureDir(path.join(projectDir, 'prisma'));
140
+ await ensureDir(path.join(projectDir, 'src', 'db'));
141
+ const files = [
142
+ {
143
+ path: path.join(projectDir, 'prisma', 'schema.prisma'),
144
+ content: generatePrismaSchema(projectName),
145
+ },
146
+ {
147
+ path: path.join(projectDir, 'prisma', 'seed.ts'),
148
+ content: generatePrismaSeed(),
149
+ },
150
+ {
151
+ path: path.join(projectDir, 'src', 'db', 'client.ts'),
152
+ content: generatePrismaClient(projectName),
153
+ },
154
+ {
155
+ path: path.join(projectDir, 'src', 'db', 'health.ts'),
156
+ content: generatePrismaDbHealth(),
157
+ },
158
+ {
159
+ path: path.join(projectDir, 'src', 'db', 'vector.ts'),
160
+ content: generatePrismaVectorHelpers(),
161
+ },
162
+ {
163
+ path: path.join(projectDir, 'src', 'db', 'index.ts'),
164
+ content: generatePrismaDbInit(),
165
+ },
166
+ ];
167
+ for (const file of files) {
168
+ await writeFile(file.path, file.content);
169
+ filesCreated.push(file.path);
170
+ }
171
+ return filesCreated;
172
+ }
173
+ /**
174
+ * Append database dependencies to an existing requirements.txt
175
+ *
176
+ * Idempotent: checks for existing "# Database" section to avoid duplicates.
177
+ * Handles empty input gracefully.
178
+ *
179
+ * @param baseContent - Existing requirements.txt content
180
+ * @param dbDeps - Database dependency strings to add
181
+ * @returns Augmented requirements.txt content
182
+ */
183
+ export function augmentRequirements(baseContent, dbDeps) {
184
+ // Check for existing Database section
185
+ if (baseContent.includes('# Database')) {
186
+ return baseContent;
187
+ }
188
+ // Ensure trailing newline before adding section
189
+ const base = baseContent.trimEnd();
190
+ const depsBlock = dbDeps.join('\n');
191
+ return `${base}\n\n# Database\n${depsBlock}\n`;
192
+ }
193
+ /**
194
+ * Get the list of relative file paths generated for a database layer
195
+ *
196
+ * @param packageName - Python package name (for sqlalchemy) or project name (for prisma)
197
+ * @param orm - ORM type
198
+ * @returns List of relative file paths
199
+ */
200
+ export function getDatabaseFiles(packageName, orm) {
201
+ if (orm === 'sqlalchemy') {
202
+ return [
203
+ `apps/backend/src/${packageName}/database/__init__.py`,
204
+ `apps/backend/src/${packageName}/database/connection.py`,
205
+ `apps/backend/src/${packageName}/database/models.py`,
206
+ `apps/backend/src/${packageName}/database/settings.py`,
207
+ `apps/backend/src/${packageName}/database/vector.py`,
208
+ `apps/backend/src/${packageName}/routes/health_db.py`,
209
+ `apps/backend/src/${packageName}/startup.py`,
210
+ 'apps/backend/alembic.ini',
211
+ 'apps/backend/migrations/env.py',
212
+ 'apps/backend/migrations/script.py.mako',
213
+ 'apps/backend/migrations/versions/001_initial.py',
214
+ 'apps/backend/tests/conftest_db.py',
215
+ ];
216
+ }
217
+ if (orm === 'prisma') {
218
+ return [
219
+ 'prisma/schema.prisma',
220
+ 'prisma/seed.ts',
221
+ 'src/db/client.ts',
222
+ 'src/db/health.ts',
223
+ 'src/db/vector.ts',
224
+ 'src/db/index.ts',
225
+ ];
226
+ }
227
+ return [];
228
+ }
229
+ //# sourceMappingURL=database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/generators/database.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"fullstack.d.ts","sourceRoot":"","sources":["../../src/generators/fullstack.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AA6BpD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAuBD;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,gBAAgB,CAAC,CAyP3B;AA6ID;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAiDtE;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1E,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC,CA0BD"}
1
+ {"version":3,"file":"fullstack.d.ts","sourceRoot":"","sources":["../../src/generators/fullstack.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAgCpD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAuBD;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,gBAAgB,CAAC,CAmQ3B;AA6ID;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAqDtE;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1E,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC,CA0BD"}
@@ -4,7 +4,13 @@
4
4
  */
5
5
  import { promises as fs } from 'node:fs';
6
6
  import path from 'node:path';
7
- import { generateWorkspaceJson, generateRootDockerCompose, generateRootReadme, generateRootGitignore, generateFrontendReadme, generateBackendReadme, generateUiSpec, generateViteConfigReact, generateTailwindConfig, generatePostcssConfig, generateMainCss, generateAppTsx, generateMainTsx, generateIndexHtml, generateFrontendPackageJson, generateFrontendTsconfig, generateFrontendTsconfigNode, generateFrontendDockerfile, generateNginxConfig, generateFrontendTest, generateVitestSetup, generateFrontendVitestConfig, generateFastAPIMain, generateBackendDockerfile, generateFastAPIRequirements, } from './templates/fullstack.js';
7
+ import { generateWorkspaceJson, generateRootReadme, generateRootGitignore, generateFrontendReadme, generateBackendReadme, generateUiSpec, generateViteConfigReact, generateTailwindConfig, generatePostcssConfig, generateMainCss, generateMainTsx, generateIndexHtml, generateFrontendPackageJson, generateFrontendTsconfig, generateFrontendTsconfigNode, generateFrontendDockerfile, generateNginxConfig, generateFrontendTest, generateVitestSetup, generateFrontendVitestConfig, generateBackendDockerfile, generateFastAPIRequirements, } from './templates/fullstack.js';
8
+ import { generateAppTsxWithAdmin } from './templates/admin-wizard-react.js';
9
+ import { generateFastAPIMainWithAdmin } from './templates/admin-wizard-python.js';
10
+ import { generateDockerComposeWithDb, generateDbEnvExample } from './templates/database-docker.js';
11
+ import { generatePythonDatabaseLayer } from './database.js';
12
+ import { getDatabaseFiles } from './database.js';
13
+ import { generateAdminWizardLayer, getAdminWizardFiles } from './admin-wizard.js';
8
14
  /**
9
15
  * Create a directory if it doesn't exist
10
16
  */
@@ -64,11 +70,11 @@ export async function generateFullstackProject(spec, outputDir) {
64
70
  // Docker
65
71
  {
66
72
  path: path.join(projectDir, 'infra', 'docker', 'docker-compose.yml'),
67
- content: generateRootDockerCompose(projectName),
73
+ content: generateDockerComposeWithDb(projectName),
68
74
  },
69
75
  {
70
76
  path: path.join(projectDir, 'docker-compose.yml'),
71
- content: generateRootDockerCompose(projectName),
77
+ content: generateDockerComposeWithDb(projectName),
72
78
  },
73
79
  // Documentation
74
80
  {
@@ -142,7 +148,7 @@ export async function generateFullstackProject(spec, outputDir) {
142
148
  },
143
149
  {
144
150
  path: path.join(frontendDir, 'src', 'App.tsx'),
145
- content: generateAppTsx(projectName),
151
+ content: generateAppTsxWithAdmin(projectName),
146
152
  },
147
153
  {
148
154
  path: path.join(frontendDir, 'src', 'index.css'),
@@ -178,7 +184,7 @@ export async function generateFullstackProject(spec, outputDir) {
178
184
  // Environment
179
185
  {
180
186
  path: path.join(frontendDir, '.env.example'),
181
- content: 'VITE_API_URL=http://localhost:8000\n',
187
+ content: 'VITE_API_URL=http://localhost:8000\nVITE_ADMIN_TOKEN=change-me-to-a-random-string\n',
182
188
  },
183
189
  {
184
190
  path: path.join(frontendDir, '.gitignore'),
@@ -213,7 +219,7 @@ export async function generateFullstackProject(spec, outputDir) {
213
219
  },
214
220
  {
215
221
  path: path.join(backendDir, 'src', packageName, 'main.py'),
216
- content: generateFastAPIMain(projectName),
222
+ content: generateFastAPIMainWithAdmin(projectName, packageName),
217
223
  },
218
224
  // Test files
219
225
  {
@@ -241,7 +247,7 @@ export async function generateFullstackProject(spec, outputDir) {
241
247
  // Environment
242
248
  {
243
249
  path: path.join(backendDir, '.env.example'),
244
- content: 'DEBUG=true\nDATABASE_URL=sqlite:///./data/app.db\n',
250
+ content: generateDbEnvExample(projectName),
245
251
  },
246
252
  {
247
253
  path: path.join(backendDir, '.gitignore'),
@@ -258,6 +264,12 @@ export async function generateFullstackProject(spec, outputDir) {
258
264
  await writeFile(file.path, file.content);
259
265
  filesCreated.push(file.path);
260
266
  }
267
+ // Generate database layer (SQLAlchemy + Alembic + pgvector)
268
+ const dbFiles = await generatePythonDatabaseLayer(projectDir, projectName, packageName, { includeVector: true });
269
+ filesCreated.push(...dbFiles);
270
+ // Generate admin wizard layer (middleware + routes + React components)
271
+ const adminFiles = await generateAdminWizardLayer(projectDir, packageName);
272
+ filesCreated.push(...adminFiles);
261
273
  return {
262
274
  success: true,
263
275
  projectDir,
@@ -461,6 +473,10 @@ export function getFullstackProjectFiles(projectName) {
461
473
  'apps/backend/.env.example',
462
474
  'apps/backend/.gitignore',
463
475
  'apps/backend/Makefile',
476
+ // Database layer
477
+ ...getDatabaseFiles(packageName, 'sqlalchemy'),
478
+ // Admin wizard layer
479
+ ...getAdminWizardFiles(packageName),
464
480
  ];
465
481
  }
466
482
  /**