zenstack 1.3.2 → 1.4.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/bin/post-install.js +8 -1
- package/cli/actions/format.d.ts +3 -0
- package/cli/actions/format.js +39 -0
- package/cli/actions/format.js.map +1 -0
- package/cli/actions/index.d.ts +1 -0
- package/cli/actions/index.js +1 -0
- package/cli/actions/index.js.map +1 -1
- package/cli/actions/repl.js +25 -6
- package/cli/actions/repl.js.map +1 -1
- package/cli/cli-util.d.ts +1 -0
- package/cli/cli-util.js +41 -10
- package/cli/cli-util.js.map +1 -1
- package/cli/index.d.ts +1 -0
- package/cli/index.js +10 -1
- package/cli/index.js.map +1 -1
- package/cli/plugin-runner.d.ts +1 -0
- package/cli/plugin-runner.js +18 -8
- package/cli/plugin-runner.js.map +1 -1
- package/language-server/validator/attribute-application-validator.js +9 -1
- package/language-server/validator/attribute-application-validator.js.map +1 -1
- package/language-server/validator/expression-validator.js +18 -3
- package/language-server/validator/expression-validator.js.map +1 -1
- package/language-server/zmodel-linker.js +5 -0
- package/language-server/zmodel-linker.js.map +1 -1
- package/language-server/zmodel-scope.d.ts +1 -0
- package/language-server/zmodel-scope.js +20 -12
- package/language-server/zmodel-scope.js.map +1 -1
- package/package.json +4 -4
- package/plugins/access-policy/policy-guard-generator.js +1 -1
- package/plugins/access-policy/policy-guard-generator.js.map +1 -1
- package/plugins/prisma/schema-generator.js +2 -2
- package/plugins/prisma/schema-generator.js.map +1 -1
- package/plugins/zod/generator.js +130 -14
- package/plugins/zod/generator.js.map +1 -1
- package/plugins/zod/utils/schema-gen.d.ts +1 -1
- package/plugins/zod/utils/schema-gen.js +18 -3
- package/plugins/zod/utils/schema-gen.js.map +1 -1
- package/telemetry.d.ts +6 -1
- package/telemetry.js +8 -2
- package/telemetry.js.map +1 -1
- package/utils/is-docker.d.ts +1 -0
- package/utils/is-docker.js +34 -0
- package/utils/is-docker.js.map +1 -0
package/bin/post-install.js
CHANGED
|
@@ -6,6 +6,7 @@ try {
|
|
|
6
6
|
const Mixpanel = require('mixpanel');
|
|
7
7
|
const machineId = require('node-machine-id');
|
|
8
8
|
const os = require('os');
|
|
9
|
+
const isDocker = require('../utils/is-docker').default;
|
|
9
10
|
|
|
10
11
|
const mixpanel = Mixpanel.init('74944eb779d7d3b4ce185be843fde9fc', {
|
|
11
12
|
geolocate: true,
|
|
@@ -16,7 +17,13 @@ try {
|
|
|
16
17
|
distinct_id: machineId.machineIdSync(),
|
|
17
18
|
nodeVersion: process.version,
|
|
18
19
|
time: new Date(),
|
|
19
|
-
$os: os.
|
|
20
|
+
$os: os.type(),
|
|
21
|
+
osType: os.type(),
|
|
22
|
+
osRelease: os.release(),
|
|
23
|
+
osPlatform: os.platform(),
|
|
24
|
+
osArch: os.arch(),
|
|
25
|
+
osVersion: os.version(),
|
|
26
|
+
isDocker: isDocker(),
|
|
20
27
|
version,
|
|
21
28
|
};
|
|
22
29
|
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.format = void 0;
|
|
16
|
+
const runtime_1 = require("@zenstackhq/runtime");
|
|
17
|
+
const cli_util_1 = require("../cli-util");
|
|
18
|
+
const colors_1 = __importDefault(require("colors"));
|
|
19
|
+
const ora_1 = __importDefault(require("ora"));
|
|
20
|
+
const promises_1 = require("fs/promises");
|
|
21
|
+
function format(projectPath, options) {
|
|
22
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
const version = (0, runtime_1.getVersion)();
|
|
24
|
+
console.log(colors_1.default.bold(`⌛️ ZenStack CLI v${version}`));
|
|
25
|
+
const schemaFile = options.schema;
|
|
26
|
+
const spinner = (0, ora_1.default)(`Formatting ${schemaFile}`).start();
|
|
27
|
+
try {
|
|
28
|
+
const formattedDoc = yield (0, cli_util_1.formatDocument)(schemaFile);
|
|
29
|
+
yield (0, promises_1.writeFile)(schemaFile, formattedDoc);
|
|
30
|
+
spinner.succeed();
|
|
31
|
+
}
|
|
32
|
+
catch (e) {
|
|
33
|
+
spinner.fail();
|
|
34
|
+
throw e;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
exports.format = format;
|
|
39
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/cli/actions/format.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iDAAiD;AACjD,0CAA6C;AAC7C,oDAA4B;AAC5B,8CAAsB;AACtB,0CAAwC;AAExC,SAAsB,MAAM,CAAC,WAAmB,EAAE,OAA2B;;QACzE,MAAM,OAAO,GAAG,IAAA,oBAAU,GAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,gBAAM,CAAC,IAAI,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC,CAAC;QAExD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;QAClC,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,cAAc,UAAU,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QACxD,IAAI;YACA,MAAM,YAAY,GAAG,MAAM,IAAA,yBAAc,EAAC,UAAU,CAAC,CAAC;YACtD,MAAM,IAAA,oBAAS,EAAC,UAAU,EAAE,YAAY,CAAC,CAAC;YAC1C,OAAO,CAAC,OAAO,EAAE,CAAC;SACrB;QAAC,OAAO,CAAC,EAAE;YACR,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,CAAC,CAAC;SACX;IACL,CAAC;CAAA;AAdD,wBAcC"}
|
package/cli/actions/index.d.ts
CHANGED
package/cli/actions/index.js
CHANGED
package/cli/actions/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/actions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,yCAAuB;AACvB,yCAAuB;AACvB,yCAAuB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/actions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,yCAAuB;AACvB,yCAAuB;AACvB,yCAAuB;AACvB,2CAAyB"}
|
package/cli/actions/repl.js
CHANGED
|
@@ -28,15 +28,32 @@ function repl(projectPath, options) {
|
|
|
28
28
|
return __awaiter(this, void 0, void 0, function* () {
|
|
29
29
|
console.log('Welcome to ZenStack REPL. See help with the ".help" command.');
|
|
30
30
|
console.log('Global variables:');
|
|
31
|
-
console.log(` ${colors_1.default.
|
|
32
|
-
console.log(` ${colors_1.default.
|
|
31
|
+
console.log(` ${colors_1.default.blue('db')} to access enhanced PrismaClient`);
|
|
32
|
+
console.log(` ${colors_1.default.blue('prisma')} to access raw PrismaClient`);
|
|
33
|
+
console.log(` ${colors_1.default.blue('user')} to inspect the current user`);
|
|
33
34
|
console.log('Commands:');
|
|
34
35
|
console.log(` ${colors_1.default.magenta('.auth { id: ... }')} - set current user`);
|
|
35
36
|
console.log(` ${colors_1.default.magenta('.table')} - toggle table output`);
|
|
37
|
+
console.log(` ${colors_1.default.magenta('.debug')} - toggle debug output`);
|
|
36
38
|
console.log();
|
|
37
39
|
console.log(`Running as anonymous user. Use ".auth" to set current user.`);
|
|
38
|
-
|
|
39
|
-
const
|
|
40
|
+
let PrismaClient;
|
|
41
|
+
const prismaClientModule = (_a = options.prismaClient) !== null && _a !== void 0 ? _a : '@prisma/client';
|
|
42
|
+
try {
|
|
43
|
+
// try direct require
|
|
44
|
+
const module = require(prismaClientModule);
|
|
45
|
+
PrismaClient = module.PrismaClient;
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
if (!path_1.default.isAbsolute(prismaClientModule)) {
|
|
49
|
+
// try relative require
|
|
50
|
+
const module = require(path_1.default.join(projectPath, prismaClientModule));
|
|
51
|
+
PrismaClient = module.PrismaClient;
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
throw err;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
40
57
|
const { enhance } = require('@zenstackhq/runtime');
|
|
41
58
|
let debug = !!options.debug;
|
|
42
59
|
let table = !!options.table;
|
|
@@ -45,7 +62,7 @@ function repl(projectPath, options) {
|
|
|
45
62
|
let db;
|
|
46
63
|
let user;
|
|
47
64
|
const replServer = pretty_repl_1.default.start({
|
|
48
|
-
prompt: '
|
|
65
|
+
prompt: `[${colors_1.default.cyan('anonymous')}] > `,
|
|
49
66
|
eval: (cmd, _context, _filename, callback) => __awaiter(this, void 0, void 0, function* () {
|
|
50
67
|
try {
|
|
51
68
|
let r = undefined;
|
|
@@ -166,6 +183,7 @@ function repl(projectPath, options) {
|
|
|
166
183
|
prisma.$disconnect();
|
|
167
184
|
}
|
|
168
185
|
prisma = new PrismaClient(debug ? { log: ['info'] } : undefined);
|
|
186
|
+
// https://github.com/prisma/prisma/issues/18292
|
|
169
187
|
prisma[Symbol.for('nodejs.util.inspect.custom')] = 'PrismaClient';
|
|
170
188
|
db = enhance(prisma, { user }, { logPrismaQuery: debug });
|
|
171
189
|
replServer.context.prisma = prisma;
|
|
@@ -173,7 +191,8 @@ function repl(projectPath, options) {
|
|
|
173
191
|
});
|
|
174
192
|
}
|
|
175
193
|
function setPrompt() {
|
|
176
|
-
|
|
194
|
+
const userInfo = user ? (user.id ? `user#${user.id.toString().slice(-8)}` : (0, util_1.inspect)(user)) : 'anonymous';
|
|
195
|
+
replServer.setPrompt(`[${debug ? colors_1.default.yellow('D ') : ''}${colors_1.default.cyan(userInfo)}] > `);
|
|
177
196
|
}
|
|
178
197
|
function setAuth(_user) {
|
|
179
198
|
user = _user;
|
package/cli/actions/repl.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repl.js","sourceRoot":"","sources":["../../../src/cli/actions/repl.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,uDAAuD;AACvD,uDAAuD;AACvD,oDAA4B;AAC5B,gDAAwB;AACxB,8DAAqC;AACrC,+BAA+B;AAE/B,4DAA4D;AAE5D;;GAEG;AACH,SAAsB,IAAI,CAAC,WAAmB,EAAE,OAAoE;;;QAChH,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,OAAO,gBAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,OAAO,gBAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,OAAO,gBAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,OAAO,gBAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAC;QAChF,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;QAE3E,MAAM,kBAAkB,GAAG,MAAA,OAAO,CAAC,YAAY,mCAAI,
|
|
1
|
+
{"version":3,"file":"repl.js","sourceRoot":"","sources":["../../../src/cli/actions/repl.ts"],"names":[],"mappings":"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"}
|
package/cli/cli-util.d.ts
CHANGED
|
@@ -19,3 +19,4 @@ export declare function getZenStackPackages(projectPath: string): {
|
|
|
19
19
|
}[] | undefined;
|
|
20
20
|
export declare function checkRequiredPackage(packageName: string, minVersion?: string): void;
|
|
21
21
|
export declare function checkNewVersion(): Promise<void>;
|
|
22
|
+
export declare function formatDocument(fileName: string): Promise<string>;
|
package/cli/cli-util.js
CHANGED
|
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.checkNewVersion = exports.checkRequiredPackage = exports.getZenStackPackages = exports.getPluginDocuments = exports.mergeImportsDeclarations = exports.eagerLoadAllImports = exports.loadDocument = exports.requiredPrismaVersion = void 0;
|
|
15
|
+
exports.formatDocument = exports.checkNewVersion = exports.checkRequiredPackage = exports.getZenStackPackages = exports.getPluginDocuments = exports.mergeImportsDeclarations = exports.eagerLoadAllImports = exports.loadDocument = exports.requiredPrismaVersion = void 0;
|
|
16
16
|
const ast_1 = require("@zenstackhq/language/ast");
|
|
17
17
|
const sdk_1 = require("@zenstackhq/sdk");
|
|
18
18
|
const colors_1 = __importDefault(require("colors"));
|
|
@@ -28,6 +28,7 @@ const zmodel_module_1 = require("../language-server/zmodel-module");
|
|
|
28
28
|
const ast_utils_1 = require("../utils/ast-utils");
|
|
29
29
|
const version_utils_1 = require("../utils/version-utils");
|
|
30
30
|
const cli_error_1 = require("./cli-error");
|
|
31
|
+
const vscode_languageserver_textdocument_1 = require("vscode-languageserver-textdocument");
|
|
31
32
|
// required minimal version of Prisma
|
|
32
33
|
exports.requiredPrismaVersion = '4.8.0';
|
|
33
34
|
/**
|
|
@@ -93,7 +94,7 @@ function validationAfterMerge(model) {
|
|
|
93
94
|
throw new cli_error_1.CliError('schema validation errors');
|
|
94
95
|
}
|
|
95
96
|
// at most one `@@auth` model
|
|
96
|
-
const dataModels = (0, sdk_1.getDataModels)(model);
|
|
97
|
+
const dataModels = (0, sdk_1.getDataModels)(model, true);
|
|
97
98
|
const authModels = dataModels.filter((d) => (0, sdk_1.hasAttribute)(d, '@@auth'));
|
|
98
99
|
if (authModels.length > 1) {
|
|
99
100
|
console.error(colors_1.default.red('Validation error: Multiple `@@auth` models are not allowed'));
|
|
@@ -141,22 +142,30 @@ function getPluginDocuments(services, fileName) {
|
|
|
141
142
|
if ((0, ast_1.isPlugin)(decl)) {
|
|
142
143
|
const providerField = decl.fields.find((f) => f.name === 'provider');
|
|
143
144
|
if (providerField) {
|
|
144
|
-
|
|
145
|
+
const provider = (0, sdk_1.getLiteral)(providerField.value);
|
|
145
146
|
if (provider) {
|
|
147
|
+
let pluginEntrance;
|
|
146
148
|
try {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
149
|
+
// direct require
|
|
150
|
+
pluginEntrance = require.resolve(provider);
|
|
151
|
+
}
|
|
152
|
+
catch (_a) {
|
|
153
|
+
if (!path_1.default.isAbsolute(provider)) {
|
|
154
|
+
// relative path
|
|
155
|
+
try {
|
|
156
|
+
pluginEntrance = require.resolve(path_1.default.join(path_1.default.dirname(fileName), provider));
|
|
157
|
+
}
|
|
158
|
+
catch (_b) {
|
|
159
|
+
// noop
|
|
160
|
+
}
|
|
150
161
|
}
|
|
151
|
-
|
|
162
|
+
}
|
|
163
|
+
if (pluginEntrance) {
|
|
152
164
|
const pluginModelFile = path_1.default.join(path_1.default.dirname(pluginEntrance), constants_1.PLUGIN_MODULE_NAME);
|
|
153
165
|
if (fs_1.default.existsSync(pluginModelFile)) {
|
|
154
166
|
result.push(services.shared.workspace.LangiumDocuments.getOrCreateDocument(vscode_uri_1.URI.file(pluginModelFile)));
|
|
155
167
|
}
|
|
156
168
|
}
|
|
157
|
-
catch (_a) {
|
|
158
|
-
// noop
|
|
159
|
-
}
|
|
160
169
|
}
|
|
161
170
|
}
|
|
162
171
|
}
|
|
@@ -219,4 +228,26 @@ function checkNewVersion() {
|
|
|
219
228
|
});
|
|
220
229
|
}
|
|
221
230
|
exports.checkNewVersion = checkNewVersion;
|
|
231
|
+
function formatDocument(fileName) {
|
|
232
|
+
var _a;
|
|
233
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
234
|
+
const services = (0, zmodel_module_1.createZModelServices)(node_1.NodeFileSystem).ZModel;
|
|
235
|
+
const extensions = services.LanguageMetaData.fileExtensions;
|
|
236
|
+
if (!extensions.includes(path_1.default.extname(fileName))) {
|
|
237
|
+
console.error(colors_1.default.yellow(`Please choose a file with extension: ${extensions}.`));
|
|
238
|
+
throw new cli_error_1.CliError('invalid schema file');
|
|
239
|
+
}
|
|
240
|
+
const langiumDocuments = services.shared.workspace.LangiumDocuments;
|
|
241
|
+
const document = langiumDocuments.getOrCreateDocument(vscode_uri_1.URI.file(path_1.default.resolve(fileName)));
|
|
242
|
+
const formatter = services.lsp.Formatter;
|
|
243
|
+
const identifier = { uri: document.uri.toString() };
|
|
244
|
+
const options = (_a = formatter.getFormatOptions()) !== null && _a !== void 0 ? _a : {
|
|
245
|
+
insertSpaces: true,
|
|
246
|
+
tabSize: 4,
|
|
247
|
+
};
|
|
248
|
+
const edits = yield formatter.formatDocument(document, { options, textDocument: identifier });
|
|
249
|
+
return vscode_languageserver_textdocument_1.TextDocument.applyEdits(document.textDocument, edits);
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
exports.formatDocument = formatDocument;
|
|
222
253
|
//# sourceMappingURL=cli-util.js.map
|
package/cli/cli-util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-util.js","sourceRoot":"","sources":["../../src/cli/cli-util.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli-util.js","sourceRoot":"","sources":["../../src/cli/cli-util.ts"],"names":[],"mappings":"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"}
|
package/cli/index.d.ts
CHANGED
|
@@ -4,5 +4,6 @@ export declare const initAction: (projectPath: string, options: Parameters<typeo
|
|
|
4
4
|
export declare const infoAction: (projectPath: string) => Promise<void>;
|
|
5
5
|
export declare const generateAction: (options: Parameters<typeof actions.generate>[1]) => Promise<void>;
|
|
6
6
|
export declare const replAction: (options: Parameters<typeof actions.repl>[1]) => Promise<void>;
|
|
7
|
+
export declare const formatAction: (options: Parameters<typeof actions.format>[1]) => Promise<void>;
|
|
7
8
|
export declare function createProgram(): Command;
|
|
8
9
|
export default function (): Promise<void>;
|
package/cli/index.js
CHANGED
|
@@ -35,7 +35,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
35
35
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
36
|
};
|
|
37
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
exports.createProgram = exports.replAction = exports.generateAction = exports.infoAction = exports.initAction = void 0;
|
|
38
|
+
exports.createProgram = exports.formatAction = exports.replAction = exports.generateAction = exports.infoAction = exports.initAction = void 0;
|
|
39
39
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
40
40
|
const module_1 = require("@zenstackhq/language/module");
|
|
41
41
|
const colors_1 = __importDefault(require("colors"));
|
|
@@ -62,6 +62,10 @@ const replAction = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
62
62
|
yield telemetry_1.default.trackSpan('cli:command:start', 'cli:command:complete', 'cli:command:error', { command: 'repl' }, () => actions.repl(process.cwd(), options));
|
|
63
63
|
});
|
|
64
64
|
exports.replAction = replAction;
|
|
65
|
+
const formatAction = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
66
|
+
yield telemetry_1.default.trackSpan('cli:command:start', 'cli:command:complete', 'cli:command:error', { command: 'format' }, () => actions.format(process.cwd(), options));
|
|
67
|
+
});
|
|
68
|
+
exports.formatAction = formatAction;
|
|
65
69
|
function createProgram() {
|
|
66
70
|
const program = new commander_1.Command('zenstack');
|
|
67
71
|
program.version((0, version_utils_1.getVersion)(), '-v --version', 'display CLI version');
|
|
@@ -112,6 +116,11 @@ function createProgram() {
|
|
|
112
116
|
.option('--debug', 'enable debug output')
|
|
113
117
|
.option('--table', 'enable table format output')
|
|
114
118
|
.action(exports.replAction);
|
|
119
|
+
program
|
|
120
|
+
.command('format')
|
|
121
|
+
.description('Format a ZenStack schema file.')
|
|
122
|
+
.addOption(schemaOption)
|
|
123
|
+
.action(exports.formatAction);
|
|
115
124
|
// make sure config is loaded before actions run
|
|
116
125
|
program.hook('preAction', (_, actionCommand) => __awaiter(this, void 0, void 0, function* () {
|
|
117
126
|
let configFile = actionCommand.opts().config;
|
package/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/cli/plugin-runner.d.ts
CHANGED
package/cli/plugin-runner.js
CHANGED
|
@@ -43,14 +43,13 @@ class PluginRunner {
|
|
|
43
43
|
console.error(`Plugin ${pluginDecl.name} has invalid provider option`);
|
|
44
44
|
throw new sdk_1.PluginError('', `Plugin ${pluginDecl.name} has invalid provider option`);
|
|
45
45
|
}
|
|
46
|
-
const pluginModulePath = this.getPluginModulePath(pluginProvider, options);
|
|
47
46
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
48
47
|
let pluginModule;
|
|
49
48
|
try {
|
|
50
|
-
pluginModule =
|
|
49
|
+
pluginModule = this.loadPluginModule(pluginProvider, options);
|
|
51
50
|
}
|
|
52
51
|
catch (err) {
|
|
53
|
-
console.error(`Unable to load plugin module ${pluginProvider}: ${
|
|
52
|
+
console.error(`Unable to load plugin module ${pluginProvider}: ${err}`);
|
|
54
53
|
throw new sdk_1.PluginError('', `Unable to load plugin module ${pluginProvider}`);
|
|
55
54
|
}
|
|
56
55
|
if (!pluginModule.default || typeof pluginModule.default !== 'function') {
|
|
@@ -240,15 +239,26 @@ class PluginRunner {
|
|
|
240
239
|
});
|
|
241
240
|
}
|
|
242
241
|
getPluginModulePath(provider, options) {
|
|
243
|
-
if (path_1.default.isAbsolute(provider) || provider.startsWith('.')) {
|
|
244
|
-
return (0, sdk_1.resolvePath)(provider, options);
|
|
245
|
-
}
|
|
246
242
|
let pluginModulePath = provider;
|
|
247
|
-
if (
|
|
248
|
-
pluginModulePath =
|
|
243
|
+
if (provider.startsWith('@core/')) {
|
|
244
|
+
pluginModulePath = provider.replace(/^@core/, path_1.default.join(__dirname, '../plugins'));
|
|
245
|
+
}
|
|
246
|
+
else {
|
|
247
|
+
try {
|
|
248
|
+
// direct require
|
|
249
|
+
require.resolve(pluginModulePath);
|
|
250
|
+
}
|
|
251
|
+
catch (_a) {
|
|
252
|
+
// relative
|
|
253
|
+
pluginModulePath = (0, sdk_1.resolvePath)(provider, options);
|
|
254
|
+
}
|
|
249
255
|
}
|
|
250
256
|
return pluginModulePath;
|
|
251
257
|
}
|
|
258
|
+
loadPluginModule(provider, options) {
|
|
259
|
+
const pluginModulePath = this.getPluginModulePath(provider, options);
|
|
260
|
+
return require(pluginModulePath);
|
|
261
|
+
}
|
|
252
262
|
}
|
|
253
263
|
exports.PluginRunner = PluginRunner;
|
|
254
264
|
//# sourceMappingURL=plugin-runner.js.map
|
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":";;;;;;;;;;;;;;;AAGA,kDAAmE;AACnE,yCAUyB;AACzB,oDAA4B;AAC5B,4CAAoB;AACpB,8CAAsB;AACtB,gDAAwB;AACxB,0DAAoE;AACpE,6DAAqC;AACrC,0DAAoD;AAmBpD;;GAEG;AACH,MAAa,YAAY;IACrB;;OAEG;IACG,GAAG,CAAC,OAA4B;;YAClC,MAAM,OAAO,GAAG,IAAA,0BAAU,GAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,gBAAM,CAAC,IAAI,CAAC,oBAAoB,OAAO,mBAAmB,CAAC,CAAC,CAAC;YAEzE,IAAA,wCAAyB,EAAC,OAAO,CAAC,CAAC;YAEnC,MAAM,OAAO,GAAiB,EAAE,CAAC;YACjC,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,IAAA,cAAQ,EAAC,CAAC,CAAC,CAAC,CAAC;YAExF,IAAI,YAAY,GAAG,IAAA,iBAAW,EAAC,wBAAwB,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;YAE7F,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;gBAClC,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;gBAC1D,IAAI,CAAC,cAAc,EAAE;oBACjB,OAAO,CAAC,KAAK,CAAC,UAAU,UAAU,CAAC,IAAI,8BAA8B,CAAC,CAAC;oBACvE,MAAM,IAAI,iBAAW,CAAC,EAAE,EAAE,UAAU,UAAU,CAAC,IAAI,8BAA8B,CAAC,CAAC;iBACtF;
|
|
1
|
+
{"version":3,"file":"plugin-runner.js","sourceRoot":"","sources":["../../src/cli/plugin-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -104,11 +104,18 @@ class AttributeApplicationValidator {
|
|
|
104
104
|
accept('error', `expects a string literal`, { node: attr.args[0] });
|
|
105
105
|
return;
|
|
106
106
|
}
|
|
107
|
-
this.validatePolicyKinds(kind, ['read', 'update', 'all'], attr, accept);
|
|
107
|
+
const kindItems = this.validatePolicyKinds(kind, ['read', 'update', 'all'], attr, accept);
|
|
108
108
|
const expr = attr.args[1].value;
|
|
109
109
|
if ((0, langium_1.streamAst)(expr).some((node) => (0, sdk_1.isFutureExpr)(node))) {
|
|
110
110
|
accept('error', `"future()" is not allowed in field-level policy rules`, { node: expr });
|
|
111
111
|
}
|
|
112
|
+
// 'update' rules are not allowed for relation fields
|
|
113
|
+
if (kindItems.includes('update') || kindItems.includes('all')) {
|
|
114
|
+
const field = attr.$container;
|
|
115
|
+
if ((0, sdk_1.isRelationshipField)(field)) {
|
|
116
|
+
accept('error', `Field-level policy rules with "update" or "all" kind are not allowed for relation fields. Put rules on foreign-key fields instead.`, { node: attr });
|
|
117
|
+
}
|
|
118
|
+
}
|
|
112
119
|
}
|
|
113
120
|
validatePolicyKinds(kind, candidates, attr, accept) {
|
|
114
121
|
const items = kind.split(',').map((x) => x.trim());
|
|
@@ -117,6 +124,7 @@ class AttributeApplicationValidator {
|
|
|
117
124
|
accept('error', `Invalid policy rule kind: "${item}", allowed: ${candidates.map((c) => '"' + c + '"').join(', ')}`, { node: attr });
|
|
118
125
|
}
|
|
119
126
|
});
|
|
127
|
+
return items;
|
|
120
128
|
}
|
|
121
129
|
}
|
|
122
130
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attribute-application-validator.js","sourceRoot":"","sources":["../../../src/language-server/validator/attribute-application-validator.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kDAgBkC;AAClC,
|
|
1
|
+
{"version":3,"file":"attribute-application-validator.js","sourceRoot":"","sources":["../../../src/language-server/validator/attribute-application-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const ast_1 = require("@zenstackhq/language/ast");
|
|
4
4
|
const sdk_1 = require("@zenstackhq/sdk");
|
|
5
5
|
const ast_utils_1 = require("../../utils/ast-utils");
|
|
6
|
+
const utils_1 = require("./utils");
|
|
6
7
|
/**
|
|
7
8
|
* Validates expressions.
|
|
8
9
|
*/
|
|
@@ -35,7 +36,7 @@ class ExpressionValidator {
|
|
|
35
36
|
}
|
|
36
37
|
}
|
|
37
38
|
validateBinaryExpr(expr, accept) {
|
|
38
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
39
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
39
40
|
switch (expr.operator) {
|
|
40
41
|
case 'in': {
|
|
41
42
|
if (typeof ((_a = expr.left.$resolvedType) === null || _a === void 0 ? void 0 : _a.decl) !== 'string' && !(0, ast_1.isEnum)((_b = expr.left.$resolvedType) === null || _b === void 0 ? void 0 : _b.decl)) {
|
|
@@ -99,10 +100,24 @@ class ExpressionValidator {
|
|
|
99
100
|
accept('error', 'incompatible operand types', { node: expr });
|
|
100
101
|
break;
|
|
101
102
|
}
|
|
103
|
+
if ((((_k = expr.left.$resolvedType) === null || _k === void 0 ? void 0 : _k.nullable) && (0, ast_1.isNullExpr)(expr.right)) ||
|
|
104
|
+
(((_l = expr.right.$resolvedType) === null || _l === void 0 ? void 0 : _l.nullable) && (0, ast_1.isNullExpr)(expr.left))) {
|
|
105
|
+
// comparing nullable field with null
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
if (typeof ((_m = expr.left.$resolvedType) === null || _m === void 0 ? void 0 : _m.decl) === 'string' &&
|
|
109
|
+
typeof ((_o = expr.right.$resolvedType) === null || _o === void 0 ? void 0 : _o.decl) === 'string') {
|
|
110
|
+
// scalar types assignability
|
|
111
|
+
if (!(0, utils_1.typeAssignable)(expr.left.$resolvedType.decl, expr.right.$resolvedType.decl) &&
|
|
112
|
+
!(0, utils_1.typeAssignable)(expr.right.$resolvedType.decl, expr.left.$resolvedType.decl)) {
|
|
113
|
+
accept('error', 'incompatible operand types', { node: expr });
|
|
114
|
+
}
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
102
117
|
// disallow comparing model type with scalar type or comparison between
|
|
103
118
|
// incompatible model types
|
|
104
|
-
const leftType = (
|
|
105
|
-
const rightType = (
|
|
119
|
+
const leftType = (_p = expr.left.$resolvedType) === null || _p === void 0 ? void 0 : _p.decl;
|
|
120
|
+
const rightType = (_q = expr.right.$resolvedType) === null || _q === void 0 ? void 0 : _q.decl;
|
|
106
121
|
if ((0, ast_1.isDataModel)(leftType) && (0, ast_1.isDataModel)(rightType)) {
|
|
107
122
|
if (leftType != rightType) {
|
|
108
123
|
// incompatible model types
|