zenstack 2.0.0-alpha.1 → 2.0.0-alpha.3
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/README.md +29 -1
- package/bin/post-install.js +1 -1
- package/cli/actions/repl.js +31 -4
- package/cli/actions/repl.js.map +1 -1
- package/cli/cli-util.js +1 -1
- package/cli/cli-util.js.map +1 -1
- package/cli/plugin-runner.js +63 -42
- package/cli/plugin-runner.js.map +1 -1
- package/constants.js +1 -1
- package/language-server/validator/datamodel-validator.js +17 -7
- package/language-server/validator/datamodel-validator.js.map +1 -1
- package/language-server/validator/schema-validator.js +2 -1
- package/language-server/validator/schema-validator.js.map +1 -1
- package/package.json +5 -5
- package/plugins/enhancer/enhance/index.d.ts +4 -1
- package/plugins/enhancer/enhance/index.js +245 -111
- package/plugins/enhancer/enhance/index.js.map +1 -1
- package/plugins/enhancer/enhancer-utils.d.ts +5 -0
- package/plugins/enhancer/enhancer-utils.js +22 -0
- package/plugins/enhancer/enhancer-utils.js.map +1 -0
- package/plugins/enhancer/index.js +25 -21
- package/plugins/enhancer/index.js.map +1 -1
- package/plugins/enhancer/model-meta/index.js +3 -0
- package/plugins/enhancer/model-meta/index.js.map +1 -1
- package/plugins/enhancer/policy/policy-guard-generator.d.ts +1 -1
- package/plugins/enhancer/policy/policy-guard-generator.js +7 -2
- package/plugins/enhancer/policy/policy-guard-generator.js.map +1 -1
- package/plugins/plugin-utils.js +3 -0
- package/plugins/plugin-utils.js.map +1 -1
- package/plugins/prisma/index.d.ts +1 -0
- package/plugins/prisma/index.js +92 -2
- package/plugins/prisma/index.js.map +1 -1
- package/plugins/prisma/schema-generator.d.ts +4 -4
- package/plugins/prisma/schema-generator.js +48 -81
- package/plugins/prisma/schema-generator.js.map +1 -1
- package/plugins/zod/generator.d.ts +21 -1
- package/plugins/zod/generator.js +364 -352
- package/plugins/zod/generator.js.map +1 -1
- package/plugins/zod/index.js +2 -1
- package/plugins/zod/index.js.map +1 -1
- package/plugins/zod/transformer.d.ts +7 -5
- package/plugins/zod/transformer.js +18 -14
- package/plugins/zod/transformer.js.map +1 -1
- package/plugins/zod/types.d.ts +0 -2
- package/plugins/zod/utils/schema-gen.js +1 -1
- package/plugins/zod/utils/schema-gen.js.map +1 -1
- package/res/stdlib.zmodel +2 -2
- package/telemetry.d.ts +1 -1
- package/telemetry.js +1 -1
- package/telemetry.js.map +1 -1
- package/utils/exec-utils.d.ts +6 -0
- package/utils/exec-utils.js +10 -1
- package/utils/exec-utils.js.map +1 -1
- package/utils/pkg-utils.d.ts +29 -0
- package/utils/pkg-utils.js +42 -22
- package/utils/pkg-utils.js.map +1 -1
- package/plugins/enhancer/delegate/index.d.ts +0 -4
- package/plugins/enhancer/delegate/index.js +0 -31
- package/plugins/enhancer/delegate/index.js.map +0 -1
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publisher": "zenstack",
|
|
4
4
|
"displayName": "ZenStack Language Tools",
|
|
5
5
|
"description": "Build scalable web apps with minimum code by defining authorization and validation rules inside the data schema that closer to the database",
|
|
6
|
-
"version": "2.0.0-alpha.
|
|
6
|
+
"version": "2.0.0-alpha.3",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "ZenStack Team"
|
|
9
9
|
},
|
|
@@ -94,8 +94,8 @@
|
|
|
94
94
|
"vscode-uri": "^3.0.6",
|
|
95
95
|
"zod": "^3.22.4",
|
|
96
96
|
"zod-validation-error": "^1.5.0",
|
|
97
|
-
"@zenstackhq/language": "2.0.0-alpha.
|
|
98
|
-
"@zenstackhq/sdk": "2.0.0-alpha.
|
|
97
|
+
"@zenstackhq/language": "2.0.0-alpha.3",
|
|
98
|
+
"@zenstackhq/sdk": "2.0.0-alpha.3"
|
|
99
99
|
},
|
|
100
100
|
"devDependencies": {
|
|
101
101
|
"@prisma/client": "^5.7.1",
|
|
@@ -114,7 +114,7 @@
|
|
|
114
114
|
"tmp": "^0.2.1",
|
|
115
115
|
"tsc-alias": "^1.7.0",
|
|
116
116
|
"vitest": "^0.29.7",
|
|
117
|
-
"@zenstackhq/runtime": "2.0.0-alpha.
|
|
117
|
+
"@zenstackhq/runtime": "2.0.0-alpha.3"
|
|
118
118
|
},
|
|
119
119
|
"scripts": {
|
|
120
120
|
"vscode:publish": "vsce publish --no-dependencies",
|
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
"bundle": "rimraf bundle && pnpm lint --max-warnings=0 && node build/bundle.js --minify",
|
|
126
126
|
"watch": "tsc --watch",
|
|
127
127
|
"lint": "eslint src tests --ext ts",
|
|
128
|
-
"test": "
|
|
128
|
+
"test": "jest",
|
|
129
129
|
"postinstall": "node bin/post-install.js"
|
|
130
130
|
}
|
|
131
131
|
}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import type { DMMF } from '@prisma/generator-helper';
|
|
1
2
|
import { type PluginOptions } from '@zenstackhq/sdk';
|
|
2
3
|
import { type Model } from '@zenstackhq/sdk/ast';
|
|
3
4
|
import { Project } from 'ts-morph';
|
|
4
|
-
export declare function generate(model: Model, options: PluginOptions, project: Project, outDir: string): Promise<
|
|
5
|
+
export declare function generate(model: Model, options: PluginOptions, project: Project, outDir: string): Promise<{
|
|
6
|
+
dmmf: DMMF.Document | undefined;
|
|
7
|
+
}>;
|
|
@@ -16,22 +16,38 @@ exports.generate = void 0;
|
|
|
16
16
|
const runtime_1 = require("@zenstackhq/runtime");
|
|
17
17
|
const sdk_1 = require("@zenstackhq/sdk");
|
|
18
18
|
const ast_1 = require("@zenstackhq/sdk/ast");
|
|
19
|
+
const fs_1 = __importDefault(require("fs"));
|
|
19
20
|
const path_1 = __importDefault(require("path"));
|
|
20
21
|
const ts_morph_1 = require("ts-morph");
|
|
22
|
+
const __1 = require("..");
|
|
23
|
+
const exec_utils_1 = require("../../../utils/exec-utils");
|
|
24
|
+
const prisma_1 = require("../../prisma");
|
|
21
25
|
const schema_generator_1 = require("../../prisma/schema-generator");
|
|
26
|
+
const enhancer_utils_1 = require("../enhancer-utils");
|
|
22
27
|
function generate(model, options, project, outDir) {
|
|
23
28
|
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
-
const outFile = path_1.default.join(outDir, 'enhance.ts');
|
|
25
29
|
let logicalPrismaClientDir;
|
|
26
|
-
|
|
27
|
-
|
|
30
|
+
let dmmf;
|
|
31
|
+
if (needsLogicalClient(model)) {
|
|
32
|
+
// schema contains delegate models, need to generate a logical prisma schema
|
|
33
|
+
const result = yield generateLogicalPrisma(model, options, outDir);
|
|
34
|
+
logicalPrismaClientDir = './.logical-prisma-client';
|
|
35
|
+
dmmf = result.dmmf;
|
|
36
|
+
// create a reexport of the logical prisma client
|
|
37
|
+
const prismaDts = project.createSourceFile(path_1.default.join(outDir, 'prisma.d.ts'), `export type * from '${logicalPrismaClientDir}/index-fixed';`, { overwrite: true });
|
|
38
|
+
yield prismaDts.save();
|
|
28
39
|
}
|
|
29
|
-
|
|
40
|
+
else {
|
|
41
|
+
// just reexport the prisma client
|
|
42
|
+
const prismaDts = project.createSourceFile(path_1.default.join(outDir, 'prisma.d.ts'), `export type * from '${(0, sdk_1.getPrismaClientImportSpec)(outDir, options)}';`, { overwrite: true });
|
|
43
|
+
yield prismaDts.save();
|
|
44
|
+
}
|
|
45
|
+
const enhanceTs = project.createSourceFile(path_1.default.join(outDir, 'enhance.ts'), `import { createEnhancement, type EnhancementContext, type EnhancementOptions, type ZodSchemas } from '@zenstackhq/runtime';
|
|
30
46
|
import modelMeta from './model-meta';
|
|
31
47
|
import policy from './policy';
|
|
32
48
|
${options.withZodSchemas ? "import * as zodSchemas from './zod';" : 'const zodSchemas = undefined;'}
|
|
33
|
-
import { Prisma } from '${(0, sdk_1.getPrismaClientImportSpec)(
|
|
34
|
-
${logicalPrismaClientDir ? `import { PrismaClient
|
|
49
|
+
import { Prisma } from '${(0, sdk_1.getPrismaClientImportSpec)(outDir, options)}';
|
|
50
|
+
${logicalPrismaClientDir ? `import { type PrismaClient } from '${logicalPrismaClientDir}/index-fixed';` : ``}
|
|
35
51
|
|
|
36
52
|
export function enhance<DbClient extends object>(prisma: DbClient, context?: EnhancementContext, options?: EnhancementOptions) {
|
|
37
53
|
return createEnhancement(prisma, {
|
|
@@ -40,155 +56,252 @@ export function enhance<DbClient extends object>(prisma: DbClient, context?: Enh
|
|
|
40
56
|
zodSchemas: zodSchemas as unknown as (ZodSchemas | undefined),
|
|
41
57
|
prismaModule: Prisma,
|
|
42
58
|
...options
|
|
43
|
-
}, context)${logicalPrismaClientDir ? ' as
|
|
59
|
+
}, context)${logicalPrismaClientDir ? ' as PrismaClient' : ''};
|
|
44
60
|
}
|
|
45
61
|
`, { overwrite: true });
|
|
62
|
+
yield saveSourceFile(enhanceTs, options);
|
|
63
|
+
return { dmmf };
|
|
46
64
|
});
|
|
47
65
|
}
|
|
48
66
|
exports.generate = generate;
|
|
67
|
+
function needsLogicalClient(model) {
|
|
68
|
+
return hasDelegateModel(model) || hasAuthInDefault(model);
|
|
69
|
+
}
|
|
49
70
|
function hasDelegateModel(model) {
|
|
50
71
|
const dataModels = (0, sdk_1.getDataModels)(model);
|
|
51
72
|
return dataModels.some((dm) => (0, sdk_1.isDelegateModel)(dm) && dataModels.some((sub) => sub.superTypes.some((base) => base.ref === dm)));
|
|
52
73
|
}
|
|
74
|
+
function hasAuthInDefault(model) {
|
|
75
|
+
return (0, sdk_1.getDataModels)(model).some((dm) => dm.fields.some((f) => f.attributes.some((attr) => (0, enhancer_utils_1.isDefaultWithAuth)(attr))));
|
|
76
|
+
}
|
|
53
77
|
function generateLogicalPrisma(model, options, outDir) {
|
|
54
78
|
return __awaiter(this, void 0, void 0, function* () {
|
|
55
|
-
const prismaGenerator = new schema_generator_1.PrismaSchemaGenerator();
|
|
56
|
-
const prismaClientOutDir = './.
|
|
57
|
-
|
|
58
|
-
|
|
79
|
+
const prismaGenerator = new schema_generator_1.PrismaSchemaGenerator(model);
|
|
80
|
+
const prismaClientOutDir = './.logical-prisma-client';
|
|
81
|
+
const logicalPrismaFile = path_1.default.join(outDir, 'logical.prisma');
|
|
82
|
+
yield prismaGenerator.generate({
|
|
83
|
+
provider: '@internal', // doesn't matter
|
|
59
84
|
schemaPath: options.schemaPath,
|
|
60
|
-
output:
|
|
85
|
+
output: logicalPrismaFile,
|
|
61
86
|
overrideClientGenerationPath: prismaClientOutDir,
|
|
62
87
|
mode: 'logical',
|
|
63
88
|
});
|
|
89
|
+
// generate the prisma client
|
|
90
|
+
const generateCmd = `prisma generate --schema "${logicalPrismaFile}" --no-engine`;
|
|
91
|
+
try {
|
|
92
|
+
// run 'prisma generate'
|
|
93
|
+
yield (0, exec_utils_1.execPackage)(generateCmd, { stdio: 'ignore' });
|
|
94
|
+
}
|
|
95
|
+
catch (_a) {
|
|
96
|
+
yield (0, prisma_1.trackPrismaSchemaError)(logicalPrismaFile);
|
|
97
|
+
try {
|
|
98
|
+
// run 'prisma generate' again with output to the console
|
|
99
|
+
yield (0, exec_utils_1.execPackage)(generateCmd);
|
|
100
|
+
}
|
|
101
|
+
catch (_b) {
|
|
102
|
+
// noop
|
|
103
|
+
}
|
|
104
|
+
throw new sdk_1.PluginError(__1.name, `Failed to run "prisma generate"`);
|
|
105
|
+
}
|
|
106
|
+
// make a bunch of typing fixes to the generated prisma client
|
|
64
107
|
yield processClientTypes(model, path_1.default.join(outDir, prismaClientOutDir));
|
|
65
|
-
return
|
|
108
|
+
return {
|
|
109
|
+
prismaSchema: logicalPrismaFile,
|
|
110
|
+
// load the dmmf of the logical prisma schema
|
|
111
|
+
dmmf: yield (0, sdk_1.getDMMF)({ datamodel: fs_1.default.readFileSync(logicalPrismaFile, { encoding: 'utf-8' }) }),
|
|
112
|
+
};
|
|
66
113
|
});
|
|
67
114
|
}
|
|
68
115
|
function processClientTypes(model, prismaClientDir) {
|
|
69
116
|
return __awaiter(this, void 0, void 0, function* () {
|
|
117
|
+
// make necessary updates to the generated `index.d.ts` file and save it as `index-fixed.d.ts`
|
|
70
118
|
const project = new ts_morph_1.Project();
|
|
71
119
|
const sf = project.addSourceFileAtPath(path_1.default.join(prismaClientDir, 'index.d.ts'));
|
|
72
|
-
|
|
120
|
+
// build a map of delegate models and their sub models
|
|
121
|
+
const delegateInfo = [];
|
|
73
122
|
model.declarations
|
|
74
123
|
.filter((d) => (0, sdk_1.isDelegateModel)(d))
|
|
75
124
|
.forEach((dm) => {
|
|
76
|
-
|
|
125
|
+
delegateInfo.push([
|
|
77
126
|
dm,
|
|
78
127
|
model.declarations.filter((d) => (0, ast_1.isDataModel)(d) && d.superTypes.some((s) => s.ref === dm)),
|
|
79
128
|
]);
|
|
80
129
|
});
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
sf.forEachDescendant((desc, traversal) => {
|
|
84
|
-
removeAuxRelationFields(desc, toRemove, traversal);
|
|
85
|
-
fixDelegateUnionType(desc, delegateModels, toReplaceText, traversal);
|
|
86
|
-
removeCreateFromDelegateInputTypes(desc, delegateModels, toRemove, traversal);
|
|
87
|
-
removeDelegateToplevelCreates(desc, delegateModels, toRemove, traversal);
|
|
88
|
-
removeDiscriminatorFromConcreteInputTypes(desc, delegateModels, toRemove);
|
|
130
|
+
const sfNew = project.createSourceFile(path_1.default.join(prismaClientDir, 'index-fixed.d.ts'), undefined, {
|
|
131
|
+
overwrite: true,
|
|
89
132
|
});
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
133
|
+
if (delegateInfo.length > 0) {
|
|
134
|
+
// transform types for delegated models
|
|
135
|
+
transformDelegate(sf, sfNew, delegateInfo);
|
|
136
|
+
sfNew.formatText();
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
// just copy
|
|
140
|
+
sfNew.replaceWithText(sf.getFullText());
|
|
141
|
+
}
|
|
142
|
+
yield sfNew.save();
|
|
93
143
|
});
|
|
94
144
|
}
|
|
95
|
-
function
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
145
|
+
function transformDelegate(sf, sfNew, delegateModels) {
|
|
146
|
+
// copy toplevel imports
|
|
147
|
+
sfNew.addImportDeclarations(sf.getImportDeclarations().map((n) => n.getStructure()));
|
|
148
|
+
// copy toplevel import equals
|
|
149
|
+
sfNew.addStatements(sf.getChildrenOfKind(ts_morph_1.SyntaxKind.ImportEqualsDeclaration).map((n) => n.getFullText()));
|
|
150
|
+
// copy toplevel exports
|
|
151
|
+
sfNew.addExportAssignments(sf.getExportAssignments().map((n) => n.getStructure()));
|
|
152
|
+
// copy toplevel type aliases
|
|
153
|
+
sfNew.addTypeAliases(sf.getTypeAliases().map((n) => n.getStructure()));
|
|
154
|
+
// copy toplevel classes
|
|
155
|
+
sfNew.addClasses(sf.getClasses().map((n) => n.getStructure()));
|
|
156
|
+
// copy toplevel variables
|
|
157
|
+
sfNew.addVariableStatements(sf.getVariableStatements().map((n) => n.getStructure()));
|
|
158
|
+
// copy toplevel namespaces except for `Prisma`
|
|
159
|
+
sfNew.addModules(sf
|
|
160
|
+
.getModules()
|
|
161
|
+
.filter((n) => n.getName() !== 'Prisma')
|
|
162
|
+
.map((n) => n.getStructure()));
|
|
163
|
+
// transform the `Prisma` namespace
|
|
164
|
+
const prismaModule = sf.getModuleOrThrow('Prisma');
|
|
165
|
+
const newPrismaModule = sfNew.addModule({ name: 'Prisma', isExported: true });
|
|
166
|
+
transformPrismaModule(prismaModule, newPrismaModule, delegateModels);
|
|
167
|
+
}
|
|
168
|
+
function transformPrismaModule(prismaModule, newPrismaModule, delegateInfo) {
|
|
169
|
+
// module block is the direct container of declarations inside a namespace
|
|
170
|
+
const moduleBlock = prismaModule.getFirstChildByKindOrThrow(ts_morph_1.SyntaxKind.ModuleBlock);
|
|
171
|
+
// most of the toplevel constructs should be copied over
|
|
172
|
+
// here we use ts-morph batch operations for optimal performance
|
|
173
|
+
// copy imports
|
|
174
|
+
newPrismaModule.addStatements(moduleBlock.getChildrenOfKind(ts_morph_1.SyntaxKind.ImportEqualsDeclaration).map((n) => n.getFullText()));
|
|
175
|
+
// copy classes
|
|
176
|
+
newPrismaModule.addClasses(moduleBlock.getClasses().map((n) => n.getStructure()));
|
|
177
|
+
// copy functions
|
|
178
|
+
newPrismaModule.addFunctions(moduleBlock.getFunctions().map((n) => n.getStructure()));
|
|
179
|
+
// copy nested namespaces
|
|
180
|
+
newPrismaModule.addModules(moduleBlock.getModules().map((n) => n.getStructure()));
|
|
181
|
+
// transform variables
|
|
182
|
+
const newVariables = moduleBlock.getVariableStatements().map((variable) => transformVariableStatement(variable));
|
|
183
|
+
newPrismaModule.addVariableStatements(newVariables);
|
|
184
|
+
// transform interfaces
|
|
185
|
+
const newInterfaces = moduleBlock.getInterfaces().map((iface) => transformInterface(iface, delegateInfo));
|
|
186
|
+
newPrismaModule.addInterfaces(newInterfaces);
|
|
187
|
+
// transform type aliases
|
|
188
|
+
const newTypeAliases = moduleBlock.getTypeAliases().map((typeAlias) => transformTypeAlias(typeAlias, delegateInfo));
|
|
189
|
+
newPrismaModule.addTypeAliases(newTypeAliases);
|
|
190
|
+
}
|
|
191
|
+
function transformVariableStatement(variable) {
|
|
192
|
+
const structure = variable.getStructure();
|
|
193
|
+
// remove `delegate_aux_*` fields from the variable's typing
|
|
194
|
+
const auxFields = findAuxDecls(variable);
|
|
195
|
+
if (auxFields.length > 0) {
|
|
196
|
+
structure.declarations.forEach((variable) => {
|
|
197
|
+
var _a;
|
|
198
|
+
let source = (_a = variable.type) === null || _a === void 0 ? void 0 : _a.toString();
|
|
199
|
+
auxFields.forEach((f) => {
|
|
200
|
+
source = source === null || source === void 0 ? void 0 : source.replace(f.getText(), '');
|
|
201
|
+
});
|
|
202
|
+
variable.type = source;
|
|
203
|
+
});
|
|
103
204
|
}
|
|
205
|
+
return structure;
|
|
104
206
|
}
|
|
105
|
-
function
|
|
106
|
-
|
|
107
|
-
|
|
207
|
+
function transformInterface(iface, delegateInfo) {
|
|
208
|
+
var _a, _b, _c;
|
|
209
|
+
const structure = iface.getStructure();
|
|
210
|
+
// filter out aux fields
|
|
211
|
+
structure.properties = (_a = structure.properties) === null || _a === void 0 ? void 0 : _a.filter((p) => !p.name.startsWith(runtime_1.DELEGATE_AUX_RELATION_PREFIX));
|
|
212
|
+
// filter out aux methods
|
|
213
|
+
structure.methods = (_b = structure.methods) === null || _b === void 0 ? void 0 : _b.filter((m) => !m.name.startsWith(runtime_1.DELEGATE_AUX_RELATION_PREFIX));
|
|
214
|
+
if (delegateInfo.some(([delegate]) => `${delegate.name}Delegate` === iface.getName())) {
|
|
215
|
+
// delegate models cannot be created directly, remove create/createMany/upsert
|
|
216
|
+
structure.methods = (_c = structure.methods) === null || _c === void 0 ? void 0 : _c.filter((m) => !['create', 'createMany', 'upsert'].includes(m.name));
|
|
108
217
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
218
|
+
return structure;
|
|
219
|
+
}
|
|
220
|
+
function transformTypeAlias(typeAlias, delegateInfo) {
|
|
221
|
+
const structure = typeAlias.getStructure();
|
|
222
|
+
let source = structure.type;
|
|
223
|
+
// remove aux fields
|
|
224
|
+
source = removeAuxFieldsFromTypeAlias(typeAlias, source);
|
|
225
|
+
// remove discriminator field from concrete input types
|
|
226
|
+
source = removeDiscriminatorFromConcreteInput(typeAlias, delegateInfo, source);
|
|
227
|
+
// remove create/connectOrCreate/upsert fields from delegate's input types
|
|
228
|
+
source = removeCreateFromDelegateInput(typeAlias, delegateInfo, source);
|
|
229
|
+
// fix delegate payload union type
|
|
230
|
+
source = fixDelegatePayloadType(typeAlias, delegateInfo, source);
|
|
231
|
+
structure.type = source;
|
|
232
|
+
return structure;
|
|
233
|
+
}
|
|
234
|
+
function fixDelegatePayloadType(typeAlias, delegateInfo, source) {
|
|
235
|
+
// change the type of `$<DelegateModel>Payload` type of delegate model to a union of concrete types
|
|
236
|
+
const typeName = typeAlias.getName();
|
|
237
|
+
const payloadRecord = delegateInfo.find(([delegate]) => `$${delegate.name}Payload` === typeName);
|
|
238
|
+
if (payloadRecord) {
|
|
239
|
+
const discriminatorDecl = getDiscriminatorField(payloadRecord[0]);
|
|
240
|
+
if (discriminatorDecl) {
|
|
241
|
+
source = `${payloadRecord[1]
|
|
242
|
+
.map((concrete) => `($${concrete.name}Payload<ExtArgs> & { scalars: { ${discriminatorDecl.name}: '${concrete.name}' } })`)
|
|
243
|
+
.join(' | ')}`;
|
|
123
244
|
}
|
|
124
|
-
}
|
|
245
|
+
}
|
|
246
|
+
return source;
|
|
125
247
|
}
|
|
126
|
-
function
|
|
127
|
-
|
|
128
|
-
|
|
248
|
+
function removeCreateFromDelegateInput(typeAlias, delegateModels, source) {
|
|
249
|
+
// remove create/connectOrCreate/upsert fields from delegate's input types because
|
|
250
|
+
// delegate models cannot be created directly
|
|
251
|
+
const typeName = typeAlias.getName();
|
|
252
|
+
const delegateModelNames = delegateModels.map(([delegate]) => delegate.name);
|
|
253
|
+
const delegateCreateUpdateInputRegex = new RegExp(`\\${delegateModelNames.join('|')}(Unchecked)?(Create|Update).*Input`);
|
|
254
|
+
if (delegateCreateUpdateInputRegex.test(typeName)) {
|
|
255
|
+
const toRemove = typeAlias
|
|
256
|
+
.getDescendantsOfKind(ts_morph_1.SyntaxKind.PropertySignature)
|
|
257
|
+
.filter((p) => ['create', 'connectOrCreate', 'upsert'].includes(p.getName()));
|
|
258
|
+
toRemove.forEach((r) => {
|
|
259
|
+
source = source.replace(r.getText(), '');
|
|
260
|
+
});
|
|
129
261
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
262
|
+
return source;
|
|
263
|
+
}
|
|
264
|
+
function removeDiscriminatorFromConcreteInput(typeAlias, delegateInfo, source) {
|
|
265
|
+
// remove discriminator field from the create/update input of concrete models because
|
|
266
|
+
// discriminator cannot be set directly
|
|
267
|
+
const typeName = typeAlias.getName();
|
|
268
|
+
const concreteModelNames = delegateInfo.map(([, concretes]) => concretes.map((c) => c.name)).flatMap((c) => c);
|
|
269
|
+
const concreteCreateUpdateInputRegex = new RegExp(`(${concreteModelNames.join('|')})(Unchecked)?(Create|Update).*Input`);
|
|
270
|
+
const match = typeName.match(concreteCreateUpdateInputRegex);
|
|
271
|
+
if (match) {
|
|
272
|
+
const modelName = match[1];
|
|
273
|
+
const record = delegateInfo.find(([, concretes]) => concretes.some((c) => c.name === modelName));
|
|
274
|
+
if (record) {
|
|
275
|
+
// remove all discriminator fields recursively
|
|
276
|
+
const delegateOfConcrete = record[0];
|
|
277
|
+
const discriminators = getDiscriminatorFieldsRecursively(delegateOfConcrete);
|
|
278
|
+
discriminators.forEach((discriminatorDecl) => {
|
|
279
|
+
const discriminatorNode = findNamedProperty(typeAlias, discriminatorDecl.name);
|
|
280
|
+
if (discriminatorNode) {
|
|
281
|
+
source = source.replace(discriminatorNode.getText(), '');
|
|
140
282
|
}
|
|
141
283
|
});
|
|
142
|
-
traversal.skip();
|
|
143
284
|
}
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
function removeDiscriminatorFromConcreteInputTypes(desc, delegateModels, toRemove) {
|
|
147
|
-
if (!desc.isKind(ts_morph_1.SyntaxKind.TypeAliasDeclaration)) {
|
|
148
|
-
return;
|
|
149
285
|
}
|
|
150
|
-
|
|
151
|
-
delegateModels.forEach(([delegate, concretes]) => {
|
|
152
|
-
const discriminator = getDiscriminatorField(delegate);
|
|
153
|
-
if (!discriminator) {
|
|
154
|
-
return;
|
|
155
|
-
}
|
|
156
|
-
concretes.forEach((concrete) => {
|
|
157
|
-
// remove discriminator field from the create/update input of concrete models
|
|
158
|
-
const regex = new RegExp(`\\${concrete.name}(Unchecked)?(Create|Update).*Input`);
|
|
159
|
-
if (regex.test(name)) {
|
|
160
|
-
desc.forEachDescendant((d, innerTraversal) => {
|
|
161
|
-
if (d.isKind(ts_morph_1.SyntaxKind.PropertySignature)) {
|
|
162
|
-
if (d.getName() === discriminator.name) {
|
|
163
|
-
toRemove.push(d);
|
|
164
|
-
}
|
|
165
|
-
innerTraversal.skip();
|
|
166
|
-
}
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
});
|
|
170
|
-
});
|
|
286
|
+
return source;
|
|
171
287
|
}
|
|
172
|
-
function
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
toRemove.push(createMethod);
|
|
180
|
-
}
|
|
181
|
-
const createManyMethod = desc.getMethod('createMany');
|
|
182
|
-
if (createManyMethod) {
|
|
183
|
-
toRemove.push(createManyMethod);
|
|
184
|
-
}
|
|
185
|
-
const upsertMethod = desc.getMethod('upsert');
|
|
186
|
-
if (upsertMethod) {
|
|
187
|
-
toRemove.push(upsertMethod);
|
|
188
|
-
}
|
|
189
|
-
traversal.skip();
|
|
190
|
-
}
|
|
288
|
+
function removeAuxFieldsFromTypeAlias(typeAlias, source) {
|
|
289
|
+
// remove `delegate_aux_*` fields from the type alias
|
|
290
|
+
const auxDecls = findAuxDecls(typeAlias);
|
|
291
|
+
if (auxDecls.length > 0) {
|
|
292
|
+
auxDecls.forEach((d) => {
|
|
293
|
+
source = source.replace(d.getText(), '');
|
|
294
|
+
});
|
|
191
295
|
}
|
|
296
|
+
return source;
|
|
297
|
+
}
|
|
298
|
+
function findNamedProperty(typeAlias, name) {
|
|
299
|
+
return typeAlias.getFirstDescendant((d) => d.isKind(ts_morph_1.SyntaxKind.PropertySignature) && d.getName() === name);
|
|
300
|
+
}
|
|
301
|
+
function findAuxDecls(node) {
|
|
302
|
+
return node
|
|
303
|
+
.getDescendantsOfKind(ts_morph_1.SyntaxKind.PropertySignature)
|
|
304
|
+
.filter((n) => n.getName().startsWith(runtime_1.DELEGATE_AUX_RELATION_PREFIX));
|
|
192
305
|
}
|
|
193
306
|
function getDiscriminatorField(delegate) {
|
|
194
307
|
var _a;
|
|
@@ -199,4 +312,25 @@ function getDiscriminatorField(delegate) {
|
|
|
199
312
|
const arg = (_a = delegateAttr.args[0]) === null || _a === void 0 ? void 0 : _a.value;
|
|
200
313
|
return (0, ast_1.isReferenceExpr)(arg) ? arg.target.ref : undefined;
|
|
201
314
|
}
|
|
315
|
+
function getDiscriminatorFieldsRecursively(delegate, result = []) {
|
|
316
|
+
if ((0, sdk_1.isDelegateModel)(delegate)) {
|
|
317
|
+
const discriminator = getDiscriminatorField(delegate);
|
|
318
|
+
if (discriminator) {
|
|
319
|
+
result.push(discriminator);
|
|
320
|
+
}
|
|
321
|
+
for (const superType of delegate.superTypes) {
|
|
322
|
+
if (superType.ref) {
|
|
323
|
+
result.push(...getDiscriminatorFieldsRecursively(superType.ref, result));
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
return result;
|
|
328
|
+
}
|
|
329
|
+
function saveSourceFile(sf, options) {
|
|
330
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
331
|
+
if (options.preserveTsFiles) {
|
|
332
|
+
yield sf.save();
|
|
333
|
+
}
|
|
334
|
+
});
|
|
335
|
+
}
|
|
202
336
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/enhancer/enhance/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/enhancer/enhance/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isDefaultWithAuth = void 0;
|
|
4
|
+
const sdk_1 = require("@zenstackhq/sdk");
|
|
5
|
+
const langium_1 = require("langium");
|
|
6
|
+
/**
|
|
7
|
+
* Check if the given field attribute is a `@default` with `auth()` invocation
|
|
8
|
+
*/
|
|
9
|
+
function isDefaultWithAuth(attr) {
|
|
10
|
+
var _a, _b;
|
|
11
|
+
if (((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name) !== '@default') {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
const expr = (_b = attr.args[0]) === null || _b === void 0 ? void 0 : _b.value;
|
|
15
|
+
if (!expr) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
// find `auth()` in default value expression
|
|
19
|
+
return (0, langium_1.streamAst)(expr).some(sdk_1.isAuthInvocation);
|
|
20
|
+
}
|
|
21
|
+
exports.isDefaultWithAuth = isDefaultWithAuth;
|
|
22
|
+
//# sourceMappingURL=enhancer-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enhancer-utils.js","sourceRoot":"","sources":["../../../src/plugins/enhancer/enhancer-utils.ts"],"names":[],"mappings":";;;AAAA,yCAAmD;AAEnD,qCAAoC;AAEpC;;GAEG;AACH,SAAgB,iBAAiB,CAAC,IAA6B;;IAC3D,IAAI,CAAA,MAAA,IAAI,CAAC,IAAI,CAAC,GAAG,0CAAE,IAAI,MAAK,UAAU,EAAE,CAAC;QACrC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,0CAAE,KAAK,CAAC;IACjC,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,4CAA4C;IAC5C,OAAO,IAAA,mBAAS,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC,sBAAgB,CAAC,CAAC;AAClD,CAAC;AAZD,8CAYC"}
|
|
@@ -8,9 +8,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
15
|
exports.description = exports.name = void 0;
|
|
13
16
|
const sdk_1 = require("@zenstackhq/sdk");
|
|
17
|
+
const path_1 = __importDefault(require("path"));
|
|
14
18
|
const plugin_utils_1 = require("../plugin-utils");
|
|
15
19
|
const enhance_1 = require("./enhance");
|
|
16
20
|
const model_meta_1 = require("./model-meta");
|
|
@@ -18,30 +22,30 @@ const policy_1 = require("./policy");
|
|
|
18
22
|
exports.name = 'Prisma Enhancer';
|
|
19
23
|
exports.description = 'Generating PrismaClient enhancer';
|
|
20
24
|
const run = (model, options, _dmmf, globalOptions) => __awaiter(void 0, void 0, void 0, function* () {
|
|
21
|
-
|
|
22
|
-
|
|
25
|
+
var _a;
|
|
26
|
+
let outDir = options.output ? options.output : (0, plugin_utils_1.getDefaultOutputFolder)(globalOptions);
|
|
27
|
+
if (!outDir) {
|
|
23
28
|
throw new sdk_1.PluginError(exports.name, `Unable to determine output path, not running plugin`);
|
|
24
29
|
}
|
|
25
|
-
|
|
26
|
-
const project = (0, sdk_1.createProject)();
|
|
27
|
-
yield (0, model_meta_1.generate)(model, options, project,
|
|
28
|
-
yield (0, policy_1.generate)(model, options, project,
|
|
29
|
-
yield (0, enhance_1.generate)(model, options, project,
|
|
30
|
-
let
|
|
31
|
-
if (
|
|
32
|
-
//
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
if (shouldCompile) {
|
|
43
|
-
yield (0, sdk_1.emitProject)(project);
|
|
30
|
+
outDir = (0, sdk_1.resolvePath)(outDir, options);
|
|
31
|
+
const project = (_a = globalOptions === null || globalOptions === void 0 ? void 0 : globalOptions.tsProject) !== null && _a !== void 0 ? _a : (0, sdk_1.createProject)();
|
|
32
|
+
yield (0, model_meta_1.generate)(model, options, project, outDir);
|
|
33
|
+
yield (0, policy_1.generate)(model, options, project, outDir);
|
|
34
|
+
const { dmmf } = yield (0, enhance_1.generate)(model, options, project, outDir);
|
|
35
|
+
let prismaClientPath;
|
|
36
|
+
if (dmmf) {
|
|
37
|
+
// a logical client is generated
|
|
38
|
+
if (typeof options.output === 'string') {
|
|
39
|
+
// get the absolute path of the logical prisma client
|
|
40
|
+
const prismaClientPathAbs = path_1.default.resolve(options.output, 'prisma');
|
|
41
|
+
// resolve it relative to the schema path
|
|
42
|
+
prismaClientPath = path_1.default.relative(path_1.default.dirname(options.schemaPath), prismaClientPathAbs);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
prismaClientPath = `${sdk_1.RUNTIME_PACKAGE}/prisma`;
|
|
46
|
+
}
|
|
44
47
|
}
|
|
48
|
+
return { dmmf, warnings: [], prismaClientPath };
|
|
45
49
|
});
|
|
46
50
|
exports.default = run;
|
|
47
51
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/enhancer/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/enhancer/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yCAAgH;AAChH,gDAAwB;AACxB,kDAAyD;AACzD,uCAAyD;AACzD,6CAA6D;AAC7D,qCAAsD;AAEzC,QAAA,IAAI,GAAG,iBAAiB,CAAC;AACzB,QAAA,WAAW,GAAG,kCAAkC,CAAC;AAE9D,MAAM,GAAG,GAAmB,CAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE;;IACvE,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAE,OAAO,CAAC,MAAiB,CAAC,CAAC,CAAC,IAAA,qCAAsB,EAAC,aAAa,CAAC,CAAC;IACjG,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,IAAI,iBAAW,CAAC,YAAI,EAAE,qDAAqD,CAAC,CAAC;IACvF,CAAC;IACD,MAAM,GAAG,IAAA,iBAAW,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEtC,MAAM,OAAO,GAAG,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,SAAS,mCAAI,IAAA,mBAAa,GAAE,CAAC;IAE5D,MAAM,IAAA,qBAAiB,EAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACzD,MAAM,IAAA,iBAAc,EAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACtD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAA,kBAAgB,EAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAEzE,IAAI,gBAAoC,CAAC;IACzC,IAAI,IAAI,EAAE,CAAC;QACP,gCAAgC;QAChC,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACrC,qDAAqD;YACrD,MAAM,mBAAmB,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAEnE,yCAAyC;YACzC,gBAAgB,GAAG,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC,CAAC;QAC5F,CAAC;aAAM,CAAC;YACJ,gBAAgB,GAAG,GAAG,qBAAe,SAAS,CAAC;QACnD,CAAC;IACL,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,gBAAgB,EAAE,CAAC;AACpD,CAAC,CAAA,CAAC;AAEF,kBAAe,GAAG,CAAC"}
|