@opensaas/stack-cli 0.39.1 → 0.40.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 (118) hide show
  1. package/dist/commands/dev.d.ts.map +1 -1
  2. package/dist/commands/dev.js +0 -5
  3. package/dist/commands/dev.js.map +1 -1
  4. package/dist/commands/generate.d.ts +0 -6
  5. package/dist/commands/generate.d.ts.map +1 -1
  6. package/dist/commands/generate.js +12 -30
  7. package/dist/commands/generate.js.map +1 -1
  8. package/dist/commands/init.d.ts +1 -6
  9. package/dist/commands/init.d.ts.map +1 -1
  10. package/dist/commands/init.js +1 -7
  11. package/dist/commands/init.js.map +1 -1
  12. package/dist/commands/mcp.d.ts.map +1 -1
  13. package/dist/commands/mcp.js +0 -2
  14. package/dist/commands/mcp.js.map +1 -1
  15. package/dist/commands/migrate.d.ts +2 -17
  16. package/dist/commands/migrate.d.ts.map +1 -1
  17. package/dist/commands/migrate.js +3 -59
  18. package/dist/commands/migrate.js.map +1 -1
  19. package/dist/generator/context.d.ts +0 -12
  20. package/dist/generator/context.d.ts.map +1 -1
  21. package/dist/generator/context.js +9 -44
  22. package/dist/generator/context.js.map +1 -1
  23. package/dist/generator/extension.d.ts +0 -9
  24. package/dist/generator/extension.d.ts.map +1 -1
  25. package/dist/generator/extension.js +5 -37
  26. package/dist/generator/extension.js.map +1 -1
  27. package/dist/generator/index.d.ts +0 -1
  28. package/dist/generator/index.d.ts.map +1 -1
  29. package/dist/generator/index.js +0 -1
  30. package/dist/generator/index.js.map +1 -1
  31. package/dist/generator/lists.d.ts +2 -5
  32. package/dist/generator/lists.d.ts.map +1 -1
  33. package/dist/generator/lists.js +2 -12
  34. package/dist/generator/lists.js.map +1 -1
  35. package/dist/generator/node-build.d.ts.map +1 -1
  36. package/dist/generator/node-build.js +6 -12
  37. package/dist/generator/node-build.js.map +1 -1
  38. package/dist/generator/output-paths.d.ts +4 -18
  39. package/dist/generator/output-paths.d.ts.map +1 -1
  40. package/dist/generator/output-paths.js +3 -15
  41. package/dist/generator/output-paths.js.map +1 -1
  42. package/dist/generator/plugin-types.d.ts +0 -6
  43. package/dist/generator/plugin-types.d.ts.map +1 -1
  44. package/dist/generator/plugin-types.js +3 -28
  45. package/dist/generator/plugin-types.js.map +1 -1
  46. package/dist/generator/prisma-config.d.ts +6 -25
  47. package/dist/generator/prisma-config.d.ts.map +1 -1
  48. package/dist/generator/prisma-config.js +6 -27
  49. package/dist/generator/prisma-config.js.map +1 -1
  50. package/dist/generator/prisma.d.ts +0 -8
  51. package/dist/generator/prisma.d.ts.map +1 -1
  52. package/dist/generator/prisma.js +24 -63
  53. package/dist/generator/prisma.js.map +1 -1
  54. package/dist/generator/types.d.ts +0 -6
  55. package/dist/generator/types.d.ts.map +1 -1
  56. package/dist/generator/types.js +25 -149
  57. package/dist/generator/types.js.map +1 -1
  58. package/dist/mcp/lib/documentation-provider.d.ts +0 -36
  59. package/dist/mcp/lib/documentation-provider.d.ts.map +1 -1
  60. package/dist/mcp/lib/documentation-provider.js +1 -49
  61. package/dist/mcp/lib/documentation-provider.js.map +1 -1
  62. package/dist/mcp/lib/features/catalog.d.ts +0 -15
  63. package/dist/mcp/lib/features/catalog.d.ts.map +1 -1
  64. package/dist/mcp/lib/features/catalog.js +0 -15
  65. package/dist/mcp/lib/features/catalog.js.map +1 -1
  66. package/dist/mcp/lib/generators/feature-generator.d.ts +3 -24
  67. package/dist/mcp/lib/generators/feature-generator.d.ts.map +1 -1
  68. package/dist/mcp/lib/generators/feature-generator.js +4 -38
  69. package/dist/mcp/lib/generators/feature-generator.js.map +1 -1
  70. package/dist/mcp/lib/types.d.ts +0 -3
  71. package/dist/mcp/lib/types.d.ts.map +1 -1
  72. package/dist/mcp/lib/types.js +0 -3
  73. package/dist/mcp/lib/types.js.map +1 -1
  74. package/dist/mcp/lib/wizards/migration-wizard.d.ts +0 -70
  75. package/dist/mcp/lib/wizards/migration-wizard.d.ts.map +1 -1
  76. package/dist/mcp/lib/wizards/migration-wizard.js +1 -87
  77. package/dist/mcp/lib/wizards/migration-wizard.js.map +1 -1
  78. package/dist/mcp/lib/wizards/wizard-engine.d.ts +0 -39
  79. package/dist/mcp/lib/wizards/wizard-engine.d.ts.map +1 -1
  80. package/dist/mcp/lib/wizards/wizard-engine.js +0 -49
  81. package/dist/mcp/lib/wizards/wizard-engine.js.map +1 -1
  82. package/dist/mcp/server/index.d.ts +0 -3
  83. package/dist/mcp/server/index.d.ts.map +1 -1
  84. package/dist/mcp/server/index.js +1 -9
  85. package/dist/mcp/server/index.js.map +1 -1
  86. package/dist/mcp/server/stack-mcp-server.d.ts +0 -42
  87. package/dist/mcp/server/stack-mcp-server.d.ts.map +1 -1
  88. package/dist/mcp/server/stack-mcp-server.js +1 -47
  89. package/dist/mcp/server/stack-mcp-server.js.map +1 -1
  90. package/dist/migration/generators/migration-generator.d.ts +0 -55
  91. package/dist/migration/generators/migration-generator.d.ts.map +1 -1
  92. package/dist/migration/generators/migration-generator.js +3 -97
  93. package/dist/migration/generators/migration-generator.js.map +1 -1
  94. package/dist/migration/introspectors/index.d.ts +0 -6
  95. package/dist/migration/introspectors/index.d.ts.map +1 -1
  96. package/dist/migration/introspectors/index.js +0 -6
  97. package/dist/migration/introspectors/index.js.map +1 -1
  98. package/dist/migration/introspectors/keystone-introspector.d.ts +0 -27
  99. package/dist/migration/introspectors/keystone-introspector.d.ts.map +1 -1
  100. package/dist/migration/introspectors/keystone-introspector.js +0 -40
  101. package/dist/migration/introspectors/keystone-introspector.js.map +1 -1
  102. package/dist/migration/introspectors/nextjs-introspector.d.ts +0 -36
  103. package/dist/migration/introspectors/nextjs-introspector.d.ts.map +1 -1
  104. package/dist/migration/introspectors/nextjs-introspector.js +0 -39
  105. package/dist/migration/introspectors/nextjs-introspector.js.map +1 -1
  106. package/dist/migration/introspectors/prisma-introspector.d.ts +0 -30
  107. package/dist/migration/introspectors/prisma-introspector.d.ts.map +1 -1
  108. package/dist/migration/introspectors/prisma-introspector.js +1 -42
  109. package/dist/migration/introspectors/prisma-introspector.js.map +1 -1
  110. package/dist/migration/types.d.ts +1 -5
  111. package/dist/migration/types.d.ts.map +1 -1
  112. package/dist/migration/types.js +0 -3
  113. package/dist/migration/types.js.map +1 -1
  114. package/package.json +2 -2
  115. package/dist/generator/prisma-extensions.d.ts +0 -14
  116. package/dist/generator/prisma-extensions.d.ts.map +0 -1
  117. package/dist/generator/prisma-extensions.js +0 -172
  118. package/dist/generator/prisma-extensions.js.map +0 -1
@@ -1,10 +1,4 @@
1
1
  import type { OpenSaasConfig } from '@opensaas/stack-core';
2
- /**
3
- * Generate complete plugin types file
4
- */
5
2
  export declare function generatePluginTypes(config: OpenSaasConfig): string;
6
- /**
7
- * Write plugin types to file
8
- */
9
3
  export declare function writePluginTypes(config: OpenSaasConfig, outputPath: string): void;
10
4
  //# sourceMappingURL=plugin-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-types.d.ts","sourceRoot":"","sources":["../../src/generator/plugin-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AA0G1D;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAsBlE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAUjF"}
1
+ {"version":3,"file":"plugin-types.d.ts","sourceRoot":"","sources":["../../src/generator/plugin-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AA2F1D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAmBlE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CASjF"}
@@ -1,9 +1,5 @@
1
1
  import * as fs from 'fs';
2
2
  import * as path from 'path';
3
- /**
4
- * Generate TypeScript declaration for plugin data types
5
- * Creates type-safe access to config._pluginData
6
- */
7
3
  function generatePluginDataInterface(config) {
8
4
  const lines = [];
9
5
  lines.push('/**');
@@ -11,13 +7,11 @@ function generatePluginDataInterface(config) {
11
7
  lines.push(' * Provides type-safe access to config._pluginData');
12
8
  lines.push(' */');
13
9
  lines.push('export interface PluginData {');
14
- // Check if we have plugin data types to generate
15
10
  if (config._pluginData && Object.keys(config._pluginData).length > 0) {
16
11
  for (const pluginName of Object.keys(config._pluginData)) {
17
12
  // Skip internal keys
18
13
  if (pluginName.startsWith('__'))
19
14
  continue;
20
- // For each plugin, we'll add a Record<string, unknown> entry
21
15
  // TODO: In the future, plugins could export their data types for proper typing
22
16
  lines.push(` ${pluginName}?: Record<string, unknown>`);
23
17
  }
@@ -25,16 +19,10 @@ function generatePluginDataInterface(config) {
25
19
  lines.push('}');
26
20
  return lines.join('\n');
27
21
  }
28
- /**
29
- * Generate TypeScript declaration for plugin runtime services
30
- * Creates type-safe access to context.plugins
31
- */
32
22
  function generatePluginServicesInterface(config) {
33
23
  const lines = [];
34
24
  const imports = [];
35
- // Check if we have plugins with runtime functions
36
25
  const pluginsWithRuntime = (config._plugins || config.plugins || []).filter((p) => p.runtime);
37
- // Collect imports from plugins that provide runtime service types
38
26
  if (pluginsWithRuntime.length > 0) {
39
27
  for (const plugin of pluginsWithRuntime) {
40
28
  if (plugin.runtimeServiceTypes) {
@@ -42,7 +30,6 @@ function generatePluginServicesInterface(config) {
42
30
  }
43
31
  }
44
32
  }
45
- // Add imports at the top if any exist
46
33
  if (imports.length > 0) {
47
34
  lines.push(...imports);
48
35
  lines.push('');
@@ -56,11 +43,9 @@ function generatePluginServicesInterface(config) {
56
43
  if (pluginsWithRuntime.length > 0) {
57
44
  for (const plugin of pluginsWithRuntime) {
58
45
  if (plugin.runtimeServiceTypes) {
59
- // Use typed runtime service from plugin
60
46
  lines.push(` ${plugin.name}?: ${plugin.runtimeServiceTypes.typeName}`);
61
47
  }
62
48
  else {
63
- // Fallback to Record<string, any> for plugins without type metadata
64
49
  lines.push(` ${plugin.name}?: Record<string, any>`);
65
50
  }
66
51
  }
@@ -69,9 +54,9 @@ function generatePluginServicesInterface(config) {
69
54
  return lines.join('\n');
70
55
  }
71
56
  /**
72
- * Generate module augmentation for OpenSaaS core types
73
- * Note: We cannot augment _pluginData or plugins properties directly due to type constraints
74
- * Instead, users should cast to PluginServices when accessing context.plugins
57
+ * We cannot augment `_pluginData` or `plugins` directly due to type
58
+ * constraints users must cast to `PluginServices` when accessing
59
+ * `context.plugins`.
75
60
  */
76
61
  function generateModuleAugmentation() {
77
62
  const lines = [];
@@ -85,12 +70,8 @@ function generateModuleAugmentation() {
85
70
  lines.push('}');
86
71
  return lines.join('\n');
87
72
  }
88
- /**
89
- * Generate complete plugin types file
90
- */
91
73
  export function generatePluginTypes(config) {
92
74
  const lines = [];
93
- // Add header comment
94
75
  lines.push('/**');
95
76
  lines.push(' * Generated plugin types from OpenSaas configuration');
96
77
  lines.push(' * DO NOT EDIT - This file is automatically generated');
@@ -100,19 +81,13 @@ export function generatePluginTypes(config) {
100
81
  lines.push(' * - context.plugins - Plugin runtime services');
101
82
  lines.push(' */');
102
83
  lines.push('');
103
- // Generate interfaces
104
84
  lines.push(generatePluginDataInterface(config));
105
85
  lines.push(generatePluginServicesInterface(config));
106
- // Generate module augmentation
107
86
  lines.push(generateModuleAugmentation());
108
87
  return lines.join('\n');
109
88
  }
110
- /**
111
- * Write plugin types to file
112
- */
113
89
  export function writePluginTypes(config, outputPath) {
114
90
  const pluginTypes = generatePluginTypes(config);
115
- // Ensure directory exists
116
91
  const dir = path.dirname(outputPath);
117
92
  if (!fs.existsSync(dir)) {
118
93
  fs.mkdirSync(dir, { recursive: true });
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-types.js","sourceRoot":"","sources":["../../src/generator/plugin-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin-types.js","sourceRoot":"","sources":["../../src/generator/plugin-types.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,12 @@
1
1
  import type { OpenSaasConfig } from '@opensaas/stack-core';
2
2
  /**
3
- * Generate Prisma config file for CLI commands
3
+ * Prisma 7 requires a `prisma.config.ts` file at the project root for CLI
4
+ * commands (`prisma db push`, `migrate dev`, `migrate deploy`) — separate
5
+ * from the runtime config, which uses adapters in `opensaas.config.ts`.
4
6
  *
5
- * Prisma 7 requires a prisma.config.ts file at the project root for CLI commands
6
- * like `prisma db push`, `prisma migrate dev`, and `prisma migrate deploy`. This
7
- * is separate from the runtime configuration (which uses adapters in
8
- * opensaas.config.ts).
9
- *
10
- * The CLI config provides the database URL for schema operations, while the
11
- * runtime config provides adapters for actual query execution.
12
- *
13
- * The datasource URL prefers `DIRECT_DATABASE_URL` and falls back to
14
- * `DATABASE_URL`. On serverless Postgres (e.g. Neon) the running app connects
15
- * through a pooled `DATABASE_URL`, while migrations need a direct (non-pooled)
16
- * connection — set `DIRECT_DATABASE_URL` to that direct URL. Local SQLite is
17
- * untouched: with `DIRECT_DATABASE_URL` unset, the expression falls back to
18
- * `DATABASE_URL`.
19
- *
20
- * Note: a local `env` helper is emitted instead of the one from `prisma/config`
21
- * because the upstream helper throws when a variable is unset, which would break
22
- * the `??` fallback. The local helper returns `undefined` for missing variables
23
- * so the fallback can take effect.
7
+ * The datasource URL prefers `DIRECT_DATABASE_URL`, falling back to
8
+ * `DATABASE_URL` (see ADR-0003 for the serverless-Postgres pooled/direct
9
+ * connection split this supports).
24
10
  *
25
11
  * @param extraDatasourceLines - Verbatim `datasource` block entries the
26
12
  * generator does not itself manage (e.g. a host-added `shadowDatabaseUrl`),
@@ -44,14 +30,9 @@ export declare function generatePrismaConfig(_config: OpenSaasConfig, schemaPath
44
30
  */
45
31
  export declare function extractExtraDatasourceLines(existingContent: string): string[];
46
32
  /**
47
- * Write Prisma config to file
48
- *
49
33
  * If a `prisma.config.ts` already exists at `outputPath`, its `datasource`
50
34
  * block is read first so host-added keys the generator does not manage (e.g.
51
35
  * `shadowDatabaseUrl`) survive the rewrite — see {@link extractExtraDatasourceLines}.
52
- *
53
- * @param schemaPath - Optional override for the `schema` field, forwarded to
54
- * {@link generatePrismaConfig}.
55
36
  */
56
37
  export declare function writePrismaConfig(config: OpenSaasConfig, outputPath: string, schemaPath?: string): void;
57
38
  //# sourceMappingURL=prisma-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prisma-config.d.ts","sourceRoot":"","sources":["../../src/generator/prisma-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAI1D;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,cAAc,EACvB,UAAU,CAAC,EAAE,MAAM,EACnB,oBAAoB,GAAE,MAAM,EAAO,GAClC,MAAM,CA+BR;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,EAAE,CAU7E;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,GAClB,IAAI,CAcN"}
1
+ {"version":3,"file":"prisma-config.d.ts","sourceRoot":"","sources":["../../src/generator/prisma-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAI1D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,cAAc,EACvB,UAAU,CAAC,EAAE,MAAM,EACnB,oBAAoB,GAAE,MAAM,EAAO,GAClC,MAAM,CA8BR;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,EAAE,CAU7E;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,GAClB,IAAI,CAaN"}
@@ -1,27 +1,13 @@
1
1
  import * as fs from 'fs';
2
2
  import * as path from 'path';
3
3
  /**
4
- * Generate Prisma config file for CLI commands
4
+ * Prisma 7 requires a `prisma.config.ts` file at the project root for CLI
5
+ * commands (`prisma db push`, `migrate dev`, `migrate deploy`) — separate
6
+ * from the runtime config, which uses adapters in `opensaas.config.ts`.
5
7
  *
6
- * Prisma 7 requires a prisma.config.ts file at the project root for CLI commands
7
- * like `prisma db push`, `prisma migrate dev`, and `prisma migrate deploy`. This
8
- * is separate from the runtime configuration (which uses adapters in
9
- * opensaas.config.ts).
10
- *
11
- * The CLI config provides the database URL for schema operations, while the
12
- * runtime config provides adapters for actual query execution.
13
- *
14
- * The datasource URL prefers `DIRECT_DATABASE_URL` and falls back to
15
- * `DATABASE_URL`. On serverless Postgres (e.g. Neon) the running app connects
16
- * through a pooled `DATABASE_URL`, while migrations need a direct (non-pooled)
17
- * connection — set `DIRECT_DATABASE_URL` to that direct URL. Local SQLite is
18
- * untouched: with `DIRECT_DATABASE_URL` unset, the expression falls back to
19
- * `DATABASE_URL`.
20
- *
21
- * Note: a local `env` helper is emitted instead of the one from `prisma/config`
22
- * because the upstream helper throws when a variable is unset, which would break
23
- * the `??` fallback. The local helper returns `undefined` for missing variables
24
- * so the fallback can take effect.
8
+ * The datasource URL prefers `DIRECT_DATABASE_URL`, falling back to
9
+ * `DATABASE_URL` (see ADR-0003 for the serverless-Postgres pooled/direct
10
+ * connection split this supports).
25
11
  *
26
12
  * @param extraDatasourceLines - Verbatim `datasource` block entries the
27
13
  * generator does not itself manage (e.g. a host-added `shadowDatabaseUrl`),
@@ -35,7 +21,6 @@ export function generatePrismaConfig(_config, schemaPath, extraDatasourceLines =
35
21
  // unaffected; the output-path resolver supplies the configured location when
36
22
  // the schema is relocated via the `output` config block.
37
23
  const schema = schemaPath ?? 'prisma';
38
- // Import dotenv for environment variable loading
39
24
  lines.push("import 'dotenv/config'");
40
25
  lines.push("import { defineConfig } from 'prisma/config'");
41
26
  lines.push('');
@@ -82,21 +67,15 @@ export function extractExtraDatasourceLines(existingContent) {
82
67
  .filter((line) => line.length > 0 && !line.startsWith('url:'));
83
68
  }
84
69
  /**
85
- * Write Prisma config to file
86
- *
87
70
  * If a `prisma.config.ts` already exists at `outputPath`, its `datasource`
88
71
  * block is read first so host-added keys the generator does not manage (e.g.
89
72
  * `shadowDatabaseUrl`) survive the rewrite — see {@link extractExtraDatasourceLines}.
90
- *
91
- * @param schemaPath - Optional override for the `schema` field, forwarded to
92
- * {@link generatePrismaConfig}.
93
73
  */
94
74
  export function writePrismaConfig(config, outputPath, schemaPath) {
95
75
  const extraDatasourceLines = fs.existsSync(outputPath)
96
76
  ? extractExtraDatasourceLines(fs.readFileSync(outputPath, 'utf-8'))
97
77
  : [];
98
78
  const prismaConfig = generatePrismaConfig(config, schemaPath, extraDatasourceLines);
99
- // Ensure directory exists
100
79
  const dir = path.dirname(outputPath);
101
80
  if (!fs.existsSync(dir)) {
102
81
  fs.mkdirSync(dir, { recursive: true });
@@ -1 +1 @@
1
- {"version":3,"file":"prisma-config.js","sourceRoot":"","sources":["../../src/generator/prisma-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prisma-config.js","sourceRoot":"","sources":["../../src/generator/prisma-config.ts"],"names":[],"mappings":"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"}
@@ -19,8 +19,6 @@ export declare function resolveListTimestamps(listConfig: ListConfig<TypeInfo>,
19
19
  updatedAt: boolean;
20
20
  };
21
21
  /**
22
- * Generate Prisma schema from OpenSaas config
23
- *
24
22
  * @param prismaClientOutput - Module specifier for the patched Prisma client's
25
23
  * `generator { output }`, relative to the schema file's directory. Defaults to
26
24
  * the legacy `../<opensaasPath>/prisma-client` so existing projects are
@@ -28,11 +26,5 @@ export declare function resolveListTimestamps(listConfig: ListConfig<TypeInfo>,
28
26
  * schema or `.opensaas` dir is relocated via the `output` config block.
29
27
  */
30
28
  export declare function generatePrismaSchema(config: OpenSaasConfig, prismaClientOutput?: string): string;
31
- /**
32
- * Write Prisma schema to file
33
- *
34
- * @param prismaClientOutput - Optional override for the patched Prisma client
35
- * output path, forwarded to {@link generatePrismaSchema}.
36
- */
37
29
  export declare function writePrismaSchema(config: OpenSaasConfig, outputPath: string, prismaClientOutput?: string): void;
38
30
  //# sourceMappingURL=prisma.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prisma.d.ts","sourceRoot":"","sources":["../../src/generator/prisma.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,UAAU,EACV,cAAc,EAGf,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAK3D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAGnC,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,EAChC,QAAQ,EAAE,cAAc,GACvB;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAkB5C;AA4OD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,CA0ThG;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,MAAM,EAClB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,IAAI,CAUN"}
1
+ {"version":3,"file":"prisma.d.ts","sourceRoot":"","sources":["../../src/generator/prisma.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,UAAU,EACV,cAAc,EAGf,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAK3D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAGnC,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,EAChC,QAAQ,EAAE,cAAc,GACvB;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAgB5C;AAqPD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,CAgShG;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,MAAM,EAClB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,IAAI,CASN"}
@@ -24,8 +24,6 @@ listConfig, dbConfig) {
24
24
  if (!enabled) {
25
25
  return { createdAt: false, updatedAt: false };
26
26
  }
27
- // Skip the auto column for any timestamp the list already declares to avoid a
28
- // duplicate-field error (Prisma P1012).
29
27
  const declaresCreatedAt = Object.prototype.hasOwnProperty.call(listConfig.fields, 'createdAt');
30
28
  const declaresUpdatedAt = Object.prototype.hasOwnProperty.call(listConfig.fields, 'updatedAt');
31
29
  return {
@@ -33,33 +31,21 @@ listConfig, dbConfig) {
33
31
  updatedAt: !declaresUpdatedAt,
34
32
  };
35
33
  }
36
- /**
37
- * Map OpenSaas field types to Prisma field types
38
- */
39
34
  function mapFieldTypeToPrisma(fieldName, field, provider, listName, keystoneCompat) {
40
- // Use field's own Prisma type generator if available
41
35
  if (field.getPrismaType) {
42
36
  const result = field.getPrismaType(fieldName, provider, listName, keystoneCompat);
43
37
  return result.type;
44
38
  }
45
- // Fallback for fields without generator methods
46
39
  throw new Error(`Field type "${field.type}" does not implement getPrismaType method`);
47
40
  }
48
- /**
49
- * Get field modifiers (?, @default, @unique, etc.)
50
- */
51
41
  function getFieldModifiers(fieldName, field, provider, listName, keystoneCompat) {
52
- // Use field's own Prisma type generator if available
53
42
  if (field.getPrismaType) {
54
43
  const result = field.getPrismaType(fieldName, provider, listName, keystoneCompat);
55
44
  return result.modifiers || '';
56
45
  }
57
- // Fallback for fields without generator methods
58
46
  return '';
59
47
  }
60
48
  /**
61
- * Get the block-level index a field asks for, if any.
62
- *
63
49
  * Prisma has no field-level `@index` attribute, so a non-unique index cannot
64
50
  * ride along in the field's modifiers — the field requests it out-of-line and
65
51
  * the generator emits `@@index([...])` on the model, exactly as it already does
@@ -77,17 +63,27 @@ function getFieldIndex(fieldName, field, provider, listName, keystoneCompat) {
77
63
  * Prisma-level field name is unaffected by `db.map`), or the owning foreign
78
64
  * key column (`<field>Id`) for a relationship field.
79
65
  *
66
+ * `createdAt`/`updatedAt` resolve directly to their own column name when the
67
+ * list's auto-timestamps are enabled for that column (`resolveListTimestamps`)
68
+ * even though neither is a declared field in that case — the auto-injected
69
+ * column carries no `@map` of its own, so the field name and column name
70
+ * coincide (issue #985).
71
+ *
80
72
  * Throws a descriptive, generate-time error (naming the list, the index
81
73
  * entry, and the bad field) rather than silently dropping the entry or
82
74
  * emitting invalid Prisma, for every case that has no single column to
83
75
  * reference: an unknown field, a virtual field, a multi-column field, a
84
76
  * to-many relationship, or the non-FK side of a one-to-one relationship.
85
77
  */
86
- function resolveIndexFieldColumn(listName, listConfig, relationResults, entryDescription, fieldRef) {
78
+ function resolveIndexFieldColumn(listName, listConfig, relationResults, entryDescription, fieldRef, autoTimestampColumns) {
87
79
  const fieldName = typeof fieldRef === 'string' ? fieldRef : fieldRef.field;
88
80
  const sort = typeof fieldRef === 'string' ? undefined : fieldRef.sort;
89
81
  const fieldConfig = listConfig.fields[fieldName];
90
82
  if (!fieldConfig) {
83
+ if ((fieldName === 'createdAt' && autoTimestampColumns.createdAt) ||
84
+ (fieldName === 'updatedAt' && autoTimestampColumns.updatedAt)) {
85
+ return { column: fieldName, sort };
86
+ }
91
87
  throw new Error(`${entryDescription} on list "${listName}" references unknown field "${fieldName}"`);
92
88
  }
93
89
  if (fieldConfig.virtual) {
@@ -162,7 +158,7 @@ function collectFieldLevelIndexColumns(listName, listConfig, relationResults) {
162
158
  * an empty `fields` array, and a single-field entry that indexes the exact
163
159
  * column a field-level `isIndexed` already indexes.
164
160
  */
165
- function generateModelIndexLines(listName, listConfig, relationResults, fieldLevelIndexColumns) {
161
+ function generateModelIndexLines(listName, listConfig, relationResults, fieldLevelIndexColumns, autoTimestampColumns) {
166
162
  const indexes = listConfig.db?.indexes;
167
163
  if (!indexes || indexes.length === 0)
168
164
  return [];
@@ -171,7 +167,7 @@ function generateModelIndexLines(listName, listConfig, relationResults, fieldLev
171
167
  if (index.fields.length === 0) {
172
168
  throw new Error(`${entryDescription} on list "${listName}" has an empty "fields" array — an index/constraint must name at least one field`);
173
169
  }
174
- const resolved = index.fields.map((fieldRef) => resolveIndexFieldColumn(listName, listConfig, relationResults, entryDescription, fieldRef));
170
+ const resolved = index.fields.map((fieldRef) => resolveIndexFieldColumn(listName, listConfig, relationResults, entryDescription, fieldRef, autoTimestampColumns));
175
171
  if (resolved.length === 1) {
176
172
  const collision = fieldLevelIndexColumns.get(resolved[0].column);
177
173
  if (collision) {
@@ -188,8 +184,6 @@ function generateModelIndexLines(listName, listConfig, relationResults, fieldLev
188
184
  });
189
185
  }
190
186
  /**
191
- * Generate Prisma schema from OpenSaas config
192
- *
193
187
  * @param prismaClientOutput - Module specifier for the patched Prisma client's
194
188
  * `generator { output }`, relative to the schema file's directory. Defaults to
195
189
  * the legacy `../<opensaasPath>/prisma-client` so existing projects are
@@ -219,7 +213,6 @@ export function generatePrismaSchema(config, prismaClientOutput) {
219
213
  const prismaGeneratorOptions = config.db.prismaGeneratorOptions;
220
214
  const importFileExtension = prismaGeneratorOptions?.importFileExtension ?? 'ts';
221
215
  const moduleFormat = prismaGeneratorOptions?.moduleFormat ?? 'esm';
222
- // Generator and datasource
223
216
  lines.push('generator client {');
224
217
  lines.push(' provider = "prisma-client"');
225
218
  lines.push(` output = "${clientOutput}"`);
@@ -245,9 +238,6 @@ export function generatePrismaSchema(config, prismaClientOutput) {
245
238
  if (fieldConfig.getPrismaType) {
246
239
  const result = fieldConfig.getPrismaType(fieldName, config.db.provider, listName, keystoneCompat);
247
240
  if (result.enumValues && result.enumValues.length > 0) {
248
- // The enum lives in the owning model's schema (so an enum used by an
249
- // `auth`-schema model lands in `auth`, not `public`). Default to
250
- // `public` when the list declares no schema.
251
241
  enumDefinitions.set(result.type, {
252
242
  values: result.enumValues,
253
243
  schema: listConfig.db?.schema ?? 'public',
@@ -256,14 +246,11 @@ export function generatePrismaSchema(config, prismaClientOutput) {
256
246
  }
257
247
  }
258
248
  }
259
- // Generate enum blocks
260
249
  for (const [enumName, { values, schema: enumSchema }] of enumDefinitions) {
261
250
  lines.push(`enum ${enumName} {`);
262
251
  for (const value of values) {
263
252
  lines.push(` ${value}`);
264
253
  }
265
- // In multi-schema mode every enum must declare an `@@schema(...)` or Prisma
266
- // rejects the schema (P1012). Greenfield (single schema) output is unchanged.
267
254
  if (multiSchema) {
268
255
  lines.push(` @@schema("${enumSchema}")`);
269
256
  }
@@ -300,25 +287,21 @@ export function generatePrismaSchema(config, prismaClientOutput) {
300
287
  }
301
288
  }
302
289
  }
303
- // Generate models for each list
304
290
  for (const [listName, listConfig] of Object.entries(config.lists)) {
305
291
  lines.push(`model ${listName} {`);
306
- // Add id field - singleton lists emit a bare `id Int @id` (no `@default(1)`) to
307
- // match Keystone 6, which emits no column default for singleton ids (see ADR-0004).
308
- // Non-singleton lists are unchanged: `id String @id @default(cuid())`.
292
+ // Singleton lists emit a bare `id Int @id` (no `@default(1)`) to match
293
+ // Keystone 6, which emits no column default for singleton ids (see
294
+ // ADR-0004). Non-singleton lists are unchanged.
309
295
  if (listConfig.isSingleton) {
310
296
  lines.push(' id Int @id');
311
297
  }
312
298
  else {
313
299
  lines.push(' id String @id @default(cuid())');
314
300
  }
315
- // Track relationship field names (in declaration order) for later processing
316
301
  const relationshipFieldNames = [];
317
302
  // Block-level indexes requested by scalar fields (see getFieldIndex)
318
303
  const scalarIndexes = [];
319
- // Add regular fields
320
304
  for (const [fieldName, fieldConfig] of Object.entries(listConfig.fields)) {
321
- // Skip virtual fields - they don't create database columns
322
305
  if (fieldConfig.virtual) {
323
306
  continue;
324
307
  }
@@ -351,7 +334,7 @@ export function generatePrismaSchema(config, prismaClientOutput) {
351
334
  }
352
335
  const prismaType = mapFieldTypeToPrisma(fieldName, fieldConfig, config.db.provider, listName, keystoneCompat);
353
336
  if (!prismaType)
354
- continue; // Skip if no type returned
337
+ continue;
355
338
  const modifiers = getFieldModifiers(fieldName, fieldConfig, config.db.provider, listName, keystoneCompat);
356
339
  // Format with proper spacing: '?' attaches to type directly, other modifiers get a space
357
340
  const paddedName = fieldName.padEnd(12);
@@ -364,7 +347,6 @@ export function generatePrismaSchema(config, prismaClientOutput) {
364
347
  scalarIndexes.push({ field: fieldName, indexType: index });
365
348
  }
366
349
  }
367
- // Add relationship fields (lines + foreign key indexes) from the precomputed results
368
350
  const foreignKeyIndexes = [];
369
351
  for (const fieldName of relationshipFieldNames) {
370
352
  const result = relationResults.get(`${listName}.${fieldName}`);
@@ -373,16 +355,13 @@ export function generatePrismaSchema(config, prismaClientOutput) {
373
355
  foreignKeyIndexes.push(result.foreignKeyIndex);
374
356
  }
375
357
  }
376
- // Add synthetic relation fields for list-only refs pointing to this list
377
358
  const backRelations = backRelationsByTarget.get(listName);
378
359
  if (backRelations) {
379
360
  for (const line of backRelations) {
380
361
  lines.push(line);
381
362
  }
382
363
  }
383
- // Add auto-timestamps when enabled (off by default — see ADR-0004). The auto
384
- // column is skipped for any timestamp the list declares itself (handled inside
385
- // resolveListTimestamps) so Prisma never sees a duplicate field (P1012).
364
+ // See resolveListTimestamps for the enablement/precedence rules (ADR-0004).
386
365
  const timestamps = resolveListTimestamps(listConfig, config.db);
387
366
  if (timestamps.createdAt) {
388
367
  lines.push(' createdAt DateTime @default(now())');
@@ -401,7 +380,6 @@ export function generatePrismaSchema(config, prismaClientOutput) {
401
380
  lines.push(` @@index([${index.field}])`);
402
381
  }
403
382
  }
404
- // Add indexes for foreign key fields
405
383
  for (const index of foreignKeyIndexes) {
406
384
  if (index.indexType === 'unique') {
407
385
  lines.push(` @@unique([${index.foreignKeyField}])`);
@@ -410,48 +388,31 @@ export function generatePrismaSchema(config, prismaClientOutput) {
410
388
  lines.push(` @@index([${index.foreignKeyField}])`);
411
389
  }
412
390
  }
413
- // Add model-level `@@unique`/`@@index` constraints declared via
414
- // `db.indexes` (#864, #918) the full form when a name or a sort
415
- // direction is needed; `isIndexed` above remains the sugar for the
416
- // unnamed single-column case. Emitted last so a config with no
417
- // `db.indexes` produces byte-for-byte identical output to before this
418
- // feature existed.
419
- lines.push(...generateModelIndexLines(listName, listConfig, relationResults, collectFieldLevelIndexColumns(listName, listConfig, relationResults)));
391
+ // Model-level `db.indexes` constraints (#864, #918) — see
392
+ // generateModelIndexLines. Emitted last so a config with no `db.indexes`
393
+ // produces byte-for-byte identical output to before this feature existed.
394
+ lines.push(...generateModelIndexLines(listName, listConfig, relationResults, collectFieldLevelIndexColumns(listName, listConfig, relationResults), timestamps));
420
395
  // Map the model to a custom table name when configured (e.g. adopting
421
396
  // existing tables whose physical name differs from the list key).
422
397
  if (listConfig.db?.map) {
423
398
  lines.push(` @@map("${listConfig.db.map}")`);
424
399
  }
425
- // Place the model in a specific database schema (Postgres multi-schema).
426
- // In multi-schema mode every model must declare an `@@schema(...)` or Prisma
427
- // rejects the schema (P1012). A list inherits its own `db.schema` when set,
428
- // otherwise it defaults to `public` (mirroring the enum default added in
429
- // #504). Greenfield (single schema) output is unchanged — no `@@schema`.
400
+ // A list inherits its own `db.schema` when set, otherwise defaults to
401
+ // `public` (mirroring the enum default from #504).
430
402
  if (multiSchema) {
431
403
  lines.push(` @@schema("${listConfig.db?.schema ?? 'public'}")`);
432
404
  }
433
405
  lines.push('}');
434
406
  lines.push('');
435
407
  }
436
- // Note: For Keystone naming, we use @relation("relationName") on both sides
437
- // Prisma automatically creates the join table named _relationName
438
- // No need to generate explicit join table models
439
408
  let schema = lines.join('\n');
440
- // Apply extendPrismaSchema function if provided
441
409
  if (config.db.extendPrismaSchema) {
442
410
  schema = config.db.extendPrismaSchema(schema);
443
411
  }
444
412
  return schema;
445
413
  }
446
- /**
447
- * Write Prisma schema to file
448
- *
449
- * @param prismaClientOutput - Optional override for the patched Prisma client
450
- * output path, forwarded to {@link generatePrismaSchema}.
451
- */
452
414
  export function writePrismaSchema(config, outputPath, prismaClientOutput) {
453
415
  const schema = generatePrismaSchema(config, prismaClientOutput);
454
- // Ensure directory exists
455
416
  const dir = path.dirname(outputPath);
456
417
  if (!fs.existsSync(dir)) {
457
418
  fs.mkdirSync(dir, { recursive: true });
@@ -1 +1 @@
1
- {"version":3,"file":"prisma.js","sourceRoot":"","sources":["../../src/generator/prisma.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prisma.js","sourceRoot":"","sources":["../../src/generator/prisma.ts"],"names":[],"mappings":"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"}