@bessemer/cornerstone 0.5.51 → 0.5.53

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 (123) hide show
  1. package/dist/array.d.ts.map +1 -1
  2. package/dist/array.js +16 -13
  3. package/dist/array.js.map +1 -1
  4. package/dist/assertion.d.ts +6 -0
  5. package/dist/assertion.d.ts.map +1 -1
  6. package/dist/assertion.js +43 -11
  7. package/dist/assertion.js.map +1 -1
  8. package/dist/async.d.ts.map +1 -1
  9. package/dist/async.js +4 -3
  10. package/dist/async.js.map +1 -1
  11. package/dist/cache.d.ts.map +1 -1
  12. package/dist/cache.js +22 -17
  13. package/dist/cache.js.map +1 -1
  14. package/dist/combinable.d.ts.map +1 -1
  15. package/dist/combinable.js +5 -4
  16. package/dist/combinable.js.map +1 -1
  17. package/dist/comparator.d.ts.map +1 -1
  18. package/dist/comparator.js +8 -5
  19. package/dist/comparator.js.map +1 -1
  20. package/dist/content.d.ts +9 -9
  21. package/dist/content.d.ts.map +1 -1
  22. package/dist/content.js +18 -13
  23. package/dist/content.js.map +1 -1
  24. package/dist/date.d.ts.map +1 -1
  25. package/dist/date.js +2 -2
  26. package/dist/date.js.map +1 -1
  27. package/dist/either.d.ts +0 -1
  28. package/dist/either.d.ts.map +1 -1
  29. package/dist/either.js +2 -3
  30. package/dist/either.js.map +1 -1
  31. package/dist/error-event.d.ts +11 -5
  32. package/dist/error-event.d.ts.map +1 -1
  33. package/dist/error-event.js +43 -11
  34. package/dist/error-event.js.map +1 -1
  35. package/dist/error.js +2 -2
  36. package/dist/error.js.map +1 -1
  37. package/dist/expression/array-expression.js +3 -3
  38. package/dist/expression/array-expression.js.map +1 -1
  39. package/dist/expression/core-expression.d.ts +6 -6
  40. package/dist/expression/core-expression.d.ts.map +1 -1
  41. package/dist/expression/core-expression.js +9 -6
  42. package/dist/expression/core-expression.js.map +1 -1
  43. package/dist/expression/expression-evaluator.js +3 -3
  44. package/dist/expression/expression-evaluator.js.map +1 -1
  45. package/dist/expression/expression-mapper.js +3 -3
  46. package/dist/expression/expression-mapper.js.map +1 -1
  47. package/dist/expression/expression.d.ts +5 -6
  48. package/dist/expression/expression.d.ts.map +1 -1
  49. package/dist/expression/expression.js +2 -2
  50. package/dist/expression/expression.js.map +1 -1
  51. package/dist/expression/internal.d.ts.map +1 -1
  52. package/dist/expression/internal.js +3 -3
  53. package/dist/expression/internal.js.map +1 -1
  54. package/dist/expression/numeric-expression.d.ts +5 -5
  55. package/dist/expression/numeric-expression.d.ts.map +1 -1
  56. package/dist/expression/numeric-expression.js +11 -10
  57. package/dist/expression/numeric-expression.js.map +1 -1
  58. package/dist/hex-code.d.ts +2 -2
  59. package/dist/hex-code.d.ts.map +1 -1
  60. package/dist/hex-code.js +1 -1
  61. package/dist/hex-code.js.map +1 -1
  62. package/dist/json.d.ts.map +1 -1
  63. package/dist/json.js +3 -3
  64. package/dist/json.js.map +1 -1
  65. package/dist/logger.d.ts.map +1 -1
  66. package/dist/logger.js +10 -9
  67. package/dist/logger.js.map +1 -1
  68. package/dist/misc.d.ts.map +1 -1
  69. package/dist/misc.js +4 -3
  70. package/dist/misc.js.map +1 -1
  71. package/dist/patch.d.ts.map +1 -1
  72. package/dist/patch.js +6 -5
  73. package/dist/patch.js.map +1 -1
  74. package/dist/property.d.ts.map +1 -1
  75. package/dist/property.js +5 -4
  76. package/dist/property.js.map +1 -1
  77. package/dist/range.d.ts.map +1 -1
  78. package/dist/range.js +4 -3
  79. package/dist/range.js.map +1 -1
  80. package/dist/reference.d.ts +1 -2
  81. package/dist/reference.d.ts.map +1 -1
  82. package/dist/reference.js +13 -10
  83. package/dist/reference.js.map +1 -1
  84. package/dist/resource.d.ts.map +1 -1
  85. package/dist/resource.js +3 -2
  86. package/dist/resource.js.map +1 -1
  87. package/dist/result.d.ts.map +1 -1
  88. package/dist/result.js +6 -5
  89. package/dist/result.js.map +1 -1
  90. package/dist/retry.d.ts.map +1 -1
  91. package/dist/retry.js +14 -9
  92. package/dist/retry.js.map +1 -1
  93. package/dist/rich-text.js +2 -2
  94. package/dist/rich-text.js.map +1 -1
  95. package/dist/signature.d.ts.map +1 -1
  96. package/dist/signature.js +6 -4
  97. package/dist/signature.js.map +1 -1
  98. package/dist/sql/sql-expression-parser.d.ts.map +1 -1
  99. package/dist/sql/sql-expression-parser.js +18 -14
  100. package/dist/sql/sql-expression-parser.js.map +1 -1
  101. package/dist/store.d.ts.map +1 -1
  102. package/dist/store.js +9 -7
  103. package/dist/store.js.map +1 -1
  104. package/dist/string.d.ts.map +1 -1
  105. package/dist/string.js +2 -2
  106. package/dist/string.js.map +1 -1
  107. package/dist/tag.d.ts.map +1 -1
  108. package/dist/tag.js +12 -12
  109. package/dist/tag.js.map +1 -1
  110. package/dist/ulid.d.ts.map +1 -1
  111. package/dist/ulid.js +4 -3
  112. package/dist/ulid.js.map +1 -1
  113. package/dist/uri.d.ts.map +1 -1
  114. package/dist/uri.js +52 -50
  115. package/dist/uri.js.map +1 -1
  116. package/dist/url.d.ts +1 -2
  117. package/dist/url.d.ts.map +1 -1
  118. package/dist/url.js +28 -19
  119. package/dist/url.js.map +1 -1
  120. package/dist/uuid.d.ts.map +1 -1
  121. package/dist/uuid.js +7 -5
  122. package/dist/uuid.js.map +1 -1
  123. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"core-expression.d.ts","sourceRoot":"","sources":["../../src/expression/core-expression.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AACvD,OAAO,EAA+B,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAG/E,eAAO,MAAM,eAAe;;EAQ1B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;EAU7B,CAAA;AAEF,eAAO,MAAM,aAAa;;EAQxB,CAAA;AAEF,eAAO,MAAM,aAAa;;EAUxB,CAAA;AAEF,eAAO,MAAM,YAAY;;EAUvB,CAAA;AAEF,eAAO,MAAM,gBAAgB;;EAe3B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;EAU7B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;EAQ7B,CAAA;AAEF,eAAO,MAAM,yBAAyB;;;EAQpC,CAAA;AAEF,eAAO,MAAM,qBAAqB;;;EAQhC,CAAA;AAEF,eAAO,MAAM,4BAA4B;;;EAQvC,CAAA"}
1
+ {"version":3,"file":"core-expression.d.ts","sourceRoot":"","sources":["../../src/expression/core-expression.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AACvD,OAAO,EAAQ,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AAKhE,eAAO,MAAM,eAAe;;EAQ1B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;EAU7B,CAAA;AAEF,eAAO,MAAM,aAAa;;EAQxB,CAAA;AAEF,eAAO,MAAM,aAAa;;EAUxB,CAAA;AAEF,eAAO,MAAM,YAAY;;EAUvB,CAAA;AAEF,eAAO,MAAM,gBAAgB;;EAe3B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;EAU7B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;EAQ7B,CAAA;AAEF,eAAO,MAAM,yBAAyB;;;EAQpC,CAAA;AAEF,eAAO,MAAM,qBAAqB;;;EAQhC,CAAA;AAEF,eAAO,MAAM,4BAA4B;;;EAQvC,CAAA"}
@@ -1,6 +1,9 @@
1
1
  // src/expression/core-expression.ts
2
2
  import { defineExpression } from "@bessemer/cornerstone/expression/internal";
3
- import { Arrays, Assertions, Objects, Signatures } from "@bessemer/cornerstone";
3
+ import { sign } from "@bessemer/cornerstone/signature";
4
+ import { assertPresent } from "@bessemer/cornerstone/assertion";
5
+ import { isNil, isPresent } from "@bessemer/cornerstone/object";
6
+ import { containsAll } from "@bessemer/cornerstone/array";
4
7
  var ValueExpression = defineExpression({
5
8
  expressionKey: "Value",
6
9
  builder: (value) => {
@@ -17,7 +20,7 @@ var VariableExpression = defineExpression({
17
20
  },
18
21
  resolver: ({ name }, evaluate, context) => {
19
22
  const value = context.variables[name];
20
- Assertions.assertPresent(value);
23
+ assertPresent(value);
21
24
  return value;
22
25
  }
23
26
  });
@@ -38,7 +41,7 @@ var AndExpression = defineExpression({
38
41
  resolver: (expression, evaluate) => {
39
42
  const values = expression.operands.map((it) => evaluate(it));
40
43
  const falseValue = values.find((it) => !it);
41
- return Objects.isNil(falseValue);
44
+ return isNil(falseValue);
42
45
  }
43
46
  });
44
47
  var OrExpression = defineExpression({
@@ -49,7 +52,7 @@ var OrExpression = defineExpression({
49
52
  resolver: (expression, evaluate) => {
50
53
  const values = expression.operands.map((it) => evaluate(it));
51
54
  const trueValue = values.find((it) => it);
52
- return Objects.isPresent(trueValue);
55
+ return isPresent(trueValue);
53
56
  }
54
57
  });
55
58
  var EqualsExpression = defineExpression({
@@ -58,7 +61,7 @@ var EqualsExpression = defineExpression({
58
61
  return { operands };
59
62
  },
60
63
  resolver: (expression, evaluate) => {
61
- const values = expression.operands.map((it) => evaluate(it)).map(Signatures.sign);
64
+ const values = expression.operands.map((it) => evaluate(it)).map(sign);
62
65
  if (values.length === 0) {
63
66
  return true;
64
67
  }
@@ -74,7 +77,7 @@ var ContainsExpression = defineExpression({
74
77
  resolver: (expression, evaluate) => {
75
78
  const collection = evaluate(expression.collection);
76
79
  const values = expression.operands.map((it) => evaluate(it));
77
- return Arrays.containsAll(collection, values);
80
+ return containsAll(collection, values);
78
81
  }
79
82
  });
80
83
  var LessThanExpression = defineExpression({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/expression/core-expression.ts"],"sourcesContent":["import { defineExpression } from '@bessemer/cornerstone/expression/internal'\nimport { Expression } from '@bessemer/cornerstone/expression'\nimport { BasicType } from '@bessemer/cornerstone/types'\nimport { Arrays, Assertions, Objects, Signatures } from '@bessemer/cornerstone'\nimport { Signable } from '@bessemer/cornerstone/signature'\n\nexport const ValueExpression = defineExpression({\n expressionKey: 'Value',\n builder: (value: unknown) => {\n return { value }\n },\n resolver: ({ value }, evaluate, context) => {\n return value\n },\n})\n\nexport const VariableExpression = defineExpression({\n expressionKey: 'Variable',\n builder: (name: string) => {\n return { name }\n },\n resolver: ({ name }, evaluate, context) => {\n const value = context.variables[name]\n Assertions.assertPresent(value)\n return value\n },\n})\n\nexport const NotExpression = defineExpression({\n expressionKey: 'Not',\n builder: (value: Expression<boolean>) => {\n return { value }\n },\n resolver: (expression, evaluate) => {\n return !evaluate(expression.value)\n },\n})\n\nexport const AndExpression = defineExpression({\n expressionKey: 'And',\n builder: (operands: Array<Expression<boolean>>) => {\n return { operands }\n },\n resolver: (expression, evaluate) => {\n const values = expression.operands.map((it) => evaluate(it))\n const falseValue = values.find((it) => !it)\n return Objects.isNil(falseValue)\n },\n})\n\nexport const OrExpression = defineExpression({\n expressionKey: 'Or',\n builder: (operands: Array<Expression<boolean>>) => {\n return { operands }\n },\n resolver: (expression, evaluate) => {\n const values = expression.operands.map((it) => evaluate(it))\n const trueValue = values.find((it) => it)\n return Objects.isPresent(trueValue)\n },\n})\n\nexport const EqualsExpression = defineExpression({\n expressionKey: 'Equals',\n builder: (operands: Array<Expression<Signable>>) => {\n return { operands }\n },\n resolver: (expression, evaluate) => {\n const values = expression.operands.map((it) => evaluate(it)).map(Signatures.sign)\n\n if (values.length === 0) {\n return true\n }\n\n const first = values[0]\n return values.every((val) => val === first)\n },\n})\n\nexport const ContainsExpression = defineExpression({\n expressionKey: 'Contains',\n builder: (collection: Expression<Array<Signable>>, operands: Array<Expression<Signable>>) => {\n return { collection, operands }\n },\n resolver: (expression, evaluate) => {\n const collection = evaluate(expression.collection)\n const values = expression.operands.map((it) => evaluate(it))\n return Arrays.containsAll(collection, values)\n },\n})\n\nexport const LessThanExpression = defineExpression({\n expressionKey: 'Basic.LessThan',\n builder: (left: Expression<BasicType>, right: Expression<BasicType>) => {\n return { left, right }\n },\n resolver: ({ left, right }, evaluate) => {\n return evaluate(left) < evaluate(right)\n },\n})\n\nexport const LessThanOrEqualExpression = defineExpression({\n expressionKey: 'Basic.LessThanOrEqual',\n builder: (left: Expression<BasicType>, right: Expression<BasicType>) => {\n return { left, right }\n },\n resolver: ({ left, right }, evaluate) => {\n return evaluate(left) <= evaluate(right)\n },\n})\n\nexport const GreaterThanExpression = defineExpression({\n expressionKey: 'Basic.GreaterThan',\n builder: (left: Expression<BasicType>, right: Expression<BasicType>) => {\n return { left, right }\n },\n resolver: ({ left, right }, evaluate) => {\n return evaluate(left) > evaluate(right)\n },\n})\n\nexport const GreaterThanOrEqualExpression = defineExpression({\n expressionKey: 'Basic.GreaterThanOrEqual',\n builder: (left: Expression<BasicType>, right: Expression<BasicType>) => {\n return { left, right }\n },\n resolver: ({ left, right }, evaluate) => {\n return evaluate(left) >= evaluate(right)\n },\n})\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/expression/core-expression.ts"],"sourcesContent":["import { defineExpression } from '@bessemer/cornerstone/expression/internal'\nimport { Expression } from '@bessemer/cornerstone/expression'\nimport { BasicType } from '@bessemer/cornerstone/types'\nimport { sign, Signable } from '@bessemer/cornerstone/signature'\nimport { assertPresent } from '@bessemer/cornerstone/assertion'\nimport { isNil, isPresent } from '@bessemer/cornerstone/object'\nimport { containsAll } from '@bessemer/cornerstone/array'\n\nexport const ValueExpression = defineExpression({\n expressionKey: 'Value',\n builder: (value: unknown) => {\n return { value }\n },\n resolver: ({ value }, evaluate, context) => {\n return value\n },\n})\n\nexport const VariableExpression = defineExpression({\n expressionKey: 'Variable',\n builder: (name: string) => {\n return { name }\n },\n resolver: ({ name }, evaluate, context) => {\n const value = context.variables[name]\n assertPresent(value)\n return value\n },\n})\n\nexport const NotExpression = defineExpression({\n expressionKey: 'Not',\n builder: (value: Expression<boolean>) => {\n return { value }\n },\n resolver: (expression, evaluate) => {\n return !evaluate(expression.value)\n },\n})\n\nexport const AndExpression = defineExpression({\n expressionKey: 'And',\n builder: (operands: Array<Expression<boolean>>) => {\n return { operands }\n },\n resolver: (expression, evaluate) => {\n const values = expression.operands.map((it) => evaluate(it))\n const falseValue = values.find((it) => !it)\n return isNil(falseValue)\n },\n})\n\nexport const OrExpression = defineExpression({\n expressionKey: 'Or',\n builder: (operands: Array<Expression<boolean>>) => {\n return { operands }\n },\n resolver: (expression, evaluate) => {\n const values = expression.operands.map((it) => evaluate(it))\n const trueValue = values.find((it) => it)\n return isPresent(trueValue)\n },\n})\n\nexport const EqualsExpression = defineExpression({\n expressionKey: 'Equals',\n builder: (operands: Array<Expression<Signable>>) => {\n return { operands }\n },\n resolver: (expression, evaluate) => {\n const values = expression.operands.map((it) => evaluate(it)).map(sign)\n\n if (values.length === 0) {\n return true\n }\n\n const first = values[0]\n return values.every((val) => val === first)\n },\n})\n\nexport const ContainsExpression = defineExpression({\n expressionKey: 'Contains',\n builder: (collection: Expression<Array<Signable>>, operands: Array<Expression<Signable>>) => {\n return { collection, operands }\n },\n resolver: (expression, evaluate) => {\n const collection = evaluate(expression.collection)\n const values = expression.operands.map((it) => evaluate(it))\n return containsAll(collection, values)\n },\n})\n\nexport const LessThanExpression = defineExpression({\n expressionKey: 'Basic.LessThan',\n builder: (left: Expression<BasicType>, right: Expression<BasicType>) => {\n return { left, right }\n },\n resolver: ({ left, right }, evaluate) => {\n return evaluate(left) < evaluate(right)\n },\n})\n\nexport const LessThanOrEqualExpression = defineExpression({\n expressionKey: 'Basic.LessThanOrEqual',\n builder: (left: Expression<BasicType>, right: Expression<BasicType>) => {\n return { left, right }\n },\n resolver: ({ left, right }, evaluate) => {\n return evaluate(left) <= evaluate(right)\n },\n})\n\nexport const GreaterThanExpression = defineExpression({\n expressionKey: 'Basic.GreaterThan',\n builder: (left: Expression<BasicType>, right: Expression<BasicType>) => {\n return { left, right }\n },\n resolver: ({ left, right }, evaluate) => {\n return evaluate(left) > evaluate(right)\n },\n})\n\nexport const GreaterThanOrEqualExpression = defineExpression({\n expressionKey: 'Basic.GreaterThanOrEqual',\n builder: (left: Expression<BasicType>, right: Expression<BasicType>) => {\n return { left, right }\n },\n resolver: ({ left, right }, evaluate) => {\n return evaluate(left) >= evaluate(right)\n },\n})\n"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
1
1
  // src/expression/expression-evaluator.ts
2
- import { Assertions } from "@bessemer/cornerstone";
3
2
  import { isValue } from "@bessemer/cornerstone/expression/internal";
3
+ import { assertPresent } from "@bessemer/cornerstone/assertion";
4
4
  var ExpressionEvaluator = class {
5
5
  constructor(expressionDefinitions) {
6
6
  this.expressionDefinitions = expressionDefinitions;
@@ -10,12 +10,12 @@ var ExpressionEvaluator = class {
10
10
  return expression;
11
11
  }
12
12
  const matchingExpressionDefinition = this.expressionDefinitions.find((it) => it.expressionKey === expression.expressionKey);
13
- Assertions.assertPresent(matchingExpressionDefinition);
13
+ assertPresent(matchingExpressionDefinition);
14
14
  return matchingExpressionDefinition.resolver(expression, (expression2) => this.evaluate(expression2, context), context);
15
15
  }
16
16
  dereference(reference, ...args) {
17
17
  const matchingExpressionDefinition = this.expressionDefinitions.find((it) => it.expressionKey === reference.expressionKey);
18
- Assertions.assertPresent(matchingExpressionDefinition, () => `Unable to find Expression Definition for type: ${reference.expressionKey}`);
18
+ assertPresent(matchingExpressionDefinition, () => `Unable to find Expression Definition for type: ${reference.expressionKey}`);
19
19
  return matchingExpressionDefinition.builder(...args);
20
20
  }
21
21
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/expression/expression-evaluator.ts"],"sourcesContent":["import { Expression, ExpressionContext, ExpressionDefinition, ExpressionReference } from '@bessemer/cornerstone/expression'\nimport { Assertions } from '@bessemer/cornerstone'\nimport { isValue } from '@bessemer/cornerstone/expression/internal'\n\n// JOHN need to add tests...\nexport class ExpressionEvaluator {\n constructor(private readonly expressionDefinitions: Array<ExpressionDefinition<unknown, Array<any>, Expression<any>>>) {}\n\n evaluate<T>(expression: Expression<T>, context: ExpressionContext): T {\n if (isValue(expression)) {\n return expression\n }\n\n const matchingExpressionDefinition = this.expressionDefinitions.find((it) => it.expressionKey === expression.expressionKey)\n Assertions.assertPresent(matchingExpressionDefinition)\n return matchingExpressionDefinition.resolver(expression, (expression) => this.evaluate(expression, context), context) as T\n }\n\n dereference<ReturnType, ArgumentType extends Array<unknown>>(\n reference: ExpressionReference<ReturnType, ArgumentType>,\n ...args: ArgumentType\n ): Expression<ReturnType> {\n const matchingExpressionDefinition = this.expressionDefinitions.find((it) => it.expressionKey === reference.expressionKey)\n Assertions.assertPresent(matchingExpressionDefinition, () => `Unable to find Expression Definition for type: ${reference.expressionKey}`)\n return matchingExpressionDefinition.builder(...args)\n }\n}\n"],"mappings":";AACA,SAAS,kBAAkB;AAC3B,SAAS,eAAe;AAGjB,IAAM,sBAAN,MAA0B;AAAA,EAC/B,YAA6B,uBAA0F;AAA1F;AAAA,EAA2F;AAAA,EAExH,SAAY,YAA2B,SAA+B;AACpE,QAAI,QAAQ,UAAU,GAAG;AACvB,aAAO;AAAA,IACT;AAEA,UAAM,+BAA+B,KAAK,sBAAsB,KAAK,CAAC,OAAO,GAAG,kBAAkB,WAAW,aAAa;AAC1H,eAAW,cAAc,4BAA4B;AACrD,WAAO,6BAA6B,SAAS,YAAY,CAACA,gBAAe,KAAK,SAASA,aAAY,OAAO,GAAG,OAAO;AAAA,EACtH;AAAA,EAEA,YACE,cACG,MACqB;AACxB,UAAM,+BAA+B,KAAK,sBAAsB,KAAK,CAAC,OAAO,GAAG,kBAAkB,UAAU,aAAa;AACzH,eAAW,cAAc,8BAA8B,MAAM,kDAAkD,UAAU,aAAa,EAAE;AACxI,WAAO,6BAA6B,QAAQ,GAAG,IAAI;AAAA,EACrD;AACF;","names":["expression"]}
1
+ {"version":3,"sources":["../../src/expression/expression-evaluator.ts"],"sourcesContent":["import { Expression, ExpressionContext, ExpressionDefinition, ExpressionReference } from '@bessemer/cornerstone/expression'\nimport { isValue } from '@bessemer/cornerstone/expression/internal'\nimport { assertPresent } from '@bessemer/cornerstone/assertion'\n\n// JOHN need to add tests...\nexport class ExpressionEvaluator {\n constructor(private readonly expressionDefinitions: Array<ExpressionDefinition<unknown, Array<any>, Expression<any>>>) {}\n\n evaluate<T>(expression: Expression<T>, context: ExpressionContext): T {\n if (isValue(expression)) {\n return expression\n }\n\n const matchingExpressionDefinition = this.expressionDefinitions.find((it) => it.expressionKey === expression.expressionKey)\n assertPresent(matchingExpressionDefinition)\n return matchingExpressionDefinition.resolver(expression, (expression) => this.evaluate(expression, context), context) as T\n }\n\n dereference<ReturnType, ArgumentType extends Array<unknown>>(\n reference: ExpressionReference<ReturnType, ArgumentType>,\n ...args: ArgumentType\n ): Expression<ReturnType> {\n const matchingExpressionDefinition = this.expressionDefinitions.find((it) => it.expressionKey === reference.expressionKey)\n assertPresent(matchingExpressionDefinition, () => `Unable to find Expression Definition for type: ${reference.expressionKey}`)\n return matchingExpressionDefinition.builder(...args)\n }\n}\n"],"mappings":";AACA,SAAS,eAAe;AACxB,SAAS,qBAAqB;AAGvB,IAAM,sBAAN,MAA0B;AAAA,EAC/B,YAA6B,uBAA0F;AAA1F;AAAA,EAA2F;AAAA,EAExH,SAAY,YAA2B,SAA+B;AACpE,QAAI,QAAQ,UAAU,GAAG;AACvB,aAAO;AAAA,IACT;AAEA,UAAM,+BAA+B,KAAK,sBAAsB,KAAK,CAAC,OAAO,GAAG,kBAAkB,WAAW,aAAa;AAC1H,kBAAc,4BAA4B;AAC1C,WAAO,6BAA6B,SAAS,YAAY,CAACA,gBAAe,KAAK,SAASA,aAAY,OAAO,GAAG,OAAO;AAAA,EACtH;AAAA,EAEA,YACE,cACG,MACqB;AACxB,UAAM,+BAA+B,KAAK,sBAAsB,KAAK,CAAC,OAAO,GAAG,kBAAkB,UAAU,aAAa;AACzH,kBAAc,8BAA8B,MAAM,kDAAkD,UAAU,aAAa,EAAE;AAC7H,WAAO,6BAA6B,QAAQ,GAAG,IAAI;AAAA,EACrD;AACF;","names":["expression"]}
@@ -1,21 +1,21 @@
1
1
  // src/expression/expression-mapper.ts
2
2
  import { isExpression } from "@bessemer/cornerstone/expression/internal";
3
- import { Assertions } from "@bessemer/cornerstone";
4
3
  import { value } from "@bessemer/cornerstone/expression/expression";
5
4
  import { ValueExpression } from "@bessemer/cornerstone/expression/core-expression";
5
+ import { assertPresent } from "@bessemer/cornerstone/assertion";
6
6
  var ExpressionMapper = class {
7
7
  resolverMap = {};
8
8
  map(expression, context) {
9
9
  if (isExpression(expression)) {
10
10
  const resolver = this.resolverMap[expression.expressionKey];
11
- Assertions.assertPresent(
11
+ assertPresent(
12
12
  resolver,
13
13
  () => `Illegal Argument - Attempted to map unknown expression: ${expression.expressionKey}. You must register(...) a handler for this expression type.`
14
14
  );
15
15
  return resolver(expression, (expression2) => this.map(expression2, context), context);
16
16
  } else {
17
17
  const resolver = this.resolverMap[ValueExpression.expressionKey];
18
- Assertions.assertPresent(
18
+ assertPresent(
19
19
  resolver,
20
20
  () => `Illegal Argument - Attempted to map unknown expression: ${ValueExpression.expressionKey}. You must register(...) a handler for this expression type.`
21
21
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/expression/expression-mapper.ts"],"sourcesContent":["import { Expression, ExpressionDefinition } from '@bessemer/cornerstone/expression'\nimport { Dictionary } from '@bessemer/cornerstone/types'\nimport { isExpression } from '@bessemer/cornerstone/expression/internal'\nimport { Assertions } from '@bessemer/cornerstone'\nimport { value } from '@bessemer/cornerstone/expression/expression'\nimport { ValueExpression } from '@bessemer/cornerstone/expression/core-expression'\n\ntype ExpressionResolver<ExpressionType, MappingType, ContextType> = (\n expression: ExpressionType,\n map: (expression: Expression<unknown>) => MappingType,\n context: ContextType\n) => MappingType\n\nexport class ExpressionMapper<MappingType, ContextType> {\n private readonly resolverMap: Dictionary<ExpressionResolver<any, MappingType, ContextType>> = {}\n\n map(expression: Expression<unknown>, context: ContextType): MappingType {\n if (isExpression(expression)) {\n const resolver = this.resolverMap[expression.expressionKey]\n Assertions.assertPresent(\n resolver,\n () =>\n `Illegal Argument - Attempted to map unknown expression: ${expression.expressionKey}. You must register(...) a handler for this expression type.`\n )\n\n return resolver(expression, (expression) => this.map(expression, context), context)\n } else {\n const resolver = this.resolverMap[ValueExpression.expressionKey]\n Assertions.assertPresent(\n resolver,\n () =>\n `Illegal Argument - Attempted to map unknown expression: ${ValueExpression.expressionKey}. You must register(...) a handler for this expression type.`\n )\n\n const valueExpression = value(expression)\n return resolver(valueExpression, (expression) => this.map(expression, context), context)\n }\n }\n\n register<ExpressionType>(\n definition: ExpressionDefinition<any, any, ExpressionType>,\n resolver: ExpressionResolver<ExpressionType, MappingType, ContextType>\n ): void {\n this.resolverMap[definition.expressionKey] = resolver\n }\n}\n"],"mappings":";AAEA,SAAS,oBAAoB;AAC7B,SAAS,kBAAkB;AAC3B,SAAS,aAAa;AACtB,SAAS,uBAAuB;AAQzB,IAAM,mBAAN,MAAiD;AAAA,EACrC,cAA6E,CAAC;AAAA,EAE/F,IAAI,YAAiC,SAAmC;AACtE,QAAI,aAAa,UAAU,GAAG;AAC5B,YAAM,WAAW,KAAK,YAAY,WAAW,aAAa;AAC1D,iBAAW;AAAA,QACT;AAAA,QACA,MACE,2DAA2D,WAAW,aAAa;AAAA,MACvF;AAEA,aAAO,SAAS,YAAY,CAACA,gBAAe,KAAK,IAAIA,aAAY,OAAO,GAAG,OAAO;AAAA,IACpF,OAAO;AACL,YAAM,WAAW,KAAK,YAAY,gBAAgB,aAAa;AAC/D,iBAAW;AAAA,QACT;AAAA,QACA,MACE,2DAA2D,gBAAgB,aAAa;AAAA,MAC5F;AAEA,YAAM,kBAAkB,MAAM,UAAU;AACxC,aAAO,SAAS,iBAAiB,CAACA,gBAAe,KAAK,IAAIA,aAAY,OAAO,GAAG,OAAO;AAAA,IACzF;AAAA,EACF;AAAA,EAEA,SACE,YACA,UACM;AACN,SAAK,YAAY,WAAW,aAAa,IAAI;AAAA,EAC/C;AACF;","names":["expression"]}
1
+ {"version":3,"sources":["../../src/expression/expression-mapper.ts"],"sourcesContent":["import { Expression, ExpressionDefinition } from '@bessemer/cornerstone/expression'\nimport { Dictionary } from '@bessemer/cornerstone/types'\nimport { isExpression } from '@bessemer/cornerstone/expression/internal'\nimport { value } from '@bessemer/cornerstone/expression/expression'\nimport { ValueExpression } from '@bessemer/cornerstone/expression/core-expression'\nimport { assertPresent } from '@bessemer/cornerstone/assertion'\n\ntype ExpressionResolver<ExpressionType, MappingType, ContextType> = (\n expression: ExpressionType,\n map: (expression: Expression<unknown>) => MappingType,\n context: ContextType\n) => MappingType\n\nexport class ExpressionMapper<MappingType, ContextType> {\n private readonly resolverMap: Dictionary<ExpressionResolver<any, MappingType, ContextType>> = {}\n\n map(expression: Expression<unknown>, context: ContextType): MappingType {\n if (isExpression(expression)) {\n const resolver = this.resolverMap[expression.expressionKey]\n assertPresent(\n resolver,\n () =>\n `Illegal Argument - Attempted to map unknown expression: ${expression.expressionKey}. You must register(...) a handler for this expression type.`\n )\n\n return resolver(expression, (expression) => this.map(expression, context), context)\n } else {\n const resolver = this.resolverMap[ValueExpression.expressionKey]\n assertPresent(\n resolver,\n () =>\n `Illegal Argument - Attempted to map unknown expression: ${ValueExpression.expressionKey}. You must register(...) a handler for this expression type.`\n )\n\n const valueExpression = value(expression)\n return resolver(valueExpression, (expression) => this.map(expression, context), context)\n }\n }\n\n register<ExpressionType>(\n definition: ExpressionDefinition<any, any, ExpressionType>,\n resolver: ExpressionResolver<ExpressionType, MappingType, ContextType>\n ): void {\n this.resolverMap[definition.expressionKey] = resolver\n }\n}\n"],"mappings":";AAEA,SAAS,oBAAoB;AAC7B,SAAS,aAAa;AACtB,SAAS,uBAAuB;AAChC,SAAS,qBAAqB;AAQvB,IAAM,mBAAN,MAAiD;AAAA,EACrC,cAA6E,CAAC;AAAA,EAE/F,IAAI,YAAiC,SAAmC;AACtE,QAAI,aAAa,UAAU,GAAG;AAC5B,YAAM,WAAW,KAAK,YAAY,WAAW,aAAa;AAC1D;AAAA,QACE;AAAA,QACA,MACE,2DAA2D,WAAW,aAAa;AAAA,MACvF;AAEA,aAAO,SAAS,YAAY,CAACA,gBAAe,KAAK,IAAIA,aAAY,OAAO,GAAG,OAAO;AAAA,IACpF,OAAO;AACL,YAAM,WAAW,KAAK,YAAY,gBAAgB,aAAa;AAC/D;AAAA,QACE;AAAA,QACA,MACE,2DAA2D,gBAAgB,aAAa;AAAA,MAC5F;AAEA,YAAM,kBAAkB,MAAM,UAAU;AACxC,aAAO,SAAS,iBAAiB,CAACA,gBAAe,KAAK,IAAIA,aAAY,OAAO,GAAG,OAAO;AAAA,IACzF;AAAA,EACF;AAAA,EAEA,SACE,YACA,UACM;AACN,SAAK,YAAY,WAAW,aAAa,IAAI;AAAA,EAC/C;AACF;","names":["expression"]}
@@ -1,5 +1,4 @@
1
1
  import { EvaluateExpression, Expression, ExpressionContext, ExpressionDefinition, ExpressionReference, ExpressionVariable, ParameterizedVariable } from '@bessemer/cornerstone/expression';
2
- import { Signatures } from '@bessemer/cornerstone';
3
2
  import { Signable } from '@bessemer/cornerstone/signature';
4
3
  import { UnknownRecord } from 'type-fest';
5
4
  import { ExpressionMapper } from '@bessemer/cornerstone/expression/expression-mapper';
@@ -24,12 +23,12 @@ export declare const and: (operands: Expression<boolean>[]) => Expression<boolea
24
23
  export declare const or: (operands: Expression<boolean>[]) => Expression<boolean> & {
25
24
  operands: Expression<boolean>[];
26
25
  };
27
- export declare const equals: (operands: Expression<Signatures.Signable>[]) => Expression<boolean> & {
28
- operands: Expression<Signatures.Signable>[];
26
+ export declare const equals: (operands: Expression<Signable>[]) => Expression<boolean> & {
27
+ operands: Expression<Signable>[];
29
28
  };
30
- export declare const contains: (collection: Expression<Signatures.Signable[]>, operands: Expression<Signatures.Signable>[]) => Expression<boolean> & {
31
- collection: Expression<Signatures.Signable[]>;
32
- operands: Expression<Signatures.Signable>[];
29
+ export declare const contains: (collection: Expression<Signable[]>, operands: Expression<Signable>[]) => Expression<boolean> & {
30
+ collection: Expression<Signable[]>;
31
+ operands: Expression<Signable>[];
33
32
  };
34
33
  export declare const lessThan: (left: Expression<import("../types").BasicType>, right: Expression<import("../types").BasicType>) => Expression<boolean> & {
35
34
  left: Expression<import("../types").BasicType>;
@@ -1 +1 @@
1
- {"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../src/expression/expression.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,kBAAkB,EAClB,UAAU,EACV,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAElB,qBAAqB,EAEtB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAczC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAA;AAErF,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,YAAY,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,iBAAiB,KAAG,CAEnF,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,CAAC,EAAE,YAAY,UAAU,CAAC,CAAC,CAAC,KAAG,CAE9D,CAAA;AAED,eAAO,MAAM,GAAG,GAAI,WAAW,EAAE,WAAW,EAC1C,YAAY,UAAU,CAAC,OAAO,CAAC,EAC/B,QAAQ,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC,EAClD,SAAS,WAAW,KACnB,WAEF,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,SAAS,iBAAiB,KAAG,kBAEtD,CAAA;AAED,eAAO,MAAM,gBAAgB,QAAO,kBAEnC,CAAA;AAED,eAAO,MAAM,cAAc,QAAO,iBAEjC,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,UAAU,EAAE,YAAY,SAAS,KAAK,CAAC,OAAO,CAAC,EACzE,WAAW,mBAAmB,CAAC,UAAU,EAAE,YAAY,CAAC,EACxD,GAAG,MAAM,YAAY,KACpB,UAAU,CAAC,UAAU,CAEvB,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,SAAS,EAAE,aAAa,SAAS,KAAK,CAAC,QAAQ,CAAC,EACpF,MAAM,MAAM,KACX,qBAAqB,CAAC,SAAS,EAAE,aAAa,CAOhD,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,UAAU,kBAAkB,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,KAAG,aAE5E,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,UAAU,EAAE,YAAY,SAAS,KAAK,CAAC,OAAO,CAAC,EAAE,cAAc,SAAS,UAAU,CAAC,UAAU,CAAC,EACtH,sBAAsB,oBAAoB,CAAC,UAAU,EAAE,YAAY,EAAE,cAAc,CAAC,KACnF,mBAAmB,CAAC,UAAU,EAAE,YAAY,CAE9C,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,OAAO,CAAC,KAAG,UAAU,CAAC,CAAC,CAE/C,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,MAAM,MAAM,KAAG,kBAAkB,CAAC,CAAC,CAE9D,CAAA;AAED,eAAO,MAAM,GAAG;;CAAwB,CAAA;AAExC,eAAO,MAAM,GAAG;;CAAwB,CAAA;AAExC,eAAO,MAAM,EAAE;;CAAuB,CAAA;AAEtC,eAAO,MAAM,MAAM;;CAA2B,CAAA;AAE9C,eAAO,MAAM,QAAQ;;;CAA6B,CAAA;AAElD,eAAO,MAAM,QAAQ;;;CAA6B,CAAA;AAElD,eAAO,MAAM,eAAe;;;CAAoC,CAAA;AAEhE,eAAO,MAAM,WAAW;;;CAAgC,CAAA;AAExD,eAAO,MAAM,kBAAkB;;;CAAuC,CAAA"}
1
+ {"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../src/expression/expression.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,kBAAkB,EAClB,UAAU,EACV,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAElB,qBAAqB,EAEtB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAQ,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAczC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAA;AAErF,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,YAAY,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,iBAAiB,KAAG,CAEnF,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,CAAC,EAAE,YAAY,UAAU,CAAC,CAAC,CAAC,KAAG,CAE9D,CAAA;AAED,eAAO,MAAM,GAAG,GAAI,WAAW,EAAE,WAAW,EAC1C,YAAY,UAAU,CAAC,OAAO,CAAC,EAC/B,QAAQ,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC,EAClD,SAAS,WAAW,KACnB,WAEF,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,SAAS,iBAAiB,KAAG,kBAEtD,CAAA;AAED,eAAO,MAAM,gBAAgB,QAAO,kBAEnC,CAAA;AAED,eAAO,MAAM,cAAc,QAAO,iBAEjC,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,UAAU,EAAE,YAAY,SAAS,KAAK,CAAC,OAAO,CAAC,EACzE,WAAW,mBAAmB,CAAC,UAAU,EAAE,YAAY,CAAC,EACxD,GAAG,MAAM,YAAY,KACpB,UAAU,CAAC,UAAU,CAEvB,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,SAAS,EAAE,aAAa,SAAS,KAAK,CAAC,QAAQ,CAAC,EACpF,MAAM,MAAM,KACX,qBAAqB,CAAC,SAAS,EAAE,aAAa,CAOhD,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,UAAU,kBAAkB,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,KAAG,aAE5E,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,UAAU,EAAE,YAAY,SAAS,KAAK,CAAC,OAAO,CAAC,EAAE,cAAc,SAAS,UAAU,CAAC,UAAU,CAAC,EACtH,sBAAsB,oBAAoB,CAAC,UAAU,EAAE,YAAY,EAAE,cAAc,CAAC,KACnF,mBAAmB,CAAC,UAAU,EAAE,YAAY,CAE9C,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,OAAO,CAAC,KAAG,UAAU,CAAC,CAAC,CAE/C,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,MAAM,MAAM,KAAG,kBAAkB,CAAC,CAAC,CAE9D,CAAA;AAED,eAAO,MAAM,GAAG;;CAAwB,CAAA;AAExC,eAAO,MAAM,GAAG;;CAAwB,CAAA;AAExC,eAAO,MAAM,EAAE;;CAAuB,CAAA;AAEtC,eAAO,MAAM,MAAM;;CAA2B,CAAA;AAE9C,eAAO,MAAM,QAAQ;;;CAA6B,CAAA;AAElD,eAAO,MAAM,QAAQ;;;CAA6B,CAAA;AAElD,eAAO,MAAM,eAAe;;;CAAoC,CAAA;AAEhE,eAAO,MAAM,WAAW;;;CAAgC,CAAA;AAExD,eAAO,MAAM,kBAAkB;;;CAAuC,CAAA"}
@@ -5,7 +5,7 @@ import {
5
5
  NumericExpressions,
6
6
  StringExpressions
7
7
  } from "@bessemer/cornerstone/expression";
8
- import { Signatures } from "@bessemer/cornerstone";
8
+ import { sign } from "@bessemer/cornerstone/signature";
9
9
  import {
10
10
  AndExpression,
11
11
  ContainsExpression,
@@ -43,7 +43,7 @@ var dereference = (reference2, ...args) => {
43
43
  var parameterizedVariable = (name) => {
44
44
  return {
45
45
  apply(...parameters) {
46
- const parameterString = parameters.map(Signatures.sign).join(".");
46
+ const parameterString = parameters.map(sign).join(".");
47
47
  return variable(`${name}.${parameterString}`);
48
48
  }
49
49
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/expression/expression.ts"],"sourcesContent":["import { ExpressionEvaluator } from '@bessemer/cornerstone/expression/expression-evaluator'\nimport {\n ArrayExpressions,\n EvaluateExpression,\n Expression,\n ExpressionContext,\n ExpressionDefinition,\n ExpressionReference,\n ExpressionVariable,\n NumericExpressions,\n ParameterizedVariable,\n StringExpressions,\n} from '@bessemer/cornerstone/expression'\nimport { Signatures } from '@bessemer/cornerstone'\nimport { Signable } from '@bessemer/cornerstone/signature'\nimport { UnknownRecord } from 'type-fest'\nimport {\n AndExpression,\n ContainsExpression,\n EqualsExpression,\n GreaterThanExpression,\n GreaterThanOrEqualExpression,\n LessThanExpression,\n LessThanOrEqualExpression,\n NotExpression,\n OrExpression,\n ValueExpression,\n VariableExpression,\n} from '@bessemer/cornerstone/expression/core-expression'\nimport { ExpressionMapper } from '@bessemer/cornerstone/expression/expression-mapper'\n\nexport const evaluate = <T>(expression: Expression<T>, context: ExpressionContext): T => {\n return new ExpressionEvaluator(DEFAULT_EXPRESSION_DEFINITIONS).evaluate(expression, context)\n}\n\nexport const evaluateDefault = <T>(expression: Expression<T>): T => {\n return evaluate(expression, defaultContext())\n}\n\nexport const map = <MappingType, ContextType>(\n expression: Expression<unknown>,\n mapper: ExpressionMapper<MappingType, ContextType>,\n context: ContextType\n): MappingType => {\n return mapper.map(expression, context)\n}\n\nexport const evaluator = (context: ExpressionContext): EvaluateExpression => {\n return (it) => evaluate(it, context)\n}\n\nexport const defaultEvaluator = (): EvaluateExpression => {\n return evaluator(defaultContext())\n}\n\nexport const defaultContext = (): ExpressionContext => {\n return { variables: {} }\n}\n\nexport const dereference = <ReturnType, ArgumentType extends Array<unknown>>(\n reference: ExpressionReference<ReturnType, ArgumentType>,\n ...args: ArgumentType\n): Expression<ReturnType> => {\n return new ExpressionEvaluator(DEFAULT_EXPRESSION_DEFINITIONS).dereference(reference, ...args)\n}\n\nexport const parameterizedVariable = <ValueType, ParameterType extends Array<Signable>>(\n name: string\n): ParameterizedVariable<ValueType, ParameterType> => {\n return {\n apply(...parameters: ParameterType): ExpressionVariable<ValueType> {\n const parameterString = parameters.map(Signatures.sign).join('.')\n return variable(`${name}.${parameterString}`)\n },\n }\n}\n\nexport const buildVariable = <T>(variable: ExpressionVariable<T>, value: T): UnknownRecord => {\n return { [variable.name]: value }\n}\n\nexport const reference = <ReturnType, ArgumentType extends Array<unknown>, ExpressionType extends Expression<ReturnType>>(\n expressionDefinition: ExpressionDefinition<ReturnType, ArgumentType, ExpressionType>\n): ExpressionReference<ReturnType, ArgumentType> => {\n return { expressionKey: expressionDefinition.expressionKey }\n}\n\nexport const value = <T>(value: T): Expression<T> => {\n return ValueExpression.builder(value) as Expression<T>\n}\n\nexport const variable = <T>(name: string): ExpressionVariable<T> => {\n return VariableExpression.builder(name) as ExpressionVariable<T>\n}\n\nexport const not = NotExpression.builder\n\nexport const and = AndExpression.builder\n\nexport const or = OrExpression.builder\n\nexport const equals = EqualsExpression.builder\n\nexport const contains = ContainsExpression.builder\n\nexport const lessThan = LessThanExpression.builder\n\nexport const lessThanOrEqual = LessThanOrEqualExpression.builder\n\nexport const greaterThan = GreaterThanExpression.builder\n\nexport const greaterThanOrEqual = GreaterThanOrEqualExpression.builder\n\nconst DEFAULT_EXPRESSION_DEFINITIONS: Array<ExpressionDefinition<unknown, Array<any>, Expression<any>>> = [\n ValueExpression,\n VariableExpression,\n AndExpression,\n OrExpression,\n ContainsExpression,\n EqualsExpression,\n LessThanExpression,\n LessThanOrEqualExpression,\n GreaterThanExpression,\n GreaterThanOrEqualExpression,\n NumericExpressions.SumExpression,\n NumericExpressions.MultiplyExpression,\n NumericExpressions.FloorExpression,\n NumericExpressions.CeilingExpression,\n NumericExpressions.BoundExpression,\n NumericExpressions.RoundExpression,\n NumericExpressions.MaxExpression,\n NumericExpressions.MinExpression,\n StringExpressions.ConcatenateExpression,\n StringExpressions.SubstringExpression,\n StringExpressions.UppercaseExpression,\n ArrayExpressions.ConcatenateExpression,\n ArrayExpressions.FirstExpression,\n]\n"],"mappings":";AAAA,SAAS,2BAA2B;AACpC;AAAA,EACE;AAAA,EAOA;AAAA,EAEA;AAAA,OACK;AACP,SAAS,kBAAkB;AAG3B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGA,IAAM,WAAW,CAAI,YAA2B,YAAkC;AACvF,SAAO,IAAI,oBAAoB,8BAA8B,EAAE,SAAS,YAAY,OAAO;AAC7F;AAEO,IAAM,kBAAkB,CAAI,eAAiC;AAClE,SAAO,SAAS,YAAY,eAAe,CAAC;AAC9C;AAEO,IAAM,MAAM,CACjB,YACA,QACA,YACgB;AAChB,SAAO,OAAO,IAAI,YAAY,OAAO;AACvC;AAEO,IAAM,YAAY,CAAC,YAAmD;AAC3E,SAAO,CAAC,OAAO,SAAS,IAAI,OAAO;AACrC;AAEO,IAAM,mBAAmB,MAA0B;AACxD,SAAO,UAAU,eAAe,CAAC;AACnC;AAEO,IAAM,iBAAiB,MAAyB;AACrD,SAAO,EAAE,WAAW,CAAC,EAAE;AACzB;AAEO,IAAM,cAAc,CACzBA,eACG,SACwB;AAC3B,SAAO,IAAI,oBAAoB,8BAA8B,EAAE,YAAYA,YAAW,GAAG,IAAI;AAC/F;AAEO,IAAM,wBAAwB,CACnC,SACoD;AACpD,SAAO;AAAA,IACL,SAAS,YAA0D;AACjE,YAAM,kBAAkB,WAAW,IAAI,WAAW,IAAI,EAAE,KAAK,GAAG;AAChE,aAAO,SAAS,GAAG,IAAI,IAAI,eAAe,EAAE;AAAA,IAC9C;AAAA,EACF;AACF;AAEO,IAAM,gBAAgB,CAAIC,WAAiCC,WAA4B;AAC5F,SAAO,EAAE,CAACD,UAAS,IAAI,GAAGC,OAAM;AAClC;AAEO,IAAM,YAAY,CACvB,yBACkD;AAClD,SAAO,EAAE,eAAe,qBAAqB,cAAc;AAC7D;AAEO,IAAM,QAAQ,CAAIA,WAA4B;AACnD,SAAO,gBAAgB,QAAQA,MAAK;AACtC;AAEO,IAAM,WAAW,CAAI,SAAwC;AAClE,SAAO,mBAAmB,QAAQ,IAAI;AACxC;AAEO,IAAM,MAAM,cAAc;AAE1B,IAAM,MAAM,cAAc;AAE1B,IAAM,KAAK,aAAa;AAExB,IAAM,SAAS,iBAAiB;AAEhC,IAAM,WAAW,mBAAmB;AAEpC,IAAM,WAAW,mBAAmB;AAEpC,IAAM,kBAAkB,0BAA0B;AAElD,IAAM,cAAc,sBAAsB;AAE1C,IAAM,qBAAqB,6BAA6B;AAE/D,IAAM,iCAAoG;AAAA,EACxG;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,iBAAiB;AACnB;","names":["reference","variable","value"]}
1
+ {"version":3,"sources":["../../src/expression/expression.ts"],"sourcesContent":["import { ExpressionEvaluator } from '@bessemer/cornerstone/expression/expression-evaluator'\nimport {\n ArrayExpressions,\n EvaluateExpression,\n Expression,\n ExpressionContext,\n ExpressionDefinition,\n ExpressionReference,\n ExpressionVariable,\n NumericExpressions,\n ParameterizedVariable,\n StringExpressions,\n} from '@bessemer/cornerstone/expression'\nimport { sign, Signable } from '@bessemer/cornerstone/signature'\nimport { UnknownRecord } from 'type-fest'\nimport {\n AndExpression,\n ContainsExpression,\n EqualsExpression,\n GreaterThanExpression,\n GreaterThanOrEqualExpression,\n LessThanExpression,\n LessThanOrEqualExpression,\n NotExpression,\n OrExpression,\n ValueExpression,\n VariableExpression,\n} from '@bessemer/cornerstone/expression/core-expression'\nimport { ExpressionMapper } from '@bessemer/cornerstone/expression/expression-mapper'\n\nexport const evaluate = <T>(expression: Expression<T>, context: ExpressionContext): T => {\n return new ExpressionEvaluator(DEFAULT_EXPRESSION_DEFINITIONS).evaluate(expression, context)\n}\n\nexport const evaluateDefault = <T>(expression: Expression<T>): T => {\n return evaluate(expression, defaultContext())\n}\n\nexport const map = <MappingType, ContextType>(\n expression: Expression<unknown>,\n mapper: ExpressionMapper<MappingType, ContextType>,\n context: ContextType\n): MappingType => {\n return mapper.map(expression, context)\n}\n\nexport const evaluator = (context: ExpressionContext): EvaluateExpression => {\n return (it) => evaluate(it, context)\n}\n\nexport const defaultEvaluator = (): EvaluateExpression => {\n return evaluator(defaultContext())\n}\n\nexport const defaultContext = (): ExpressionContext => {\n return { variables: {} }\n}\n\nexport const dereference = <ReturnType, ArgumentType extends Array<unknown>>(\n reference: ExpressionReference<ReturnType, ArgumentType>,\n ...args: ArgumentType\n): Expression<ReturnType> => {\n return new ExpressionEvaluator(DEFAULT_EXPRESSION_DEFINITIONS).dereference(reference, ...args)\n}\n\nexport const parameterizedVariable = <ValueType, ParameterType extends Array<Signable>>(\n name: string\n): ParameterizedVariable<ValueType, ParameterType> => {\n return {\n apply(...parameters: ParameterType): ExpressionVariable<ValueType> {\n const parameterString = parameters.map(sign).join('.')\n return variable(`${name}.${parameterString}`)\n },\n }\n}\n\nexport const buildVariable = <T>(variable: ExpressionVariable<T>, value: T): UnknownRecord => {\n return { [variable.name]: value }\n}\n\nexport const reference = <ReturnType, ArgumentType extends Array<unknown>, ExpressionType extends Expression<ReturnType>>(\n expressionDefinition: ExpressionDefinition<ReturnType, ArgumentType, ExpressionType>\n): ExpressionReference<ReturnType, ArgumentType> => {\n return { expressionKey: expressionDefinition.expressionKey }\n}\n\nexport const value = <T>(value: T): Expression<T> => {\n return ValueExpression.builder(value) as Expression<T>\n}\n\nexport const variable = <T>(name: string): ExpressionVariable<T> => {\n return VariableExpression.builder(name) as ExpressionVariable<T>\n}\n\nexport const not = NotExpression.builder\n\nexport const and = AndExpression.builder\n\nexport const or = OrExpression.builder\n\nexport const equals = EqualsExpression.builder\n\nexport const contains = ContainsExpression.builder\n\nexport const lessThan = LessThanExpression.builder\n\nexport const lessThanOrEqual = LessThanOrEqualExpression.builder\n\nexport const greaterThan = GreaterThanExpression.builder\n\nexport const greaterThanOrEqual = GreaterThanOrEqualExpression.builder\n\nconst DEFAULT_EXPRESSION_DEFINITIONS: Array<ExpressionDefinition<unknown, Array<any>, Expression<any>>> = [\n ValueExpression,\n VariableExpression,\n AndExpression,\n OrExpression,\n ContainsExpression,\n EqualsExpression,\n LessThanExpression,\n LessThanOrEqualExpression,\n GreaterThanExpression,\n GreaterThanOrEqualExpression,\n NumericExpressions.SumExpression,\n NumericExpressions.MultiplyExpression,\n NumericExpressions.FloorExpression,\n NumericExpressions.CeilingExpression,\n NumericExpressions.BoundExpression,\n NumericExpressions.RoundExpression,\n NumericExpressions.MaxExpression,\n NumericExpressions.MinExpression,\n StringExpressions.ConcatenateExpression,\n StringExpressions.SubstringExpression,\n StringExpressions.UppercaseExpression,\n ArrayExpressions.ConcatenateExpression,\n ArrayExpressions.FirstExpression,\n]\n"],"mappings":";AAAA,SAAS,2BAA2B;AACpC;AAAA,EACE;AAAA,EAOA;AAAA,EAEA;AAAA,OACK;AACP,SAAS,YAAsB;AAE/B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGA,IAAM,WAAW,CAAI,YAA2B,YAAkC;AACvF,SAAO,IAAI,oBAAoB,8BAA8B,EAAE,SAAS,YAAY,OAAO;AAC7F;AAEO,IAAM,kBAAkB,CAAI,eAAiC;AAClE,SAAO,SAAS,YAAY,eAAe,CAAC;AAC9C;AAEO,IAAM,MAAM,CACjB,YACA,QACA,YACgB;AAChB,SAAO,OAAO,IAAI,YAAY,OAAO;AACvC;AAEO,IAAM,YAAY,CAAC,YAAmD;AAC3E,SAAO,CAAC,OAAO,SAAS,IAAI,OAAO;AACrC;AAEO,IAAM,mBAAmB,MAA0B;AACxD,SAAO,UAAU,eAAe,CAAC;AACnC;AAEO,IAAM,iBAAiB,MAAyB;AACrD,SAAO,EAAE,WAAW,CAAC,EAAE;AACzB;AAEO,IAAM,cAAc,CACzBA,eACG,SACwB;AAC3B,SAAO,IAAI,oBAAoB,8BAA8B,EAAE,YAAYA,YAAW,GAAG,IAAI;AAC/F;AAEO,IAAM,wBAAwB,CACnC,SACoD;AACpD,SAAO;AAAA,IACL,SAAS,YAA0D;AACjE,YAAM,kBAAkB,WAAW,IAAI,IAAI,EAAE,KAAK,GAAG;AACrD,aAAO,SAAS,GAAG,IAAI,IAAI,eAAe,EAAE;AAAA,IAC9C;AAAA,EACF;AACF;AAEO,IAAM,gBAAgB,CAAIC,WAAiCC,WAA4B;AAC5F,SAAO,EAAE,CAACD,UAAS,IAAI,GAAGC,OAAM;AAClC;AAEO,IAAM,YAAY,CACvB,yBACkD;AAClD,SAAO,EAAE,eAAe,qBAAqB,cAAc;AAC7D;AAEO,IAAM,QAAQ,CAAIA,WAA4B;AACnD,SAAO,gBAAgB,QAAQA,MAAK;AACtC;AAEO,IAAM,WAAW,CAAI,SAAwC;AAClE,SAAO,mBAAmB,QAAQ,IAAI;AACxC;AAEO,IAAM,MAAM,cAAc;AAE1B,IAAM,MAAM,cAAc;AAE1B,IAAM,KAAK,aAAa;AAExB,IAAM,SAAS,iBAAiB;AAEhC,IAAM,WAAW,mBAAmB;AAEpC,IAAM,WAAW,mBAAmB;AAEpC,IAAM,kBAAkB,0BAA0B;AAElD,IAAM,cAAc,sBAAsB;AAE1C,IAAM,qBAAqB,6BAA6B;AAE/D,IAAM,iCAAoG;AAAA,EACxG;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,iBAAiB;AACnB;","names":["reference","variable","value"]}
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/expression/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAEtJ,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAEzC,eAAO,MAAM,gBAAgB,GAAI,UAAU,EAAE,YAAY,SAAS,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,SAAS,aAAa,EAAE,SAAS;IAC5H,aAAa,EAAE,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;IACtD,OAAO,EAAE,CAAC,GAAG,UAAU,EAAE,YAAY,KAAK,WAAW,CAAA;IACrD,QAAQ,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,kBAAkB,EAAE,OAAO,EAAE,iBAAiB,KAAK,UAAU,CAAA;CAC5G,KAAG,oBAAoB,CAAC,UAAU,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,CAAC,GAAG,WAAW,CAUtF,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,WAAW,EAAE,YAAY,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,cAAc,SAAS,UAAU,CAAC,WAAW,CAAC,EACjH,YAAY,UAAU,CAAC,WAAW,CAAC,EACnC,sBAAsB,oBAAoB,CAAC,WAAW,EAAE,YAAY,EAAE,cAAc,CAAC,KACpF,UAAU,IAAI,UAAU,CAAC,CAAA,OAAO,oBAAoB,EAAC,SAAS,CAAC,CAMjE,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,CAAC,EAAE,YAAY,UAAU,CAAC,GAAG,CAAC,KAAG,UAAU,IAAI,WAAW,CAAC,CAAC,CAExF,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,YAAY,UAAU,CAAC,CAAC,CAAC,KAAG,UAAU,IAAI,CAOpE,CAAA"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/expression/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AACtJ,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAGzC,eAAO,MAAM,gBAAgB,GAAI,UAAU,EAAE,YAAY,SAAS,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,SAAS,aAAa,EAAE,SAAS;IAC5H,aAAa,EAAE,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;IACtD,OAAO,EAAE,CAAC,GAAG,UAAU,EAAE,YAAY,KAAK,WAAW,CAAA;IACrD,QAAQ,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,kBAAkB,EAAE,OAAO,EAAE,iBAAiB,KAAK,UAAU,CAAA;CAC5G,KAAG,oBAAoB,CAAC,UAAU,EAAE,YAAY,EAAE,UAAU,CAAC,UAAU,CAAC,GAAG,WAAW,CAUtF,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,WAAW,EAAE,YAAY,SAAS,KAAK,CAAC,GAAG,CAAC,EAAE,cAAc,SAAS,UAAU,CAAC,WAAW,CAAC,EACjH,YAAY,UAAU,CAAC,WAAW,CAAC,EACnC,sBAAsB,oBAAoB,CAAC,WAAW,EAAE,YAAY,EAAE,cAAc,CAAC,KACpF,UAAU,IAAI,UAAU,CAAC,CAAA,OAAO,oBAAoB,EAAC,SAAS,CAAC,CAMjE,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,CAAC,EAAE,YAAY,UAAU,CAAC,GAAG,CAAC,KAAG,UAAU,IAAI,WAAW,CAAC,CAAC,CAExF,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,YAAY,UAAU,CAAC,CAAC,CAAC,KAAG,UAAU,IAAI,CAOpE,CAAA"}
@@ -1,5 +1,5 @@
1
1
  // src/expression/internal.ts
2
- import { Objects } from "@bessemer/cornerstone";
2
+ import { isObject } from "@bessemer/cornerstone/object";
3
3
  var defineExpression = (options) => {
4
4
  return {
5
5
  expressionKey: options.expressionKey,
@@ -18,10 +18,10 @@ var isType = (expression, expressionDefinition) => {
18
18
  return expression.expressionKey === expressionDefinition.expressionKey;
19
19
  };
20
20
  var isExpression = (expression) => {
21
- return Objects.isObject(expression) && "expressionKey" in expression;
21
+ return isObject(expression) && "expressionKey" in expression;
22
22
  };
23
23
  var isValue = (expression) => {
24
- if (!Objects.isObject(expression)) {
24
+ if (!isObject(expression)) {
25
25
  return true;
26
26
  }
27
27
  const result = expression.expressionKey === void 0;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/expression/internal.ts"],"sourcesContent":["import { EvaluateExpression, Expression, ExpressionContext, ExpressionDefinition, ExpressionKey, IExpression } from '@bessemer/cornerstone/expression'\nimport { Objects } from '@bessemer/cornerstone'\nimport { UnknownRecord } from 'type-fest'\n\nexport const defineExpression = <ReturnType, ArgumentType extends Array<unknown>, PayloadType extends UnknownRecord>(options: {\n expressionKey: ExpressionKey<ReturnType, ArgumentType>\n builder: (...parameters: ArgumentType) => PayloadType\n resolver: (expression: PayloadType, evaluate: EvaluateExpression, context: ExpressionContext) => ReturnType\n}): ExpressionDefinition<ReturnType, ArgumentType, Expression<ReturnType> & PayloadType> => {\n return {\n expressionKey: options.expressionKey,\n builder: (...parameters) => {\n return { expressionKey: options.expressionKey, ...options.builder(...parameters) }\n },\n resolver: (expression, evaluate, context) => {\n return options.resolver(expression as any, evaluate, context)\n },\n }\n}\n\nexport const isType = <ReturnValue, ArgumentType extends Array<any>, ExpressionType extends Expression<ReturnValue>>(\n expression: Expression<ReturnValue>,\n expressionDefinition: ExpressionDefinition<ReturnValue, ArgumentType, ExpressionType>\n): expression is ReturnType<typeof expressionDefinition['builder']> => {\n if (!isExpression(expression)) {\n return false\n }\n\n return expression.expressionKey === expressionDefinition.expressionKey\n}\n\nexport const isExpression = <T>(expression: Expression<any>): expression is IExpression<T> => {\n return Objects.isObject(expression) && 'expressionKey' in expression\n}\n\nexport const isValue = <T>(expression: Expression<T>): expression is T => {\n if (!Objects.isObject(expression)) {\n return true\n }\n\n const result = (expression as unknown as IExpression<T>).expressionKey === undefined\n return result\n}\n"],"mappings":";AACA,SAAS,eAAe;AAGjB,IAAM,mBAAmB,CAAqF,YAIzB;AAC1F,SAAO;AAAA,IACL,eAAe,QAAQ;AAAA,IACvB,SAAS,IAAI,eAAe;AAC1B,aAAO,EAAE,eAAe,QAAQ,eAAe,GAAG,QAAQ,QAAQ,GAAG,UAAU,EAAE;AAAA,IACnF;AAAA,IACA,UAAU,CAAC,YAAY,UAAU,YAAY;AAC3C,aAAO,QAAQ,SAAS,YAAmB,UAAU,OAAO;AAAA,IAC9D;AAAA,EACF;AACF;AAEO,IAAM,SAAS,CACpB,YACA,yBACqE;AACrE,MAAI,CAAC,aAAa,UAAU,GAAG;AAC7B,WAAO;AAAA,EACT;AAEA,SAAO,WAAW,kBAAkB,qBAAqB;AAC3D;AAEO,IAAM,eAAe,CAAI,eAA8D;AAC5F,SAAO,QAAQ,SAAS,UAAU,KAAK,mBAAmB;AAC5D;AAEO,IAAM,UAAU,CAAI,eAA+C;AACxE,MAAI,CAAC,QAAQ,SAAS,UAAU,GAAG;AACjC,WAAO;AAAA,EACT;AAEA,QAAM,SAAU,WAAyC,kBAAkB;AAC3E,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../src/expression/internal.ts"],"sourcesContent":["import { EvaluateExpression, Expression, ExpressionContext, ExpressionDefinition, ExpressionKey, IExpression } from '@bessemer/cornerstone/expression'\nimport { UnknownRecord } from 'type-fest'\nimport { isObject } from '@bessemer/cornerstone/object'\n\nexport const defineExpression = <ReturnType, ArgumentType extends Array<unknown>, PayloadType extends UnknownRecord>(options: {\n expressionKey: ExpressionKey<ReturnType, ArgumentType>\n builder: (...parameters: ArgumentType) => PayloadType\n resolver: (expression: PayloadType, evaluate: EvaluateExpression, context: ExpressionContext) => ReturnType\n}): ExpressionDefinition<ReturnType, ArgumentType, Expression<ReturnType> & PayloadType> => {\n return {\n expressionKey: options.expressionKey,\n builder: (...parameters) => {\n return { expressionKey: options.expressionKey, ...options.builder(...parameters) }\n },\n resolver: (expression, evaluate, context) => {\n return options.resolver(expression as any, evaluate, context)\n },\n }\n}\n\nexport const isType = <ReturnValue, ArgumentType extends Array<any>, ExpressionType extends Expression<ReturnValue>>(\n expression: Expression<ReturnValue>,\n expressionDefinition: ExpressionDefinition<ReturnValue, ArgumentType, ExpressionType>\n): expression is ReturnType<typeof expressionDefinition['builder']> => {\n if (!isExpression(expression)) {\n return false\n }\n\n return expression.expressionKey === expressionDefinition.expressionKey\n}\n\nexport const isExpression = <T>(expression: Expression<any>): expression is IExpression<T> => {\n return isObject(expression) && 'expressionKey' in expression\n}\n\nexport const isValue = <T>(expression: Expression<T>): expression is T => {\n if (!isObject(expression)) {\n return true\n }\n\n const result = (expression as unknown as IExpression<T>).expressionKey === undefined\n return result\n}\n"],"mappings":";AAEA,SAAS,gBAAgB;AAElB,IAAM,mBAAmB,CAAqF,YAIzB;AAC1F,SAAO;AAAA,IACL,eAAe,QAAQ;AAAA,IACvB,SAAS,IAAI,eAAe;AAC1B,aAAO,EAAE,eAAe,QAAQ,eAAe,GAAG,QAAQ,QAAQ,GAAG,UAAU,EAAE;AAAA,IACnF;AAAA,IACA,UAAU,CAAC,YAAY,UAAU,YAAY;AAC3C,aAAO,QAAQ,SAAS,YAAmB,UAAU,OAAO;AAAA,IAC9D;AAAA,EACF;AACF;AAEO,IAAM,SAAS,CACpB,YACA,yBACqE;AACrE,MAAI,CAAC,aAAa,UAAU,GAAG;AAC7B,WAAO;AAAA,EACT;AAEA,SAAO,WAAW,kBAAkB,qBAAqB;AAC3D;AAEO,IAAM,eAAe,CAAI,eAA8D;AAC5F,SAAO,SAAS,UAAU,KAAK,mBAAmB;AACpD;AAEO,IAAM,UAAU,CAAI,eAA+C;AACxE,MAAI,CAAC,SAAS,UAAU,GAAG;AACzB,WAAO;AAAA,EACT;AAEA,QAAM,SAAU,WAAyC,kBAAkB;AAC3E,SAAO;AACT;","names":[]}
@@ -1,5 +1,5 @@
1
1
  import { Expression } from '@bessemer/cornerstone/expression';
2
- import { Maths } from '@bessemer/cornerstone';
2
+ import { RoundingMode } from '@bessemer/cornerstone/math';
3
3
  import { Bounds } from '@bessemer/cornerstone/range';
4
4
  export declare const SumExpression: import("@bessemer/cornerstone/expression").ExpressionDefinition<number, [initialOperands: Expression<number>[]], Expression<number> & {
5
5
  operands: Expression<number>[];
@@ -37,15 +37,15 @@ export declare const ceiling: (value: Expression<number>, maximumThreshold: Expr
37
37
  value: Expression<number>;
38
38
  maximumThreshold: Expression<number> | null;
39
39
  };
40
- export declare const RoundExpression: import("@bessemer/cornerstone/expression").ExpressionDefinition<number, [value: Expression<number>, scale: number, roundingMode: Maths.RoundingMode], Expression<number> & {
40
+ export declare const RoundExpression: import("@bessemer/cornerstone/expression").ExpressionDefinition<number, [value: Expression<number>, scale: number, roundingMode: RoundingMode], Expression<number> & {
41
41
  value: Expression<number>;
42
42
  scale: number;
43
- roundingMode: Maths.RoundingMode;
43
+ roundingMode: RoundingMode;
44
44
  }>;
45
- export declare const round: (value: Expression<number>, scale: number, roundingMode: Maths.RoundingMode) => Expression<number> & {
45
+ export declare const round: (value: Expression<number>, scale: number, roundingMode: RoundingMode) => Expression<number> & {
46
46
  value: Expression<number>;
47
47
  scale: number;
48
- roundingMode: Maths.RoundingMode;
48
+ roundingMode: RoundingMode;
49
49
  };
50
50
  export declare const MinExpression: import("@bessemer/cornerstone/expression").ExpressionDefinition<number, [initialOperands: Expression<number>[]], Expression<number> & {
51
51
  operands: Expression<number>[];
@@ -1 +1 @@
1
- {"version":3,"file":"numeric-expression.d.ts","sourceRoot":"","sources":["../../src/expression/numeric-expression.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAC7D,OAAO,EAAE,KAAK,EAAW,MAAM,uBAAuB,CAAA;AAEtD,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAA;AAEpD,eAAO,MAAM,aAAa;;EAiBxB,CAAA;AAEF,eAAO,MAAM,GAAG;;CAAwB,CAAA;AAExC,eAAO,MAAM,kBAAkB;;EAiB7B,CAAA;AAEF,eAAO,MAAM,QAAQ;;CAA6B,CAAA;AAElD,eAAO,MAAM,eAAe;;;EAmB1B,CAAA;AAEF,eAAO,MAAM,KAAK;;;CAA0B,CAAA;AAE5C,eAAO,MAAM,eAAe;;;EAc1B,CAAA;AAEF,eAAO,MAAM,KAAK;;;CAA0B,CAAA;AAE5C,eAAO,MAAM,iBAAiB;;;EAc5B,CAAA;AAEF,eAAO,MAAM,OAAO;;;CAA4B,CAAA;AAEhD,eAAO,MAAM,eAAe;;;;EAQ1B,CAAA;AAEF,eAAO,MAAM,KAAK;;;;CAA0B,CAAA;AAE5C,eAAO,MAAM,aAAa;;EAiBxB,CAAA;AAEF,eAAO,MAAM,GAAG;;CAAwB,CAAA;AAExC,eAAO,MAAM,aAAa;;EAiBxB,CAAA;AAEF,eAAO,MAAM,GAAG;;CAAwB,CAAA"}
1
+ {"version":3,"file":"numeric-expression.d.ts","sourceRoot":"","sources":["../../src/expression/numeric-expression.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAC7D,OAAO,EAAsB,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAA;AAGpD,eAAO,MAAM,aAAa;;EAiBxB,CAAA;AAEF,eAAO,MAAM,GAAG;;CAAwB,CAAA;AAExC,eAAO,MAAM,kBAAkB;;EAiB7B,CAAA;AAEF,eAAO,MAAM,QAAQ;;CAA6B,CAAA;AAElD,eAAO,MAAM,eAAe;;;EAmB1B,CAAA;AAEF,eAAO,MAAM,KAAK;;;CAA0B,CAAA;AAE5C,eAAO,MAAM,eAAe;;;EAc1B,CAAA;AAEF,eAAO,MAAM,KAAK;;;CAA0B,CAAA;AAE5C,eAAO,MAAM,iBAAiB;;;EAc5B,CAAA;AAEF,eAAO,MAAM,OAAO;;;CAA4B,CAAA;AAEhD,eAAO,MAAM,eAAe;;;;EAQ1B,CAAA;AAEF,eAAO,MAAM,KAAK;;;;CAA0B,CAAA;AAE5C,eAAO,MAAM,aAAa;;EAiBxB,CAAA;AAEF,eAAO,MAAM,GAAG;;CAAwB,CAAA;AAExC,eAAO,MAAM,aAAa;;EAiBxB,CAAA;AAEF,eAAO,MAAM,GAAG;;CAAwB,CAAA"}
@@ -1,6 +1,7 @@
1
1
  // src/expression/numeric-expression.ts
2
2
  import { defineExpression, isType } from "@bessemer/cornerstone/expression/internal";
3
- import { Maths, Objects } from "@bessemer/cornerstone";
3
+ import { round as mathRound } from "@bessemer/cornerstone/math";
4
+ import { isPresent } from "@bessemer/cornerstone/object";
4
5
  var SumExpression = defineExpression({
5
6
  expressionKey: "Numeric.Sum",
6
7
  builder: (initialOperands) => {
@@ -44,12 +45,12 @@ var BoundExpression = defineExpression({
44
45
  },
45
46
  resolver: (expression, evaluate) => {
46
47
  let value = evaluate(expression.value);
47
- const minimumThreshold = Objects.isPresent(expression.bounds[0]) ? evaluate(expression.bounds[0]) : null;
48
- const maximumThreshold = Objects.isPresent(expression.bounds[1]) ? evaluate(expression.bounds[1]) : null;
49
- if (Objects.isPresent(minimumThreshold) && value < minimumThreshold) {
48
+ const minimumThreshold = isPresent(expression.bounds[0]) ? evaluate(expression.bounds[0]) : null;
49
+ const maximumThreshold = isPresent(expression.bounds[1]) ? evaluate(expression.bounds[1]) : null;
50
+ if (isPresent(minimumThreshold) && value < minimumThreshold) {
50
51
  value = minimumThreshold;
51
52
  }
52
- if (Objects.isPresent(maximumThreshold) && value > maximumThreshold) {
53
+ if (isPresent(maximumThreshold) && value > maximumThreshold) {
53
54
  value = maximumThreshold;
54
55
  }
55
56
  return value;
@@ -63,8 +64,8 @@ var FloorExpression = defineExpression({
63
64
  },
64
65
  resolver: (expression, evaluate) => {
65
66
  let value = evaluate(expression.value);
66
- const minimumThreshold = Objects.isPresent(expression.minimumThreshold) ? evaluate(expression.minimumThreshold) : null;
67
- if (Objects.isPresent(minimumThreshold) && value < minimumThreshold) {
67
+ const minimumThreshold = isPresent(expression.minimumThreshold) ? evaluate(expression.minimumThreshold) : null;
68
+ if (isPresent(minimumThreshold) && value < minimumThreshold) {
68
69
  value = minimumThreshold;
69
70
  }
70
71
  return value;
@@ -78,8 +79,8 @@ var CeilingExpression = defineExpression({
78
79
  },
79
80
  resolver: (expression, evaluate) => {
80
81
  let value = evaluate(expression.value);
81
- const maximumThreshold = Objects.isPresent(expression.maximumThreshold) ? evaluate(expression.maximumThreshold) : null;
82
- if (Objects.isPresent(maximumThreshold) && value > maximumThreshold) {
82
+ const maximumThreshold = isPresent(expression.maximumThreshold) ? evaluate(expression.maximumThreshold) : null;
83
+ if (isPresent(maximumThreshold) && value > maximumThreshold) {
83
84
  value = maximumThreshold;
84
85
  }
85
86
  return value;
@@ -92,7 +93,7 @@ var RoundExpression = defineExpression({
92
93
  return { value, scale, roundingMode };
93
94
  },
94
95
  resolver: ({ value, scale, roundingMode }, evaluate) => {
95
- return Maths.round(evaluate(value), scale, roundingMode);
96
+ return mathRound(evaluate(value), scale, roundingMode);
96
97
  }
97
98
  });
98
99
  var round = RoundExpression.builder;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/expression/numeric-expression.ts"],"sourcesContent":["import { defineExpression, isType } from '@bessemer/cornerstone/expression/internal'\nimport { Expression } from '@bessemer/cornerstone/expression'\nimport { Maths, Objects } from '@bessemer/cornerstone'\nimport { RoundingMode } from '@bessemer/cornerstone/math'\nimport { Bounds } from '@bessemer/cornerstone/range'\n\nexport const SumExpression = defineExpression({\n expressionKey: 'Numeric.Sum',\n builder: (initialOperands: Array<Expression<number>>) => {\n const operands: Array<Expression<number>> = initialOperands.flatMap((it) => {\n if (isType(it, SumExpression)) {\n return it.operands\n } else {\n return [it]\n }\n })\n\n return { operands }\n },\n resolver: ({ operands }, evaluate) => {\n const values = operands.map((it) => evaluate(it))\n return values.reduce((x, y) => x + y, 0)\n },\n})\n\nexport const sum = SumExpression.builder\n\nexport const MultiplyExpression = defineExpression({\n expressionKey: 'Numeric.Multiply',\n builder: (initialOperands: Array<Expression<number>>) => {\n const operands: Array<Expression<number>> = initialOperands.flatMap((it) => {\n if (isType(it, MultiplyExpression)) {\n return it.operands\n } else {\n return [it]\n }\n })\n\n return { operands }\n },\n resolver: ({ operands }, evaluate) => {\n const values = operands.map((it) => evaluate(it))\n return values.reduce((x, y) => x * y, 1)\n },\n})\n\nexport const multiply = MultiplyExpression.builder\n\nexport const BoundExpression = defineExpression({\n expressionKey: 'Numeric.Bound',\n builder: (value: Expression<number>, bounds: Bounds<Expression<number>>) => {\n return { value, bounds }\n },\n resolver: (expression, evaluate) => {\n let value = evaluate(expression.value)\n const minimumThreshold = Objects.isPresent(expression.bounds[0]) ? evaluate(expression.bounds[0]) : null\n const maximumThreshold = Objects.isPresent(expression.bounds[1]) ? evaluate(expression.bounds[1]) : null\n\n if (Objects.isPresent(minimumThreshold) && value < minimumThreshold) {\n value = minimumThreshold\n }\n if (Objects.isPresent(maximumThreshold) && value > maximumThreshold) {\n value = maximumThreshold\n }\n\n return value\n },\n})\n\nexport const bound = BoundExpression.builder\n\nexport const FloorExpression = defineExpression({\n expressionKey: 'Numeric.Floor',\n builder: (value: Expression<number>, minimumThreshold: Expression<number> | null) => {\n return { value, minimumThreshold }\n },\n resolver: (expression, evaluate) => {\n let value = evaluate(expression.value)\n const minimumThreshold = Objects.isPresent(expression.minimumThreshold) ? evaluate(expression.minimumThreshold) : null\n if (Objects.isPresent(minimumThreshold) && value < minimumThreshold) {\n value = minimumThreshold\n }\n\n return value\n },\n})\n\nexport const floor = FloorExpression.builder\n\nexport const CeilingExpression = defineExpression({\n expressionKey: 'Numeric.Ceiling',\n builder: (value: Expression<number>, maximumThreshold: Expression<number> | null) => {\n return { value, maximumThreshold }\n },\n resolver: (expression, evaluate) => {\n let value = evaluate(expression.value)\n const maximumThreshold = Objects.isPresent(expression.maximumThreshold) ? evaluate(expression.maximumThreshold) : null\n if (Objects.isPresent(maximumThreshold) && value > maximumThreshold) {\n value = maximumThreshold\n }\n\n return value\n },\n})\n\nexport const ceiling = CeilingExpression.builder\n\nexport const RoundExpression = defineExpression({\n expressionKey: 'Numeric.Round',\n builder: (value: Expression<number>, scale: number, roundingMode: RoundingMode) => {\n return { value, scale, roundingMode }\n },\n resolver: ({ value, scale, roundingMode }, evaluate) => {\n return Maths.round(evaluate(value), scale, roundingMode)\n },\n})\n\nexport const round = RoundExpression.builder\n\nexport const MinExpression = defineExpression({\n expressionKey: 'Numeric.Min',\n builder: (initialOperands: Array<Expression<number>>) => {\n const operands: Array<Expression<number>> = initialOperands.flatMap((it) => {\n if (isType(it, MinExpression)) {\n return it.operands\n } else {\n return [it]\n }\n })\n\n return { operands }\n },\n resolver: ({ operands }, evaluate) => {\n const values = operands.map((it) => evaluate(it))\n return Math.min(...values)\n },\n})\n\nexport const min = MinExpression.builder\n\nexport const MaxExpression = defineExpression({\n expressionKey: 'Numeric.Max',\n builder: (initialOperands: Array<Expression<number>>) => {\n const operands: Array<Expression<number>> = initialOperands.flatMap((it) => {\n if (isType(it, MaxExpression)) {\n return it.operands\n } else {\n return [it]\n }\n })\n\n return { operands }\n },\n resolver: ({ operands }, evaluate) => {\n const values = operands.map((it) => evaluate(it))\n return Math.max(...values)\n },\n})\n\nexport const max = MaxExpression.builder\n"],"mappings":";AAAA,SAAS,kBAAkB,cAAc;AAEzC,SAAS,OAAO,eAAe;AAIxB,IAAM,gBAAgB,iBAAiB;AAAA,EAC5C,eAAe;AAAA,EACf,SAAS,CAAC,oBAA+C;AACvD,UAAM,WAAsC,gBAAgB,QAAQ,CAAC,OAAO;AAC1E,UAAI,OAAO,IAAI,aAAa,GAAG;AAC7B,eAAO,GAAG;AAAA,MACZ,OAAO;AACL,eAAO,CAAC,EAAE;AAAA,MACZ;AAAA,IACF,CAAC;AAED,WAAO,EAAE,SAAS;AAAA,EACpB;AAAA,EACA,UAAU,CAAC,EAAE,SAAS,GAAG,aAAa;AACpC,UAAM,SAAS,SAAS,IAAI,CAAC,OAAO,SAAS,EAAE,CAAC;AAChD,WAAO,OAAO,OAAO,CAAC,GAAG,MAAM,IAAI,GAAG,CAAC;AAAA,EACzC;AACF,CAAC;AAEM,IAAM,MAAM,cAAc;AAE1B,IAAM,qBAAqB,iBAAiB;AAAA,EACjD,eAAe;AAAA,EACf,SAAS,CAAC,oBAA+C;AACvD,UAAM,WAAsC,gBAAgB,QAAQ,CAAC,OAAO;AAC1E,UAAI,OAAO,IAAI,kBAAkB,GAAG;AAClC,eAAO,GAAG;AAAA,MACZ,OAAO;AACL,eAAO,CAAC,EAAE;AAAA,MACZ;AAAA,IACF,CAAC;AAED,WAAO,EAAE,SAAS;AAAA,EACpB;AAAA,EACA,UAAU,CAAC,EAAE,SAAS,GAAG,aAAa;AACpC,UAAM,SAAS,SAAS,IAAI,CAAC,OAAO,SAAS,EAAE,CAAC;AAChD,WAAO,OAAO,OAAO,CAAC,GAAG,MAAM,IAAI,GAAG,CAAC;AAAA,EACzC;AACF,CAAC;AAEM,IAAM,WAAW,mBAAmB;AAEpC,IAAM,kBAAkB,iBAAiB;AAAA,EAC9C,eAAe;AAAA,EACf,SAAS,CAAC,OAA2B,WAAuC;AAC1E,WAAO,EAAE,OAAO,OAAO;AAAA,EACzB;AAAA,EACA,UAAU,CAAC,YAAY,aAAa;AAClC,QAAI,QAAQ,SAAS,WAAW,KAAK;AACrC,UAAM,mBAAmB,QAAQ,UAAU,WAAW,OAAO,CAAC,CAAC,IAAI,SAAS,WAAW,OAAO,CAAC,CAAC,IAAI;AACpG,UAAM,mBAAmB,QAAQ,UAAU,WAAW,OAAO,CAAC,CAAC,IAAI,SAAS,WAAW,OAAO,CAAC,CAAC,IAAI;AAEpG,QAAI,QAAQ,UAAU,gBAAgB,KAAK,QAAQ,kBAAkB;AACnE,cAAQ;AAAA,IACV;AACA,QAAI,QAAQ,UAAU,gBAAgB,KAAK,QAAQ,kBAAkB;AACnE,cAAQ;AAAA,IACV;AAEA,WAAO;AAAA,EACT;AACF,CAAC;AAEM,IAAM,QAAQ,gBAAgB;AAE9B,IAAM,kBAAkB,iBAAiB;AAAA,EAC9C,eAAe;AAAA,EACf,SAAS,CAAC,OAA2B,qBAAgD;AACnF,WAAO,EAAE,OAAO,iBAAiB;AAAA,EACnC;AAAA,EACA,UAAU,CAAC,YAAY,aAAa;AAClC,QAAI,QAAQ,SAAS,WAAW,KAAK;AACrC,UAAM,mBAAmB,QAAQ,UAAU,WAAW,gBAAgB,IAAI,SAAS,WAAW,gBAAgB,IAAI;AAClH,QAAI,QAAQ,UAAU,gBAAgB,KAAK,QAAQ,kBAAkB;AACnE,cAAQ;AAAA,IACV;AAEA,WAAO;AAAA,EACT;AACF,CAAC;AAEM,IAAM,QAAQ,gBAAgB;AAE9B,IAAM,oBAAoB,iBAAiB;AAAA,EAChD,eAAe;AAAA,EACf,SAAS,CAAC,OAA2B,qBAAgD;AACnF,WAAO,EAAE,OAAO,iBAAiB;AAAA,EACnC;AAAA,EACA,UAAU,CAAC,YAAY,aAAa;AAClC,QAAI,QAAQ,SAAS,WAAW,KAAK;AACrC,UAAM,mBAAmB,QAAQ,UAAU,WAAW,gBAAgB,IAAI,SAAS,WAAW,gBAAgB,IAAI;AAClH,QAAI,QAAQ,UAAU,gBAAgB,KAAK,QAAQ,kBAAkB;AACnE,cAAQ;AAAA,IACV;AAEA,WAAO;AAAA,EACT;AACF,CAAC;AAEM,IAAM,UAAU,kBAAkB;AAElC,IAAM,kBAAkB,iBAAiB;AAAA,EAC9C,eAAe;AAAA,EACf,SAAS,CAAC,OAA2B,OAAe,iBAA+B;AACjF,WAAO,EAAE,OAAO,OAAO,aAAa;AAAA,EACtC;AAAA,EACA,UAAU,CAAC,EAAE,OAAO,OAAO,aAAa,GAAG,aAAa;AACtD,WAAO,MAAM,MAAM,SAAS,KAAK,GAAG,OAAO,YAAY;AAAA,EACzD;AACF,CAAC;AAEM,IAAM,QAAQ,gBAAgB;AAE9B,IAAM,gBAAgB,iBAAiB;AAAA,EAC5C,eAAe;AAAA,EACf,SAAS,CAAC,oBAA+C;AACvD,UAAM,WAAsC,gBAAgB,QAAQ,CAAC,OAAO;AAC1E,UAAI,OAAO,IAAI,aAAa,GAAG;AAC7B,eAAO,GAAG;AAAA,MACZ,OAAO;AACL,eAAO,CAAC,EAAE;AAAA,MACZ;AAAA,IACF,CAAC;AAED,WAAO,EAAE,SAAS;AAAA,EACpB;AAAA,EACA,UAAU,CAAC,EAAE,SAAS,GAAG,aAAa;AACpC,UAAM,SAAS,SAAS,IAAI,CAAC,OAAO,SAAS,EAAE,CAAC;AAChD,WAAO,KAAK,IAAI,GAAG,MAAM;AAAA,EAC3B;AACF,CAAC;AAEM,IAAM,MAAM,cAAc;AAE1B,IAAM,gBAAgB,iBAAiB;AAAA,EAC5C,eAAe;AAAA,EACf,SAAS,CAAC,oBAA+C;AACvD,UAAM,WAAsC,gBAAgB,QAAQ,CAAC,OAAO;AAC1E,UAAI,OAAO,IAAI,aAAa,GAAG;AAC7B,eAAO,GAAG;AAAA,MACZ,OAAO;AACL,eAAO,CAAC,EAAE;AAAA,MACZ;AAAA,IACF,CAAC;AAED,WAAO,EAAE,SAAS;AAAA,EACpB;AAAA,EACA,UAAU,CAAC,EAAE,SAAS,GAAG,aAAa;AACpC,UAAM,SAAS,SAAS,IAAI,CAAC,OAAO,SAAS,EAAE,CAAC;AAChD,WAAO,KAAK,IAAI,GAAG,MAAM;AAAA,EAC3B;AACF,CAAC;AAEM,IAAM,MAAM,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../src/expression/numeric-expression.ts"],"sourcesContent":["import { defineExpression, isType } from '@bessemer/cornerstone/expression/internal'\nimport { Expression } from '@bessemer/cornerstone/expression'\nimport { round as mathRound, RoundingMode } from '@bessemer/cornerstone/math'\nimport { Bounds } from '@bessemer/cornerstone/range'\nimport { isPresent } from '@bessemer/cornerstone/object'\n\nexport const SumExpression = defineExpression({\n expressionKey: 'Numeric.Sum',\n builder: (initialOperands: Array<Expression<number>>) => {\n const operands: Array<Expression<number>> = initialOperands.flatMap((it) => {\n if (isType(it, SumExpression)) {\n return it.operands\n } else {\n return [it]\n }\n })\n\n return { operands }\n },\n resolver: ({ operands }, evaluate) => {\n const values = operands.map((it) => evaluate(it))\n return values.reduce((x, y) => x + y, 0)\n },\n})\n\nexport const sum = SumExpression.builder\n\nexport const MultiplyExpression = defineExpression({\n expressionKey: 'Numeric.Multiply',\n builder: (initialOperands: Array<Expression<number>>) => {\n const operands: Array<Expression<number>> = initialOperands.flatMap((it) => {\n if (isType(it, MultiplyExpression)) {\n return it.operands\n } else {\n return [it]\n }\n })\n\n return { operands }\n },\n resolver: ({ operands }, evaluate) => {\n const values = operands.map((it) => evaluate(it))\n return values.reduce((x, y) => x * y, 1)\n },\n})\n\nexport const multiply = MultiplyExpression.builder\n\nexport const BoundExpression = defineExpression({\n expressionKey: 'Numeric.Bound',\n builder: (value: Expression<number>, bounds: Bounds<Expression<number>>) => {\n return { value, bounds }\n },\n resolver: (expression, evaluate) => {\n let value = evaluate(expression.value)\n const minimumThreshold = isPresent(expression.bounds[0]) ? evaluate(expression.bounds[0]) : null\n const maximumThreshold = isPresent(expression.bounds[1]) ? evaluate(expression.bounds[1]) : null\n\n if (isPresent(minimumThreshold) && value < minimumThreshold) {\n value = minimumThreshold\n }\n if (isPresent(maximumThreshold) && value > maximumThreshold) {\n value = maximumThreshold\n }\n\n return value\n },\n})\n\nexport const bound = BoundExpression.builder\n\nexport const FloorExpression = defineExpression({\n expressionKey: 'Numeric.Floor',\n builder: (value: Expression<number>, minimumThreshold: Expression<number> | null) => {\n return { value, minimumThreshold }\n },\n resolver: (expression, evaluate) => {\n let value = evaluate(expression.value)\n const minimumThreshold = isPresent(expression.minimumThreshold) ? evaluate(expression.minimumThreshold) : null\n if (isPresent(minimumThreshold) && value < minimumThreshold) {\n value = minimumThreshold\n }\n\n return value\n },\n})\n\nexport const floor = FloorExpression.builder\n\nexport const CeilingExpression = defineExpression({\n expressionKey: 'Numeric.Ceiling',\n builder: (value: Expression<number>, maximumThreshold: Expression<number> | null) => {\n return { value, maximumThreshold }\n },\n resolver: (expression, evaluate) => {\n let value = evaluate(expression.value)\n const maximumThreshold = isPresent(expression.maximumThreshold) ? evaluate(expression.maximumThreshold) : null\n if (isPresent(maximumThreshold) && value > maximumThreshold) {\n value = maximumThreshold\n }\n\n return value\n },\n})\n\nexport const ceiling = CeilingExpression.builder\n\nexport const RoundExpression = defineExpression({\n expressionKey: 'Numeric.Round',\n builder: (value: Expression<number>, scale: number, roundingMode: RoundingMode) => {\n return { value, scale, roundingMode }\n },\n resolver: ({ value, scale, roundingMode }, evaluate) => {\n return mathRound(evaluate(value), scale, roundingMode)\n },\n})\n\nexport const round = RoundExpression.builder\n\nexport const MinExpression = defineExpression({\n expressionKey: 'Numeric.Min',\n builder: (initialOperands: Array<Expression<number>>) => {\n const operands: Array<Expression<number>> = initialOperands.flatMap((it) => {\n if (isType(it, MinExpression)) {\n return it.operands\n } else {\n return [it]\n }\n })\n\n return { operands }\n },\n resolver: ({ operands }, evaluate) => {\n const values = operands.map((it) => evaluate(it))\n return Math.min(...values)\n },\n})\n\nexport const min = MinExpression.builder\n\nexport const MaxExpression = defineExpression({\n expressionKey: 'Numeric.Max',\n builder: (initialOperands: Array<Expression<number>>) => {\n const operands: Array<Expression<number>> = initialOperands.flatMap((it) => {\n if (isType(it, MaxExpression)) {\n return it.operands\n } else {\n return [it]\n }\n })\n\n return { operands }\n },\n resolver: ({ operands }, evaluate) => {\n const values = operands.map((it) => evaluate(it))\n return Math.max(...values)\n },\n})\n\nexport const max = MaxExpression.builder\n"],"mappings":"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","names":[]}
@@ -1,4 +1,4 @@
1
- import { Zod } from '@bessemer/cornerstone';
2
- export declare const HexCodeSchema: import("zod").ZodBranded<import("zod").ZodString, "HexCode">;
1
+ import Zod from 'zod';
2
+ export declare const HexCodeSchema: Zod.ZodBranded<Zod.ZodString, "HexCode">;
3
3
  export type HexCode = Zod.infer<typeof HexCodeSchema>;
4
4
  //# sourceMappingURL=hex-code.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hex-code.d.ts","sourceRoot":"","sources":["../src/hex-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAE3C,eAAO,MAAM,aAAa,8DAA2G,CAAA;AACrI,MAAM,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA"}
1
+ {"version":3,"file":"hex-code.d.ts","sourceRoot":"","sources":["../src/hex-code.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AAErB,eAAO,MAAM,aAAa,0CAA2G,CAAA;AACrI,MAAM,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA"}
package/dist/hex-code.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // src/hex-code.ts
2
- import { Zod } from "@bessemer/cornerstone";
2
+ import Zod from "zod";
3
3
  var HexCodeSchema = Zod.string().length(7).startsWith("#").describe("A 6-digit hex code starting a # sign").brand("HexCode");
4
4
  export {
5
5
  HexCodeSchema
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/hex-code.ts"],"sourcesContent":["import { Zod } from '@bessemer/cornerstone'\n\nexport const HexCodeSchema = Zod.string().length(7).startsWith('#').describe('A 6-digit hex code starting a # sign').brand('HexCode')\nexport type HexCode = Zod.infer<typeof HexCodeSchema>\n"],"mappings":";AAAA,SAAS,WAAW;AAEb,IAAM,gBAAgB,IAAI,OAAO,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,EAAE,SAAS,sCAAsC,EAAE,MAAM,SAAS;","names":[]}
1
+ {"version":3,"sources":["../src/hex-code.ts"],"sourcesContent":["import Zod from 'zod'\n\nexport const HexCodeSchema = Zod.string().length(7).startsWith('#').describe('A 6-digit hex code starting a # sign').brand('HexCode')\nexport type HexCode = Zod.infer<typeof HexCodeSchema>\n"],"mappings":";AAAA,OAAO,SAAS;AAET,IAAM,gBAAgB,IAAI,OAAO,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,EAAE,SAAS,sCAAsC,EAAE,MAAM,SAAS;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAErD,eAAO,MAAM,KAAK,GAAI,MAAM,MAAM,KAAG,MAAM,CAAC,GAAG,CAE9C,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,MAAM,CAAC,GAAG,CAErD,CAAA"}
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,MAAM,EAAY,MAAM,8BAA8B,CAAA;AAEhF,eAAO,MAAM,KAAK,GAAI,MAAM,MAAM,KAAG,MAAM,CAAC,GAAG,CAE9C,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,KAAG,MAAM,CAAC,GAAG,CAErD,CAAA"}
package/dist/json.js CHANGED
@@ -1,10 +1,10 @@
1
1
  // src/json.ts
2
- import { Results } from "@bessemer/cornerstone";
2
+ import { getValueOrThrow, tryValue } from "@bessemer/cornerstone/result";
3
3
  var parse = (data) => {
4
- return Results.tryValue(() => JSON.parse(data));
4
+ return tryValue(() => JSON.parse(data));
5
5
  };
6
6
  var parseOrThrow = (data) => {
7
- return Results.getValueOrThrow(parse(data));
7
+ return getValueOrThrow(parse(data));
8
8
  };
9
9
  export {
10
10
  parse,
package/dist/json.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/json.ts"],"sourcesContent":["import { Results } from '@bessemer/cornerstone'\nimport { JsonValue } from 'type-fest'\nimport { Result } from '@bessemer/cornerstone/result'\n\nexport const parse = (data: string): Result<any> => {\n return Results.tryValue(() => JSON.parse(data) as JsonValue)\n}\n\nexport const parseOrThrow = (data: string): Result<any> => {\n return Results.getValueOrThrow(parse(data))\n}\n"],"mappings":";AAAA,SAAS,eAAe;AAIjB,IAAM,QAAQ,CAAC,SAA8B;AAClD,SAAO,QAAQ,SAAS,MAAM,KAAK,MAAM,IAAI,CAAc;AAC7D;AAEO,IAAM,eAAe,CAAC,SAA8B;AACzD,SAAO,QAAQ,gBAAgB,MAAM,IAAI,CAAC;AAC5C;","names":[]}
1
+ {"version":3,"sources":["../src/json.ts"],"sourcesContent":["import { JsonValue } from 'type-fest'\nimport { getValueOrThrow, Result, tryValue } from '@bessemer/cornerstone/result'\n\nexport const parse = (data: string): Result<any> => {\n return tryValue(() => JSON.parse(data) as JsonValue)\n}\n\nexport const parseOrThrow = (data: string): Result<any> => {\n return getValueOrThrow(parse(data))\n}\n"],"mappings":";AACA,SAAS,iBAAyB,gBAAgB;AAE3C,IAAM,QAAQ,CAAC,SAA8B;AAClD,SAAO,SAAS,MAAM,KAAK,MAAM,IAAI,CAAc;AACrD;AAEO,IAAM,eAAe,CAAC,SAA8B;AACzD,SAAO,gBAAgB,MAAM,IAAI,CAAC;AACpC;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAGvB,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAEzC,KAAK,UAAU,GAAG,IAAI,CAAC,MAAM,CAAA;AAE7B,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;AAE9C,KAAK,UAAU,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,aAAa,CAAA;CAAE,CAAA;AAC9D,KAAK,WAAW,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;AAE7E,qBAAa,MAAM;IACL,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAE/C,KAAK,EAAE,WAAW,CAIjB;IAED,KAAK,EAAE,WAAW,CAIjB;IAED,IAAI,EAAE,WAAW,CAIhB;IAED,IAAI,EAAE,WAAW,CAIhB;IAED,KAAK,EAAE,WAAW,CAIjB;IAED,KAAK,EAAE,WAAW,CAIjB;CACF;AA+ED,eAAO,MAAM,UAAU,GAAI,iBAAiB,aAAa,KAAG,IAG3D,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,QAAQ,MAAM,KAAG,MAEtC,CAAA;AAED,eAAO,MAAM,KAAK,aAAgB,CAAA;AAClC,eAAO,MAAM,KAAK,aAAgB,CAAA;AAClC,eAAO,MAAM,IAAI,aAAe,CAAA;AAChC,eAAO,MAAM,IAAI,aAAe,CAAA;AAChC,eAAO,MAAM,KAAK,aAAgB,CAAA;AAClC,eAAO,MAAM,KAAK,aAAgB,CAAA"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,OAAO,EAAY,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAGzC,KAAK,UAAU,GAAG,IAAI,CAAC,MAAM,CAAA;AAE7B,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;AAE9C,KAAK,UAAU,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,aAAa,CAAA;CAAE,CAAA;AAC9D,KAAK,WAAW,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;AAE7E,qBAAa,MAAM;IACL,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAE/C,KAAK,EAAE,WAAW,CAIjB;IAED,KAAK,EAAE,WAAW,CAIjB;IAED,IAAI,EAAE,WAAW,CAIhB;IAED,IAAI,EAAE,WAAW,CAIhB;IAED,KAAK,EAAE,WAAW,CAIjB;IAED,KAAK,EAAE,WAAW,CAIjB;CACF;AA+ED,eAAO,MAAM,UAAU,GAAI,iBAAiB,aAAa,KAAG,IAG3D,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,QAAQ,MAAM,KAAG,MAEtC,CAAA;AAED,eAAO,MAAM,KAAK,aAAgB,CAAA;AAClC,eAAO,MAAM,KAAK,aAAgB,CAAA;AAClC,eAAO,MAAM,IAAI,aAAe,CAAA;AAChC,eAAO,MAAM,IAAI,aAAe,CAAA;AAChC,eAAO,MAAM,KAAK,aAAgB,CAAA;AAClC,eAAO,MAAM,KAAK,aAAgB,CAAA"}
package/dist/logger.js CHANGED
@@ -1,39 +1,40 @@
1
1
  // src/logger.ts
2
2
  import pino from "pino";
3
- import { Lazy, Objects } from "@bessemer/cornerstone";
4
3
  import { createGlobalVariable } from "@bessemer/cornerstone/global-variable";
4
+ import { evaluate } from "@bessemer/cornerstone/lazy";
5
+ import { deepMerge, isNil } from "@bessemer/cornerstone/object";
5
6
  var Logger = class {
6
7
  constructor(logger) {
7
8
  this.logger = logger;
8
9
  }
9
10
  trace = (message, options) => {
10
11
  if (this.logger.isLevelEnabled?.("trace") ?? true) {
11
- this.logger.trace({ err: options?.error, context: options?.context }, Lazy.evaluate(message));
12
+ this.logger.trace({ err: options?.error, context: options?.context }, evaluate(message));
12
13
  }
13
14
  };
14
15
  debug = (message, options) => {
15
16
  if (this.logger.isLevelEnabled?.("debug") ?? true) {
16
- this.logger.debug({ err: options?.error, context: options?.context }, Lazy.evaluate(message));
17
+ this.logger.debug({ err: options?.error, context: options?.context }, evaluate(message));
17
18
  }
18
19
  };
19
20
  info = (message, options) => {
20
21
  if (this.logger.isLevelEnabled?.("info") ?? true) {
21
- this.logger.info({ err: options?.error, context: options?.context }, Lazy.evaluate(message));
22
+ this.logger.info({ err: options?.error, context: options?.context }, evaluate(message));
22
23
  }
23
24
  };
24
25
  warn = (message, options) => {
25
26
  if (this.logger.isLevelEnabled?.("warn") ?? true) {
26
- this.logger.warn({ err: options?.error, context: options?.context }, Lazy.evaluate(message));
27
+ this.logger.warn({ err: options?.error, context: options?.context }, evaluate(message));
27
28
  }
28
29
  };
29
30
  error = (message, options) => {
30
31
  if (this.logger.isLevelEnabled?.("error") ?? true) {
31
- this.logger.error({ err: options?.error, context: options?.context }, Lazy.evaluate(message));
32
+ this.logger.error({ err: options?.error, context: options?.context }, evaluate(message));
32
33
  }
33
34
  };
34
35
  fatal = (message, options) => {
35
36
  if (this.logger.isLevelEnabled?.("fatal") ?? true) {
36
- this.logger.fatal({ err: options?.error, context: options?.context }, Lazy.evaluate(message));
37
+ this.logger.fatal({ err: options?.error, context: options?.context }, evaluate(message));
37
38
  }
38
39
  };
39
40
  };
@@ -45,7 +46,7 @@ var applyDefaultOptions = (options) => {
45
46
  // JOHN need to find a better way to include
46
47
  // ...getPrettyTransport(),
47
48
  };
48
- return Objects.deepMerge(defaultOptions, options);
49
+ return deepMerge(defaultOptions, options);
49
50
  };
50
51
  var createProxyHandler = (getLogger) => {
51
52
  let cachedLogger = null;
@@ -55,7 +56,7 @@ var createProxyHandler = (getLogger) => {
55
56
  cachedLogger = null;
56
57
  cachedVersion = GlobalLoggerState.getValue().version;
57
58
  }
58
- if (Objects.isNil(cachedLogger)) {
59
+ if (isNil(cachedLogger)) {
59
60
  cachedLogger = getLogger();
60
61
  }
61
62
  return cachedLogger;