@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.
Files changed (46) hide show
  1. package/browser.js +0 -2
  2. package/index.js +5 -3
  3. package/libs/descriptors/AndDesc.js +0 -2
  4. package/libs/descriptors/EqDesc.js +1 -3
  5. package/libs/descriptors/ExprDesc.js +3 -2
  6. package/libs/descriptors/GeDesc.js +0 -2
  7. package/libs/descriptors/GroupDesc.js +0 -2
  8. package/libs/descriptors/GtDesc.js +0 -2
  9. package/libs/descriptors/IExpr.js +0 -2
  10. package/libs/descriptors/InDesc.js +0 -2
  11. package/libs/descriptors/KeyDesc.js +0 -2
  12. package/libs/descriptors/LeDesc.js +0 -2
  13. package/libs/descriptors/LikeDesc.js +0 -2
  14. package/libs/descriptors/LtDesc.js +0 -2
  15. package/libs/descriptors/NeqDesc.js +0 -2
  16. package/libs/descriptors/OpDesc.js +0 -2
  17. package/libs/descriptors/OrDesc.js +0 -2
  18. package/libs/descriptors/Selector.js +0 -2
  19. package/libs/descriptors/ValueDesc.js +0 -2
  20. package/libs/exceptions/ExpressionValidationError.js +0 -2
  21. package/libs/expressions/ExpressionInterpreter.js +12 -14
  22. package/libs/expressions/Expressions.d.ts +13 -0
  23. package/libs/expressions/Expressions.js +27 -37
  24. package/package.json +13 -8
  25. package/browser.js.map +0 -1
  26. package/index.js.map +0 -1
  27. package/libs/descriptors/AndDesc.js.map +0 -1
  28. package/libs/descriptors/EqDesc.js.map +0 -1
  29. package/libs/descriptors/ExprDesc.js.map +0 -1
  30. package/libs/descriptors/GeDesc.js.map +0 -1
  31. package/libs/descriptors/GroupDesc.js.map +0 -1
  32. package/libs/descriptors/GtDesc.js.map +0 -1
  33. package/libs/descriptors/IExpr.js.map +0 -1
  34. package/libs/descriptors/InDesc.js.map +0 -1
  35. package/libs/descriptors/KeyDesc.js.map +0 -1
  36. package/libs/descriptors/LeDesc.js.map +0 -1
  37. package/libs/descriptors/LikeDesc.js.map +0 -1
  38. package/libs/descriptors/LtDesc.js.map +0 -1
  39. package/libs/descriptors/NeqDesc.js.map +0 -1
  40. package/libs/descriptors/OpDesc.js.map +0 -1
  41. package/libs/descriptors/OrDesc.js.map +0 -1
  42. package/libs/descriptors/Selector.js.map +0 -1
  43. package/libs/descriptors/ValueDesc.js.map +0 -1
  44. package/libs/exceptions/ExpressionValidationError.js.map +0 -1
  45. package/libs/expressions/ExpressionInterpreter.js.map +0 -1
  46. 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.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
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
@@ -31,5 +31,3 @@ function And(...values) {
31
31
  return new AndDesc(...values);
32
32
  }
33
33
  exports.And = And;
34
-
35
- //# sourceMappingURL=AndDesc.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] == value;
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
@@ -22,5 +22,3 @@ function Ge(key, value) {
22
22
  return new GeDesc(key, value);
23
23
  }
24
24
  exports.Ge = Ge;
25
-
26
- //# sourceMappingURL=GeDesc.js.map
@@ -17,5 +17,3 @@ class GroupDesc extends ExprDesc_1.ExprDesc {
17
17
  }
18
18
  }
19
19
  exports.GroupDesc = GroupDesc;
20
-
21
- //# sourceMappingURL=GroupDesc.js.map
@@ -22,5 +22,3 @@ function Gt(key, value) {
22
22
  return new GtDesc(key, value);
23
23
  }
24
24
  exports.Gt = Gt;
25
-
26
- //# sourceMappingURL=GtDesc.js.map
@@ -1,4 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
-
4
- //# sourceMappingURL=IExpr.js.map
@@ -22,5 +22,3 @@ function In(key, value) {
22
22
  return new InDesc(key, value);
23
23
  }
24
24
  exports.In = In;
25
-
26
- //# sourceMappingURL=InDesc.js.map
@@ -20,5 +20,3 @@ function Key(k) {
20
20
  return new KeyDesc(k);
21
21
  }
22
22
  exports.Key = Key;
23
-
24
- //# sourceMappingURL=KeyDesc.js.map
@@ -22,5 +22,3 @@ function Le(key, value) {
22
22
  return new LeDesc(key, value);
23
23
  }
24
24
  exports.Le = Le;
25
-
26
- //# sourceMappingURL=LeDesc.js.map
@@ -29,5 +29,3 @@ function Like(key, value) {
29
29
  return new LikeDesc(key, value);
30
30
  }
31
31
  exports.Like = Like;
32
-
33
- //# sourceMappingURL=LikeDesc.js.map
@@ -22,5 +22,3 @@ function Lt(key, value) {
22
22
  return new LtDesc(key, value);
23
23
  }
24
24
  exports.Lt = Lt;
25
-
26
- //# sourceMappingURL=LtDesc.js.map
@@ -22,5 +22,3 @@ function Neq(key, value) {
22
22
  return new NeqDesc(key, value);
23
23
  }
24
24
  exports.Neq = Neq;
25
-
26
- //# sourceMappingURL=NeqDesc.js.map
@@ -21,5 +21,3 @@ class OpDesc extends ExprDesc_1.ExprDesc {
21
21
  }
22
22
  }
23
23
  exports.OpDesc = OpDesc;
24
-
25
- //# sourceMappingURL=OpDesc.js.map
@@ -31,5 +31,3 @@ function Or(...values) {
31
31
  return new OrDesc(...values);
32
32
  }
33
33
  exports.Or = Or;
34
-
35
- //# sourceMappingURL=OrDesc.js.map
@@ -7,5 +7,3 @@ class Selector {
7
7
  }
8
8
  }
9
9
  exports.Selector = Selector;
10
-
11
- //# sourceMappingURL=Selector.js.map
@@ -21,5 +21,3 @@ function Value(v) {
21
21
  return new ValueDesc(v);
22
22
  }
23
23
  exports.Value = Value;
24
-
25
- //# sourceMappingURL=ValueDesc.js.map
@@ -8,5 +8,3 @@ class ExpressionValidationError extends Error {
8
8
  }
9
9
  }
10
10
  exports.ExpressionValidationError = ExpressionValidationError;
11
-
12
- //# sourceMappingURL=ExpressionValidationError.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 (['$eq', '$le', '$lt', '$ge', '$gt', '$ne', '$like'].indexOf(op) > -1) {
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 (_.isPlainObject(object[op])) {
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 InDesc_1.In(key, value);
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
- //# sourceMappingURL=Expressions.js.map
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.0",
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/packaging": "^1.1.0",
34
- "@testdeck/mocha": "^0.1.2",
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.1.1",
62
+ "ts-node": "^10.9.2",
58
63
  "tslint": "^5.20.1",
59
- "typescript": "^4.2.4"
64
+ "typescript": "^4.9.5"
60
65
  },
61
- "dependencies": {
62
- "@allgemein/base": "^1.5.2",
63
- "@allgemein/schema-api": "^1.2.1"
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":"../.."}