zenstack 1.0.0-alpha.99 → 1.0.0-beta.10
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 +65 -24
- package/cli/cli-util.d.ts +4 -1
- package/cli/cli-util.js +63 -9
- package/cli/cli-util.js.map +1 -1
- package/cli/config.js +39 -13
- package/cli/config.js.map +1 -1
- package/cli/index.js +1 -6
- package/cli/index.js.map +1 -1
- package/cli/plugin-runner.d.ts +2 -1
- package/cli/plugin-runner.js +106 -48
- package/cli/plugin-runner.js.map +1 -1
- package/language-server/constants.d.ts +0 -4
- package/language-server/constants.js +1 -14
- package/language-server/constants.js.map +1 -1
- package/language-server/utils.d.ts +1 -5
- package/language-server/utils.js +3 -20
- package/language-server/utils.js.map +1 -1
- package/language-server/validator/datamodel-validator.d.ts +7 -0
- package/language-server/validator/datamodel-validator.js +71 -21
- package/language-server/validator/datamodel-validator.js.map +1 -1
- package/language-server/validator/expression-validator.js +44 -7
- 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 +15 -0
- package/language-server/validator/function-decl-validator.js.map +1 -0
- package/language-server/validator/function-invocation-validator.js +31 -5
- package/language-server/validator/function-invocation-validator.js.map +1 -1
- package/language-server/validator/schema-validator.d.ts +4 -1
- package/language-server/validator/schema-validator.js +25 -5
- package/language-server/validator/schema-validator.js.map +1 -1
- package/language-server/validator/utils.d.ts +4 -4
- package/language-server/validator/utils.js +10 -1
- package/language-server/validator/utils.js.map +1 -1
- package/language-server/validator/zmodel-validator.d.ts +4 -1
- package/language-server/validator/zmodel-validator.js +13 -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 +19 -10
- 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 +2 -0
- package/language-server/zmodel-linker.js +71 -7
- 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/package.json +19 -21
- package/plugins/access-policy/expression-writer.js +71 -25
- package/plugins/access-policy/expression-writer.js.map +1 -1
- package/plugins/access-policy/policy-guard-generator.js +107 -73
- package/plugins/access-policy/policy-guard-generator.js.map +1 -1
- package/plugins/access-policy/utils.d.ts +2 -2
- package/plugins/access-policy/utils.js +2 -2
- package/plugins/access-policy/utils.js.map +1 -1
- package/plugins/model-meta/index.js +35 -31
- package/plugins/model-meta/index.js.map +1 -1
- package/plugins/plugin-utils.d.ts +4 -4
- package/plugins/plugin-utils.js +28 -18
- package/plugins/plugin-utils.js.map +1 -1
- package/plugins/prisma/index.d.ts +1 -1
- package/plugins/prisma/prisma-builder.d.ts +6 -3
- package/plugins/prisma/prisma-builder.js +29 -8
- package/plugins/prisma/prisma-builder.js.map +1 -1
- package/plugins/prisma/schema-generator.d.ts +4 -1
- package/plugins/prisma/schema-generator.js +149 -32
- package/plugins/prisma/schema-generator.js.map +1 -1
- package/plugins/zod/generator.js +171 -22
- package/plugins/zod/generator.js.map +1 -1
- package/plugins/zod/index.d.ts +1 -1
- package/plugins/zod/transformer.d.ts +6 -6
- package/plugins/zod/transformer.js +168 -108
- package/plugins/zod/transformer.js.map +1 -1
- package/plugins/zod/types.d.ts +2 -0
- package/plugins/zod/utils/schema-gen.d.ts +3 -0
- package/plugins/zod/utils/schema-gen.js +178 -0
- package/plugins/zod/utils/schema-gen.js.map +1 -0
- package/res/starter.zmodel +4 -4
- package/res/stdlib.zmodel +176 -90
- package/telemetry.d.ts +2 -1
- package/telemetry.js +5 -3
- package/telemetry.js.map +1 -1
- package/utils/ast-utils.d.ts +10 -3
- package/utils/ast-utils.js +91 -8
- package/utils/ast-utils.js.map +1 -1
- package/utils/pkg-utils.js +1 -1
- package/utils/pkg-utils.js.map +1 -1
- package/utils/typescript-expression-transformer.d.ts +53 -0
- package/utils/typescript-expression-transformer.js +295 -0
- package/utils/typescript-expression-transformer.js.map +1 -0
- package/utils/version-utils.js +1 -0
- package/utils/version-utils.js.map +1 -1
- package/plugins/access-policy/typescript-expression-transformer.d.ts +0 -28
- package/plugins/access-policy/typescript-expression-transformer.js +0 -121
- package/plugins/access-policy/typescript-expression-transformer.js.map +0 -1
- package/plugins/access-policy/zod-schema-generator.d.ts +0 -12
- package/plugins/access-policy/zod-schema-generator.js +0 -157
- package/plugins/access-policy/zod-schema-generator.js.map +0 -1
package/utils/ast-utils.js
CHANGED
|
@@ -1,10 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getAllDeclarationsFromImports = exports.resolveImport = exports.resolveTransitiveImports = exports.resolveImportUri = exports.getDataModelFieldReference = exports.isAuthInvocation = exports.getIdFields = exports.mergeBaseModel = exports.extractDataModelsWithAllowRules = void 0;
|
|
4
4
|
const ast_1 = require("@zenstackhq/language/ast");
|
|
5
|
+
const langium_1 = require("langium");
|
|
6
|
+
const vscode_uri_1 = require("vscode-uri");
|
|
5
7
|
const utils_1 = require("../language-server/utils");
|
|
8
|
+
function extractDataModelsWithAllowRules(model) {
|
|
9
|
+
return model.declarations.filter((d) => (0, ast_1.isDataModel)(d) && d.attributes.some((attr) => { var _a; return ((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name) === '@@allow'; }));
|
|
10
|
+
}
|
|
11
|
+
exports.extractDataModelsWithAllowRules = extractDataModelsWithAllowRules;
|
|
12
|
+
function mergeBaseModel(model) {
|
|
13
|
+
model.declarations
|
|
14
|
+
.filter((x) => x.$type === 'DataModel')
|
|
15
|
+
.forEach((decl) => {
|
|
16
|
+
const dataModel = decl;
|
|
17
|
+
dataModel.fields = dataModel.superTypes
|
|
18
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
19
|
+
.flatMap((superType) => updateContainer(superType.ref.fields, dataModel))
|
|
20
|
+
.concat(dataModel.fields);
|
|
21
|
+
dataModel.attributes = dataModel.superTypes
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
23
|
+
.flatMap((superType) => updateContainer(superType.ref.attributes, dataModel))
|
|
24
|
+
.concat(dataModel.attributes);
|
|
25
|
+
});
|
|
26
|
+
// remove abstract models
|
|
27
|
+
model.declarations = model.declarations.filter((x) => !(x.$type == 'DataModel' && x.isAbstract));
|
|
28
|
+
}
|
|
29
|
+
exports.mergeBaseModel = mergeBaseModel;
|
|
30
|
+
function updateContainer(nodes, container) {
|
|
31
|
+
return nodes.map((node) => {
|
|
32
|
+
const cloneField = Object.assign({}, node);
|
|
33
|
+
const mutable = cloneField;
|
|
34
|
+
// update container
|
|
35
|
+
mutable.$container = container;
|
|
36
|
+
return mutable;
|
|
37
|
+
});
|
|
38
|
+
}
|
|
6
39
|
function getIdFields(dataModel) {
|
|
7
|
-
const fieldLevelId = dataModel.
|
|
40
|
+
const fieldLevelId = dataModel.$resolvedFields.find((f) => f.attributes.some((attr) => attr.decl.$refText === '@id'));
|
|
8
41
|
if (fieldLevelId) {
|
|
9
42
|
return [fieldLevelId];
|
|
10
43
|
}
|
|
@@ -25,15 +58,11 @@ function getIdFields(dataModel) {
|
|
|
25
58
|
return [];
|
|
26
59
|
}
|
|
27
60
|
exports.getIdFields = getIdFields;
|
|
28
|
-
function isAuthInvocation(
|
|
61
|
+
function isAuthInvocation(node) {
|
|
29
62
|
var _a;
|
|
30
|
-
return (0, ast_1.isInvocationExpr)(
|
|
63
|
+
return (0, ast_1.isInvocationExpr)(node) && ((_a = node.function.ref) === null || _a === void 0 ? void 0 : _a.name) === 'auth' && (0, utils_1.isFromStdlib)(node.function.ref);
|
|
31
64
|
}
|
|
32
65
|
exports.isAuthInvocation = isAuthInvocation;
|
|
33
|
-
function isEnumFieldReference(expr) {
|
|
34
|
-
return (0, ast_1.isReferenceExpr)(expr) && (0, ast_1.isEnumField)(expr.target.ref);
|
|
35
|
-
}
|
|
36
|
-
exports.isEnumFieldReference = isEnumFieldReference;
|
|
37
66
|
function getDataModelFieldReference(expr) {
|
|
38
67
|
if ((0, ast_1.isReferenceExpr)(expr) && (0, ast_1.isDataModelField)(expr.target.ref)) {
|
|
39
68
|
return expr.target.ref;
|
|
@@ -46,4 +75,58 @@ function getDataModelFieldReference(expr) {
|
|
|
46
75
|
}
|
|
47
76
|
}
|
|
48
77
|
exports.getDataModelFieldReference = getDataModelFieldReference;
|
|
78
|
+
function resolveImportUri(imp) {
|
|
79
|
+
if (imp.path === undefined || imp.path.length === 0) {
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
82
|
+
const dirUri = vscode_uri_1.Utils.dirname((0, langium_1.getDocument)(imp).uri);
|
|
83
|
+
let grammarPath = imp.path;
|
|
84
|
+
if (!grammarPath.endsWith('.zmodel')) {
|
|
85
|
+
grammarPath += '.zmodel';
|
|
86
|
+
}
|
|
87
|
+
return vscode_uri_1.Utils.resolvePath(dirUri, grammarPath);
|
|
88
|
+
}
|
|
89
|
+
exports.resolveImportUri = resolveImportUri;
|
|
90
|
+
function resolveTransitiveImports(documents, model) {
|
|
91
|
+
return resolveTransitiveImportsInternal(documents, model);
|
|
92
|
+
}
|
|
93
|
+
exports.resolveTransitiveImports = resolveTransitiveImports;
|
|
94
|
+
function resolveTransitiveImportsInternal(documents, model, initialModel = model, visited = new Set(), models = new Set()) {
|
|
95
|
+
const doc = (0, langium_1.getDocument)(model);
|
|
96
|
+
if (initialModel !== model) {
|
|
97
|
+
models.add(model);
|
|
98
|
+
}
|
|
99
|
+
if (!visited.has(doc.uri)) {
|
|
100
|
+
visited.add(doc.uri);
|
|
101
|
+
for (const imp of model.imports) {
|
|
102
|
+
const importedModel = resolveImport(documents, imp);
|
|
103
|
+
if (importedModel) {
|
|
104
|
+
resolveTransitiveImportsInternal(documents, importedModel, initialModel, visited, models);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return Array.from(models);
|
|
109
|
+
}
|
|
110
|
+
function resolveImport(documents, imp) {
|
|
111
|
+
const resolvedUri = resolveImportUri(imp);
|
|
112
|
+
try {
|
|
113
|
+
if (resolvedUri) {
|
|
114
|
+
const resolvedDocument = documents.getOrCreateDocument(resolvedUri);
|
|
115
|
+
const node = resolvedDocument.parseResult.value;
|
|
116
|
+
if ((0, ast_1.isModel)(node)) {
|
|
117
|
+
return node;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
catch (_a) {
|
|
122
|
+
// NOOP
|
|
123
|
+
}
|
|
124
|
+
return undefined;
|
|
125
|
+
}
|
|
126
|
+
exports.resolveImport = resolveImport;
|
|
127
|
+
function getAllDeclarationsFromImports(documents, model) {
|
|
128
|
+
const imports = resolveTransitiveImports(documents, model);
|
|
129
|
+
return model.declarations.concat(...imports.map((imp) => imp.declarations));
|
|
130
|
+
}
|
|
131
|
+
exports.getAllDeclarationsFromImports = getAllDeclarationsFromImports;
|
|
49
132
|
//# sourceMappingURL=ast-utils.js.map
|
package/utils/ast-utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast-utils.js","sourceRoot":"","sources":["../../src/utils/ast-utils.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"ast-utils.js","sourceRoot":"","sources":["../../src/utils/ast-utils.ts"],"names":[],"mappings":"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"}
|
package/utils/pkg-utils.js
CHANGED
|
@@ -40,7 +40,7 @@ function installPackage(pkg, dev, pkgManager = undefined, tag = 'latest', projec
|
|
|
40
40
|
console.log(`Installing package "${pkg}@${tag}" with ${manager}`);
|
|
41
41
|
switch (manager) {
|
|
42
42
|
case 'yarn':
|
|
43
|
-
(0, exec_utils_1.execSync)(`yarn --cwd "${projectPath}" add ${exactVersion ? '--exact' : ''} ${pkg}@${tag} ${dev ? ' --dev' : ''}
|
|
43
|
+
(0, exec_utils_1.execSync)(`yarn --cwd "${projectPath}" add ${exactVersion ? '--exact' : ''} ${pkg}@${tag} ${dev ? ' --dev' : ''}`);
|
|
44
44
|
break;
|
|
45
45
|
case 'pnpm':
|
|
46
46
|
(0, exec_utils_1.execSync)(`pnpm add -C "${projectPath}" ${exactVersion ? '--save-exact' : ''} ${dev ? ' --save-dev' : ''} ${pkg}@${tag}`);
|
package/utils/pkg-utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pkg-utils.js","sourceRoot":"","sources":["../../src/utils/pkg-utils.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,6CAAwC;AAIxC,SAAS,MAAM,CAAC,KAAe,EAAE,GAAW;IACxC,IAAI,GAAG,GAAG,GAAG,CAAC;IACd,iDAAiD;IACjD,OAAO,IAAI,EAAE;QACT,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACzE,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,MAAM,EAAE,GAAG,cAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACnC,IAAI,EAAE,KAAK,GAAG;YAAE,OAAO,SAAS,CAAC,CAAC,oBAAoB;QACtD,GAAG,GAAG,EAAE,CAAC;KACZ;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,WAAW,GAAG,GAAG;IACxC,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,WAAW,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,EAAE,WAAW,CAAC,CAAC;IAE3F,IAAI,CAAC,QAAQ,EAAE;QACX,kBAAkB;QAClB,OAAO,KAAK,CAAC;KAChB;IAED,QAAQ,cAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAC7B,KAAK,WAAW;YACZ,OAAO,MAAM,CAAC;QAClB,KAAK,gBAAgB;YACjB,OAAO,MAAM,CAAC;QAClB;YACI,OAAO,KAAK,CAAC;KACpB;AACL,CAAC;AACD,SAAgB,cAAc,CAC1B,GAAW,EACX,GAAY,EACZ,aAA0C,SAAS,EACnD,GAAG,GAAG,QAAQ,EACd,WAAW,GAAG,GAAG,EACjB,YAAY,GAAG,IAAI;IAEnB,MAAM,OAAO,GAAG,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,uBAAuB,GAAG,IAAI,GAAG,UAAU,OAAO,EAAE,CAAC,CAAC;IAClE,QAAQ,OAAO,EAAE;QACb,KAAK,MAAM;YACP,IAAA,qBAAQ,EACJ,eAAe,WAAW,SAAS,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"pkg-utils.js","sourceRoot":"","sources":["../../src/utils/pkg-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Expression } from '@zenstackhq/language/ast';
|
|
2
|
+
import { ExpressionContext } from '@zenstackhq/sdk';
|
|
3
|
+
export declare class TypeScriptExpressionTransformerError extends Error {
|
|
4
|
+
constructor(message: string);
|
|
5
|
+
}
|
|
6
|
+
declare type Options = {
|
|
7
|
+
isPostGuard?: boolean;
|
|
8
|
+
fieldReferenceContext?: string;
|
|
9
|
+
context: ExpressionContext;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Transforms ZModel expression to plain TypeScript expression.
|
|
13
|
+
*/
|
|
14
|
+
export declare class TypeScriptExpressionTransformer {
|
|
15
|
+
private readonly options?;
|
|
16
|
+
/**
|
|
17
|
+
* Constructs a new TypeScriptExpressionTransformer.
|
|
18
|
+
*
|
|
19
|
+
* @param isPostGuard indicates if we're writing for post-update conditions
|
|
20
|
+
*/
|
|
21
|
+
constructor(options?: Options | undefined);
|
|
22
|
+
/**
|
|
23
|
+
* Transforms the given expression to a TypeScript expression.
|
|
24
|
+
* @param normalizeUndefined if undefined values should be normalized to null
|
|
25
|
+
* @returns
|
|
26
|
+
*/
|
|
27
|
+
transform(expr: Expression, normalizeUndefined?: boolean): string;
|
|
28
|
+
private this;
|
|
29
|
+
private memberAccess;
|
|
30
|
+
private invocation;
|
|
31
|
+
private _auth;
|
|
32
|
+
private _now;
|
|
33
|
+
private _length;
|
|
34
|
+
private _contains;
|
|
35
|
+
private _startsWith;
|
|
36
|
+
private _endsWith;
|
|
37
|
+
private _regex;
|
|
38
|
+
private _email;
|
|
39
|
+
private _datetime;
|
|
40
|
+
private _url;
|
|
41
|
+
private _has;
|
|
42
|
+
private _hasEvery;
|
|
43
|
+
private _hasSome;
|
|
44
|
+
private _isEmpty;
|
|
45
|
+
private ensureBoolean;
|
|
46
|
+
private reference;
|
|
47
|
+
private null;
|
|
48
|
+
private array;
|
|
49
|
+
private literal;
|
|
50
|
+
private unary;
|
|
51
|
+
private binary;
|
|
52
|
+
}
|
|
53
|
+
export {};
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.TypeScriptExpressionTransformer = exports.TypeScriptExpressionTransformerError = void 0;
|
|
10
|
+
const ast_1 = require("@zenstackhq/language/ast");
|
|
11
|
+
const sdk_1 = require("@zenstackhq/sdk");
|
|
12
|
+
const utils_1 = require("../language-server/utils");
|
|
13
|
+
const utils_2 = require("../plugins/access-policy/utils");
|
|
14
|
+
class TypeScriptExpressionTransformerError extends Error {
|
|
15
|
+
constructor(message) {
|
|
16
|
+
super(message);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.TypeScriptExpressionTransformerError = TypeScriptExpressionTransformerError;
|
|
20
|
+
// a registry of function handlers marked with @func
|
|
21
|
+
const functionHandlers = new Map();
|
|
22
|
+
// function handler decorator
|
|
23
|
+
function func(name) {
|
|
24
|
+
return function (target, propertyKey, descriptor) {
|
|
25
|
+
if (!functionHandlers.get(name)) {
|
|
26
|
+
functionHandlers.set(name, descriptor);
|
|
27
|
+
}
|
|
28
|
+
return descriptor;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Transforms ZModel expression to plain TypeScript expression.
|
|
33
|
+
*/
|
|
34
|
+
class TypeScriptExpressionTransformer {
|
|
35
|
+
/**
|
|
36
|
+
* Constructs a new TypeScriptExpressionTransformer.
|
|
37
|
+
*
|
|
38
|
+
* @param isPostGuard indicates if we're writing for post-update conditions
|
|
39
|
+
*/
|
|
40
|
+
constructor(options) {
|
|
41
|
+
this.options = options;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Transforms the given expression to a TypeScript expression.
|
|
45
|
+
* @param normalizeUndefined if undefined values should be normalized to null
|
|
46
|
+
* @returns
|
|
47
|
+
*/
|
|
48
|
+
transform(expr, normalizeUndefined = true) {
|
|
49
|
+
switch (expr.$type) {
|
|
50
|
+
case ast_1.LiteralExpr:
|
|
51
|
+
return this.literal(expr);
|
|
52
|
+
case ast_1.ArrayExpr:
|
|
53
|
+
return this.array(expr, normalizeUndefined);
|
|
54
|
+
case ast_1.NullExpr:
|
|
55
|
+
return this.null();
|
|
56
|
+
case ast_1.ThisExpr:
|
|
57
|
+
return this.this(expr);
|
|
58
|
+
case ast_1.ReferenceExpr:
|
|
59
|
+
return this.reference(expr);
|
|
60
|
+
case ast_1.InvocationExpr:
|
|
61
|
+
return this.invocation(expr, normalizeUndefined);
|
|
62
|
+
case ast_1.MemberAccessExpr:
|
|
63
|
+
return this.memberAccess(expr, normalizeUndefined);
|
|
64
|
+
case ast_1.UnaryExpr:
|
|
65
|
+
return this.unary(expr, normalizeUndefined);
|
|
66
|
+
case ast_1.BinaryExpr:
|
|
67
|
+
return this.binary(expr, normalizeUndefined);
|
|
68
|
+
default:
|
|
69
|
+
throw new TypeScriptExpressionTransformerError(`Unsupported expression type: ${expr.$type}`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
73
|
+
this(expr) {
|
|
74
|
+
// "this" is mapped to id comparison
|
|
75
|
+
return 'id';
|
|
76
|
+
}
|
|
77
|
+
memberAccess(expr, normalizeUndefined) {
|
|
78
|
+
var _a;
|
|
79
|
+
if (!expr.member.ref) {
|
|
80
|
+
throw new TypeScriptExpressionTransformerError(`Unresolved MemberAccessExpr`);
|
|
81
|
+
}
|
|
82
|
+
if ((0, ast_1.isThisExpr)(expr.operand)) {
|
|
83
|
+
return expr.member.ref.name;
|
|
84
|
+
}
|
|
85
|
+
else if ((0, utils_2.isFutureExpr)(expr.operand)) {
|
|
86
|
+
if (((_a = this.options) === null || _a === void 0 ? void 0 : _a.isPostGuard) !== true) {
|
|
87
|
+
throw new TypeScriptExpressionTransformerError(`future() is only supported in postUpdate rules`);
|
|
88
|
+
}
|
|
89
|
+
return expr.member.ref.name;
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
if (normalizeUndefined) {
|
|
93
|
+
// normalize field access to null instead of undefined to avoid accidentally use undefined in filter
|
|
94
|
+
return `(${this.transform(expr.operand, normalizeUndefined)}?.${expr.member.ref.name} ?? null)`;
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
return `${this.transform(expr.operand, normalizeUndefined)}?.${expr.member.ref.name}`;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
invocation(expr, normalizeUndefined) {
|
|
102
|
+
if (!expr.function.ref) {
|
|
103
|
+
throw new TypeScriptExpressionTransformerError(`Unresolved InvocationExpr`);
|
|
104
|
+
}
|
|
105
|
+
const funcName = expr.function.ref.name;
|
|
106
|
+
const isStdFunc = (0, utils_1.isFromStdlib)(expr.function.ref);
|
|
107
|
+
if (!isStdFunc) {
|
|
108
|
+
throw new TypeScriptExpressionTransformerError('User-defined functions are not supported yet');
|
|
109
|
+
}
|
|
110
|
+
const handler = functionHandlers.get(funcName);
|
|
111
|
+
if (!handler) {
|
|
112
|
+
throw new TypeScriptExpressionTransformerError(`Unsupported function: ${funcName}`);
|
|
113
|
+
}
|
|
114
|
+
const args = expr.args.map((arg) => arg.value);
|
|
115
|
+
return handler.value.call(this, args, normalizeUndefined);
|
|
116
|
+
}
|
|
117
|
+
// #region function invocation handlers
|
|
118
|
+
// arguments have been type-checked
|
|
119
|
+
_auth() {
|
|
120
|
+
return 'user';
|
|
121
|
+
}
|
|
122
|
+
_now() {
|
|
123
|
+
return `(new Date())`;
|
|
124
|
+
}
|
|
125
|
+
_length(args) {
|
|
126
|
+
const field = this.transform(args[0], false);
|
|
127
|
+
const min = (0, sdk_1.getLiteral)(args[1]);
|
|
128
|
+
const max = (0, sdk_1.getLiteral)(args[2]);
|
|
129
|
+
let result;
|
|
130
|
+
if (min === undefined) {
|
|
131
|
+
result = `(${field}?.length > 0)`;
|
|
132
|
+
}
|
|
133
|
+
else if (max === undefined) {
|
|
134
|
+
result = `(${field}?.length >= ${min})`;
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
result = `(${field}?.length >= ${min} && ${field}?.length <= ${max})`;
|
|
138
|
+
}
|
|
139
|
+
return this.ensureBoolean(result);
|
|
140
|
+
}
|
|
141
|
+
_contains(args, normalizeUndefined) {
|
|
142
|
+
const field = this.transform(args[0], false);
|
|
143
|
+
const caseInsensitive = (0, sdk_1.getLiteral)(args[2]) === true;
|
|
144
|
+
let result;
|
|
145
|
+
if (caseInsensitive) {
|
|
146
|
+
result = `${field}?.toLowerCase().includes(${this.transform(args[1], normalizeUndefined)}?.toLowerCase())`;
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
result = `${field}?.includes(${this.transform(args[1], normalizeUndefined)})`;
|
|
150
|
+
}
|
|
151
|
+
return this.ensureBoolean(result);
|
|
152
|
+
}
|
|
153
|
+
_startsWith(args, normalizeUndefined) {
|
|
154
|
+
const field = this.transform(args[0], false);
|
|
155
|
+
const result = `${field}?.startsWith(${this.transform(args[1], normalizeUndefined)})`;
|
|
156
|
+
return this.ensureBoolean(result);
|
|
157
|
+
}
|
|
158
|
+
_endsWith(args, normalizeUndefined) {
|
|
159
|
+
const field = this.transform(args[0], false);
|
|
160
|
+
const result = `${field}?.endsWith(${this.transform(args[1], normalizeUndefined)})`;
|
|
161
|
+
return this.ensureBoolean(result);
|
|
162
|
+
}
|
|
163
|
+
_regex(args) {
|
|
164
|
+
const field = this.transform(args[0], false);
|
|
165
|
+
const pattern = (0, sdk_1.getLiteral)(args[1]);
|
|
166
|
+
return `new RegExp(${JSON.stringify(pattern)}).test(${field})`;
|
|
167
|
+
}
|
|
168
|
+
_email(args) {
|
|
169
|
+
const field = this.transform(args[0], false);
|
|
170
|
+
return `z.string().email().safeParse(${field}).success`;
|
|
171
|
+
}
|
|
172
|
+
_datetime(args) {
|
|
173
|
+
const field = this.transform(args[0], false);
|
|
174
|
+
return `z.string().datetime({ offset: true }).safeParse(${field}).success`;
|
|
175
|
+
}
|
|
176
|
+
_url(args) {
|
|
177
|
+
const field = this.transform(args[0], false);
|
|
178
|
+
return `z.string().url().safeParse(${field}).success`;
|
|
179
|
+
}
|
|
180
|
+
_has(args, normalizeUndefined) {
|
|
181
|
+
const field = this.transform(args[0], false);
|
|
182
|
+
const result = `${field}?.includes(${this.transform(args[1], normalizeUndefined)})`;
|
|
183
|
+
return this.ensureBoolean(result);
|
|
184
|
+
}
|
|
185
|
+
_hasEvery(args, normalizeUndefined) {
|
|
186
|
+
const field = this.transform(args[0], false);
|
|
187
|
+
const result = `${this.transform(args[1], normalizeUndefined)}?.every((item) => ${field}?.includes(item))`;
|
|
188
|
+
return this.ensureBoolean(result);
|
|
189
|
+
}
|
|
190
|
+
_hasSome(args, normalizeUndefined) {
|
|
191
|
+
const field = this.transform(args[0], false);
|
|
192
|
+
const result = `${this.transform(args[1], normalizeUndefined)}?.some((item) => ${field}?.includes(item))`;
|
|
193
|
+
return this.ensureBoolean(result);
|
|
194
|
+
}
|
|
195
|
+
_isEmpty(args) {
|
|
196
|
+
const field = this.transform(args[0], false);
|
|
197
|
+
const result = `(!${field} || ${field}?.length === 0)`;
|
|
198
|
+
return this.ensureBoolean(result);
|
|
199
|
+
}
|
|
200
|
+
ensureBoolean(expr) {
|
|
201
|
+
return `(${expr} ?? false)`;
|
|
202
|
+
}
|
|
203
|
+
// #endregion
|
|
204
|
+
reference(expr) {
|
|
205
|
+
var _a, _b;
|
|
206
|
+
if (!expr.target.ref) {
|
|
207
|
+
throw new TypeScriptExpressionTransformerError(`Unresolved ReferenceExpr`);
|
|
208
|
+
}
|
|
209
|
+
if ((0, ast_1.isEnumField)(expr.target.ref)) {
|
|
210
|
+
return `${expr.target.ref.$container.name}.${expr.target.ref.name}`;
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.isPostGuard) {
|
|
214
|
+
// if we're processing post-update, any direct field access should be
|
|
215
|
+
// treated as access to context.preValue, which is entity's value before
|
|
216
|
+
// the update
|
|
217
|
+
return `context.preValue?.${expr.target.ref.name}`;
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
return ((_b = this.options) === null || _b === void 0 ? void 0 : _b.fieldReferenceContext)
|
|
221
|
+
? `${this.options.fieldReferenceContext}.${expr.target.ref.name}`
|
|
222
|
+
: expr.target.ref.name;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
null() {
|
|
227
|
+
return 'null';
|
|
228
|
+
}
|
|
229
|
+
array(expr, normalizeUndefined) {
|
|
230
|
+
return `[${expr.items.map((item) => this.transform(item, normalizeUndefined)).join(', ')}]`;
|
|
231
|
+
}
|
|
232
|
+
literal(expr) {
|
|
233
|
+
if (typeof expr.value === 'string') {
|
|
234
|
+
return `'${expr.value}'`;
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
return expr.value.toString();
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
unary(expr, normalizeUndefined) {
|
|
241
|
+
return `(${expr.operator} ${this.transform(expr.operand, normalizeUndefined)})`;
|
|
242
|
+
}
|
|
243
|
+
binary(expr, normalizeUndefined) {
|
|
244
|
+
if (expr.operator === 'in') {
|
|
245
|
+
return `(${this.transform(expr.right, false)}?.includes(${this.transform(expr.left, normalizeUndefined)}) ?? false)`;
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
return `(${this.transform(expr.left, normalizeUndefined)} ${expr.operator} ${this.transform(expr.right, normalizeUndefined)})`;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
__decorate([
|
|
253
|
+
func('auth')
|
|
254
|
+
], TypeScriptExpressionTransformer.prototype, "_auth", null);
|
|
255
|
+
__decorate([
|
|
256
|
+
func('now')
|
|
257
|
+
], TypeScriptExpressionTransformer.prototype, "_now", null);
|
|
258
|
+
__decorate([
|
|
259
|
+
func('length')
|
|
260
|
+
], TypeScriptExpressionTransformer.prototype, "_length", null);
|
|
261
|
+
__decorate([
|
|
262
|
+
func('contains')
|
|
263
|
+
], TypeScriptExpressionTransformer.prototype, "_contains", null);
|
|
264
|
+
__decorate([
|
|
265
|
+
func('startsWith')
|
|
266
|
+
], TypeScriptExpressionTransformer.prototype, "_startsWith", null);
|
|
267
|
+
__decorate([
|
|
268
|
+
func('endsWith')
|
|
269
|
+
], TypeScriptExpressionTransformer.prototype, "_endsWith", null);
|
|
270
|
+
__decorate([
|
|
271
|
+
func('regex')
|
|
272
|
+
], TypeScriptExpressionTransformer.prototype, "_regex", null);
|
|
273
|
+
__decorate([
|
|
274
|
+
func('email')
|
|
275
|
+
], TypeScriptExpressionTransformer.prototype, "_email", null);
|
|
276
|
+
__decorate([
|
|
277
|
+
func('datetime')
|
|
278
|
+
], TypeScriptExpressionTransformer.prototype, "_datetime", null);
|
|
279
|
+
__decorate([
|
|
280
|
+
func('url')
|
|
281
|
+
], TypeScriptExpressionTransformer.prototype, "_url", null);
|
|
282
|
+
__decorate([
|
|
283
|
+
func('has')
|
|
284
|
+
], TypeScriptExpressionTransformer.prototype, "_has", null);
|
|
285
|
+
__decorate([
|
|
286
|
+
func('hasEvery')
|
|
287
|
+
], TypeScriptExpressionTransformer.prototype, "_hasEvery", null);
|
|
288
|
+
__decorate([
|
|
289
|
+
func('hasSome')
|
|
290
|
+
], TypeScriptExpressionTransformer.prototype, "_hasSome", null);
|
|
291
|
+
__decorate([
|
|
292
|
+
func('isEmpty')
|
|
293
|
+
], TypeScriptExpressionTransformer.prototype, "_isEmpty", null);
|
|
294
|
+
exports.TypeScriptExpressionTransformer = TypeScriptExpressionTransformer;
|
|
295
|
+
//# sourceMappingURL=typescript-expression-transformer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typescript-expression-transformer.js","sourceRoot":"","sources":["../../src/utils/typescript-expression-transformer.ts"],"names":[],"mappings":"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"}
|
package/utils/version-utils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-utils.js","sourceRoot":"","sources":["../../src/utils/version-utils.ts"],"names":[],"mappings":";;;AAAA,uDAAuD;AACvD,SAAgB,UAAU;IACtB,IAAI;QACA,OAAO,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC;KAC7C;IAAC,WAAM;QACJ,OAAO,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;KAChD;AACL,CAAC;
|
|
1
|
+
{"version":3,"file":"version-utils.js","sourceRoot":"","sources":["../../src/utils/version-utils.ts"],"names":[],"mappings":";;;AAAA,uDAAuD;AACvD,SAAgB,UAAU;IACtB,IAAI;QACA,OAAO,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC;KAC7C;IAAC,WAAM;QACJ,kBAAkB;QAClB,OAAO,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;KAChD;AACL,CAAC;AAPD,gCAOC"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { Expression } from '@zenstackhq/language/ast';
|
|
2
|
-
/**
|
|
3
|
-
* Transforms ZModel expression to plain TypeScript expression.
|
|
4
|
-
*/
|
|
5
|
-
export default class TypeScriptExpressionTransformer {
|
|
6
|
-
private readonly isPostGuard;
|
|
7
|
-
/**
|
|
8
|
-
* Constructs a new TypeScriptExpressionTransformer.
|
|
9
|
-
*
|
|
10
|
-
* @param isPostGuard indicates if we're writing for post-update conditions
|
|
11
|
-
*/
|
|
12
|
-
constructor(isPostGuard?: boolean);
|
|
13
|
-
/**
|
|
14
|
-
*
|
|
15
|
-
* @param expr
|
|
16
|
-
* @returns
|
|
17
|
-
*/
|
|
18
|
-
transform(expr: Expression): string;
|
|
19
|
-
private this;
|
|
20
|
-
private memberAccess;
|
|
21
|
-
private invocation;
|
|
22
|
-
private reference;
|
|
23
|
-
private null;
|
|
24
|
-
private array;
|
|
25
|
-
private literal;
|
|
26
|
-
private unary;
|
|
27
|
-
private binary;
|
|
28
|
-
}
|