@opensaas/stack-cli 0.23.0 → 0.25.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.
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +33 -1
- package/dist/commands/generate.js.map +1 -1
- package/dist/generator/context.d.ts.map +1 -1
- package/dist/generator/context.js +9 -4
- package/dist/generator/context.js.map +1 -1
- package/dist/generator/extension.d.ts +11 -0
- package/dist/generator/extension.d.ts.map +1 -0
- package/dist/generator/extension.js +51 -0
- package/dist/generator/extension.js.map +1 -0
- package/dist/generator/index.d.ts +2 -0
- package/dist/generator/index.d.ts.map +1 -1
- package/dist/generator/index.js +1 -0
- package/dist/generator/index.js.map +1 -1
- package/dist/generator/lists.d.ts +3 -3
- package/dist/generator/lists.js +6 -6
- package/dist/generator/lists.js.map +1 -1
- package/dist/generator/node-build.d.ts +51 -0
- package/dist/generator/node-build.d.ts.map +1 -0
- package/dist/generator/node-build.js +258 -0
- package/dist/generator/node-build.js.map +1 -0
- package/dist/generator/prisma-extensions.d.ts.map +1 -1
- package/dist/generator/prisma-extensions.js +33 -3
- package/dist/generator/prisma-extensions.js.map +1 -1
- package/dist/generator/prisma.d.ts.map +1 -1
- package/dist/generator/prisma.js +15 -3
- package/dist/generator/prisma.js.map +1 -1
- package/dist/generator/types.d.ts.map +1 -1
- package/dist/generator/types.js +241 -26
- package/dist/generator/types.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAA;AAEtE;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,0BAA0B,EAAE,GAAG,MAAM,CAcxF;AAED,wBAAsB,eAAe,kBA6OpC"}
|
|
@@ -4,7 +4,7 @@ import { execSync } from 'child_process';
|
|
|
4
4
|
import chalk from 'chalk';
|
|
5
5
|
import ora from 'ora';
|
|
6
6
|
import { createJiti } from 'jiti';
|
|
7
|
-
import { writePrismaSchema, writePrismaConfig, writeTypes, writeLists, writeContext, writePluginTypes, writePrismaExtensions, resolveOutputPaths, } from '../generator/index.js';
|
|
7
|
+
import { writePrismaSchema, writePrismaConfig, writeTypes, writeLists, writeContext, writePluginTypes, writePrismaExtensions, resolveOutputPaths, buildNodeBundle, formatNodeBuildDiagnostics, } from '../generator/index.js';
|
|
8
8
|
import { validateConfigFields } from '@opensaas/stack-core';
|
|
9
9
|
/**
|
|
10
10
|
* Format field self-containment errors into a friendly, multi-line message.
|
|
@@ -80,6 +80,9 @@ export async function generateCommand() {
|
|
|
80
80
|
}
|
|
81
81
|
validationSpinner.succeed(chalk.green('Field configuration valid'));
|
|
82
82
|
// Generate Prisma schema, types, and context
|
|
83
|
+
// Captured here so the (optional) Node build step, which runs after
|
|
84
|
+
// `prisma generate` outside this try block, knows where the bundle lives.
|
|
85
|
+
let opensaasDir = '';
|
|
83
86
|
const generatorSpinner = ora('Generating schema and types...').start();
|
|
84
87
|
try {
|
|
85
88
|
// Resolve write paths and the relative cross-references between generated
|
|
@@ -90,6 +93,7 @@ export async function generateCommand() {
|
|
|
90
93
|
// default). With neither set this yields the historical defaults
|
|
91
94
|
// (`prisma/schema.prisma`, `.opensaas/`) byte-for-byte.
|
|
92
95
|
const { paths, crossReferences } = resolveOutputPaths(cwd, config.output, config.opensaasPath);
|
|
96
|
+
opensaasDir = paths.opensaasDir;
|
|
93
97
|
const prismaSchemaPath = paths.prismaSchema;
|
|
94
98
|
const prismaConfigPath = paths.prismaConfig;
|
|
95
99
|
const typesPath = paths.types;
|
|
@@ -194,6 +198,34 @@ export async function generateCommand() {
|
|
|
194
198
|
console.error(chalk.red('\n❌ Error:'), message);
|
|
195
199
|
process.exit(1);
|
|
196
200
|
}
|
|
201
|
+
// Optional Node build (ADR-0011): when `output.buildTarget === 'node'`,
|
|
202
|
+
// additionally compile the `.ts` bundle to a plain-Node-loadable ESM form
|
|
203
|
+
// under `<opensaasDir>/dist/` so a live module (e.g. better-auth's adapter)
|
|
204
|
+
// can be imported in a bundler-less runtime. Purely additive — the default
|
|
205
|
+
// `.ts` form is untouched. Runs after `prisma generate` so the compiled
|
|
206
|
+
// `prisma-client/**` subtree exists to compile in.
|
|
207
|
+
if (config.output?.buildTarget === 'node') {
|
|
208
|
+
const nodeBuildSpinner = ora('Building Node-loadable bundle...').start();
|
|
209
|
+
try {
|
|
210
|
+
const result = buildNodeBundle({ opensaasDir, configPath });
|
|
211
|
+
nodeBuildSpinner.succeed(chalk.green('Node-loadable bundle built'));
|
|
212
|
+
console.log(chalk.green(`✅ Node build emitted to ${path.relative(cwd, result.distDir)}`));
|
|
213
|
+
// The Node build is best-effort (`noEmitOnError: false`): emit proceeds
|
|
214
|
+
// even with stray type errors (e.g. the host's type-only `@/*` config
|
|
215
|
+
// alias). Surface any errors as a warning rather than failing.
|
|
216
|
+
const formattedErrors = formatNodeBuildDiagnostics(result.diagnostics);
|
|
217
|
+
if (formattedErrors.trim().length > 0) {
|
|
218
|
+
console.log(chalk.yellow('⚠️ Node build completed with type diagnostic(s) (non-fatal):'));
|
|
219
|
+
console.log(chalk.gray(formattedErrors));
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
catch (err) {
|
|
223
|
+
nodeBuildSpinner.fail(chalk.red('Failed to build Node-loadable bundle'));
|
|
224
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
225
|
+
console.error(chalk.red('\n❌ Error:'), message);
|
|
226
|
+
process.exit(1);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
197
229
|
console.log(chalk.bold('\n✨ Generation complete!\n'));
|
|
198
230
|
console.log(chalk.gray('Next steps:'));
|
|
199
231
|
console.log(chalk.gray(' 1. Run: npx prisma db push'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AACjC,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/generator/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/generator/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAK1D;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAiNrF;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,GACpB,IAAI,CAUN"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as fs from 'fs';
|
|
2
2
|
import * as path from 'path';
|
|
3
|
+
import { withTsExtension } from './extension.js';
|
|
3
4
|
/**
|
|
4
5
|
* Generate context factory that abstracts Prisma client from developers
|
|
5
6
|
*
|
|
@@ -11,7 +12,11 @@ export function generateContext(config, configImport) {
|
|
|
11
12
|
// the `.opensaas` bundle. Defaults to the legacy `../opensaas.config` (bundle
|
|
12
13
|
// one level below the project root); the output-path resolver supplies a
|
|
13
14
|
// recomputed value when the bundle is relocated via the `output` config block.
|
|
14
|
-
|
|
15
|
+
//
|
|
16
|
+
// The explicit `.ts` extension (see ./extension.ts) makes the bundle loadable
|
|
17
|
+
// by the host bundler / plain Node without an `extensionAlias`. The user's
|
|
18
|
+
// `opensaas.config.ts` is a real `.ts` file, so `.ts` names it directly.
|
|
19
|
+
const configImportPath = withTsExtension(configImport ?? '../opensaas.config');
|
|
15
20
|
// Check if custom Prisma client constructor is provided
|
|
16
21
|
const hasCustomConstructor = !!config.db.prismaClientConstructor;
|
|
17
22
|
// Check if storage is configured
|
|
@@ -118,9 +123,9 @@ const storage = {
|
|
|
118
123
|
|
|
119
124
|
import { getContext as getOpensaasContext } from '@opensaas/stack-core'
|
|
120
125
|
import type { Session as OpensaasSession, OpenSaasConfig } from '@opensaas/stack-core'
|
|
121
|
-
import { PrismaClient } from './prisma-client/client'
|
|
122
|
-
import type { Context } from './types'
|
|
123
|
-
import { prismaExtensions } from './prisma-extensions'
|
|
126
|
+
import { PrismaClient } from './prisma-client/client.ts'
|
|
127
|
+
import type { Context } from './types.ts'
|
|
128
|
+
import { prismaExtensions } from './prisma-extensions.ts'
|
|
124
129
|
import configOrPromise from '${configImportPath}'
|
|
125
130
|
|
|
126
131
|
// Resolve config if it's a Promise (when plugins are present)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/generator/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/generator/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAEhD;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,MAAsB,EAAE,YAAqB;IAC3E,2EAA2E;IAC3E,8EAA8E;IAC9E,yEAAyE;IACzE,+EAA+E;IAC/E,EAAE;IACF,8EAA8E;IAC9E,2EAA2E;IAC3E,yEAAyE;IACzE,MAAM,gBAAgB,GAAG,eAAe,CAAC,YAAY,IAAI,oBAAoB,CAAC,CAAA;IAE9E,wDAAwD;IACxD,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,uBAAuB,CAAA;IAEhE,iCAAiC;IACjC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;IAE7E,gDAAgD;IAChD,0EAA0E;IAC1E,MAAM,mBAAmB,GAAG,oBAAoB;QAC9C,CAAC,CAAC,0DAA0D;QAC5D,CAAC,CAAC;;;;;;;;;;;;;;;SAeG,CAAA;IAEP,sDAAsD;IACtD,MAAM,gBAAgB,GAAG,UAAU;QACjC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDL;QACG,CAAC,CAAC;;;;;;;;;;;;;;;;;;CAkBL,CAAA;IAEC,2CAA2C;IAC3C,OAAO;;;;;;;;;;;;;;+BAcsB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;yBA2BtB,mBAAmB;;;;;;;;;;;;;;EAc1C,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CjB,CAAA;AACD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAsB,EACtB,UAAkB,EAClB,YAAqB;IAErB,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IAErD,0BAA0B;IAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACxC,CAAC;IAED,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AAChD,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Append the explicit `.ts` extension to a relative module specifier so the
|
|
3
|
+
* Generated bundle resolves under a host bundler / plain Node without an
|
|
4
|
+
* `extensionAlias`. Idempotent: a specifier that already carries an explicit
|
|
5
|
+
* extension is returned unchanged.
|
|
6
|
+
*
|
|
7
|
+
* Only relative specifiers (`./` or `../`) are extended — bare package
|
|
8
|
+
* specifiers (e.g. `@opensaas/stack-core`) are returned untouched.
|
|
9
|
+
*/
|
|
10
|
+
export declare function withTsExtension(specifier: string): string;
|
|
11
|
+
//# sourceMappingURL=extension.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../../src/generator/extension.ts"],"names":[],"mappings":"AAmCA;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKzD"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Explicit-extension helper for the generated `.opensaas/` bundle.
|
|
3
|
+
*
|
|
4
|
+
* Why `.ts` (and not extensionless or `.js`)?
|
|
5
|
+
*
|
|
6
|
+
* The Generated bundle (`context.ts`, `types.ts`, `prisma-extensions.ts`,
|
|
7
|
+
* `lists.ts`, and the `prisma-client/**` tree) ships as TypeScript whose
|
|
8
|
+
* relative imports point at real `.ts` files on disk. We emit an explicit
|
|
9
|
+
* extension so the bundle resolves identically under every consumer — and is
|
|
10
|
+
* file-traceable by a host bundler — rather than relying on a TS-aware loader's
|
|
11
|
+
* extensionless guessing (which a plain Node process and an un-aliased webpack
|
|
12
|
+
* both refuse). See ADR-0008.
|
|
13
|
+
*
|
|
14
|
+
* The extension is `.ts` rather than `.js` because the on-disk files ARE `.ts`:
|
|
15
|
+
*
|
|
16
|
+
* | loader | `.ts` | `.js` (rewrite alias) |
|
|
17
|
+
* | ------------------------------ | ----- | --------------------- |
|
|
18
|
+
* | plain `node` (strip-types) | ✅ | ❌ ERR_MODULE_NOT_FOUND |
|
|
19
|
+
* | `tsx` / vitest | ✅ | ✅ |
|
|
20
|
+
* | esbuild bundle | ✅ | ✅ |
|
|
21
|
+
* | webpack (no `extensionAlias`) | ✅ | ❌ Module not found |
|
|
22
|
+
* | webpack / Next (`.js`→`.ts`) | ✅ | ✅ |
|
|
23
|
+
*
|
|
24
|
+
* `.ts` is the only specifier that resolves everywhere without a consumer-side
|
|
25
|
+
* `extensionAlias`, because it names the literal file. This matches the
|
|
26
|
+
* `moduleResolution: "bundler"` setting the examples use (which permits
|
|
27
|
+
* importing `.ts` extensions directly). The choice was validated by resolving a
|
|
28
|
+
* fixture mirroring the bundle layout under node strip-types, tsx, esbuild, and
|
|
29
|
+
* webpack with and without `extensionAlias`.
|
|
30
|
+
*/
|
|
31
|
+
const TS_EXTENSION = '.ts';
|
|
32
|
+
/** Module specifiers that already carry an explicit extension we should not touch. */
|
|
33
|
+
const EXPLICIT_EXTENSION = /\.(ts|tsx|js|jsx|mjs|cjs|json)$/;
|
|
34
|
+
/**
|
|
35
|
+
* Append the explicit `.ts` extension to a relative module specifier so the
|
|
36
|
+
* Generated bundle resolves under a host bundler / plain Node without an
|
|
37
|
+
* `extensionAlias`. Idempotent: a specifier that already carries an explicit
|
|
38
|
+
* extension is returned unchanged.
|
|
39
|
+
*
|
|
40
|
+
* Only relative specifiers (`./` or `../`) are extended — bare package
|
|
41
|
+
* specifiers (e.g. `@opensaas/stack-core`) are returned untouched.
|
|
42
|
+
*/
|
|
43
|
+
export function withTsExtension(specifier) {
|
|
44
|
+
const isRelative = specifier.startsWith('./') || specifier.startsWith('../');
|
|
45
|
+
if (!isRelative)
|
|
46
|
+
return specifier;
|
|
47
|
+
if (EXPLICIT_EXTENSION.test(specifier))
|
|
48
|
+
return specifier;
|
|
49
|
+
return `${specifier}${TS_EXTENSION}`;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=extension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../../src/generator/extension.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,YAAY,GAAG,KAAK,CAAA;AAE1B,sFAAsF;AACtF,MAAM,kBAAkB,GAAG,iCAAiC,CAAA;AAE5D;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;IAC5E,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAA;IACjC,IAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAA;IACxD,OAAO,GAAG,SAAS,GAAG,YAAY,EAAE,CAAA;AACtC,CAAC"}
|
|
@@ -7,4 +7,6 @@ export { generatePluginTypes, writePluginTypes } from './plugin-types.js';
|
|
|
7
7
|
export { generatePrismaExtensions, writePrismaExtensions } from './prisma-extensions.js';
|
|
8
8
|
export { resolveOutputPaths, DEFAULT_PRISMA_SCHEMA, DEFAULT_OPENSAAS_DIR, OPENSAAS_FILES, } from './output-paths.js';
|
|
9
9
|
export type { ResolvedOutputPaths, ResolvedWritePaths, ResolvedCrossReferences, } from './output-paths.js';
|
|
10
|
+
export { buildNodeBundle, formatNodeBuildDiagnostics } from './node-build.js';
|
|
11
|
+
export type { BuildNodeBundleOptions, BuildNodeBundleResult } from './node-build.js';
|
|
10
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACrE,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACzE,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AACxF,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,GACf,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACrE,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACzE,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AACxF,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,GACf,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAA;AAC7E,YAAY,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA"}
|
package/dist/generator/index.js
CHANGED
|
@@ -6,4 +6,5 @@ export { generateContext, writeContext } from './context.js';
|
|
|
6
6
|
export { generatePluginTypes, writePluginTypes } from './plugin-types.js';
|
|
7
7
|
export { generatePrismaExtensions, writePrismaExtensions } from './prisma-extensions.js';
|
|
8
8
|
export { resolveOutputPaths, DEFAULT_PRISMA_SCHEMA, DEFAULT_OPENSAAS_DIR, OPENSAAS_FILES, } from './output-paths.js';
|
|
9
|
+
export { buildNodeBundle, formatNodeBuildDiagnostics } from './node-build.js';
|
|
9
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACrE,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACzE,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AACxF,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,GACf,MAAM,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACrE,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACzE,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AACxF,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,GACf,MAAM,mBAAmB,CAAA;AAM1B,OAAO,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAA"}
|
|
@@ -10,13 +10,13 @@ import type { OpenSaasConfig } from '@opensaas/stack-core';
|
|
|
10
10
|
* export type Post = import('@opensaas/stack-core').ListConfig<Lists.Post.TypeInfo>
|
|
11
11
|
*
|
|
12
12
|
* namespace Post {
|
|
13
|
-
* export type Item = import('./types').Post
|
|
13
|
+
* export type Item = import('./types.ts').Post
|
|
14
14
|
* export type TypeInfo = {
|
|
15
15
|
* key: 'Post'
|
|
16
16
|
* item: Item
|
|
17
17
|
* inputs: {
|
|
18
|
-
* create: import('./prisma-client/client').Prisma.PostCreateInput
|
|
19
|
-
* update: import('./prisma-client/client').Prisma.PostUpdateInput
|
|
18
|
+
* create: import('./prisma-client/client.ts').Prisma.PostCreateInput
|
|
19
|
+
* update: import('./prisma-client/client.ts').Prisma.PostUpdateInput
|
|
20
20
|
* }
|
|
21
21
|
* }
|
|
22
22
|
* }
|
package/dist/generator/lists.js
CHANGED
|
@@ -39,13 +39,13 @@ function getFieldTypeImport(fieldType) {
|
|
|
39
39
|
* export type Post = import('@opensaas/stack-core').ListConfig<Lists.Post.TypeInfo>
|
|
40
40
|
*
|
|
41
41
|
* namespace Post {
|
|
42
|
-
* export type Item = import('./types').Post
|
|
42
|
+
* export type Item = import('./types.ts').Post
|
|
43
43
|
* export type TypeInfo = {
|
|
44
44
|
* key: 'Post'
|
|
45
45
|
* item: Item
|
|
46
46
|
* inputs: {
|
|
47
|
-
* create: import('./prisma-client/client').Prisma.PostCreateInput
|
|
48
|
-
* update: import('./prisma-client/client').Prisma.PostUpdateInput
|
|
47
|
+
* create: import('./prisma-client/client.ts').Prisma.PostCreateInput
|
|
48
|
+
* update: import('./prisma-client/client.ts').Prisma.PostUpdateInput
|
|
49
49
|
* }
|
|
50
50
|
* }
|
|
51
51
|
* }
|
|
@@ -88,7 +88,7 @@ export function generateListsNamespace(config) {
|
|
|
88
88
|
lines.push(` export type ${listName} = import('@opensaas/stack-core').ListConfig<Lists.${listName}.TypeInfo>`);
|
|
89
89
|
lines.push('');
|
|
90
90
|
lines.push(` namespace ${listName} {`);
|
|
91
|
-
lines.push(` export type Item = import('./types').${listName}`);
|
|
91
|
+
lines.push(` export type Item = import('./types.ts').${listName}`);
|
|
92
92
|
lines.push('');
|
|
93
93
|
// Generate Fields type
|
|
94
94
|
lines.push(` /**`);
|
|
@@ -108,8 +108,8 @@ export function generateListsNamespace(config) {
|
|
|
108
108
|
lines.push(` fields: Fields`);
|
|
109
109
|
lines.push(` item: Item`);
|
|
110
110
|
lines.push(` inputs: {`);
|
|
111
|
-
lines.push(` create: import('./prisma-client/client').Prisma.${listName}CreateInput`);
|
|
112
|
-
lines.push(` update: import('./prisma-client/client').Prisma.${listName}UpdateInput`);
|
|
111
|
+
lines.push(` create: import('./prisma-client/client.ts').Prisma.${listName}CreateInput`);
|
|
112
|
+
lines.push(` update: import('./prisma-client/client.ts').Prisma.${listName}UpdateInput`);
|
|
113
113
|
lines.push(` }`);
|
|
114
114
|
lines.push(` }`);
|
|
115
115
|
lines.push(` }`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lists.js","sourceRoot":"","sources":["../../src/generator/lists.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"lists.js","sourceRoot":"","sources":["../../src/generator/lists.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import ts from 'typescript';
|
|
2
|
+
export interface BuildNodeBundleOptions {
|
|
3
|
+
/**
|
|
4
|
+
* Absolute path to the resolved `.opensaas` bundle directory (the one holding
|
|
5
|
+
* `context.ts`, `prisma-client/`, etc.).
|
|
6
|
+
*/
|
|
7
|
+
opensaasDir: string;
|
|
8
|
+
/**
|
|
9
|
+
* Absolute path to the project's `opensaas.config.ts`. Compiled in as a
|
|
10
|
+
* sibling of the entry so the Node build is self-contained.
|
|
11
|
+
*/
|
|
12
|
+
configPath: string;
|
|
13
|
+
}
|
|
14
|
+
export interface BuildNodeBundleResult {
|
|
15
|
+
/** Absolute path to the emitted `<opensaasDir>/dist/` directory. */
|
|
16
|
+
distDir: string;
|
|
17
|
+
/** Absolute path to the compiled entry, `<opensaasDir>/dist/context.js`. */
|
|
18
|
+
entry: string;
|
|
19
|
+
/** TypeScript diagnostics surfaced during the compile (non-fatal; emit still proceeds). */
|
|
20
|
+
diagnostics: readonly ts.Diagnostic[];
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Rewrite any relative `../`-rooted `opensaas.config` import (of any depth) in a
|
|
24
|
+
* source string to the sibling `./opensaas.config.ts`, preserving the original
|
|
25
|
+
* quote style, so the compiled output's config import resolves inside `dist/`.
|
|
26
|
+
* Exported for unit testing of the any-depth rewrite.
|
|
27
|
+
*/
|
|
28
|
+
export declare function rewriteConfigImport(source: string): string;
|
|
29
|
+
/**
|
|
30
|
+
* Return the first relative config import that still escapes the staging/`dist`
|
|
31
|
+
* root (one-or-more `../` segments before `opensaas.config`), or `undefined` if
|
|
32
|
+
* none remains. Exported so the silent-failure guard is unit-testable.
|
|
33
|
+
*/
|
|
34
|
+
export declare function findEscapingConfigImport(source: string): string | undefined;
|
|
35
|
+
/**
|
|
36
|
+
* Compile the Generated bundle to a plain-Node-loadable ESM build under
|
|
37
|
+
* `<opensaasDir>/dist/` (ADR-0011). Additive: the caller only invokes this when
|
|
38
|
+
* `output.buildTarget === 'node'`, and it never touches the default `.ts` form.
|
|
39
|
+
*
|
|
40
|
+
* Assumes the `.ts` bundle and the Prisma client subtree
|
|
41
|
+
* (`<opensaasDir>/prisma-client/**`) already exist on disk — i.e. it runs after
|
|
42
|
+
* the bundle is written and after `prisma generate`.
|
|
43
|
+
*/
|
|
44
|
+
export declare function buildNodeBundle(options: BuildNodeBundleOptions): BuildNodeBundleResult;
|
|
45
|
+
/**
|
|
46
|
+
* Format Node-build diagnostics into a short, human-readable list. The Node
|
|
47
|
+
* build is best-effort (`noEmitOnError: false`), so these are surfaced as a
|
|
48
|
+
* warning rather than a failure.
|
|
49
|
+
*/
|
|
50
|
+
export declare function formatNodeBuildDiagnostics(diagnostics: readonly ts.Diagnostic[]): string;
|
|
51
|
+
//# sourceMappingURL=node-build.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-build.d.ts","sourceRoot":"","sources":["../../src/generator/node-build.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,YAAY,CAAA;AAkG3B,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAA;IACf,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAA;IACb,2FAA2F;IAC3F,WAAW,EAAE,SAAS,EAAE,CAAC,UAAU,EAAE,CAAA;CACtC;AAmBD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAI1D;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE3E;AA4CD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,qBAAqB,CAgEtF;AAgBD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC,UAAU,EAAE,GAAG,MAAM,CASxF"}
|