@allgemein/expressions 1.3.1 → 1.4.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 (65) hide show
  1. package/README.md +66 -0
  2. package/browser.d.ts +18 -18
  3. package/browser.js +17 -47
  4. package/browser.js.map +1 -1
  5. package/index.d.ts +1 -1
  6. package/index.js +1 -17
  7. package/index.js.map +1 -1
  8. package/libs/descriptors/AndDesc.d.ts +2 -2
  9. package/libs/descriptors/AndDesc.js +6 -11
  10. package/libs/descriptors/AndDesc.js.map +1 -1
  11. package/libs/descriptors/EqDesc.d.ts +3 -3
  12. package/libs/descriptors/EqDesc.js +8 -13
  13. package/libs/descriptors/EqDesc.js.map +1 -1
  14. package/libs/descriptors/ExprDesc.d.ts +1 -1
  15. package/libs/descriptors/ExprDesc.js +60 -64
  16. package/libs/descriptors/ExprDesc.js.map +1 -1
  17. package/libs/descriptors/GeDesc.d.ts +3 -3
  18. package/libs/descriptors/GeDesc.js +6 -11
  19. package/libs/descriptors/GeDesc.js.map +1 -1
  20. package/libs/descriptors/GroupDesc.d.ts +1 -1
  21. package/libs/descriptors/GroupDesc.js +2 -6
  22. package/libs/descriptors/GroupDesc.js.map +1 -1
  23. package/libs/descriptors/GtDesc.d.ts +3 -3
  24. package/libs/descriptors/GtDesc.js +6 -11
  25. package/libs/descriptors/GtDesc.js.map +1 -1
  26. package/libs/descriptors/IExpr.js +1 -2
  27. package/libs/descriptors/InDesc.d.ts +3 -3
  28. package/libs/descriptors/InDesc.js +7 -12
  29. package/libs/descriptors/InDesc.js.map +1 -1
  30. package/libs/descriptors/KeyDesc.d.ts +1 -1
  31. package/libs/descriptors/KeyDesc.js +3 -8
  32. package/libs/descriptors/KeyDesc.js.map +1 -1
  33. package/libs/descriptors/LeDesc.d.ts +3 -3
  34. package/libs/descriptors/LeDesc.js +6 -11
  35. package/libs/descriptors/LeDesc.js.map +1 -1
  36. package/libs/descriptors/LikeDesc.d.ts +3 -3
  37. package/libs/descriptors/LikeDesc.js +8 -13
  38. package/libs/descriptors/LikeDesc.js.map +1 -1
  39. package/libs/descriptors/LtDesc.d.ts +3 -3
  40. package/libs/descriptors/LtDesc.js +6 -11
  41. package/libs/descriptors/LtDesc.js.map +1 -1
  42. package/libs/descriptors/NeqDesc.d.ts +3 -3
  43. package/libs/descriptors/NeqDesc.js +7 -12
  44. package/libs/descriptors/NeqDesc.js.map +1 -1
  45. package/libs/descriptors/OpDesc.d.ts +3 -3
  46. package/libs/descriptors/OpDesc.js +4 -8
  47. package/libs/descriptors/OpDesc.js.map +1 -1
  48. package/libs/descriptors/OrDesc.d.ts +2 -2
  49. package/libs/descriptors/OrDesc.js +6 -11
  50. package/libs/descriptors/OrDesc.js.map +1 -1
  51. package/libs/descriptors/Selector.d.ts +1 -1
  52. package/libs/descriptors/Selector.js +1 -5
  53. package/libs/descriptors/Selector.js.map +1 -1
  54. package/libs/descriptors/ValueDesc.d.ts +1 -1
  55. package/libs/descriptors/ValueDesc.js +3 -8
  56. package/libs/descriptors/ValueDesc.js.map +1 -1
  57. package/libs/exceptions/ExpressionValidationError.js +1 -5
  58. package/libs/exceptions/ExpressionValidationError.js.map +1 -1
  59. package/libs/expressions/ExpressionInterpreter.d.ts +1 -1
  60. package/libs/expressions/ExpressionInterpreter.js +82 -70
  61. package/libs/expressions/ExpressionInterpreter.js.map +1 -1
  62. package/libs/expressions/Expressions.d.ts +11 -11
  63. package/libs/expressions/Expressions.js +86 -90
  64. package/libs/expressions/Expressions.js.map +1 -1
  65. package/package.json +4 -3
package/README.md CHANGED
@@ -4,3 +4,69 @@
4
4
  [![build>](https://circleci.com/gh/allgemein-node/expressions.svg?style=shield)](https://app.circleci.com/pipelines/github/allgemein-node/expressions)
5
5
  [![codecov](https://codecov.io/gh/allgemein-node/expressions/branch/master/graph/badge.svg)](https://codecov.io/gh/allgemein-node/expressions)
6
6
  [![Dependency Status](https://david-dm.org/allgemein-node/expressions.svg)](https://david-dm.org/allgemein-node/expressions)
7
+
8
+ @allgemein/expressions is a library for building, parsing and evaluating
9
+ mango-like (MongoDB-style) query expressions. Expressions can be constructed
10
+ programmatically, parsed from a SQL-like condition string or from/to a plain
11
+ JSON representation, which makes it useful for building generic, storage
12
+ agnostic query conditions.
13
+
14
+ ## Install
15
+
16
+ ```bash
17
+ npm i @allgemein/expressions
18
+ ```
19
+
20
+ ## Usage
21
+
22
+ ### Building expressions programmatically
23
+
24
+ ```ts
25
+ import {And, Eq, Key, Value} from "@allgemein/expressions";
26
+
27
+ const condition = And(
28
+ Eq('tableName', Value('condition_keeper')),
29
+ Eq('tableId', Key('id'))
30
+ );
31
+
32
+ console.log(condition.toJson());
33
+ // => {$and: [{tableName: {$eq: 'condition_keeper'}}, {tableId: {$eq: 'id'}}]}
34
+
35
+ console.log(condition.getSourceKeys()); // => ['tableName', 'tableId']
36
+ console.log(condition.getTargetKeys()); // => ['id']
37
+ ```
38
+
39
+ ### Parsing JSON conditions
40
+
41
+ ```ts
42
+ import {Expressions} from "@allgemein/expressions";
43
+
44
+ const condition = Expressions.fromJson({
45
+ $and: [
46
+ {test: {$eq: 'hallo'}},
47
+ {test2: {$eq: 2}}
48
+ ]
49
+ });
50
+
51
+ console.log(condition.toJson());
52
+ ```
53
+
54
+ ### Parsing string conditions
55
+
56
+ ```ts
57
+ import {ExpressionInterpreter} from "@allgemein/expressions";
58
+
59
+ const interpreter = new ExpressionInterpreter();
60
+ const condition = interpreter.interprete('\'testnr\' = 1 AND \'test\' = \'searchfor\'');
61
+
62
+ console.log(condition.toJson());
63
+ // => {$and: [{testnr: {$eq: 1}}, {test: {$eq: 'searchfor'}}]}
64
+ ```
65
+
66
+ ## Features
67
+
68
+ * Fluent condition builders: `And`, `Or`, `Eq`, `Neq`, `Ge`, `Le`, `Like`, `In`, `Key`, `Value`
69
+ * Serialize/deserialize conditions to and from a plain JSON (mango-like) representation via `Expressions`
70
+ * Parse SQL-like condition strings into expression trees with `ExpressionInterpreter`
71
+ * Extract source and target keys referenced by a condition (`getSourceKeys`, `getTargetKeys`)
72
+ * Written in TypeScript, usable both in Node.js and the browser
package/browser.d.ts CHANGED
@@ -1,18 +1,18 @@
1
- export { IExpr } from './libs/descriptors/IExpr';
2
- export { ExprDesc } from './libs/descriptors/ExprDesc';
3
- export { OpDesc } from './libs/descriptors/OpDesc';
4
- export { In, InDesc } from './libs/descriptors/InDesc';
5
- export { And, AndDesc } from './libs/descriptors/AndDesc';
6
- export { Or, OrDesc } from './libs/descriptors/OrDesc';
7
- export { Eq, EqDesc } from './libs/descriptors/EqDesc';
8
- export { Ge, GeDesc } from './libs/descriptors/GeDesc';
9
- export { GroupDesc } from './libs/descriptors/GroupDesc';
10
- export { Key, KeyDesc } from './libs/descriptors/KeyDesc';
11
- export { Le, LeDesc } from './libs/descriptors/LeDesc';
12
- export { Like, LikeDesc } from './libs/descriptors/LikeDesc';
13
- export { Neq, NeqDesc } from './libs/descriptors/NeqDesc';
14
- export { Selector } from './libs/descriptors/Selector';
15
- export { Value, ValueDesc } from './libs/descriptors/ValueDesc';
16
- export { ExpressionInterpreter } from './libs/expressions/ExpressionInterpreter';
17
- export { Expressions } from './libs/expressions/Expressions';
18
- export { ExpressionValidationError } from './libs/exceptions/ExpressionValidationError';
1
+ export { IExpr } from './libs/descriptors/IExpr.js';
2
+ export { ExprDesc } from './libs/descriptors/ExprDesc.js';
3
+ export { OpDesc } from './libs/descriptors/OpDesc.js';
4
+ export { In, InDesc } from './libs/descriptors/InDesc.js';
5
+ export { And, AndDesc } from './libs/descriptors/AndDesc.js';
6
+ export { Or, OrDesc } from './libs/descriptors/OrDesc.js';
7
+ export { Eq, EqDesc } from './libs/descriptors/EqDesc.js';
8
+ export { Ge, GeDesc } from './libs/descriptors/GeDesc.js';
9
+ export { GroupDesc } from './libs/descriptors/GroupDesc.js';
10
+ export { Key, KeyDesc } from './libs/descriptors/KeyDesc.js';
11
+ export { Le, LeDesc } from './libs/descriptors/LeDesc.js';
12
+ export { Like, LikeDesc } from './libs/descriptors/LikeDesc.js';
13
+ export { Neq, NeqDesc } from './libs/descriptors/NeqDesc.js';
14
+ export { Selector } from './libs/descriptors/Selector.js';
15
+ export { Value, ValueDesc } from './libs/descriptors/ValueDesc.js';
16
+ export { ExpressionInterpreter } from './libs/expressions/ExpressionInterpreter.js';
17
+ export { Expressions } from './libs/expressions/Expressions.js';
18
+ export { ExpressionValidationError } from './libs/exceptions/ExpressionValidationError.js';
package/browser.js CHANGED
@@ -1,48 +1,18 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ExpressionValidationError = exports.Expressions = exports.ExpressionInterpreter = exports.ValueDesc = exports.Value = exports.Selector = exports.NeqDesc = exports.Neq = exports.LikeDesc = exports.Like = exports.LeDesc = exports.Le = exports.KeyDesc = exports.Key = exports.GroupDesc = exports.GeDesc = exports.Ge = exports.EqDesc = exports.Eq = exports.OrDesc = exports.Or = exports.AndDesc = exports.And = exports.InDesc = exports.In = exports.OpDesc = exports.ExprDesc = void 0;
4
- var ExprDesc_1 = require("./libs/descriptors/ExprDesc");
5
- Object.defineProperty(exports, "ExprDesc", { enumerable: true, get: function () { return ExprDesc_1.ExprDesc; } });
6
- var OpDesc_1 = require("./libs/descriptors/OpDesc");
7
- Object.defineProperty(exports, "OpDesc", { enumerable: true, get: function () { return OpDesc_1.OpDesc; } });
8
- var InDesc_1 = require("./libs/descriptors/InDesc");
9
- Object.defineProperty(exports, "In", { enumerable: true, get: function () { return InDesc_1.In; } });
10
- Object.defineProperty(exports, "InDesc", { enumerable: true, get: function () { return InDesc_1.InDesc; } });
11
- var AndDesc_1 = require("./libs/descriptors/AndDesc");
12
- Object.defineProperty(exports, "And", { enumerable: true, get: function () { return AndDesc_1.And; } });
13
- Object.defineProperty(exports, "AndDesc", { enumerable: true, get: function () { return AndDesc_1.AndDesc; } });
14
- var OrDesc_1 = require("./libs/descriptors/OrDesc");
15
- Object.defineProperty(exports, "Or", { enumerable: true, get: function () { return OrDesc_1.Or; } });
16
- Object.defineProperty(exports, "OrDesc", { enumerable: true, get: function () { return OrDesc_1.OrDesc; } });
17
- var EqDesc_1 = require("./libs/descriptors/EqDesc");
18
- Object.defineProperty(exports, "Eq", { enumerable: true, get: function () { return EqDesc_1.Eq; } });
19
- Object.defineProperty(exports, "EqDesc", { enumerable: true, get: function () { return EqDesc_1.EqDesc; } });
20
- var GeDesc_1 = require("./libs/descriptors/GeDesc");
21
- Object.defineProperty(exports, "Ge", { enumerable: true, get: function () { return GeDesc_1.Ge; } });
22
- Object.defineProperty(exports, "GeDesc", { enumerable: true, get: function () { return GeDesc_1.GeDesc; } });
23
- var GroupDesc_1 = require("./libs/descriptors/GroupDesc");
24
- Object.defineProperty(exports, "GroupDesc", { enumerable: true, get: function () { return GroupDesc_1.GroupDesc; } });
25
- var KeyDesc_1 = require("./libs/descriptors/KeyDesc");
26
- Object.defineProperty(exports, "Key", { enumerable: true, get: function () { return KeyDesc_1.Key; } });
27
- Object.defineProperty(exports, "KeyDesc", { enumerable: true, get: function () { return KeyDesc_1.KeyDesc; } });
28
- var LeDesc_1 = require("./libs/descriptors/LeDesc");
29
- Object.defineProperty(exports, "Le", { enumerable: true, get: function () { return LeDesc_1.Le; } });
30
- Object.defineProperty(exports, "LeDesc", { enumerable: true, get: function () { return LeDesc_1.LeDesc; } });
31
- var LikeDesc_1 = require("./libs/descriptors/LikeDesc");
32
- Object.defineProperty(exports, "Like", { enumerable: true, get: function () { return LikeDesc_1.Like; } });
33
- Object.defineProperty(exports, "LikeDesc", { enumerable: true, get: function () { return LikeDesc_1.LikeDesc; } });
34
- var NeqDesc_1 = require("./libs/descriptors/NeqDesc");
35
- Object.defineProperty(exports, "Neq", { enumerable: true, get: function () { return NeqDesc_1.Neq; } });
36
- Object.defineProperty(exports, "NeqDesc", { enumerable: true, get: function () { return NeqDesc_1.NeqDesc; } });
37
- var Selector_1 = require("./libs/descriptors/Selector");
38
- Object.defineProperty(exports, "Selector", { enumerable: true, get: function () { return Selector_1.Selector; } });
39
- var ValueDesc_1 = require("./libs/descriptors/ValueDesc");
40
- Object.defineProperty(exports, "Value", { enumerable: true, get: function () { return ValueDesc_1.Value; } });
41
- Object.defineProperty(exports, "ValueDesc", { enumerable: true, get: function () { return ValueDesc_1.ValueDesc; } });
42
- var ExpressionInterpreter_1 = require("./libs/expressions/ExpressionInterpreter");
43
- Object.defineProperty(exports, "ExpressionInterpreter", { enumerable: true, get: function () { return ExpressionInterpreter_1.ExpressionInterpreter; } });
44
- var Expressions_1 = require("./libs/expressions/Expressions");
45
- Object.defineProperty(exports, "Expressions", { enumerable: true, get: function () { return Expressions_1.Expressions; } });
46
- var ExpressionValidationError_1 = require("./libs/exceptions/ExpressionValidationError");
47
- Object.defineProperty(exports, "ExpressionValidationError", { enumerable: true, get: function () { return ExpressionValidationError_1.ExpressionValidationError; } });
1
+ export { ExprDesc } from './libs/descriptors/ExprDesc.js';
2
+ export { OpDesc } from './libs/descriptors/OpDesc.js';
3
+ export { In, InDesc } from './libs/descriptors/InDesc.js';
4
+ export { And, AndDesc } from './libs/descriptors/AndDesc.js';
5
+ export { Or, OrDesc } from './libs/descriptors/OrDesc.js';
6
+ export { Eq, EqDesc } from './libs/descriptors/EqDesc.js';
7
+ export { Ge, GeDesc } from './libs/descriptors/GeDesc.js';
8
+ export { GroupDesc } from './libs/descriptors/GroupDesc.js';
9
+ export { Key, KeyDesc } from './libs/descriptors/KeyDesc.js';
10
+ export { Le, LeDesc } from './libs/descriptors/LeDesc.js';
11
+ export { Like, LikeDesc } from './libs/descriptors/LikeDesc.js';
12
+ export { Neq, NeqDesc } from './libs/descriptors/NeqDesc.js';
13
+ export { Selector } from './libs/descriptors/Selector.js';
14
+ export { Value, ValueDesc } from './libs/descriptors/ValueDesc.js';
15
+ export { ExpressionInterpreter } from './libs/expressions/ExpressionInterpreter.js';
16
+ export { Expressions } from './libs/expressions/Expressions.js';
17
+ export { ExpressionValidationError } from './libs/exceptions/ExpressionValidationError.js';
48
18
  //# sourceMappingURL=browser.js.map
package/browser.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","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"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/browser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,QAAQ,EAAC,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAC,MAAM,EAAC,MAAM,8BAA8B,CAAC;AACpD,OAAO,EAAC,EAAE,EAAE,MAAM,EAAC,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAC,GAAG,EAAE,OAAO,EAAC,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAC,EAAE,EAAE,MAAM,EAAC,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAC,EAAE,EAAE,MAAM,EAAC,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAC,EAAE,EAAE,MAAM,EAAC,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAC,SAAS,EAAC,MAAM,iCAAiC,CAAC;AAC1D,OAAO,EAAC,GAAG,EAAE,OAAO,EAAC,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAC,EAAE,EAAE,MAAM,EAAC,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAC,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAC,GAAG,EAAE,OAAO,EAAC,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAC,QAAQ,EAAC,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAC,KAAK,EAAE,SAAS,EAAC,MAAM,iCAAiC,CAAC;AAEjE,OAAO,EAAC,qBAAqB,EAAC,MAAM,6CAA6C,CAAC;AAClF,OAAO,EAAC,WAAW,EAAC,MAAM,mCAAmC,CAAC;AAE9D,OAAO,EAAC,yBAAyB,EAAC,MAAM,gDAAgD,CAAC"}
package/index.d.ts CHANGED
@@ -1 +1 @@
1
- export * from './browser';
1
+ export * from './browser.js';
package/index.js CHANGED
@@ -1,18 +1,2 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = 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);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./browser"), exports);
1
+ export * from './browser.js';
18
2
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
@@ -1,5 +1,5 @@
1
- import { GroupDesc } from "./GroupDesc";
2
- import { ExprDesc } from "./ExprDesc";
1
+ import { GroupDesc } from './GroupDesc.js';
2
+ import { ExprDesc } from './ExprDesc.js';
3
3
  export declare class AndDesc extends GroupDesc {
4
4
  readonly type: string;
5
5
  constructor(...values: ExprDesc[]);
@@ -1,10 +1,6 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AndDesc = void 0;
4
- exports.And = And;
5
- const _ = require("lodash");
6
- const GroupDesc_1 = require("./GroupDesc");
7
- class AndDesc extends GroupDesc_1.GroupDesc {
1
+ import * as _ from '@allgemein/base';
2
+ import { GroupDesc } from './GroupDesc.js';
3
+ export class AndDesc extends GroupDesc {
8
4
  constructor(...values) {
9
5
  super(...values);
10
6
  this.type = 'and';
@@ -12,7 +8,7 @@ class AndDesc extends GroupDesc_1.GroupDesc {
12
8
  lookup(source) {
13
9
  const checks = _.map(this.values, v => v.lookup(source));
14
10
  return function (target) {
15
- for (let fn of checks) {
11
+ for (const fn of checks) {
16
12
  if (!fn(target)) {
17
13
  return false;
18
14
  }
@@ -22,13 +18,12 @@ class AndDesc extends GroupDesc_1.GroupDesc {
22
18
  }
23
19
  for(source, keyMap = {}) {
24
20
  const checks = _.map(this.values, v => v.for(source, keyMap));
25
- let c = {};
21
+ const c = {};
26
22
  c['$and'] = checks;
27
23
  return c;
28
24
  }
29
25
  }
30
- exports.AndDesc = AndDesc;
31
- function And(...values) {
26
+ export function And(...values) {
32
27
  return new AndDesc(...values);
33
28
  }
34
29
  //# sourceMappingURL=AndDesc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AndDesc.js","sourceRoot":"","sources":["../../../../src/libs/descriptors/AndDesc.ts"],"names":[],"mappings":";;;AAsCA,kBAEC;AAxCD,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,CAAC;gBACtB,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;oBAChB,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;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"}
1
+ {"version":3,"file":"AndDesc.js","sourceRoot":"","sources":["../../../../src/libs/descriptors/AndDesc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAKzC,MAAM,OAAO,OAAQ,SAAQ,SAAS;IAKpC,YAAY,GAAG,MAAkB;QAC/B,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC;QAJV,SAAI,GAAW,KAAK,CAAC;IAK9B,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,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;gBACxB,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;oBAChB,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,MAAW,EAAE,MAAM,GAAQ,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,MAAM,CAAC,GAAQ,EAAE,CAAC;QAClB,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;QACnB,OAAO,CAAC,CAAC;IACX,CAAC;CAEF;AAID,MAAM,UAAU,GAAG,CAAC,GAAG,MAAkB;IACvC,OAAO,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;AAChC,CAAC"}
@@ -1,6 +1,6 @@
1
- import { Selector } from "./Selector";
2
- import { KeyDesc } from "./KeyDesc";
3
- import { OpDesc } from "./OpDesc";
1
+ import { Selector } from './Selector.js';
2
+ import { KeyDesc } from './KeyDesc.js';
3
+ import { OpDesc } from './OpDesc.js';
4
4
  export declare class EqDesc extends OpDesc {
5
5
  readonly type: string;
6
6
  constructor(key: string | KeyDesc, value: Selector);
@@ -1,32 +1,27 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EqDesc = void 0;
4
- exports.Eq = Eq;
5
- const _ = require("lodash");
6
- const KeyDesc_1 = require("./KeyDesc");
7
- const OpDesc_1 = require("./OpDesc");
8
- class EqDesc extends OpDesc_1.OpDesc {
1
+ import * as _ from '@allgemein/base';
2
+ import { KeyDesc } from './KeyDesc.js';
3
+ import { OpDesc } from './OpDesc.js';
4
+ export class EqDesc extends OpDesc {
9
5
  constructor(key, value) {
10
6
  super(key, value);
11
7
  this.type = 'eq';
12
8
  }
13
9
  lookup(source) {
14
- const value = this.value instanceof KeyDesc_1.KeyDesc ? source[this.value.key] : _.clone(this.value.value);
10
+ const value = this.value instanceof KeyDesc ? source[this.value.key] : _.clone(this.value.value);
15
11
  const key = this.key;
16
12
  return function (target) {
17
13
  return target[key] === value;
18
14
  };
19
15
  }
20
16
  for(source, keyMap = {}) {
21
- const value = this.value instanceof KeyDesc_1.KeyDesc ? source[this.value.key] : _.clone(this.value.value);
17
+ const value = this.value instanceof KeyDesc ? source[this.value.key] : _.clone(this.value.value);
22
18
  const key = _.get(keyMap, this.key, this.key);
23
- let c = {};
19
+ const c = {};
24
20
  c[key] = value;
25
21
  return c;
26
22
  }
27
23
  }
28
- exports.EqDesc = EqDesc;
29
- function Eq(key, value) {
24
+ export function Eq(key, value) {
30
25
  return new EqDesc(key, value);
31
26
  }
32
27
  //# sourceMappingURL=EqDesc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EqDesc.js","sourceRoot":"","sources":["../../../../src/libs/descriptors/EqDesc.ts"],"names":[],"mappings":";;;AAiCA,gBAEC;AAnCD,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,KAAK,KAAK,CAAC;QAC/B,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"}
1
+ {"version":3,"file":"EqDesc.js","sourceRoot":"","sources":["../../../../src/libs/descriptors/EqDesc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,iBAAiB,CAAC;AAIrC,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AAErC,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AAGnC,MAAM,OAAO,MAAO,SAAQ,MAAM;IAEhC,YAAY,GAAqB,EAAE,KAAe;QAChD,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAFX,SAAI,GAAW,IAAI,CAAC;IAG7B,CAAC;IAED,MAAM,CAAC,MAAW;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,YAAY,OAAO,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,KAAK,KAAK,CAAC;QAC/B,CAAC,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,MAAW,EAAE,MAAM,GAAQ,EAAE;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,YAAY,OAAO,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,MAAM,CAAC,GAAQ,EAAE,CAAC;QAClB,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACf,OAAO,CAAC,CAAC;IACX,CAAC;CAEF;AAED,MAAM,UAAU,EAAE,CAAC,GAAqB,EAAE,KAAe;IACvD,OAAO,IAAI,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { IExpr } from './IExpr';
1
+ import { IExpr } from './IExpr.js';
2
2
  import { IClassRef, ILookupRegistry } from '@allgemein/schema-api';
3
3
  export declare class ExprDesc implements IExpr {
4
4
  readonly type: string;
@@ -1,12 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ExprDesc = void 0;
4
- const KeyDesc_1 = require("./KeyDesc");
5
- const base_1 = require("@allgemein/base");
6
- const ValueDesc_1 = require("./ValueDesc");
7
- const ExpressionValidationError_1 = require("../exceptions/ExpressionValidationError");
8
- const lodash_1 = require("lodash");
9
- class ExprDesc {
1
+ import { KeyDesc } from './KeyDesc.js';
2
+ import { NotSupportedError, NotYetImplementedError } from '@allgemein/base';
3
+ import { ValueDesc } from './ValueDesc.js';
4
+ import { ExpressionValidationError } from '../exceptions/ExpressionValidationError.js';
5
+ import { concat, has, map, merge, uniq } from '@allgemein/base';
6
+ export class ExprDesc {
10
7
  constructor() {
11
8
  this.type = 'cond';
12
9
  }
@@ -33,68 +30,68 @@ class ExprDesc {
33
30
  }*/
34
31
  }
35
32
  else if (this.isGroup()) {
36
- keys = (0, lodash_1.concat)(keys, ...(0, lodash_1.map)(this.values, v => v.getSourceKeys()));
33
+ keys = concat(keys, ...map(this.values, v => v.getSourceKeys()));
37
34
  }
38
- return (0, lodash_1.uniq)(keys);
35
+ return uniq(keys);
39
36
  }
40
37
  getTargetKeys() {
41
38
  let keys = [];
42
39
  if (this.isOp()) {
43
- if (this.value instanceof KeyDesc_1.KeyDesc) {
40
+ if (this.value instanceof KeyDesc) {
44
41
  keys.push(this.value.key);
45
42
  }
46
43
  }
47
44
  else if (this.isGroup()) {
48
- keys = (0, lodash_1.concat)(keys, ...(0, lodash_1.map)(this.values, v => v.getTargetKeys()));
45
+ keys = concat(keys, ...map(this.values, v => v.getTargetKeys()));
49
46
  }
50
- return (0, lodash_1.uniq)(keys);
47
+ return uniq(keys);
51
48
  }
52
49
  applyOn(target, source, force = false) {
53
- if (this.type == 'eq') {
54
- if (!(0, lodash_1.has)(target, this.key) || false) {
55
- if (this.value instanceof ValueDesc_1.ValueDesc) {
50
+ if (this.type === 'eq') {
51
+ if (!has(target, this.key) || false) {
52
+ if (this.value instanceof ValueDesc) {
56
53
  // @ts-ignore
57
54
  target[this.key] = this.value.value;
58
55
  }
59
- else if (this.value instanceof KeyDesc_1.KeyDesc) {
56
+ else if (this.value instanceof KeyDesc) {
60
57
  // @ts-ignore
61
58
  target[this.key] = source[this.value.key];
62
59
  }
63
60
  else {
64
- throw new base_1.NotYetImplementedError();
61
+ throw new NotYetImplementedError();
65
62
  }
66
63
  }
67
64
  }
68
- else if (this.type == 'and') {
69
- (0, lodash_1.map)(this.values, v => v.applyOn(target, source, force));
65
+ else if (this.type === 'and') {
66
+ map(this.values, v => v.applyOn(target, source, force));
70
67
  }
71
- else if (this.type == 'or') {
72
- (0, lodash_1.map)(this.values, v => v.applyOn(target, source, force));
68
+ else if (this.type === 'or') {
69
+ map(this.values, v => v.applyOn(target, source, force));
73
70
  }
74
71
  else {
75
- throw new base_1.NotYetImplementedError();
72
+ throw new NotYetImplementedError();
76
73
  }
77
74
  }
78
75
  applyReverseOn(target, source, force = false) {
79
- if (this.type == 'eq') {
80
- if (!(0, lodash_1.has)(target, this.key) || false) {
81
- if (this.value instanceof KeyDesc_1.KeyDesc) {
76
+ if (this.type === 'eq') {
77
+ if (!has(target, this.key) || false) {
78
+ if (this.value instanceof KeyDesc) {
82
79
  // @ts-ignore
83
80
  target[this.value.key] = source[this.key];
84
81
  }
85
82
  else {
86
- throw new base_1.NotYetImplementedError();
83
+ throw new NotYetImplementedError();
87
84
  }
88
85
  }
89
86
  }
90
- else if (this.type == 'and') {
91
- (0, lodash_1.map)(this.values, v => v.applyReverseOn(target, source, force));
87
+ else if (this.type === 'and') {
88
+ map(this.values, v => v.applyReverseOn(target, source, force));
92
89
  }
93
- else if (this.type == 'or') {
94
- (0, lodash_1.map)(this.values, v => v.applyReverseOn(target, source, force));
90
+ else if (this.type === 'or') {
91
+ map(this.values, v => v.applyReverseOn(target, source, force));
95
92
  }
96
93
  else {
97
- throw new base_1.NotYetImplementedError();
94
+ throw new NotYetImplementedError();
98
95
  }
99
96
  }
100
97
  /**
@@ -102,46 +99,46 @@ class ExprDesc {
102
99
  * (sometimes needed for join definitions).
103
100
  */
104
101
  getMap() {
105
- let map = {};
106
- if (this.type == 'eq') {
107
- if (this.value instanceof KeyDesc_1.KeyDesc) {
102
+ const map = {};
103
+ if (this.type === 'eq') {
104
+ if (this.value instanceof KeyDesc) {
108
105
  map[this.key] = this.value.key;
109
106
  }
110
- else if (this.value instanceof ValueDesc_1.ValueDesc) {
107
+ else if (this.value instanceof ValueDesc) {
111
108
  map[this.key] = '\'' + this.value.value + '\'';
112
109
  }
113
110
  else {
114
- throw new base_1.NotYetImplementedError();
111
+ throw new NotYetImplementedError();
115
112
  }
116
113
  }
117
- else if (this.type == 'and') {
118
- (0, lodash_1.merge)(map, ...this.values.map((v) => v.getMap()));
114
+ else if (this.type === 'and') {
115
+ merge(map, ...this.values.map((v) => v.getMap()));
119
116
  }
120
- else if (this.type == 'or') {
121
- (0, lodash_1.merge)(map, ...this.values.map((v) => v.getMap()));
117
+ else if (this.type === 'or') {
118
+ merge(map, ...this.values.map((v) => v.getMap()));
122
119
  }
123
120
  else {
124
- throw new base_1.NotYetImplementedError();
121
+ throw new NotYetImplementedError();
125
122
  }
126
123
  return map;
127
124
  }
128
125
  lookup(source) {
129
- throw new base_1.NotYetImplementedError();
126
+ throw new NotYetImplementedError();
130
127
  }
131
128
  for(target, keyMap = {}) {
132
- throw new base_1.NotYetImplementedError();
129
+ throw new NotYetImplementedError();
133
130
  }
134
131
  /**
135
132
  * Test if conditions matching class properties and references
136
133
  */
137
134
  test(sourceRef, errors = []) {
138
- let sourceKeys = this.getSourceKeys();
139
- for (let sourceKey of sourceKeys) {
140
- let keyChain = sourceKey.split('.');
135
+ const sourceKeys = this.getSourceKeys();
136
+ for (const sourceKey of sourceKeys) {
137
+ const keyChain = sourceKey.split('.');
141
138
  let root = sourceRef;
142
139
  while (keyChain.length > 0) {
143
- let _k = keyChain.shift();
144
- let p = root.getPropertyRef(_k);
140
+ const _k = keyChain.shift();
141
+ const p = root.getPropertyRef(_k);
145
142
  if (p) {
146
143
  if (p.isReference()) {
147
144
  root = p.getTargetRef();
@@ -152,7 +149,7 @@ class ExprDesc {
152
149
  }
153
150
  }
154
151
  }
155
- return errors.length == 0;
152
+ return errors.length === 0;
156
153
  }
157
154
  /**
158
155
  * Validate if defined keys match source and target element
@@ -160,19 +157,19 @@ class ExprDesc {
160
157
  * - source = referrer
161
158
  */
162
159
  validate(registry, targetRef, sourceRef, throwing = true) {
163
- let sourceKeys = this.getSourceKeys();
164
- let targetKeys = this.getTargetKeys();
165
- let targetProps = targetRef.getPropertyRefs().map(p => p.name).filter(pn => sourceKeys.indexOf(pn) !== -1);
166
- let sourceProps = sourceRef ? sourceRef.getPropertyRefs().map(p => p.name).filter(pn => targetKeys.indexOf(pn) !== -1) : [];
167
- if (sourceKeys.length != targetProps.length) {
160
+ const sourceKeys = this.getSourceKeys();
161
+ const targetKeys = this.getTargetKeys();
162
+ const targetProps = targetRef.getPropertyRefs().map(p => p.name).filter(pn => sourceKeys.indexOf(pn) !== -1);
163
+ const sourceProps = sourceRef ? sourceRef.getPropertyRefs().map(p => p.name).filter(pn => targetKeys.indexOf(pn) !== -1) : [];
164
+ if (sourceKeys.length !== targetProps.length) {
168
165
  if (throwing) {
169
- throw new ExpressionValidationError_1.ExpressionValidationError('referred key(s) ' + sourceKeys.filter(k => targetProps.indexOf(k) === -1).join(',') + ' not in sourceRef');
166
+ throw new ExpressionValidationError('referred key(s) ' + sourceKeys.filter(k => targetProps.indexOf(k) === -1).join(',') + ' not in sourceRef');
170
167
  }
171
168
  return false;
172
169
  }
173
- if (targetKeys.length != sourceProps.length) {
170
+ if (targetKeys.length !== sourceProps.length) {
174
171
  if (throwing) {
175
- throw new ExpressionValidationError_1.ExpressionValidationError('referrer key(s) ' + targetKeys.filter(k => sourceProps.indexOf(k) === -1).join(',') + ' not in targetRef');
172
+ throw new ExpressionValidationError('referrer key(s) ' + targetKeys.filter(k => sourceProps.indexOf(k) === -1).join(',') + ' not in targetRef');
176
173
  }
177
174
  return false;
178
175
  }
@@ -180,20 +177,19 @@ class ExprDesc {
180
177
  }
181
178
  toJson() {
182
179
  if (this.isGroup()) {
183
- let res = {};
184
- res['$' + this.type] = (0, lodash_1.map)(this.values, x => x.toJson());
180
+ const res = {};
181
+ res['$' + this.type] = map(this.values, x => x.toJson());
185
182
  return res;
186
183
  }
187
184
  else if (this.isOp()) {
188
- let res = {};
185
+ const res = {};
189
186
  res[this.key] = {};
190
187
  res[this.key]['$' + this.type] = this.value.toJson ? this.value.toJson() : this.value;
191
188
  return res;
192
189
  }
193
190
  else {
194
- throw new base_1.NotSupportedError('toJson to this condition not supported');
191
+ throw new NotSupportedError('toJson to this condition not supported');
195
192
  }
196
193
  }
197
194
  }
198
- exports.ExprDesc = ExprDesc;
199
195
  //# sourceMappingURL=ExprDesc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExprDesc.js","sourceRoot":"","sources":["../../../../src/libs/descriptors/ExprDesc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExprDesc.js","sourceRoot":"","sources":["../../../../src/libs/descriptors/ExprDesc.ts"],"names":[],"mappings":"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"}