zenstack 1.0.16 → 1.1.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/README.md +93 -24
- package/bin/post-install.js +1 -1
- package/cli/actions/generate.d.ts +13 -0
- package/cli/actions/generate.js +71 -0
- package/cli/actions/generate.js.map +1 -0
- package/cli/actions/index.d.ts +3 -0
- package/cli/actions/index.js +20 -0
- package/cli/actions/index.js.map +1 -0
- package/cli/actions/info.d.ts +4 -0
- package/cli/actions/info.js +63 -0
- package/cli/actions/info.js.map +1 -0
- package/cli/actions/init.d.ts +12 -0
- package/cli/actions/init.js +83 -0
- package/cli/actions/init.js.map +1 -0
- package/cli/cli-util.d.ts +14 -11
- package/cli/cli-util.js +150 -82
- package/cli/cli-util.js.map +1 -1
- package/cli/config.d.ts +10 -0
- package/cli/config.js +62 -0
- package/cli/config.js.map +1 -0
- package/cli/index.d.ts +4 -12
- package/cli/index.js +36 -29
- package/cli/index.js.map +1 -1
- package/cli/plugin-runner.d.ts +13 -3
- package/cli/plugin-runner.js +165 -59
- package/cli/plugin-runner.js.map +1 -1
- package/constants.js +1 -1
- package/language-server/constants.d.ts +7 -0
- package/language-server/constants.js +8 -1
- package/language-server/constants.js.map +1 -1
- package/language-server/utils.d.ts +1 -14
- package/language-server/utils.js +2 -38
- package/language-server/utils.js.map +1 -1
- package/language-server/validator/attribute-application-validator.d.ts +15 -0
- package/language-server/validator/attribute-application-validator.js +246 -0
- package/language-server/validator/attribute-application-validator.js.map +1 -0
- package/language-server/validator/attribute-validator.d.ts +1 -1
- package/language-server/validator/attribute-validator.js +4 -1
- package/language-server/validator/attribute-validator.js.map +1 -1
- package/language-server/validator/datamodel-validator.d.ts +7 -0
- package/language-server/validator/datamodel-validator.js +84 -33
- package/language-server/validator/datamodel-validator.js.map +1 -1
- package/language-server/validator/enum-validator.js +3 -6
- package/language-server/validator/enum-validator.js.map +1 -1
- package/language-server/validator/expression-validator.d.ts +1 -1
- package/language-server/validator/expression-validator.js +108 -3
- package/language-server/validator/expression-validator.js.map +1 -1
- package/language-server/validator/function-decl-validator.d.ts +9 -0
- package/language-server/validator/function-decl-validator.js +13 -0
- package/language-server/validator/function-decl-validator.js.map +1 -0
- package/language-server/validator/function-invocation-validator.d.ts +11 -0
- package/language-server/validator/function-invocation-validator.js +135 -0
- package/language-server/validator/function-invocation-validator.js.map +1 -0
- package/language-server/validator/schema-validator.d.ts +4 -1
- package/language-server/validator/schema-validator.js +28 -7
- package/language-server/validator/schema-validator.js.map +1 -1
- package/language-server/validator/utils.d.ts +3 -4
- package/language-server/validator/utils.js +20 -123
- package/language-server/validator/utils.js.map +1 -1
- package/language-server/validator/zmodel-validator.d.ts +5 -1
- package/language-server/validator/zmodel-validator.js +18 -4
- package/language-server/validator/zmodel-validator.js.map +1 -1
- package/language-server/zmodel-code-action.d.ts +2 -1
- package/language-server/zmodel-code-action.js +46 -21
- package/language-server/zmodel-code-action.js.map +1 -1
- package/language-server/zmodel-definition.d.ts +7 -0
- package/language-server/zmodel-definition.js +31 -0
- package/language-server/zmodel-definition.js.map +1 -0
- package/language-server/zmodel-formatter.js +2 -2
- package/language-server/zmodel-formatter.js.map +1 -1
- package/language-server/zmodel-linker.d.ts +3 -0
- package/language-server/zmodel-linker.js +122 -41
- package/language-server/zmodel-linker.js.map +1 -1
- package/language-server/zmodel-module.js +4 -1
- package/language-server/zmodel-module.js.map +1 -1
- package/language-server/zmodel-scope.d.ts +7 -1
- package/language-server/zmodel-scope.js +57 -1
- package/language-server/zmodel-scope.js.map +1 -1
- package/language-server/zmodel-workspace-manager.d.ts +5 -1
- package/language-server/zmodel-workspace-manager.js +101 -0
- package/language-server/zmodel-workspace-manager.js.map +1 -1
- package/package.json +27 -20
- package/plugins/access-policy/expression-writer.d.ts +7 -0
- package/plugins/access-policy/expression-writer.js +325 -106
- package/plugins/access-policy/expression-writer.js.map +1 -1
- package/plugins/access-policy/index.d.ts +3 -3
- package/plugins/access-policy/index.js +3 -5
- package/plugins/access-policy/index.js.map +1 -1
- package/plugins/access-policy/policy-guard-generator.d.ts +10 -3
- package/plugins/access-policy/policy-guard-generator.js +406 -121
- package/plugins/access-policy/policy-guard-generator.js.map +1 -1
- package/plugins/model-meta/index.d.ts +3 -3
- package/plugins/model-meta/index.js +110 -46
- package/plugins/model-meta/index.js.map +1 -1
- package/plugins/plugin-utils.d.ts +8 -7
- package/plugins/plugin-utils.js +55 -21
- package/plugins/plugin-utils.js.map +1 -1
- package/plugins/prisma/index.d.ts +3 -3
- package/plugins/prisma/index.js +3 -5
- package/plugins/prisma/index.js.map +1 -1
- package/plugins/prisma/prisma-builder.d.ts +7 -14
- package/plugins/prisma/prisma-builder.js +29 -34
- package/plugins/prisma/prisma-builder.js.map +1 -1
- package/plugins/prisma/schema-generator.d.ts +7 -3
- package/plugins/prisma/schema-generator.js +146 -102
- package/plugins/prisma/schema-generator.js.map +1 -1
- package/plugins/prisma/zmodel-code-generator.d.ts +3 -1
- package/plugins/prisma/zmodel-code-generator.js +12 -2
- package/plugins/prisma/zmodel-code-generator.js.map +1 -1
- package/plugins/zod/generator.d.ts +4 -0
- package/plugins/zod/generator.js +298 -0
- package/plugins/zod/generator.js.map +1 -0
- package/plugins/zod/index.d.ts +4 -0
- package/plugins/zod/index.js +24 -0
- package/plugins/zod/index.js.map +1 -0
- package/plugins/zod/transformer.d.ts +68 -0
- package/plugins/zod/transformer.js +554 -0
- package/plugins/zod/transformer.js.map +1 -0
- package/plugins/zod/types.d.ts +25 -0
- package/plugins/zod/types.js.map +1 -0
- package/plugins/zod/utils/removeDir.d.ts +1 -0
- package/plugins/zod/utils/removeDir.js +30 -0
- package/plugins/zod/utils/removeDir.js.map +1 -0
- package/plugins/zod/utils/schema-gen.d.ts +3 -0
- package/plugins/zod/utils/schema-gen.js +188 -0
- package/plugins/zod/utils/schema-gen.js.map +1 -0
- package/res/starter.zmodel +6 -8
- package/res/stdlib.zmodel +238 -74
- package/telemetry.d.ts +2 -1
- package/telemetry.js +21 -11
- package/telemetry.js.map +1 -1
- package/utils/ast-utils.d.ts +12 -15
- package/utils/ast-utils.js +117 -66
- package/utils/ast-utils.js.map +1 -1
- package/utils/pkg-utils.d.ts +2 -2
- package/utils/pkg-utils.js +34 -16
- package/utils/pkg-utils.js.map +1 -1
- package/utils/typescript-expression-transformer.d.ts +54 -0
- package/utils/typescript-expression-transformer.js +326 -0
- package/utils/typescript-expression-transformer.js.map +1 -0
- package/utils/version-utils.js +7 -1
- package/utils/version-utils.js.map +1 -1
- package/plugins/access-policy/typescript-expression-transformer.d.ts +0 -26
- package/plugins/access-policy/typescript-expression-transformer.js +0 -111
- package/plugins/access-policy/typescript-expression-transformer.js.map +0 -1
- package/plugins/access-policy/utils.d.ts +0 -5
- package/plugins/access-policy/utils.js +0 -14
- package/plugins/access-policy/utils.js.map +0 -1
- package/plugins/access-policy/zod-schema-generator.d.ts +0 -12
- package/plugins/access-policy/zod-schema-generator.js +0 -158
- package/plugins/access-policy/zod-schema-generator.js.map +0 -1
- package/types.d.ts +0 -12
- package/types.js.map +0 -1
- /package/{types.js → plugins/zod/types.js} +0 -0
package/cli/plugin-runner.js
CHANGED
|
@@ -13,111 +13,217 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.PluginRunner = void 0;
|
|
16
|
-
const internals_1 = require("@prisma/internals");
|
|
17
16
|
const ast_1 = require("@zenstackhq/language/ast");
|
|
18
17
|
const sdk_1 = require("@zenstackhq/sdk");
|
|
19
18
|
const colors_1 = __importDefault(require("colors"));
|
|
20
19
|
const fs_1 = __importDefault(require("fs"));
|
|
21
20
|
const ora_1 = __importDefault(require("ora"));
|
|
22
21
|
const path_1 = __importDefault(require("path"));
|
|
22
|
+
const plugin_utils_1 = require("../plugins/plugin-utils");
|
|
23
23
|
const telemetry_1 = __importDefault(require("../telemetry"));
|
|
24
|
-
const
|
|
24
|
+
const version_utils_1 = require("../utils/version-utils");
|
|
25
25
|
/**
|
|
26
|
-
* ZenStack
|
|
26
|
+
* ZenStack plugin runner
|
|
27
27
|
*/
|
|
28
28
|
class PluginRunner {
|
|
29
29
|
/**
|
|
30
30
|
* Runs a series of nested generators
|
|
31
31
|
*/
|
|
32
|
-
run(
|
|
32
|
+
run(options) {
|
|
33
33
|
return __awaiter(this, void 0, void 0, function* () {
|
|
34
|
-
const version =
|
|
34
|
+
const version = (0, version_utils_1.getVersion)();
|
|
35
35
|
console.log(colors_1.default.bold(`⌛️ ZenStack CLI v${version}, running plugins`));
|
|
36
|
+
(0, plugin_utils_1.ensureDefaultOutputFolder)(options);
|
|
36
37
|
const plugins = [];
|
|
37
|
-
const pluginDecls =
|
|
38
|
-
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
throw new
|
|
67
|
-
}
|
|
68
|
-
plugins.push({
|
|
69
|
-
name: this.getPluginName(pluginModule, pluginProvider),
|
|
70
|
-
provider: pluginProvider,
|
|
71
|
-
run: pluginModule.default,
|
|
72
|
-
options,
|
|
73
|
-
});
|
|
74
|
-
if (pluginProvider === '@zenstack/prisma' && options.output) {
|
|
75
|
-
// record custom prisma output path
|
|
76
|
-
prismaOutput = options.output;
|
|
38
|
+
const pluginDecls = options.schema.declarations.filter((d) => (0, ast_1.isPlugin)(d));
|
|
39
|
+
let prismaOutput = (0, sdk_1.resolvePath)('./prisma/schema.prisma', { schemaPath: options.schemaPath, name: '' });
|
|
40
|
+
for (const pluginDecl of pluginDecls) {
|
|
41
|
+
const pluginProvider = this.getPluginProvider(pluginDecl);
|
|
42
|
+
if (!pluginProvider) {
|
|
43
|
+
console.error(`Plugin ${pluginDecl.name} has invalid provider option`);
|
|
44
|
+
throw new sdk_1.PluginError('', `Plugin ${pluginDecl.name} has invalid provider option`);
|
|
45
|
+
}
|
|
46
|
+
const pluginModulePath = this.getPluginModulePath(pluginProvider);
|
|
47
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
48
|
+
let pluginModule;
|
|
49
|
+
try {
|
|
50
|
+
pluginModule = require(pluginModulePath);
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
console.error(`Unable to load plugin module ${pluginProvider}: ${pluginModulePath}, ${err}`);
|
|
54
|
+
throw new sdk_1.PluginError('', `Unable to load plugin module ${pluginProvider}`);
|
|
55
|
+
}
|
|
56
|
+
if (!pluginModule.default || typeof pluginModule.default !== 'function') {
|
|
57
|
+
console.error(`Plugin provider ${pluginProvider} is missing a default function export`);
|
|
58
|
+
throw new sdk_1.PluginError('', `Plugin provider ${pluginProvider} is missing a default function export`);
|
|
59
|
+
}
|
|
60
|
+
const dependencies = this.getPluginDependencies(pluginModule);
|
|
61
|
+
const pluginName = this.getPluginName(pluginModule, pluginProvider);
|
|
62
|
+
const pluginOptions = { schemaPath: options.schemaPath, name: pluginName };
|
|
63
|
+
pluginDecl.fields.forEach((f) => {
|
|
64
|
+
var _a;
|
|
65
|
+
const value = (_a = (0, sdk_1.getLiteral)(f.value)) !== null && _a !== void 0 ? _a : (0, sdk_1.getLiteralArray)(f.value);
|
|
66
|
+
if (value === undefined) {
|
|
67
|
+
throw new sdk_1.PluginError(pluginName, `Invalid option value for ${f.name}`);
|
|
77
68
|
}
|
|
69
|
+
pluginOptions[f.name] = value;
|
|
70
|
+
});
|
|
71
|
+
plugins.push({
|
|
72
|
+
name: pluginName,
|
|
73
|
+
provider: pluginProvider,
|
|
74
|
+
dependencies,
|
|
75
|
+
options: pluginOptions,
|
|
76
|
+
run: pluginModule.default,
|
|
77
|
+
module: pluginModule,
|
|
78
|
+
});
|
|
79
|
+
if (pluginProvider === '@core/prisma' && typeof pluginOptions.output === 'string') {
|
|
80
|
+
// record custom prisma output path
|
|
81
|
+
prismaOutput = (0, sdk_1.resolvePath)(pluginOptions.output, pluginOptions);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// get core plugins that need to be enabled
|
|
85
|
+
const corePlugins = this.calculateCorePlugins(options, plugins);
|
|
86
|
+
// shift/insert core plugins to the front
|
|
87
|
+
for (const corePlugin of corePlugins.reverse()) {
|
|
88
|
+
const existingIdx = plugins.findIndex((p) => p.provider === corePlugin.provider);
|
|
89
|
+
if (existingIdx >= 0) {
|
|
90
|
+
// shift the plugin to the front
|
|
91
|
+
const existing = plugins[existingIdx];
|
|
92
|
+
plugins.splice(existingIdx, 1);
|
|
93
|
+
plugins.unshift(existing);
|
|
78
94
|
}
|
|
79
95
|
else {
|
|
80
|
-
// synthesize a plugin
|
|
81
|
-
const pluginModule = require(this.getPluginModulePath(
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
96
|
+
// synthesize a plugin and insert front
|
|
97
|
+
const pluginModule = require(this.getPluginModulePath(corePlugin.provider));
|
|
98
|
+
const pluginName = this.getPluginName(pluginModule, corePlugin.provider);
|
|
99
|
+
plugins.unshift({
|
|
100
|
+
name: pluginName,
|
|
101
|
+
provider: corePlugin.provider,
|
|
102
|
+
dependencies: [],
|
|
103
|
+
options: Object.assign({ schemaPath: options.schemaPath, name: pluginName }, corePlugin.options),
|
|
85
104
|
run: pluginModule.default,
|
|
86
|
-
|
|
105
|
+
module: pluginModule,
|
|
87
106
|
});
|
|
88
107
|
}
|
|
89
108
|
}
|
|
109
|
+
// check dependencies
|
|
110
|
+
for (const plugin of plugins) {
|
|
111
|
+
for (const dep of plugin.dependencies) {
|
|
112
|
+
if (!plugins.find((p) => p.provider === dep)) {
|
|
113
|
+
console.error(`Plugin ${plugin.provider} depends on "${dep}" but it's not declared`);
|
|
114
|
+
throw new sdk_1.PluginError(plugin.name, `Plugin ${plugin.provider} depends on "${dep}" but it's not declared`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
if (plugins.length === 0) {
|
|
119
|
+
console.log(colors_1.default.yellow('No plugins configured.'));
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
90
122
|
const warnings = [];
|
|
91
123
|
let dmmf = undefined;
|
|
92
|
-
for (const { name, provider, run, options } of plugins) {
|
|
93
|
-
|
|
94
|
-
|
|
124
|
+
for (const { name, provider, run, options: pluginOptions } of plugins) {
|
|
125
|
+
// const start = Date.now();
|
|
126
|
+
yield this.runPlugin(name, run, options, pluginOptions, dmmf, warnings);
|
|
127
|
+
// console.log(`✅ Plugin ${colors.bold(name)} (${provider}) completed in ${Date.now() - start}ms`);
|
|
128
|
+
if (provider === '@core/prisma') {
|
|
95
129
|
// load prisma DMMF
|
|
96
|
-
dmmf = yield (0,
|
|
130
|
+
dmmf = yield (0, sdk_1.getDMMF)({
|
|
97
131
|
datamodel: fs_1.default.readFileSync(prismaOutput, { encoding: 'utf-8' }),
|
|
98
132
|
});
|
|
99
133
|
}
|
|
100
134
|
}
|
|
101
135
|
console.log(colors_1.default.green(colors_1.default.bold('\n👻 All plugins completed successfully!')));
|
|
102
136
|
warnings.forEach((w) => console.warn(colors_1.default.yellow(w)));
|
|
137
|
+
console.log(`Don't forget to restart your dev server to let the changes take effect.`);
|
|
103
138
|
});
|
|
104
139
|
}
|
|
140
|
+
calculateCorePlugins(options, plugins) {
|
|
141
|
+
const corePlugins = [];
|
|
142
|
+
if (options.defaultPlugins) {
|
|
143
|
+
corePlugins.push({ provider: '@core/prisma' }, { provider: '@core/model-meta' }, { provider: '@core/access-policy' });
|
|
144
|
+
}
|
|
145
|
+
else if (plugins.length > 0) {
|
|
146
|
+
// "@core/prisma" plugin is always enabled if any plugin is configured
|
|
147
|
+
corePlugins.push({ provider: '@core/prisma' });
|
|
148
|
+
}
|
|
149
|
+
// "@core/access-policy" has implicit requirements
|
|
150
|
+
let zodImplicitlyAdded = false;
|
|
151
|
+
if ([...plugins, ...corePlugins].find((p) => p.provider === '@core/access-policy')) {
|
|
152
|
+
// make sure "@core/model-meta" is enabled
|
|
153
|
+
if (!corePlugins.find((p) => p.provider === '@core/model-meta')) {
|
|
154
|
+
corePlugins.push({ provider: '@core/model-meta' });
|
|
155
|
+
}
|
|
156
|
+
// '@core/zod' plugin is auto-enabled by "@core/access-policy"
|
|
157
|
+
// if there're validation rules
|
|
158
|
+
if (!corePlugins.find((p) => p.provider === '@core/zod') && this.hasValidation(options.schema)) {
|
|
159
|
+
zodImplicitlyAdded = true;
|
|
160
|
+
corePlugins.push({ provider: '@core/zod', options: { modelOnly: true } });
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
// core plugins introduced by dependencies
|
|
164
|
+
plugins.forEach((plugin) => {
|
|
165
|
+
// TODO: generalize this
|
|
166
|
+
const isTrpcPlugin = plugin.provider === '@zenstackhq/trpc' ||
|
|
167
|
+
// for testing
|
|
168
|
+
(process.env.ZENSTACK_TEST && plugin.provider.includes('trpc'));
|
|
169
|
+
for (const dep of plugin.dependencies) {
|
|
170
|
+
if (dep.startsWith('@core/')) {
|
|
171
|
+
const existing = corePlugins.find((p) => p.provider === dep);
|
|
172
|
+
if (existing) {
|
|
173
|
+
// TODO: generalize this
|
|
174
|
+
if (existing.provider === '@core/zod') {
|
|
175
|
+
// Zod plugin can be automatically enabled in `modelOnly` mode, however
|
|
176
|
+
// other plugin (tRPC) for now requires it to run in full mode
|
|
177
|
+
existing.options = {};
|
|
178
|
+
if (isTrpcPlugin &&
|
|
179
|
+
zodImplicitlyAdded // don't do it for user defined zod plugin
|
|
180
|
+
) {
|
|
181
|
+
// pass trpc plugin's `generateModels` option down to zod plugin
|
|
182
|
+
existing.options.generateModels = plugin.options.generateModels;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
// add core dependency
|
|
188
|
+
const toAdd = { provider: dep, options: {} };
|
|
189
|
+
// TODO: generalize this
|
|
190
|
+
if (dep === '@core/zod' && isTrpcPlugin) {
|
|
191
|
+
// pass trpc plugin's `generateModels` option down to zod plugin
|
|
192
|
+
toAdd.options.generateModels = plugin.options.generateModels;
|
|
193
|
+
}
|
|
194
|
+
corePlugins.push(toAdd);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
return corePlugins;
|
|
200
|
+
}
|
|
201
|
+
hasValidation(schema) {
|
|
202
|
+
return (0, sdk_1.getDataModels)(schema).some((model) => (0, sdk_1.hasValidationAttributes)(model));
|
|
203
|
+
}
|
|
105
204
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
106
205
|
getPluginName(pluginModule, pluginProvider) {
|
|
107
206
|
return typeof pluginModule.name === 'string' ? pluginModule.name : pluginProvider;
|
|
108
207
|
}
|
|
208
|
+
getPluginDependencies(pluginModule) {
|
|
209
|
+
return Array.isArray(pluginModule.dependencies) ? pluginModule.dependencies : [];
|
|
210
|
+
}
|
|
109
211
|
getPluginProvider(plugin) {
|
|
110
212
|
const providerField = plugin.fields.find((f) => f.name === 'provider');
|
|
111
213
|
return (0, sdk_1.getLiteral)(providerField === null || providerField === void 0 ? void 0 : providerField.value);
|
|
112
214
|
}
|
|
113
|
-
runPlugin(name, run,
|
|
215
|
+
runPlugin(name, run, runnerOptions, options, dmmf, warnings) {
|
|
114
216
|
return __awaiter(this, void 0, void 0, function* () {
|
|
115
217
|
const spinner = (0, ora_1.default)(`Running plugin ${colors_1.default.cyan(name)}`).start();
|
|
116
218
|
try {
|
|
117
219
|
yield telemetry_1.default.trackSpan('cli:plugin:start', 'cli:plugin:complete', 'cli:plugin:error', {
|
|
118
220
|
plugin: name,
|
|
221
|
+
options,
|
|
119
222
|
}, () => __awaiter(this, void 0, void 0, function* () {
|
|
120
|
-
let result = run(
|
|
223
|
+
let result = run(runnerOptions.schema, options, dmmf, {
|
|
224
|
+
output: runnerOptions.output,
|
|
225
|
+
compile: runnerOptions.compile,
|
|
226
|
+
});
|
|
121
227
|
if (result instanceof Promise) {
|
|
122
228
|
result = yield result;
|
|
123
229
|
}
|
|
@@ -135,8 +241,8 @@ class PluginRunner {
|
|
|
135
241
|
}
|
|
136
242
|
getPluginModulePath(provider) {
|
|
137
243
|
let pluginModulePath = provider;
|
|
138
|
-
if (pluginModulePath.startsWith('@
|
|
139
|
-
pluginModulePath = pluginModulePath.replace(/^@
|
|
244
|
+
if (pluginModulePath.startsWith('@core/')) {
|
|
245
|
+
pluginModulePath = pluginModulePath.replace(/^@core/, path_1.default.join(__dirname, '../plugins'));
|
|
140
246
|
}
|
|
141
247
|
return pluginModulePath;
|
|
142
248
|
}
|
package/cli/plugin-runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-runner.js","sourceRoot":"","sources":["../../src/cli/plugin-runner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"plugin-runner.js","sourceRoot":"","sources":["../../src/cli/plugin-runner.ts"],"names":[],"mappings":"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"}
|
package/constants.js
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TELEMETRY_TRACKING_TOKEN = void 0;
|
|
4
4
|
// replaced at build time
|
|
5
|
-
exports.TELEMETRY_TRACKING_TOKEN = '';
|
|
5
|
+
exports.TELEMETRY_TRACKING_TOKEN = '74944eb779d7d3b4ce185be843fde9fc';
|
|
6
6
|
//# sourceMappingURL=constants.js.map
|
|
@@ -10,6 +10,13 @@ export declare const SCALAR_TYPES: string[];
|
|
|
10
10
|
* Name of standard library module
|
|
11
11
|
*/
|
|
12
12
|
export declare const STD_LIB_MODULE_NAME = "stdlib.zmodel";
|
|
13
|
+
/**
|
|
14
|
+
* Name of module contributed by plugins
|
|
15
|
+
*/
|
|
16
|
+
export declare const PLUGIN_MODULE_NAME = "plugin.zmodel";
|
|
17
|
+
/**
|
|
18
|
+
* Validation issues
|
|
19
|
+
*/
|
|
13
20
|
export declare enum IssueCodes {
|
|
14
21
|
MissingOppositeRelation = "miss-opposite-relation"
|
|
15
22
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.IssueCodes = exports.STD_LIB_MODULE_NAME = exports.SCALAR_TYPES = exports.SUPPORTED_PROVIDERS = void 0;
|
|
3
|
+
exports.IssueCodes = exports.PLUGIN_MODULE_NAME = exports.STD_LIB_MODULE_NAME = exports.SCALAR_TYPES = exports.SUPPORTED_PROVIDERS = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Supported Prisma db providers
|
|
6
6
|
*/
|
|
@@ -13,6 +13,13 @@ exports.SCALAR_TYPES = ['String', 'Int', 'Float', 'Decimal', 'BigInt', 'Boolean'
|
|
|
13
13
|
* Name of standard library module
|
|
14
14
|
*/
|
|
15
15
|
exports.STD_LIB_MODULE_NAME = 'stdlib.zmodel';
|
|
16
|
+
/**
|
|
17
|
+
* Name of module contributed by plugins
|
|
18
|
+
*/
|
|
19
|
+
exports.PLUGIN_MODULE_NAME = 'plugin.zmodel';
|
|
20
|
+
/**
|
|
21
|
+
* Validation issues
|
|
22
|
+
*/
|
|
16
23
|
var IssueCodes;
|
|
17
24
|
(function (IssueCodes) {
|
|
18
25
|
IssueCodes["MissingOppositeRelation"] = "miss-opposite-relation";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/language-server/constants.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,mBAAmB,GAAG,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;AAEjG;;GAEG;AACU,QAAA,YAAY,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AAE5G;;GAEG;AACU,QAAA,mBAAmB,GAAG,eAAe,CAAC;AAEnD,IAAY,UAEX;AAFD,WAAY,UAAU;IAClB,gEAAkD,CAAA;AACtD,CAAC,EAFW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAErB"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/language-server/constants.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,mBAAmB,GAAG,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;AAEjG;;GAEG;AACU,QAAA,YAAY,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AAE5G;;GAEG;AACU,QAAA,mBAAmB,GAAG,eAAe,CAAC;AAEnD;;GAEG;AACU,QAAA,kBAAkB,GAAG,eAAe,CAAC;AAElD;;GAEG;AACH,IAAY,UAEX;AAFD,WAAY,UAAU;IAClB,gEAAkD,CAAA;AACtD,CAAC,EAFW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAErB"}
|
|
@@ -1,17 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { DataModel, DataModelField, Model } from '@zenstackhq/language/ast';
|
|
3
|
-
/**
|
|
4
|
-
* Gets the toplevel Model containing the given node.
|
|
5
|
-
*/
|
|
6
|
-
export declare function getContainingModel(node: AstNode | undefined): Model | null;
|
|
7
|
-
/**
|
|
8
|
-
* Returns if the given node is declared in stdlib.
|
|
9
|
-
*/
|
|
10
|
-
export declare function isFromStdlib(node: AstNode): boolean;
|
|
11
|
-
/**
|
|
12
|
-
* Gets id fields declared at the data model level
|
|
13
|
-
*/
|
|
14
|
-
export declare function getIdFields(model: DataModel): DataModelField[];
|
|
1
|
+
import { DataModel, DataModelField } from '@zenstackhq/language/ast';
|
|
15
2
|
/**
|
|
16
3
|
* Gets lists of unique fields declared at the data model level
|
|
17
4
|
*/
|
package/language-server/utils.js
CHANGED
|
@@ -1,49 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getUniqueFields =
|
|
4
|
-
const constants_1 = require("./constants");
|
|
3
|
+
exports.getUniqueFields = void 0;
|
|
5
4
|
const ast_1 = require("@zenstackhq/language/ast");
|
|
6
5
|
const sdk_1 = require("@zenstackhq/sdk");
|
|
7
|
-
/**
|
|
8
|
-
* Gets the toplevel Model containing the given node.
|
|
9
|
-
*/
|
|
10
|
-
function getContainingModel(node) {
|
|
11
|
-
if (!node) {
|
|
12
|
-
return null;
|
|
13
|
-
}
|
|
14
|
-
return (0, ast_1.isModel)(node) ? node : getContainingModel(node.$container);
|
|
15
|
-
}
|
|
16
|
-
exports.getContainingModel = getContainingModel;
|
|
17
|
-
/**
|
|
18
|
-
* Returns if the given node is declared in stdlib.
|
|
19
|
-
*/
|
|
20
|
-
function isFromStdlib(node) {
|
|
21
|
-
const model = getContainingModel(node);
|
|
22
|
-
return !!model && !!model.$document && model.$document.uri.path.endsWith(constants_1.STD_LIB_MODULE_NAME);
|
|
23
|
-
}
|
|
24
|
-
exports.isFromStdlib = isFromStdlib;
|
|
25
|
-
/**
|
|
26
|
-
* Gets id fields declared at the data model level
|
|
27
|
-
*/
|
|
28
|
-
function getIdFields(model) {
|
|
29
|
-
const idAttr = model.attributes.find((attr) => { var _a; return ((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name) === '@@id'; });
|
|
30
|
-
if (!idAttr) {
|
|
31
|
-
return [];
|
|
32
|
-
}
|
|
33
|
-
const fieldsArg = idAttr.args.find((a) => { var _a; return ((_a = a.$resolvedParam) === null || _a === void 0 ? void 0 : _a.name) === 'fields'; });
|
|
34
|
-
if (!fieldsArg || !(0, ast_1.isArrayExpr)(fieldsArg.value)) {
|
|
35
|
-
return [];
|
|
36
|
-
}
|
|
37
|
-
return fieldsArg.value.items
|
|
38
|
-
.filter((item) => (0, ast_1.isReferenceExpr)(item))
|
|
39
|
-
.map((item) => (0, sdk_1.resolved)(item.target));
|
|
40
|
-
}
|
|
41
|
-
exports.getIdFields = getIdFields;
|
|
42
6
|
/**
|
|
43
7
|
* Gets lists of unique fields declared at the data model level
|
|
44
8
|
*/
|
|
45
9
|
function getUniqueFields(model) {
|
|
46
|
-
const uniqueAttrs = model.attributes.filter((attr) => { var _a; return ((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name) === '@@unique'; });
|
|
10
|
+
const uniqueAttrs = model.attributes.filter((attr) => { var _a, _b; return ((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name) === '@@unique' || ((_b = attr.decl.ref) === null || _b === void 0 ? void 0 : _b.name) === '@@id'; });
|
|
47
11
|
return uniqueAttrs.map((uniqueAttr) => {
|
|
48
12
|
const fieldsArg = uniqueAttr.args.find((a) => { var _a; return ((_a = a.$resolvedParam) === null || _a === void 0 ? void 0 : _a.name) === 'fields'; });
|
|
49
13
|
if (!fieldsArg || !(0, ast_1.isArrayExpr)(fieldsArg.value)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/language-server/utils.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/language-server/utils.ts"],"names":[],"mappings":";;;AAAA,kDAAkH;AAClH,yCAA2C;AAE3C;;GAEG;AACH,SAAgB,eAAe,CAAC,KAAgB;IAC5C,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CACvC,CAAC,IAAI,EAAE,EAAE,eAAC,OAAA,CAAA,MAAA,IAAI,CAAC,IAAI,CAAC,GAAG,0CAAE,IAAI,MAAK,UAAU,IAAI,CAAA,MAAA,IAAI,CAAC,IAAI,CAAC,GAAG,0CAAE,IAAI,MAAK,MAAM,CAAA,EAAA,CACjF,CAAC;IACF,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;QAClC,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,CAAC,CAAC,cAAc,0CAAE,IAAI,MAAK,QAAQ,CAAA,EAAA,CAAC,CAAC;QACnF,IAAI,CAAC,SAAS,IAAI,CAAC,IAAA,iBAAW,EAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAC7C,OAAO,EAAE,CAAC;SACb;QAED,OAAO,SAAS,CAAC,KAAK,CAAC,KAAK;aACvB,MAAM,CAAC,CAAC,IAAI,EAAyB,EAAE,CAAC,IAAA,qBAAe,EAAC,IAAI,CAAC,CAAC;aAC9D,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,cAAQ,EAAC,IAAI,CAAC,MAAM,CAAmB,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACP,CAAC;AAdD,0CAcC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { DataModelAttribute, DataModelFieldAttribute, InternalAttribute } from '@zenstackhq/language/ast';
|
|
2
|
+
import { ValidationAcceptor } from 'langium';
|
|
3
|
+
import { AstValidator } from '../types';
|
|
4
|
+
declare type AttributeApplication = DataModelAttribute | DataModelFieldAttribute | InternalAttribute;
|
|
5
|
+
/**
|
|
6
|
+
* Validates function declarations.
|
|
7
|
+
*/
|
|
8
|
+
export default class AttributeApplicationValidator implements AstValidator<AttributeApplication> {
|
|
9
|
+
validate(attr: AttributeApplication, accept: ValidationAcceptor): void;
|
|
10
|
+
private _checkModelLevelPolicy;
|
|
11
|
+
private _checkFieldLevelPolicy;
|
|
12
|
+
private validatePolicyKinds;
|
|
13
|
+
}
|
|
14
|
+
export declare function validateAttributeApplication(attr: AttributeApplication, accept: ValidationAcceptor): void;
|
|
15
|
+
export {};
|