@allgemein/expressions 1.1.0 → 1.1.1
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/browser.js +0 -2
- package/index.js +5 -3
- package/libs/descriptors/AndDesc.js +0 -2
- package/libs/descriptors/EqDesc.js +1 -3
- package/libs/descriptors/ExprDesc.js +3 -2
- package/libs/descriptors/GeDesc.js +0 -2
- package/libs/descriptors/GroupDesc.js +0 -2
- package/libs/descriptors/GtDesc.js +0 -2
- package/libs/descriptors/IExpr.js +0 -2
- package/libs/descriptors/InDesc.js +0 -2
- package/libs/descriptors/KeyDesc.js +0 -2
- package/libs/descriptors/LeDesc.js +0 -2
- package/libs/descriptors/LikeDesc.js +0 -2
- package/libs/descriptors/LtDesc.js +0 -2
- package/libs/descriptors/NeqDesc.js +0 -2
- package/libs/descriptors/OpDesc.js +0 -2
- package/libs/descriptors/OrDesc.js +0 -2
- package/libs/descriptors/Selector.js +0 -2
- package/libs/descriptors/ValueDesc.js +0 -2
- package/libs/exceptions/ExpressionValidationError.js +0 -2
- package/libs/expressions/ExpressionInterpreter.js +12 -14
- package/libs/expressions/Expressions.d.ts +13 -0
- package/libs/expressions/Expressions.js +27 -37
- package/package.json +13 -8
- package/browser.js.map +0 -1
- package/index.js.map +0 -1
- package/libs/descriptors/AndDesc.js.map +0 -1
- package/libs/descriptors/EqDesc.js.map +0 -1
- package/libs/descriptors/ExprDesc.js.map +0 -1
- package/libs/descriptors/GeDesc.js.map +0 -1
- package/libs/descriptors/GroupDesc.js.map +0 -1
- package/libs/descriptors/GtDesc.js.map +0 -1
- package/libs/descriptors/IExpr.js.map +0 -1
- package/libs/descriptors/InDesc.js.map +0 -1
- package/libs/descriptors/KeyDesc.js.map +0 -1
- package/libs/descriptors/LeDesc.js.map +0 -1
- package/libs/descriptors/LikeDesc.js.map +0 -1
- package/libs/descriptors/LtDesc.js.map +0 -1
- package/libs/descriptors/NeqDesc.js.map +0 -1
- package/libs/descriptors/OpDesc.js.map +0 -1
- package/libs/descriptors/OrDesc.js.map +0 -1
- package/libs/descriptors/Selector.js.map +0 -1
- package/libs/descriptors/ValueDesc.js.map +0 -1
- package/libs/exceptions/ExpressionValidationError.js.map +0 -1
- package/libs/expressions/ExpressionInterpreter.js.map +0 -1
- package/libs/expressions/Expressions.js.map +0 -1
package/browser.js
CHANGED
|
@@ -45,5 +45,3 @@ var Expressions_1 = require("./libs/expressions/Expressions");
|
|
|
45
45
|
Object.defineProperty(exports, "Expressions", { enumerable: true, get: function () { return Expressions_1.Expressions; } });
|
|
46
46
|
var ExpressionValidationError_1 = require("./libs/exceptions/ExpressionValidationError");
|
|
47
47
|
Object.defineProperty(exports, "ExpressionValidationError", { enumerable: true, get: function () { return ExpressionValidationError_1.ExpressionValidationError; } });
|
|
48
|
-
|
|
49
|
-
//# sourceMappingURL=browser.js.map
|
package/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -11,5 +15,3 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
11
15
|
};
|
|
12
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
17
|
__exportStar(require("./browser"), exports);
|
|
14
|
-
|
|
15
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -13,7 +13,7 @@ class EqDesc extends OpDesc_1.OpDesc {
|
|
|
13
13
|
const value = this.value instanceof KeyDesc_1.KeyDesc ? source[this.value.key] : _.clone(this.value.value);
|
|
14
14
|
const key = this.key;
|
|
15
15
|
return function (target) {
|
|
16
|
-
return target[key]
|
|
16
|
+
return target[key] === value;
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
19
|
for(source, keyMap = {}) {
|
|
@@ -29,5 +29,3 @@ function Eq(key, value) {
|
|
|
29
29
|
return new EqDesc(key, value);
|
|
30
30
|
}
|
|
31
31
|
exports.Eq = Eq;
|
|
32
|
-
|
|
33
|
-
//# sourceMappingURL=EqDesc.js.map
|
|
@@ -53,9 +53,11 @@ class ExprDesc {
|
|
|
53
53
|
if (this.type == 'eq') {
|
|
54
54
|
if (!_.has(target, this.key) || false) {
|
|
55
55
|
if (this.value instanceof ValueDesc_1.ValueDesc) {
|
|
56
|
+
// @ts-ignore
|
|
56
57
|
target[this.key] = this.value.value;
|
|
57
58
|
}
|
|
58
59
|
else if (this.value instanceof KeyDesc_1.KeyDesc) {
|
|
60
|
+
// @ts-ignore
|
|
59
61
|
target[this.key] = source[this.value.key];
|
|
60
62
|
}
|
|
61
63
|
else {
|
|
@@ -77,6 +79,7 @@ class ExprDesc {
|
|
|
77
79
|
if (this.type == 'eq') {
|
|
78
80
|
if (!_.has(target, this.key) || false) {
|
|
79
81
|
if (this.value instanceof KeyDesc_1.KeyDesc) {
|
|
82
|
+
// @ts-ignore
|
|
80
83
|
target[this.value.key] = source[this.key];
|
|
81
84
|
}
|
|
82
85
|
else {
|
|
@@ -193,5 +196,3 @@ class ExprDesc {
|
|
|
193
196
|
}
|
|
194
197
|
}
|
|
195
198
|
exports.ExprDesc = ExprDesc;
|
|
196
|
-
|
|
197
|
-
//# sourceMappingURL=ExprDesc.js.map
|
|
@@ -176,28 +176,28 @@ class ExpressionInterpreter {
|
|
|
176
176
|
if (op.state == 'onOperator' && key && key.state == 'onKey') {
|
|
177
177
|
switch (op.value.trim().toLowerCase()) {
|
|
178
178
|
case '=':
|
|
179
|
-
erg = EqDesc_1.Eq(KeyDesc_1.Key(key.value), ValueDesc_1.Value(value));
|
|
179
|
+
erg = (0, EqDesc_1.Eq)((0, KeyDesc_1.Key)(key.value), (0, ValueDesc_1.Value)(value));
|
|
180
180
|
break;
|
|
181
181
|
case 'like':
|
|
182
|
-
erg = LikeDesc_1.Like(KeyDesc_1.Key(key.value), ValueDesc_1.Value(value));
|
|
182
|
+
erg = (0, LikeDesc_1.Like)((0, KeyDesc_1.Key)(key.value), (0, ValueDesc_1.Value)(value));
|
|
183
183
|
break;
|
|
184
184
|
case '<=':
|
|
185
|
-
erg = LeDesc_1.Le(KeyDesc_1.Key(key.value), ValueDesc_1.Value(value));
|
|
185
|
+
erg = (0, LeDesc_1.Le)((0, KeyDesc_1.Key)(key.value), (0, ValueDesc_1.Value)(value));
|
|
186
186
|
break;
|
|
187
187
|
case '>=':
|
|
188
|
-
erg = GeDesc_1.Ge(KeyDesc_1.Key(key.value), ValueDesc_1.Value(value));
|
|
188
|
+
erg = (0, GeDesc_1.Ge)((0, KeyDesc_1.Key)(key.value), (0, ValueDesc_1.Value)(value));
|
|
189
189
|
break;
|
|
190
190
|
case '<':
|
|
191
|
-
erg = LtDesc_1.Lt(KeyDesc_1.Key(key.value), ValueDesc_1.Value(value));
|
|
191
|
+
erg = (0, LtDesc_1.Lt)((0, KeyDesc_1.Key)(key.value), (0, ValueDesc_1.Value)(value));
|
|
192
192
|
break;
|
|
193
193
|
case '>':
|
|
194
|
-
erg = GtDesc_1.Gt(KeyDesc_1.Key(key.value), ValueDesc_1.Value(value));
|
|
194
|
+
erg = (0, GtDesc_1.Gt)((0, KeyDesc_1.Key)(key.value), (0, ValueDesc_1.Value)(value));
|
|
195
195
|
break;
|
|
196
196
|
case 'in':
|
|
197
|
-
erg = InDesc_1.In(KeyDesc_1.Key(key.value), ValueDesc_1.Value(value));
|
|
197
|
+
erg = (0, InDesc_1.In)((0, KeyDesc_1.Key)(key.value), (0, ValueDesc_1.Value)(value));
|
|
198
198
|
break;
|
|
199
199
|
case '<>':
|
|
200
|
-
erg = NeqDesc_1.Neq(KeyDesc_1.Key(key.value), ValueDesc_1.Value(value));
|
|
200
|
+
erg = (0, NeqDesc_1.Neq)((0, KeyDesc_1.Key)(key.value), (0, ValueDesc_1.Value)(value));
|
|
201
201
|
break;
|
|
202
202
|
default:
|
|
203
203
|
throw new Error('operator not found');
|
|
@@ -269,10 +269,10 @@ class ExpressionInterpreter {
|
|
|
269
269
|
// undefined
|
|
270
270
|
switch (bool) {
|
|
271
271
|
case 'AND':
|
|
272
|
-
group = AndDesc_1.And(...last.values);
|
|
272
|
+
group = (0, AndDesc_1.And)(...last.values);
|
|
273
273
|
break;
|
|
274
274
|
case 'OR':
|
|
275
|
-
group = OrDesc_1.Or(...last.values);
|
|
275
|
+
group = (0, OrDesc_1.Or)(...last.values);
|
|
276
276
|
break;
|
|
277
277
|
}
|
|
278
278
|
group.id = this.groupLevel;
|
|
@@ -281,10 +281,10 @@ class ExpressionInterpreter {
|
|
|
281
281
|
else {
|
|
282
282
|
switch (bool) {
|
|
283
283
|
case 'AND':
|
|
284
|
-
group = AndDesc_1.And(last);
|
|
284
|
+
group = (0, AndDesc_1.And)(last);
|
|
285
285
|
break;
|
|
286
286
|
case 'OR':
|
|
287
|
-
group = OrDesc_1.Or(last);
|
|
287
|
+
group = (0, OrDesc_1.Or)(last);
|
|
288
288
|
break;
|
|
289
289
|
}
|
|
290
290
|
group.id = this.groupLevel;
|
|
@@ -299,5 +299,3 @@ class ExpressionInterpreter {
|
|
|
299
299
|
}
|
|
300
300
|
}
|
|
301
301
|
exports.ExpressionInterpreter = ExpressionInterpreter;
|
|
302
|
-
|
|
303
|
-
//# sourceMappingURL=ExpressionInterpreter.js.map
|
|
@@ -1,7 +1,20 @@
|
|
|
1
1
|
import { ExprDesc } from '../descriptors/ExprDesc';
|
|
2
|
+
import { KeyDesc } from '../descriptors/KeyDesc';
|
|
2
3
|
import { IClassRef, IEntityRef } from '@allgemein/schema-api';
|
|
4
|
+
import { Selector } from '../descriptors/Selector';
|
|
3
5
|
export declare class Expressions {
|
|
6
|
+
static EXPR_REGISTRY: {
|
|
7
|
+
$eq: (k: KeyDesc, v: Selector) => import("../descriptors/EqDesc").EqDesc;
|
|
8
|
+
$ne: (k: KeyDesc, v: Selector) => import("../descriptors/NeqDesc").NeqDesc;
|
|
9
|
+
$le: (k: KeyDesc, v: Selector) => import("../descriptors/LeDesc").LeDesc;
|
|
10
|
+
$lt: (k: KeyDesc, v: Selector) => import("../descriptors/LtDesc").LtDesc;
|
|
11
|
+
$ge: (k: KeyDesc, v: Selector) => import("../descriptors/GeDesc").GeDesc;
|
|
12
|
+
$gt: (k: KeyDesc, v: Selector) => import("../descriptors/GtDesc").GtDesc;
|
|
13
|
+
$like: (k: KeyDesc, v: Selector) => import("../descriptors/LikeDesc").LikeDesc;
|
|
14
|
+
$in: (k: KeyDesc, v: Selector) => import("../descriptors/InDesc").InDesc;
|
|
15
|
+
};
|
|
4
16
|
static parse(str: any): ExprDesc;
|
|
17
|
+
static exprKeys(): string[];
|
|
5
18
|
static fromJson(object: any, srcKey?: string, parent?: ExprDesc): ExprDesc;
|
|
6
19
|
static parseLookupConditions(ref: IClassRef | IEntityRef, id: any): any | any[];
|
|
7
20
|
static buildLookupConditions(ref: IClassRef | IEntityRef, data: any | any[]): string;
|
|
@@ -16,6 +16,7 @@ const OrDesc_1 = require("../descriptors/OrDesc");
|
|
|
16
16
|
const ValueDesc_1 = require("../descriptors/ValueDesc");
|
|
17
17
|
const GroupDesc_1 = require("../descriptors/GroupDesc");
|
|
18
18
|
const ExpressionInterpreter_1 = require("./ExpressionInterpreter");
|
|
19
|
+
const LikeDesc_1 = require("../descriptors/LikeDesc");
|
|
19
20
|
const REGEX_ID = /^(([\w_]+)=((\d+)|(\d+(\.|\,)\d+)|\'([^\']*)\'),?)$/;
|
|
20
21
|
const REGEX_ID_G = /^(([\w_]+)=((\d+)|(\d+(\.|\,)\d+)|\'([^\']*)\'),?)$ /g;
|
|
21
22
|
const REGEX_ID_K = /^((\d+)|(\d+(\.|\,)\d+),?)+$/;
|
|
@@ -98,10 +99,13 @@ class Expressions {
|
|
|
98
99
|
return cond;
|
|
99
100
|
}
|
|
100
101
|
*/
|
|
102
|
+
static exprKeys() {
|
|
103
|
+
return Object.keys(this.EXPR_REGISTRY);
|
|
104
|
+
}
|
|
101
105
|
static fromJson(object, srcKey = null, parent = null) {
|
|
102
106
|
if (_.isArray(object)) {
|
|
103
107
|
if (!parent || !(parent instanceof GroupDesc_1.GroupDesc)) {
|
|
104
|
-
parent = OrDesc_1.Or();
|
|
108
|
+
parent = (0, OrDesc_1.Or)();
|
|
105
109
|
}
|
|
106
110
|
for (let obj of object) {
|
|
107
111
|
let sub = this.fromJson(obj, null, parent);
|
|
@@ -118,7 +122,7 @@ class Expressions {
|
|
|
118
122
|
let op = operator.shift();
|
|
119
123
|
if (op == '$or' || op == '$and') {
|
|
120
124
|
if (_.isArray(object[op])) {
|
|
121
|
-
let desc = op == '$or' ? OrDesc_1.Or() : AndDesc_1.And();
|
|
125
|
+
let desc = op == '$or' ? (0, OrDesc_1.Or)() : (0, AndDesc_1.And)();
|
|
122
126
|
if (parent instanceof GroupDesc_1.GroupDesc) {
|
|
123
127
|
parent.values.push(desc);
|
|
124
128
|
}
|
|
@@ -128,12 +132,15 @@ class Expressions {
|
|
|
128
132
|
throw new base_1.NotSupportedError('or|and must have an array as value ' + JSON.stringify(object, null, 2));
|
|
129
133
|
}
|
|
130
134
|
}
|
|
131
|
-
else if (
|
|
132
|
-
let key = KeyDesc_1.Key(srcKey);
|
|
135
|
+
else if (this.exprKeys().indexOf(op) > -1) {
|
|
136
|
+
let key = (0, KeyDesc_1.Key)(srcKey);
|
|
133
137
|
let value = null;
|
|
134
|
-
if (_.
|
|
138
|
+
if (_.isArray(object[op])) {
|
|
139
|
+
value = (0, ValueDesc_1.Value)(object[op]);
|
|
140
|
+
}
|
|
141
|
+
else if (_.isPlainObject(object[op])) {
|
|
135
142
|
if (_.has(object[op], '$key')) {
|
|
136
|
-
value = KeyDesc_1.Key(object[op].$key);
|
|
143
|
+
value = (0, KeyDesc_1.Key)(object[op].$key);
|
|
137
144
|
}
|
|
138
145
|
else {
|
|
139
146
|
// ???
|
|
@@ -141,34 +148,9 @@ class Expressions {
|
|
|
141
148
|
}
|
|
142
149
|
}
|
|
143
150
|
else {
|
|
144
|
-
value = ValueDesc_1.Value(object[op]);
|
|
145
|
-
}
|
|
146
|
-
switch (op) {
|
|
147
|
-
case '$eq':
|
|
148
|
-
return EqDesc_1.Eq(key, value);
|
|
149
|
-
case '$ne':
|
|
150
|
-
return NeqDesc_1.Neq(key, value);
|
|
151
|
-
case '$le':
|
|
152
|
-
return LeDesc_1.Le(key, value);
|
|
153
|
-
case '$lt':
|
|
154
|
-
return LtDesc_1.Lt(key, value);
|
|
155
|
-
case '$ge':
|
|
156
|
-
return GeDesc_1.Ge(key, value);
|
|
157
|
-
case '$gt':
|
|
158
|
-
return GtDesc_1.Gt(key, value);
|
|
159
|
-
}
|
|
160
|
-
throw new base_1.NotSupportedError('in operator found');
|
|
161
|
-
}
|
|
162
|
-
else if (op == '$in') {
|
|
163
|
-
let key = KeyDesc_1.Key(srcKey);
|
|
164
|
-
let value = null;
|
|
165
|
-
if (_.isArray(object[op])) {
|
|
166
|
-
value = ValueDesc_1.Value(object[op]);
|
|
167
|
-
}
|
|
168
|
-
else {
|
|
169
|
-
throw new base_1.NotSupportedError('in operator needs an array as input');
|
|
151
|
+
value = (0, ValueDesc_1.Value)(object[op]);
|
|
170
152
|
}
|
|
171
|
-
return
|
|
153
|
+
return this.EXPR_REGISTRY[op](key, value);
|
|
172
154
|
}
|
|
173
155
|
else {
|
|
174
156
|
throw new base_1.NotSupportedError('operator ' + op + ' not supported');
|
|
@@ -183,7 +165,7 @@ class Expressions {
|
|
|
183
165
|
return desc.shift();
|
|
184
166
|
}
|
|
185
167
|
else {
|
|
186
|
-
return AndDesc_1.And(...desc);
|
|
168
|
+
return (0, AndDesc_1.And)(...desc);
|
|
187
169
|
}
|
|
188
170
|
}
|
|
189
171
|
else {
|
|
@@ -192,7 +174,7 @@ class Expressions {
|
|
|
192
174
|
}
|
|
193
175
|
else {
|
|
194
176
|
if (srcKey) {
|
|
195
|
-
return EqDesc_1.Eq(KeyDesc_1.Key(srcKey), object);
|
|
177
|
+
return (0, EqDesc_1.Eq)((0, KeyDesc_1.Key)(srcKey), object);
|
|
196
178
|
}
|
|
197
179
|
throw new base_1.NotSupportedError('object cant be resolved ' + JSON.stringify(object, null, 2));
|
|
198
180
|
}
|
|
@@ -292,5 +274,13 @@ class Expressions {
|
|
|
292
274
|
}
|
|
293
275
|
}
|
|
294
276
|
exports.Expressions = Expressions;
|
|
295
|
-
|
|
296
|
-
|
|
277
|
+
Expressions.EXPR_REGISTRY = {
|
|
278
|
+
'$eq': (k, v) => (0, EqDesc_1.Eq)(k, v),
|
|
279
|
+
'$ne': (k, v) => (0, NeqDesc_1.Neq)(k, v),
|
|
280
|
+
'$le': (k, v) => (0, LeDesc_1.Le)(k, v),
|
|
281
|
+
'$lt': (k, v) => (0, LtDesc_1.Lt)(k, v),
|
|
282
|
+
'$ge': (k, v) => (0, GeDesc_1.Ge)(k, v),
|
|
283
|
+
'$gt': (k, v) => (0, GtDesc_1.Gt)(k, v),
|
|
284
|
+
'$like': (k, v) => (0, LikeDesc_1.Like)(k, v),
|
|
285
|
+
'$in': (k, v) => (0, InDesc_1.In)(k, v)
|
|
286
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@allgemein/expressions",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "Library for mango expressions",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"private": false,
|
|
@@ -30,18 +30,23 @@
|
|
|
30
30
|
},
|
|
31
31
|
"homepage": "https://github.com/allgemein-node/expressions#readme",
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@allgemein/
|
|
34
|
-
"@
|
|
33
|
+
"@allgemein/base": "^1.6.14",
|
|
34
|
+
"@allgemein/packaging": "^1.2.20",
|
|
35
|
+
"@allgemein/schema-api": "^1.5.34",
|
|
36
|
+
"@testdeck/mocha": "^0.3.3",
|
|
35
37
|
"@types/chai": "^4.2.16",
|
|
36
38
|
"@types/glob": "^7.1.3",
|
|
37
39
|
"@types/json-schema": "^7.0.7",
|
|
38
40
|
"@types/lodash": "^4.14.168",
|
|
39
41
|
"@types/mocha": "^8.2.2",
|
|
40
42
|
"@types/node": "^14.14.41",
|
|
43
|
+
"@typescript-eslint/eslint-plugin": "^4.29.0",
|
|
44
|
+
"@typescript-eslint/parser": "^4.29.0",
|
|
41
45
|
"chai": "^4.3.4",
|
|
42
46
|
"codecov": "^3.8.1",
|
|
43
47
|
"codelyzer": "^5.2.0",
|
|
44
48
|
"del": "^6.0.0",
|
|
49
|
+
"eslint": "^7.32.0",
|
|
45
50
|
"glob": "^7.1.6",
|
|
46
51
|
"gulp": "^4.0.2",
|
|
47
52
|
"gulp-bump": "^3.2.0",
|
|
@@ -54,12 +59,12 @@
|
|
|
54
59
|
"mocha": "^8.3.2",
|
|
55
60
|
"nyc": "^15.1.0",
|
|
56
61
|
"reflect-metadata": "^0.1.13",
|
|
57
|
-
"ts-node": "^9.
|
|
62
|
+
"ts-node": "^10.9.2",
|
|
58
63
|
"tslint": "^5.20.1",
|
|
59
|
-
"typescript": "^4.
|
|
64
|
+
"typescript": "^4.9.5"
|
|
60
65
|
},
|
|
61
|
-
"
|
|
62
|
-
"@allgemein/base": "^1.5.
|
|
63
|
-
"@allgemein/schema-api": "^1.2.
|
|
66
|
+
"peerDependencies": {
|
|
67
|
+
"@allgemein/base": "^1.5.0",
|
|
68
|
+
"@allgemein/schema-api": "^1.2.0"
|
|
64
69
|
}
|
|
65
70
|
}
|
package/browser.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/browser.ts"],"names":[],"mappings":";;;AAEA,wDAAqD;AAA7C,oGAAA,QAAQ,OAAA;AAChB,oDAAiD;AAAzC,gGAAA,MAAM,OAAA;AACd,oDAAqD;AAA7C,4FAAA,EAAE,OAAA;AAAE,gGAAA,MAAM,OAAA;AAClB,sDAAwD;AAAhD,8FAAA,GAAG,OAAA;AAAE,kGAAA,OAAO,OAAA;AACpB,oDAAqD;AAA7C,4FAAA,EAAE,OAAA;AAAE,gGAAA,MAAM,OAAA;AAClB,oDAAqD;AAA7C,4FAAA,EAAE,OAAA;AAAE,gGAAA,MAAM,OAAA;AAClB,oDAAqD;AAA7C,4FAAA,EAAE,OAAA;AAAE,gGAAA,MAAM,OAAA;AAClB,0DAAuD;AAA/C,sGAAA,SAAS,OAAA;AACjB,sDAAwD;AAAhD,8FAAA,GAAG,OAAA;AAAE,kGAAA,OAAO,OAAA;AACpB,oDAAqD;AAA7C,4FAAA,EAAE,OAAA;AAAE,gGAAA,MAAM,OAAA;AAClB,wDAA2D;AAAnD,gGAAA,IAAI,OAAA;AAAE,oGAAA,QAAQ,OAAA;AACtB,sDAAwD;AAAhD,8FAAA,GAAG,OAAA;AAAE,kGAAA,OAAO,OAAA;AACpB,wDAAqD;AAA7C,oGAAA,QAAQ,OAAA;AAChB,0DAA8D;AAAtD,kGAAA,KAAK,OAAA;AAAE,sGAAA,SAAS,OAAA;AAExB,kFAA+E;AAAvE,8HAAA,qBAAqB,OAAA;AAC7B,8DAA2D;AAAnD,0GAAA,WAAW,OAAA;AAEnB,yFAAsF;AAA9E,sIAAA,yBAAyB,OAAA","file":"browser.js","sourcesContent":["// conditions\nexport {IExpr} from './libs/descriptors/IExpr';\nexport {ExprDesc} from './libs/descriptors/ExprDesc';\nexport {OpDesc} from './libs/descriptors/OpDesc';\nexport {In, InDesc} from './libs/descriptors/InDesc';\nexport {And, AndDesc} from './libs/descriptors/AndDesc';\nexport {Or, OrDesc} from './libs/descriptors/OrDesc';\nexport {Eq, EqDesc} from './libs/descriptors/EqDesc';\nexport {Ge, GeDesc} from './libs/descriptors/GeDesc';\nexport {GroupDesc} from './libs/descriptors/GroupDesc';\nexport {Key, KeyDesc} from './libs/descriptors/KeyDesc';\nexport {Le, LeDesc} from './libs/descriptors/LeDesc';\nexport {Like, LikeDesc} from './libs/descriptors/LikeDesc';\nexport {Neq, NeqDesc} from './libs/descriptors/NeqDesc';\nexport {Selector} from './libs/descriptors/Selector';\nexport {Value, ValueDesc} from './libs/descriptors/ValueDesc';\n\nexport {ExpressionInterpreter} from './libs/expressions/ExpressionInterpreter';\nexport {Expressions} from './libs/expressions/Expressions';\n\nexport {ExpressionValidationError} from './libs/exceptions/ExpressionValidationError';\n"],"sourceRoot":"."}
|
package/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAA0B","file":"index.js","sourcesContent":["export * from './browser';\n"],"sourceRoot":"."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/libs/descriptors/AndDesc.ts"],"names":[],"mappings":";;;AAAA,4BAA4B;AAC5B,2CAAsC;AAKtC,MAAa,OAAQ,SAAQ,qBAAS;IAKpC,YAAY,GAAG,MAAkB;QAC/B,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC;QAJV,SAAI,GAAU,KAAK,CAAC;IAK7B,CAAC;IAED,MAAM,CAAC,MAAW;QAChB,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACzD,OAAO,UAAU,MAAW;YAC1B,KAAK,IAAI,EAAE,IAAI,MAAM,EAAE;gBACrB,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;oBACf,OAAO,KAAK,CAAC;iBACd;aACF;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAA;IACH,CAAC;IAED,GAAG,CAAC,MAAW,EAAE,SAAc,EAAE;QAC/B,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9D,IAAI,CAAC,GAAQ,EAAE,CAAC;QAChB,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;QACnB,OAAO,CAAC,CAAC;IACX,CAAC;CAEF;AA5BD,0BA4BC;AAID,SAAgB,GAAG,CAAC,GAAG,MAAkB;IACvC,OAAO,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;AAChC,CAAC;AAFD,kBAEC","file":"AndDesc.js","sourcesContent":["import * as _ from \"lodash\";\nimport {GroupDesc} from \"./GroupDesc\";\nimport {ExprDesc} from \"./ExprDesc\";\n\n\n\nexport class AndDesc extends GroupDesc {\n\n readonly type:string = 'and';\n\n\n constructor(...values: ExprDesc[]) {\n super(...values);\n }\n\n lookup(source: any): (target: any) => boolean {\n const checks = _.map(this.values, v => v.lookup(source));\n return function (target: any): boolean {\n for (let fn of checks) {\n if (!fn(target)) {\n return false;\n }\n }\n return true;\n }\n }\n\n for(source: any, keyMap: any = {}): any {\n const checks = _.map(this.values, v => v.for(source, keyMap));\n let c: any = {};\n c['$and'] = checks;\n return c;\n }\n\n}\n\n\n\nexport function And(...values: ExprDesc[]) {\n return new AndDesc(...values);\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/libs/descriptors/EqDesc.ts"],"names":[],"mappings":";;;AAAA,4BAA4B;AAI5B,uCAAkC;AAElC,qCAAgC;AAGhC,MAAa,MAAO,SAAQ,eAAM;IAEhC,YAAY,GAAqB,EAAE,KAAe;QAChD,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAFX,SAAI,GAAU,IAAI,CAAC;IAG5B,CAAC;IAED,MAAM,CAAC,MAAW;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,YAAY,iBAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAa,IAAI,CAAC,KAAM,CAAC,KAAK,CAAC,CAAC;QAC9G,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,OAAO,UAAU,MAAW;YAC1B,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC;QAC9B,CAAC,CAAA;IACH,CAAC;IAED,GAAG,CAAC,MAAW,EAAE,SAAc,EAAE;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,YAAY,iBAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAa,IAAI,CAAC,KAAM,CAAC,KAAK,CAAC,CAAC;QAC9G,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,GAAQ,EAAE,CAAC;QAChB,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACf,OAAO,CAAC,CAAC;IACX,CAAC;CAEF;AAtBD,wBAsBC;AAED,SAAgB,EAAE,CAAC,GAAqB,EAAE,KAAe;IACvD,OAAO,IAAI,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC;AAFD,gBAEC","file":"EqDesc.js","sourcesContent":["import * as _ from \"lodash\";\n\n\nimport {Selector} from \"./Selector\";\nimport {KeyDesc} from \"./KeyDesc\";\nimport {ValueDesc} from \"./ValueDesc\";\nimport {OpDesc} from \"./OpDesc\";\n\n\nexport class EqDesc extends OpDesc {\n readonly type:string = 'eq';\n constructor(key: string | KeyDesc, value: Selector) {\n super(key, value);\n }\n\n lookup(source: any): (target: any) => boolean {\n const value = this.value instanceof KeyDesc ? source[this.value.key] : _.clone((<ValueDesc>this.value).value);\n const key = this.key;\n return function (target: any) {\n return target[key] == value;\n }\n }\n\n for(source: any, keyMap: any = {}): any {\n const value = this.value instanceof KeyDesc ? source[this.value.key] : _.clone((<ValueDesc>this.value).value);\n const key = _.get(keyMap, this.key, this.key);\n let c: any = {};\n c[key] = value;\n return c;\n }\n\n}\n\nexport function Eq(key: string | KeyDesc, value: Selector) {\n return new EqDesc(key, value);\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/libs/descriptors/ExprDesc.ts"],"names":[],"mappings":"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","file":"ExprDesc.js","sourcesContent":["import {IExpr} from './IExpr';\nimport * as _ from 'lodash';\nimport {KeyDesc} from './KeyDesc';\nimport {NotSupportedError, NotYetImplementedError} from '@allgemein/base';\n\nimport {ValueDesc} from './ValueDesc';\nimport {IClassRef, ILookupRegistry} from '@allgemein/schema-api';\nimport {ExpressionValidationError} from '../exceptions/ExpressionValidationError';\n\n\nexport class ExprDesc implements IExpr {\n\n readonly type: string = 'cond';\n\n private __key?: any;\n\n public get key(): any {\n return this.__key;\n }\n\n public set key(value: any) {\n this.__key = value;\n }\n\n value?: any;\n\n values?: any;\n\n isOp() {\n return false;\n }\n\n isGroup() {\n return false;\n }\n\n getSourceKeys(): string[] {\n let keys: string[] = [];\n if (this.isOp()) {\n keys.push(this.key);\n /*\n let childKeys = this.value.getSourceKeys();\n if(!_.isEmpty(childKeys)){\n keys = _.concat(keys, childKeys);\n }*/\n } else if (this.isGroup()) {\n keys = _.concat(keys, ..._.map(this.values, v => v.getSourceKeys()));\n }\n return _.uniq(keys);\n }\n\n\n getTargetKeys() {\n let keys: string[] = [];\n if (this.isOp()) {\n if (this.value instanceof KeyDesc) {\n keys.push(this.value.key);\n }\n } else if (this.isGroup()) {\n keys = _.concat(keys, ..._.map(this.values, v => v.getTargetKeys()));\n }\n return _.uniq(keys);\n }\n\n\n applyOn(target: any, source: any, force: boolean = false) {\n if (this.type == 'eq') {\n if (!_.has(target, this.key) || false) {\n if (this.value instanceof ValueDesc) {\n target[this.key] = this.value.value;\n } else if (this.value instanceof KeyDesc) {\n target[this.key] = source[this.value.key];\n } else {\n throw new NotYetImplementedError();\n }\n }\n } else if (this.type == 'and') {\n _.map(this.values, v => v.applyOn(target, source, force));\n } else if (this.type == 'or') {\n _.map(this.values, v => v.applyOn(target, source, force));\n } else {\n throw new NotYetImplementedError();\n }\n }\n\n\n applyReverseOn(target: any, source: any, force: boolean = false) {\n if (this.type == 'eq') {\n if (!_.has(target, this.key) || false) {\n if (this.value instanceof KeyDesc) {\n target[this.value.key] = source[this.key];\n } else {\n throw new NotYetImplementedError();\n }\n }\n } else if (this.type == 'and') {\n _.map(this.values, v => v.applyReverseOn(target, source, force));\n } else if (this.type == 'or') {\n _.map(this.values, v => v.applyReverseOn(target, source, force));\n } else {\n throw new NotYetImplementedError();\n }\n }\n\n\n /**\n * Returns key-value map of all key and referenced key or values\n * (sometimes needed for join definitions).\n */\n getMap() {\n let map: any = {};\n if (this.type == 'eq') {\n if (this.value instanceof KeyDesc) {\n map[this.key] = this.value.key;\n } else if (this.value instanceof ValueDesc) {\n map[this.key] = '\\'' + this.value.value + '\\'';\n } else {\n throw new NotYetImplementedError();\n }\n } else if (this.type == 'and') {\n _.merge(map, ..._.map(this.values, v => v.getMap()));\n } else if (this.type == 'or') {\n _.merge(map, ..._.map(this.values, v => v.getMap()));\n } else {\n throw new NotYetImplementedError();\n }\n return map;\n }\n\n\n lookup(source: any): (target: any) => boolean {\n throw new NotYetImplementedError();\n }\n\n for(target: any, keyMap: any = {}): any {\n throw new NotYetImplementedError();\n }\n\n\n /**\n * Test if conditions matching class properties and references\n */\n test(sourceRef: IClassRef, errors: string[] = []) {\n let sourceKeys = this.getSourceKeys();\n for (let sourceKey of sourceKeys) {\n let keyChain = sourceKey.split('.');\n let root = sourceRef;\n while (keyChain.length > 0) {\n let _k = keyChain.shift();\n let p = root.getPropertyRef(_k);\n if (p) {\n if (p.isReference()) {\n root = p.getTargetRef();\n }\n } else {\n errors.push('key ' + _k + ' is no property of ' + root.name);\n }\n }\n }\n return errors.length == 0;\n }\n\n /**\n * Validate if defined keys match source and target element\n * - target = referred\n * - source = referrer\n */\n validate(registry: ILookupRegistry, targetRef: IClassRef, sourceRef?: IClassRef, throwing: boolean = true) {\n let sourceKeys = this.getSourceKeys();\n let targetKeys = this.getTargetKeys();\n\n let targetProps = targetRef.getPropertyRefs().map(p => p.name).filter(pn => sourceKeys.indexOf(pn) !== -1);\n let sourceProps = sourceRef ? sourceRef.getPropertyRefs().map(p => p.name).filter(pn => targetKeys.indexOf(pn) !== -1) : [];\n if (sourceKeys.length != targetProps.length) {\n if (throwing) {\n throw new ExpressionValidationError('referred key(s) ' + sourceKeys.filter(k => targetProps.indexOf(k) === -1).join(',') + ' not in sourceRef');\n }\n return false;\n }\n if (targetKeys.length != sourceProps.length) {\n if (throwing) {\n throw new ExpressionValidationError('referrer key(s) ' + targetKeys.filter(k => sourceProps.indexOf(k) === -1).join(',') + ' not in targetRef');\n }\n return false;\n }\n return true;\n }\n\n\n toJson() {\n if (this.isGroup()) {\n let res: any = {};\n res['$' + this.type] = _.map(this.values, x => x.toJson());\n return res;\n } else if (this.isOp()) {\n let res: any = {};\n res[this.key] = {};\n res[this.key]['$' + this.type] = this.value.toJson ? this.value.toJson() : this.value;\n return res;\n } else {\n throw new NotSupportedError('toJson to this condition not supported');\n }\n\n }\n\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/libs/descriptors/GeDesc.ts"],"names":[],"mappings":";;;AAAA,4BAA4B;AAG5B,uCAAkC;AAElC,qCAAgC;AAGhC,MAAa,MAAO,SAAQ,eAAM;IAGhC,YAAY,GAAqB,EAAE,KAAe;QAChD,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAHX,SAAI,GAAW,IAAI,CAAC;IAI7B,CAAC;IAED,MAAM,CAAC,MAAW;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,YAAY,iBAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAa,IAAI,CAAC,KAAM,CAAC,KAAK,CAAC,CAAC;QAC9G,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,OAAO,UAAU,MAAW;YAC1B,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC;QAC9B,CAAC,CAAA;IACH,CAAC;CACF;AAdD,wBAcC;AAGD,SAAgB,EAAE,CAAC,GAAqB,EAAE,KAAe;IACvD,OAAO,IAAI,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC;AAFD,gBAEC","file":"GeDesc.js","sourcesContent":["import * as _ from \"lodash\";\n\nimport {Selector} from \"./Selector\";\nimport {KeyDesc} from \"./KeyDesc\";\nimport {ValueDesc} from \"./ValueDesc\";\nimport {OpDesc} from \"./OpDesc\";\n\n\nexport class GeDesc extends OpDesc {\n readonly type: string = 'ge';\n\n constructor(key: string | KeyDesc, value: Selector) {\n super(key, value);\n }\n\n lookup(source: any): (target: any) => boolean {\n const value = this.value instanceof KeyDesc ? source[this.value.key] : _.clone((<ValueDesc>this.value).value);\n const key = this.key;\n return function (target: any) {\n return target[key] >= value;\n }\n }\n}\n\n\nexport function Ge(key: string | KeyDesc, value: Selector) {\n return new GeDesc(key, value);\n}\n\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/libs/descriptors/GroupDesc.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AAEpC,MAAa,SAAU,SAAQ,mBAAQ;IAQrC,YAAY,GAAG,MAAkB;QAC/B,KAAK,EAAE,CAAC;QAPD,SAAI,GAAU,OAAO,CAAC;QAE/B,WAAM,GAAe,EAAE,CAAC;QAMtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAGD,IAAI;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC;IACd,CAAC;CAEF;AAtBD,8BAsBC","file":"GroupDesc.js","sourcesContent":["import {ExprDesc} from \"./ExprDesc\";\n\nexport class GroupDesc extends ExprDesc {\n\n readonly type:string = 'group';\n\n values: ExprDesc[] = [];\n\n id?:number;\n\n constructor(...values: ExprDesc[]) {\n super();\n this.values = values;\n }\n\n\n isOp(){\n return false;\n }\n\n isGroup(){\n return true;\n }\n\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/libs/descriptors/GtDesc.ts"],"names":[],"mappings":";;;AAAA,4BAA4B;AAG5B,uCAAkC;AAElC,qCAAgC;AAGhC,MAAa,MAAO,SAAQ,eAAM;IAGhC,YAAY,GAAqB,EAAE,KAAe;QAChD,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAHX,SAAI,GAAW,IAAI,CAAC;IAI7B,CAAC;IAED,MAAM,CAAC,MAAW;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,YAAY,iBAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAa,IAAI,CAAC,KAAM,CAAC,KAAK,CAAC,CAAC;QAC9G,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,OAAO,UAAU,MAAW;YAC1B,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC7B,CAAC,CAAA;IACH,CAAC;CACF;AAdD,wBAcC;AAGD,SAAgB,EAAE,CAAC,GAAqB,EAAE,KAAe;IACvD,OAAO,IAAI,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC;AAFD,gBAEC","file":"GtDesc.js","sourcesContent":["import * as _ from \"lodash\";\n\nimport {Selector} from \"./Selector\";\nimport {KeyDesc} from \"./KeyDesc\";\nimport {ValueDesc} from \"./ValueDesc\";\nimport {OpDesc} from \"./OpDesc\";\n\n\nexport class GtDesc extends OpDesc {\n readonly type: string = 'gt';\n\n constructor(key: string | KeyDesc, value: Selector) {\n super(key, value);\n }\n\n lookup(source: any): (target: any) => boolean {\n const value = this.value instanceof KeyDesc ? source[this.value.key] : _.clone((<ValueDesc>this.value).value);\n const key = this.key;\n return function (target: any) {\n return target[key] > value;\n }\n }\n}\n\n\nexport function Gt(key: string | KeyDesc, value: Selector) {\n return new GtDesc(key, value);\n}\n\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/libs/descriptors/IExpr.ts"],"names":[],"mappings":"","file":"IExpr.js","sourcesContent":["\n\nexport interface IExpr {\n readonly type:string;\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/libs/descriptors/InDesc.ts"],"names":[],"mappings":";;;AAAA,4BAA4B;AAG5B,uCAAkC;AAElC,qCAAgC;AAGhC,MAAa,MAAO,SAAQ,eAAM;IAGhC,YAAY,GAAqB,EAAE,KAAe;QAChD,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAHX,SAAI,GAAW,IAAI,CAAC;IAI7B,CAAC;IAED,MAAM,CAAC,MAAW;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,YAAY,iBAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAa,IAAI,CAAC,KAAM,CAAC,KAAK,CAAC,CAAC;QAC9G,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,OAAO,UAAU,MAAW;YAC1B,OAAO,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;QACnE,CAAC,CAAA;IACH,CAAC;CACF;AAdD,wBAcC;AAGD,SAAgB,EAAE,CAAC,GAAqB,EAAE,KAAe;IACvD,OAAO,IAAI,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC;AAFD,gBAEC","file":"InDesc.js","sourcesContent":["import * as _ from \"lodash\";\n\nimport {Selector} from \"./Selector\";\nimport {KeyDesc} from \"./KeyDesc\";\nimport {ValueDesc} from \"./ValueDesc\";\nimport {OpDesc} from \"./OpDesc\";\n\n\nexport class InDesc extends OpDesc {\n readonly type: string = 'in';\n\n constructor(key: string | KeyDesc, value: Selector) {\n super(key, value);\n }\n\n lookup(source: any): (target: any) => boolean {\n const value = this.value instanceof KeyDesc ? source[this.value.key] : _.clone((<ValueDesc>this.value).value);\n const key = this.key;\n return function (target: any) {\n return _.intersection(target[key], value).length == value.length;\n }\n }\n}\n\n\nexport function In(key: string | KeyDesc, value: Selector) {\n return new InDesc(key, value);\n}\n\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/libs/descriptors/KeyDesc.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AAGpC,MAAa,OAAQ,SAAQ,mBAAQ;IAInC,YAAY,GAAW;QACrB,KAAK,EAAE,CAAC;QAJD,SAAI,GAAW,KAAK,CAAC;QAK5B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAChB,CAAC;IAED,MAAM;QACJ,OAAO,EAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAC,CAAC;IAC1B,CAAC;CAEF;AAbD,0BAaC;AAED;;GAEG;AACH,SAAgB,GAAG,CAAC,CAAS;IAC3B,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;AACxB,CAAC;AAFD,kBAEC","file":"KeyDesc.js","sourcesContent":["import {Selector} from \"./Selector\";\n\n\nexport class KeyDesc extends Selector {\n readonly type: string = 'key';\n readonly key: string;\n\n constructor(key: string) {\n super();\n this.key = key\n }\n\n toJson() {\n return {$key: this.key};\n }\n\n}\n\n/**\n * Key\n */\nexport function Key(k: string) {\n return new KeyDesc(k);\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/libs/descriptors/LeDesc.ts"],"names":[],"mappings":";;;AAAA,4BAA4B;AAK5B,uCAAkC;AAClC,qCAAgC;AAGhC,MAAa,MAAO,SAAQ,eAAM;IAGhC,YAAY,GAAqB,EAAE,KAAe;QAChD,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAHX,SAAI,GAAW,IAAI,CAAC;IAI7B,CAAC;IAED,MAAM,CAAC,MAAW;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,YAAY,iBAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAa,IAAI,CAAC,KAAM,CAAC,KAAK,CAAC,CAAC;QAC9G,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,OAAO,UAAU,MAAW;YAC1B,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC;QAC9B,CAAC,CAAA;IACH,CAAC;CACF;AAdD,wBAcC;AAED,SAAgB,EAAE,CAAC,GAAqB,EAAE,KAAe;IACvD,OAAO,IAAI,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC;AAFD,gBAEC","file":"LeDesc.js","sourcesContent":["import * as _ from \"lodash\";\n\n\nimport {Selector} from \"./Selector\";\nimport {ValueDesc} from \"./ValueDesc\";\nimport {KeyDesc} from \"./KeyDesc\";\nimport {OpDesc} from \"./OpDesc\";\n\n\nexport class LeDesc extends OpDesc {\n readonly type: string = 'le';\n\n constructor(key: string | KeyDesc, value: Selector) {\n super(key, value);\n }\n\n lookup(source: any): (target: any) => boolean {\n const value = this.value instanceof KeyDesc ? source[this.value.key] : _.clone((<ValueDesc>this.value).value);\n const key = this.key;\n return function (target: any) {\n return target[key] <= value;\n }\n }\n}\n\nexport function Le(key: string | KeyDesc, value: Selector) {\n return new LeDesc(key, value);\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/libs/descriptors/LikeDesc.ts"],"names":[],"mappings":";;;AAAA,4BAA4B;AAI5B,uCAAkC;AAElC,qCAAgC;AAGhC,MAAa,QAAS,SAAQ,eAAM;IAGlC,YAAY,GAAqB,EAAE,KAAe;QAChD,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAHX,SAAI,GAAW,MAAM,CAAC;IAI/B,CAAC;IAED,MAAM,CAAC,MAAW;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,YAAY,iBAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAa,IAAI,CAAC,KAAM,CAAC,KAAK,CAAC,CAAC;QAC9G,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,OAAO,UAAU,MAAW;YAC1B,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACnE,CAAC,CAAA;IACH,CAAC;IAED,GAAG,CAAC,MAAW,EAAE,SAAc,EAAE;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,YAAY,iBAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAa,IAAI,CAAC,KAAM,CAAC,KAAK,CAAC,CAAC;QAC9G,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,GAAQ,EAAE,CAAC;QAChB,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACf,OAAO,CAAC,CAAC;IACX,CAAC;CAEF;AAvBD,4BAuBC;AAED,SAAgB,IAAI,CAAC,GAAqB,EAAE,KAAe;IACzD,OAAO,IAAI,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAClC,CAAC;AAFD,oBAEC","file":"LikeDesc.js","sourcesContent":["import * as _ from \"lodash\";\n\n\nimport {Selector} from \"./Selector\";\nimport {KeyDesc} from \"./KeyDesc\";\nimport {ValueDesc} from \"./ValueDesc\";\nimport {OpDesc} from \"./OpDesc\";\n\n\nexport class LikeDesc extends OpDesc {\n readonly type: string = 'like';\n\n constructor(key: string | KeyDesc, value: Selector) {\n super(key, value);\n }\n\n lookup(source: any): (target: any) => boolean {\n const value = this.value instanceof KeyDesc ? source[this.value.key] : _.clone((<ValueDesc>this.value).value);\n const key = this.key;\n return function (target: any) {\n return (new RegExp(value.replace('%%', '.*'))).test(target[key]);\n }\n }\n\n for(source: any, keyMap: any = {}): any {\n const value = this.value instanceof KeyDesc ? source[this.value.key] : _.clone((<ValueDesc>this.value).value);\n const key = _.get(keyMap, this.key, this.key);\n let c: any = {};\n c[key] = value;\n return c;\n }\n\n}\n\nexport function Like(key: string | KeyDesc, value: Selector) {\n return new LikeDesc(key, value);\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/libs/descriptors/LtDesc.ts"],"names":[],"mappings":";;;AAAA,4BAA4B;AAK5B,uCAAkC;AAClC,qCAAgC;AAGhC,MAAa,MAAO,SAAQ,eAAM;IAGhC,YAAY,GAAqB,EAAE,KAAe;QAChD,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAHX,SAAI,GAAW,IAAI,CAAC;IAI7B,CAAC;IAED,MAAM,CAAC,MAAW;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,YAAY,iBAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAa,IAAI,CAAC,KAAM,CAAC,KAAK,CAAC,CAAC;QAC9G,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,OAAO,UAAU,MAAW;YAC1B,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC7B,CAAC,CAAA;IACH,CAAC;CACF;AAdD,wBAcC;AAED,SAAgB,EAAE,CAAC,GAAqB,EAAE,KAAe;IACvD,OAAO,IAAI,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC;AAFD,gBAEC","file":"LtDesc.js","sourcesContent":["import * as _ from \"lodash\";\n\n\nimport {Selector} from \"./Selector\";\nimport {ValueDesc} from \"./ValueDesc\";\nimport {KeyDesc} from \"./KeyDesc\";\nimport {OpDesc} from \"./OpDesc\";\n\n\nexport class LtDesc extends OpDesc {\n readonly type: string = 'lt';\n\n constructor(key: string | KeyDesc, value: Selector) {\n super(key, value);\n }\n\n lookup(source: any): (target: any) => boolean {\n const value = this.value instanceof KeyDesc ? source[this.value.key] : _.clone((<ValueDesc>this.value).value);\n const key = this.key;\n return function (target: any) {\n return target[key] < value;\n }\n }\n}\n\nexport function Lt(key: string | KeyDesc, value: Selector) {\n return new LtDesc(key, value);\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/libs/descriptors/NeqDesc.ts"],"names":[],"mappings":";;;AAAA,4BAA4B;AAI5B,uCAAkC;AAElC,qCAAgC;AAGhC,MAAa,OAAQ,SAAQ,eAAM;IAEjC,YAAY,GAAqB,EAAE,KAAe;QAChD,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAFX,SAAI,GAAU,IAAI,CAAC;IAG5B,CAAC;IAED,MAAM,CAAC,MAAW;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,YAAY,iBAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAa,IAAI,CAAC,KAAM,CAAC,KAAK,CAAC,CAAC;QAC9G,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,OAAO,UAAU,MAAW;YAC1B,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC;QAC9B,CAAC,CAAA;IACH,CAAC;CAEF;AAdD,0BAcC;AAED,SAAgB,GAAG,CAAC,GAAqB,EAAE,KAAe;IACxD,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACjC,CAAC;AAFD,kBAEC","file":"NeqDesc.js","sourcesContent":["import * as _ from \"lodash\";\n\n\nimport {Selector} from \"./Selector\";\nimport {KeyDesc} from \"./KeyDesc\";\nimport {ValueDesc} from \"./ValueDesc\";\nimport {OpDesc} from \"./OpDesc\";\n\n\nexport class NeqDesc extends OpDesc {\n readonly type:string = 'ne';\n constructor(key: string | KeyDesc, value: Selector) {\n super(key, value);\n }\n\n lookup(source: any): (target: any) => boolean {\n const value = this.value instanceof KeyDesc ? source[this.value.key] : _.clone((<ValueDesc>this.value).value);\n const key = this.key;\n return function (target: any) {\n return target[key] != value;\n }\n }\n\n}\n\nexport function Neq(key: string | KeyDesc, value: Selector) {\n return new NeqDesc(key, value);\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/libs/descriptors/OpDesc.ts"],"names":[],"mappings":";;;AAAA,4BAA4B;AAG5B,yCAAoC;AAIpC,MAAa,MAAO,SAAQ,mBAAQ;IAQlC,YAAY,GAAqB,EAAE,KAAe;QAChD,KAAK,EAAE,CAAC;QAPD,SAAI,GAAW,IAAI,CAAC;QAQ3B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,IAAI,GAAG;QACL,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IAC3D,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,OAAO,KAAK,CAAC;IACf,CAAC;CAGF;AA3BD,wBA2BC","file":"OpDesc.js","sourcesContent":["import * as _ from 'lodash';\nimport {Selector} from \"./Selector\";\n\nimport {ExprDesc} from \"./ExprDesc\";\nimport {KeyDesc} from \"./KeyDesc\";\n\n\nexport class OpDesc extends ExprDesc {\n\n readonly type: string = 'op';\n\n _key: string | KeyDesc;\n\n value: Selector;\n\n constructor(key: string | KeyDesc, value: Selector) {\n super();\n this._key = key;\n this.value = value;\n }\n\n get key(){\n return _.isString(this._key) ? this._key : this._key.key;\n }\n\n isOp(){\n return true;\n }\n\n isGroup(){\n return false;\n }\n\n\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/libs/descriptors/OrDesc.ts"],"names":[],"mappings":";;;AAAA,4BAA4B;AAC5B,2CAAsC;AAKtC,MAAa,MAAO,SAAQ,qBAAS;IAEnC,YAAY,GAAG,MAAkB;QAC/B,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC;QAFV,SAAI,GAAU,IAAI,CAAC;IAG5B,CAAC;IAED,MAAM,CAAC,MAAW;QAChB,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACzD,OAAO,UAAU,MAAW;YAC1B,KAAK,IAAI,EAAE,IAAI,MAAM,EAAE;gBACrB,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE;oBACd,OAAO,IAAI,CAAC;iBACb;aACF;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAA;IACH,CAAC;IAED,GAAG,CAAC,MAAW,EAAE,SAAc,EAAE;QAC/B,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9D,IAAI,CAAC,GAAQ,EAAE,CAAC;QAChB,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;QAClB,OAAO,CAAC,CAAC;IACX,CAAC;CAEF;AAzBD,wBAyBC;AAED,SAAgB,EAAE,CAAC,GAAG,MAAkB;IACtC,OAAO,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;AAC/B,CAAC;AAFD,gBAEC","file":"OrDesc.js","sourcesContent":["import * as _ from \"lodash\";\nimport {GroupDesc} from \"./GroupDesc\";\nimport {ExprDesc} from \"./ExprDesc\";\n\n\n\nexport class OrDesc extends GroupDesc {\n readonly type:string = 'or';\n constructor(...values: ExprDesc[]) {\n super(...values);\n }\n\n lookup(source: any): (target: any) => boolean {\n const checks = _.map(this.values, v => v.lookup(source));\n return function (target: any): boolean {\n for (let fn of checks) {\n if (fn(target)) {\n return true;\n }\n }\n return false;\n }\n }\n\n for(source: any, keyMap: any = {}): any {\n const checks = _.map(this.values, v => v.for(source, keyMap));\n let c: any = {};\n c['$or'] = checks;\n return c;\n }\n\n}\n\nexport function Or(...values: ExprDesc[]) {\n return new OrDesc(...values);\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/libs/descriptors/Selector.ts"],"names":[],"mappings":";;;AAEA,MAAa,QAAQ;IAArB;QACW,SAAI,GAAU,UAAU,CAAC;IACpC,CAAC;CAAA;AAFD,4BAEC","file":"Selector.js","sourcesContent":["import {IExpr} from \"./IExpr\";\n\nexport class Selector implements IExpr {\n readonly type:string = 'selector';\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/libs/descriptors/ValueDesc.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AAEpC,MAAa,SAAU,SAAQ,mBAAQ;IAIrC,YAAY,KAAsB;QAChC,KAAK,EAAE,CAAC;QAJD,SAAI,GAAU,OAAO,CAAC;QAK7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CAEF;AAbD,8BAaC;AAGD;;;GAGG;AACH,SAAgB,KAAK,CAAC,CAAkB;IACtC,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;AAC1B,CAAC;AAFD,sBAEC","file":"ValueDesc.js","sourcesContent":["import {Selector} from \"./Selector\";\n\nexport class ValueDesc extends Selector {\n readonly type:string = 'value';\n readonly value: string | number;\n\n constructor(value: string | number) {\n super();\n this.value = value;\n }\n\n toJson(){\n return this.value;\n }\n\n}\n\n\n/**\n * Value\n *\n */\nexport function Value(v: string | number) {\n return new ValueDesc(v);\n}\n\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/libs/exceptions/ExpressionValidationError.ts"],"names":[],"mappings":";;;AAEA,MAAa,yBAA0B,SAAQ,KAAK;IAElD,YAAY,GAAU;QACpB,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,yBAAyB,CAAC,SAAS,CAAC,CAAC;IACnE,CAAC;CAEF;AAPD,8DAOC","file":"ExpressionValidationError.js","sourcesContent":["\n\nexport class ExpressionValidationError extends Error {\n\n constructor(msg:string){\n super(msg);\n Object.setPrototypeOf(this, ExpressionValidationError.prototype);\n }\n\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/libs/expressions/ExpressionInterpreter.ts"],"names":[],"mappings":"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","file":"ExpressionInterpreter.js","sourcesContent":["import * as _ from 'lodash';\nimport {Like} from \"../descriptors/LikeDesc\";\nimport {Lt} from \"../descriptors/LtDesc\";\nimport {Gt} from \"../descriptors/GtDesc\";\nimport {In} from \"../descriptors/InDesc\";\nimport {Neq} from \"../descriptors/NeqDesc\";\nimport {ExprDesc} from \"../descriptors/ExprDesc\";\nimport {Eq} from \"../descriptors/EqDesc\";\nimport {Le} from \"../descriptors/LeDesc\";\nimport {Key} from \"../descriptors/KeyDesc\";\nimport {Value} from \"../descriptors/ValueDesc\";\nimport {Ge} from \"../descriptors/GeDesc\";\nimport {GroupDesc} from \"../descriptors/GroupDesc\";\nimport {And} from \"../descriptors/AndDesc\";\nimport {Or} from \"../descriptors/OrDesc\";\n\n\nexport class ExpressionInterpreter {\n\n //rootEntityDef:EntityDef;\n\n groupLevel: number = 0;\n\n ops: any[] = [\n {\n name: 'visitGroup',\n regex: /\\(/,\n method: this.visitGroup,\n after: [null, 'visitGroup', 'onBool']\n },\n {\n name: 'leaveGroup',\n regex: /\\)/,\n method: this.leaveGroup,\n condition: () => {\n return this.groupLevel > 0;\n },\n after: ['onValue', 'leaveGroup']\n },\n {\n name: 'onKey',\n regex: /('[^']+')|(\"[^\"]+\")|(\\w|\\.|\\d)+/,\n method: this.onKey,\n skipIndex: 3,\n after: [null, 'visitGroup', 'onBool']\n },\n {\n name: 'onBool',\n regex: / (and|AND|or|OR) /,\n method: this.onBool,\n skipIndex: 1,\n after: ['leaveGroup', 'onValue']\n },\n {\n name: 'onOperator',\n regex: /(>=|<=|<>|>|<|=| in | IN | like | LIKE )/,\n method: this.onOperator,\n skipIndex: 1,\n after: ['onKey']\n },\n {\n name: 'onValue',\n regex: /('[^']*')|(\"[^\"]*\")|\\d+|\\d+.\\d+|(\\(((('[^']*')|(\"[^\"]*\")|\\d+|\\d+.\\d+)\\s*,?\\s*)+\\))/,\n method: this.onValue,\n skipIndex: 7,\n after: ['onOperator']\n },\n ];\n\n res: ExprDesc[] = [];\n\n queue: any[] = [];\n\n regex: RegExp;\n\n constructor() {\n //this.rootEntityDef = entityDef;\n }\n\n\n interprete(str: string) {\n this.fragmentize(str);\n return _.first(this.res);\n }\n\n\n fragmentize(str: string) {\n let lastState = _.last(this.queue);\n\n let currentOps = this.ops.filter(x => {\n let _true = true;\n if (x.condition) {\n _true = x.condition();\n }\n if (_.isEmpty(x.after)) {\n return _true;\n }\n\n if (!lastState) {\n return _true && x.after.indexOf(null) > -1\n } else {\n return _true && x.after.indexOf(lastState.state) > -1\n }\n\n });\n //console.log(currentOps.map(x => x.name));\n let inc = 0;\n let map: any = {};\n currentOps.map((x, index) => {\n map[inc] = index;\n inc = x.skipIndex ? inc + x.skipIndex : inc + 1;\n });\n\n const regex = new RegExp('^\\\\s*' + currentOps.map(x => '(' + x.regex.source + ')').join('|'), 'gim');\n let arr = regex.exec(str);\n if (arr) {\n let index = _.findIndex(arr, x => !_.isUndefined(x), 1) - 1;\n\n if (index > -1) {\n let opId = map[index]\n let op = currentOps[opId];\n // console.log(map, regex, arr, regex.lastIndex,op.name);\n op.method.apply(this, [arr[index + 1], str]);\n const nextStr = str.substring(regex.lastIndex);\n if (!_.isEmpty(nextStr)) {\n this.fragmentize(nextStr);\n }\n } else {\n throw new Error('no match found at \"' + JSON.stringify(arr) + '\"');\n }\n } else {\n throw new Error('nothing found at \"' + str + '\" with regex '+regex.source);\n }\n }\n\n /*\n escape(x: string) {\n const specials = [\n '/', '.', '*', '+', '?', '|',\n '(', ')', '[', ']', '{', '}', '\\\\'\n ];\n const regex = new RegExp('(\\\\' + specials.join('|\\\\') + ')', 'gim');\n return x.replace(regex, '\\\\$1');\n }\n */\n\n onKey(match: string, str: string) {\n let key = match.replace(/^('|\")|('|\")$/g, '');\n this.queue.push({\n group: this.groupLevel,\n value: key,\n state: 'onKey'\n });\n\n }\n\n\n onOperator(match: string, str: string) {\n this.queue.push({\n group: this.groupLevel,\n value: match,\n state: 'onOperator'\n });\n }\n\n\n onValue(match: string, str: string) {\n let value: any;\n if (/^('|\")|('|\")$/.test(match)) {\n value = match.replace(/^('|\")|('|\")$/g, '');\n } else if (/^\\d+$/.test(match)) {\n value = parseInt(match);\n } else if (/^\\d+\\.\\d+$/.test(match)) {\n value = parseFloat(match);\n } else if (/^\\(.*\\)$/.test(match)) {\n value = match.replace(/^\\(|\\)$/g, '').split(',').map(x => x.trim())\n .map(x => {\n let value2: any = x;\n if (/^('|\")|('|\")$/.test(x)) {\n value2 = x.replace(/^('|\")|('|\")$/g, '');\n } else if (/^\\d+$/.test(x)) {\n value2 = parseInt(x);\n } else if (/^\\d+\\.\\d+$/.test(x)) {\n value2 = parseFloat(x);\n }\n return value2;\n });\n }\n\n\n let op = this.queue.pop();\n let key = this.queue.pop();\n\n\n let erg: ExprDesc;\n if (op.state == 'onOperator' && key && key.state == 'onKey') {\n switch (op.value.trim().toLowerCase()) {\n case '=':\n erg = Eq(Key(key.value), Value(value));\n break;\n case 'like':\n erg = Like(Key(key.value), Value(value));\n break;\n case '<=':\n erg = Le(Key(key.value), Value(value));\n break;\n case '>=':\n erg = Ge(Key(key.value), Value(value));\n break;\n case '<':\n erg = Lt(Key(key.value), Value(value));\n break;\n case '>':\n erg = Gt(Key(key.value), Value(value));\n break;\n case 'in':\n erg = In(Key(key.value), Value(value));\n break;\n case '<>':\n erg = Neq(Key(key.value), Value(value));\n break;\n default:\n throw new Error('operator not found');\n }\n } else {\n throw new Error('operator not found');\n }\n\n\n this.queue.push({\n group: this.groupLevel,\n value: value,\n state: 'onValue',\n op: op,\n key: key,\n desc: erg\n });\n\n\n let res = _.last(this.res);\n if (res instanceof GroupDesc) {\n res.values.push(erg);\n } else {\n this.res.push(erg);\n }\n }\n\n\n visitGroup() {\n this.groupLevel++;\n\n\n let groupDesc = new GroupDesc();\n groupDesc.id = this.groupLevel;\n this.res.push(groupDesc);\n\n this.queue.push({\n group: this.groupLevel,\n desc: groupDesc,\n state: 'visitGroup'\n });\n }\n\n\n leaveGroup() {\n\n let group = _.find(this.res, g => g instanceof GroupDesc ? g.id == this.groupLevel : false);\n if (group && group.type == 'group') {\n _.remove(this.res, g => g instanceof GroupDesc ? g.id == this.groupLevel : false)\n // embedded withotu bool\n let prevGid = this.groupLevel - 1;\n let prevGroup = _.find(this.res, g => g instanceof GroupDesc ? g.id == prevGid : false);\n if (prevGroup) {\n group.values.forEach((v: ExprDesc) => prevGroup.values.push(v));\n group.values = [];\n } else {\n throw new Error('cant find previous group to move values to ... ');\n }\n }\n\n this.queue.push({\n group: this.groupLevel,\n state: 'leaveGroup',\n desc: group\n });\n\n\n //this.\n\n this.groupLevel--;\n }\n\n onBool(match: string) {\n let bool = match.trim().toLocaleUpperCase();\n let last = this.res.pop();\n let group: GroupDesc;\n\n if (last instanceof GroupDesc && last.id == this.groupLevel && last.type.toLowerCase() == bool.toLowerCase()) {\n // DO NOTTING\n group = last;\n this.res.push(group);\n } else if (last instanceof GroupDesc && last.type == 'group') {\n // undefined\n switch (bool) {\n case 'AND':\n group = And(...last.values);\n break;\n case 'OR':\n group = Or(...last.values);\n break;\n }\n group.id = this.groupLevel;\n this.res.push(group);\n } else {\n switch (bool) {\n case 'AND':\n group = And(last);\n break;\n case 'OR':\n group = Or(last);\n break;\n }\n group.id = this.groupLevel;\n this.res.push(group);\n }\n\n this.queue.push({\n group: this.groupLevel,\n value: match.trim().toLocaleUpperCase(),\n state: 'onBool',\n desc: group\n });\n\n }\n\n\n}\n"],"sourceRoot":"../.."}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/libs/expressions/Expressions.ts"],"names":[],"mappings":"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","file":"Expressions.js","sourcesContent":["import * as _ from 'lodash';\nimport {ExprDesc} from '../descriptors/ExprDesc';\n\nimport {NotSupportedError, NotYetImplementedError} from '@allgemein/base';\nimport {In} from '../descriptors/InDesc';\nimport {Neq} from '../descriptors/NeqDesc';\nimport {Lt} from '../descriptors/LtDesc';\nimport {Gt} from '../descriptors/GtDesc';\nimport {And} from '../descriptors/AndDesc';\nimport {Eq} from '../descriptors/EqDesc';\nimport {Ge} from '../descriptors/GeDesc';\nimport {Key} from '../descriptors/KeyDesc';\nimport {Le} from '../descriptors/LeDesc';\nimport {Or} from '../descriptors/OrDesc';\nimport {Value} from '../descriptors/ValueDesc';\nimport {GroupDesc} from '../descriptors/GroupDesc';\nimport {ExpressionInterpreter} from './ExpressionInterpreter';\nimport {IClassRef, IEntityRef, IPropertyRef} from '@allgemein/schema-api';\n\n\nconst REGEX_ID = /^(([\\w_]+)=((\\d+)|(\\d+(\\.|\\,)\\d+)|\\'([^\\']*)\\'),?)$/;\nconst REGEX_ID_G = /^(([\\w_]+)=((\\d+)|(\\d+(\\.|\\,)\\d+)|\\'([^\\']*)\\'),?)$ /g;\n\nconst REGEX_ID_K = /^((\\d+)|(\\d+(\\.|\\,)\\d+),?)+$/;\nconst REGEX_ID_KG = /^((\\d+)|(\\d+(\\.|\\,)\\d+),?)+$/g;\n\nconst REGEX_ID_W = /^(\\'([^\\']*)\\',?)+$/;\n\nexport class Expressions {\n\n static parse(str: any): ExprDesc {\n if (_.isString(str)) {\n // check if JSON string\n try {\n let obj = JSON.parse(str.trim());\n return this.fromJson(obj);\n } catch (e) {\n try {\n let interpreter = new ExpressionInterpreter();\n return interpreter.interprete(str);\n } catch (e) {\n throw e;\n }\n }\n } else if (_.isPlainObject(str)) {\n return this.fromJson(str);\n } else {\n throw new NotSupportedError('object cant be interpreted to conditions, wrong format');\n }\n }\n\n\n //static validate(entityDef:EntityDef, condition:CondDesc)\n\n /*\n static fromJson(object: any): CondDesc {\n let cond: CondDesc;\n let q: any = [];\n Helper.walk(object, (data: WalkValues) => {\n console.log(data)\n let op: CondDesc = null;\n if (/^(\\$and|\\$or)$/.test(data.key) && _.isArray(data.value)) {\n console.log(data.key);\n\n if (data.key == '$and') {\n op = And()\n } else if (data.key == '$or') {\n op = Or()\n }\n (<any>data).cond = op;\n } else if (data.key.startsWith('$') && !_.isPlainObject(data.value)) {\n if (data.key == '$eq') {\n let value = null;\n if (_.isPlainObject(data.value)) {\n if (_.has(data.value, '$key')) {\n value = Key(data.value.key);\n } else {\n // ???\n throw new NotSupportedError('object given but without known operator')\n }\n } else {\n value = data.value;\n }\n\n\n }\n } else if (!data.key.startsWith('$')) {\n if (_.isPlainObject(data.value)) {\n\n } else {\n // eq k = v\n op = Eq(Key(data.key), Value(data.value));\n\n }\n }\n\n\n if (!cond) {\n cond = op;\n }\n });\n\n return cond;\n }\n */\n static fromJson(object: any, srcKey: string = null, parent: ExprDesc = null): ExprDesc {\n if (_.isArray(object)) {\n if (!parent || !(parent instanceof GroupDesc)) {\n parent = Or();\n }\n\n for (let obj of object) {\n let sub = this.fromJson(obj, null, parent);\n if (!(sub instanceof GroupDesc)) {\n parent.values.push(sub);\n }\n\n }\n\n return parent;\n } else if (_.isPlainObject(object)) {\n let keys = _.keys(object);\n let operator = keys.filter(k => k.startsWith('$'));\n if (keys.length == 1 && operator.length == 1) {\n let op = operator.shift();\n if (op == '$or' || op == '$and') {\n if (_.isArray(object[op])) {\n let desc = op == '$or' ? Or() : And();\n if (parent instanceof GroupDesc) {\n parent.values.push(desc);\n }\n return this.fromJson(object[op], null, desc);\n } else {\n throw new NotSupportedError('or|and must have an array as value ' + JSON.stringify(object, null, 2));\n }\n } else if (['$eq', '$le', '$lt', '$ge', '$gt', '$ne', '$like'].indexOf(op) > -1) {\n let key = Key(srcKey);\n let value: any = null;\n if (_.isPlainObject(object[op])) {\n if (_.has(object[op], '$key')) {\n value = Key(object[op].$key);\n } else {\n // ???\n throw new NotSupportedError('object given but without known operator');\n }\n } else {\n value = Value(object[op]);\n }\n switch (op) {\n case '$eq':\n return Eq(key, value);\n case '$ne':\n return Neq(key, value);\n case '$le':\n return Le(key, value);\n case '$lt':\n return Lt(key, value);\n case '$ge':\n return Ge(key, value);\n case '$gt':\n return Gt(key, value);\n }\n\n throw new NotSupportedError('in operator found');\n } else if (op == '$in') {\n let key = Key(srcKey);\n let value: any = null;\n if (_.isArray(object[op])) {\n value = Value(object[op]);\n } else {\n throw new NotSupportedError('in operator needs an array as input');\n }\n return In(key, value);\n\n } else {\n throw new NotSupportedError('operator ' + op + ' not supported');\n }\n\n } else if (operator.length == 0) {\n let desc: ExprDesc[] = [];\n\n for (let k of keys) {\n desc.push(this.fromJson(object[k], k, null));\n }\n\n if (desc.length == 1) {\n return desc.shift();\n } else {\n return And(...desc);\n }\n } else {\n throw new NotSupportedError('object has wrong keys ' + JSON.stringify(object, null, 2));\n }\n } else {\n if (srcKey) {\n return Eq(Key(srcKey), object);\n }\n throw new NotSupportedError('object cant be resolved ' + JSON.stringify(object, null, 2));\n }\n }\n\n\n static parseLookupConditions(ref: IClassRef | IEntityRef, id: any): any | any[] {\n let idProps = ref.getPropertyRefs().filter(p => p.isIdentifier());\n\n\n if (/^\\(.*(\\)\\s*,\\s*\\()?.*\\)$/.test(id)) {\n let ids = id.replace(/^\\(|\\)$/g, '').split(/\\)\\s*,\\s*\\(/);\n return _.map(ids, _id => this.parseLookupConditions(ref, _id));\n } else if (REGEX_ID.test(id)) {\n let cond = {};\n let e;\n let keys = {};\n while ((e = REGEX_ID_G.exec(id)) !== null) {\n keys[e[2]] = e[4] || e[5] || e[7];\n }\n\n for (let idp of idProps) {\n if (keys[idp.name]) {\n cond[idp.name] = idp.convert(keys[idp.name]);\n }\n }\n return cond;\n } else if (/^\\d+(,\\d+)+$/.test(id)) {\n let ids = id.split(',');\n return _.map(ids, _id => this.parseLookupConditions(ref, _.isString(_id) ? parseInt(_id, 0) : _id));\n } else if (REGEX_ID_K.test(id)) {\n if (/^\\'.*\\'$/.test(id)) {\n id = id.replace(/^\\'|\\'$/g, '');\n }\n const conds = [];\n\n let cond = {};\n let e;\n let c = 0;\n while ((e = REGEX_ID_KG.exec(id)) !== null) {\n let p = idProps[c];\n let v = e[2] || e[3];\n c += 1;\n cond[p.name] = p.convert(v);\n if (c >= idProps.length) {\n conds.push(_.clone(cond));\n cond = {};\n c = 0;\n }\n }\n return conds.length === 1 ? conds.shift() : conds;\n\n } else {\n if (idProps.length == 1) {\n const prop = _.first(idProps);\n const ids = id.split(',').map((x: string) => x.trim());\n const conds = [];\n for (const _id of ids) {\n const cond = {};\n cond[prop.name] = prop.convert(_id);\n conds.push(cond);\n }\n\n return conds.length === 1 ? conds.shift() : conds;\n } else {\n\n }\n }\n throw new NotYetImplementedError('for ' + id);\n }\n\n\n static buildLookupConditions(ref: IClassRef | IEntityRef, data: any | any[]) {\n let idProps = ref.getPropertyRefs().filter(p => p.isIdentifier());\n if (_.isArray(data)) {\n let collect: string[] = [];\n data.forEach(d => {\n collect.push(this._buildLookupconditions(idProps, d));\n });\n if (idProps.length > 1) {\n return `(${collect.join('),(')})`;\n } else {\n return `${collect.join(',')}`;\n }\n } else {\n return this._buildLookupconditions(idProps, data);\n }\n }\n\n\n private static _buildLookupconditions(idProps: IPropertyRef[], data: any) {\n let idPk: string[] = [];\n idProps.forEach(id => {\n let v = id.get(data);\n if (_.isString(v)) {\n idPk.push('\\'' + v + '\\'');\n } else {\n idPk.push(v);\n }\n });\n return idPk.join(',');\n\n }\n\n\n}\n"],"sourceRoot":"../.."}
|