@bessemer/cornerstone 0.5.0 → 0.5.3

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 (282) hide show
  1. package/dist/array.d.ts +57 -0
  2. package/dist/array.d.ts.map +1 -0
  3. package/dist/array.js +137 -0
  4. package/dist/array.js.map +1 -0
  5. package/dist/async.d.ts +59 -0
  6. package/dist/async.d.ts.map +1 -0
  7. package/dist/async.js +62 -0
  8. package/dist/async.js.map +1 -0
  9. package/dist/cache.d.ts +106 -0
  10. package/dist/cache.d.ts.map +1 -0
  11. package/dist/cache.js +112 -0
  12. package/dist/cache.js.map +1 -0
  13. package/dist/combinable.d.ts +16 -0
  14. package/dist/combinable.d.ts.map +1 -0
  15. package/dist/combinable.js +31 -0
  16. package/dist/combinable.js.map +1 -0
  17. package/dist/comparator.d.ts +9 -0
  18. package/dist/comparator.d.ts.map +1 -0
  19. package/dist/comparator.js +76 -0
  20. package/dist/comparator.js.map +1 -0
  21. package/dist/content.d.ts +68 -0
  22. package/dist/content.d.ts.map +1 -0
  23. package/dist/content.js +79 -0
  24. package/dist/content.js.map +1 -0
  25. package/dist/context.d.ts +7 -0
  26. package/dist/context.d.ts.map +1 -0
  27. package/dist/context.js +1 -0
  28. package/dist/context.js.map +1 -0
  29. package/dist/crypto.d.ts +3 -0
  30. package/dist/crypto.d.ts.map +1 -0
  31. package/dist/crypto.js +15 -0
  32. package/dist/crypto.js.map +1 -0
  33. package/dist/date.d.ts +10 -0
  34. package/dist/date.d.ts.map +1 -0
  35. package/dist/date.js +24 -0
  36. package/dist/date.js.map +1 -0
  37. package/dist/duration.d.ts +39 -0
  38. package/dist/duration.d.ts.map +1 -0
  39. package/dist/duration.js +52 -0
  40. package/dist/duration.js.map +1 -0
  41. package/dist/either.d.ts +20 -0
  42. package/dist/either.d.ts.map +1 -0
  43. package/dist/either.js +25 -0
  44. package/dist/either.js.map +1 -0
  45. package/dist/entry.d.ts +7 -0
  46. package/dist/entry.d.ts.map +1 -0
  47. package/dist/entry.js +24 -0
  48. package/dist/entry.js.map +1 -0
  49. package/dist/equalitor.d.ts +5 -0
  50. package/dist/equalitor.d.ts.map +1 -0
  51. package/dist/equalitor.js +10 -0
  52. package/dist/equalitor.js.map +1 -0
  53. package/dist/error-event.d.ts +34 -0
  54. package/dist/error-event.d.ts.map +1 -0
  55. package/dist/error-event.js +91 -0
  56. package/dist/error-event.js.map +1 -0
  57. package/dist/error.d.ts +3 -0
  58. package/dist/error.d.ts.map +1 -0
  59. package/dist/error.js +18 -0
  60. package/dist/error.js.map +1 -0
  61. package/dist/expression/array-expression.d.ts +14 -0
  62. package/dist/expression/array-expression.d.ts.map +1 -0
  63. package/dist/expression/array-expression.js +32 -0
  64. package/dist/expression/array-expression.js.map +1 -0
  65. package/dist/expression/expression-evaluator.d.ts +8 -0
  66. package/dist/expression/expression-evaluator.d.ts.map +1 -0
  67. package/dist/expression/expression-evaluator.js +31 -0
  68. package/dist/expression/expression-evaluator.js.map +1 -0
  69. package/dist/expression/expression.d.ts +54 -0
  70. package/dist/expression/expression.d.ts.map +1 -0
  71. package/dist/expression/expression.js +173 -0
  72. package/dist/expression/expression.js.map +1 -0
  73. package/dist/expression/internal.d.ts +10 -0
  74. package/dist/expression/internal.d.ts.map +1 -0
  75. package/dist/expression/internal.js +28 -0
  76. package/dist/expression/internal.js.map +1 -0
  77. package/dist/expression/numeric-expression.d.ts +79 -0
  78. package/dist/expression/numeric-expression.d.ts.map +1 -0
  79. package/dist/expression/numeric-expression.js +177 -0
  80. package/dist/expression/numeric-expression.js.map +1 -0
  81. package/dist/expression/string-expression.d.ts +24 -0
  82. package/dist/expression/string-expression.d.ts.map +1 -0
  83. package/dist/expression/string-expression.js +41 -0
  84. package/dist/expression/string-expression.js.map +1 -0
  85. package/dist/expression.d.ts +35 -0
  86. package/dist/expression.d.ts.map +1 -0
  87. package/dist/expression.js +12 -0
  88. package/dist/expression.js.map +1 -0
  89. package/dist/function.d.ts +2 -0
  90. package/dist/function.d.ts.map +1 -0
  91. package/dist/function.js +7 -0
  92. package/dist/function.js.map +1 -0
  93. package/dist/glob.d.ts +8 -0
  94. package/dist/glob.d.ts.map +1 -0
  95. package/dist/glob.js +20 -0
  96. package/dist/glob.js.map +1 -0
  97. package/dist/global-variable.d.ts +7 -0
  98. package/dist/global-variable.d.ts.map +1 -0
  99. package/dist/global-variable.js +34 -0
  100. package/dist/global-variable.js.map +1 -0
  101. package/dist/hash.d.ts +11 -0
  102. package/dist/hash.d.ts.map +1 -0
  103. package/dist/hash.js +30 -0
  104. package/dist/hash.js.map +1 -0
  105. package/dist/hex-code.d.ts +5 -0
  106. package/dist/hex-code.d.ts.map +1 -0
  107. package/dist/hex-code.js +7 -0
  108. package/dist/hex-code.js.map +1 -0
  109. package/dist/index.d.ts +41 -0
  110. package/dist/index.d.ts.map +1 -0
  111. package/dist/index.js +82 -0
  112. package/dist/index.js.map +1 -0
  113. package/dist/lazy.d.ts +3 -0
  114. package/dist/lazy.d.ts.map +1 -0
  115. package/dist/lazy.js +13 -0
  116. package/dist/lazy.js.map +1 -0
  117. package/dist/logger.d.ts +30 -0
  118. package/dist/logger.d.ts.map +1 -0
  119. package/dist/logger.js +124 -0
  120. package/dist/logger.js.map +1 -0
  121. package/dist/math.d.ts +22 -0
  122. package/dist/math.d.ts.map +1 -0
  123. package/dist/math.js +123 -0
  124. package/dist/math.js.map +1 -0
  125. package/dist/misc.d.ts +3 -0
  126. package/dist/misc.d.ts.map +1 -0
  127. package/dist/misc.js +21 -0
  128. package/dist/misc.js.map +1 -0
  129. package/dist/object.d.ts +62 -0
  130. package/dist/object.d.ts.map +1 -0
  131. package/dist/object.js +170 -0
  132. package/dist/object.js.map +1 -0
  133. package/dist/patch.d.ts +41 -0
  134. package/dist/patch.d.ts.map +1 -0
  135. package/dist/patch.js +87 -0
  136. package/dist/patch.js.map +1 -0
  137. package/dist/precondition.d.ts +8 -0
  138. package/dist/precondition.d.ts.map +1 -0
  139. package/dist/precondition.js +27 -0
  140. package/dist/precondition.js.map +1 -0
  141. package/dist/promise.d.ts +8 -0
  142. package/dist/promise.d.ts.map +1 -0
  143. package/dist/promise.js +18 -0
  144. package/dist/promise.js.map +1 -0
  145. package/dist/property.d.ts +11 -0
  146. package/dist/property.d.ts.map +1 -0
  147. package/dist/property.js +21 -0
  148. package/dist/property.js.map +1 -0
  149. package/dist/reference.d.ts +22 -0
  150. package/dist/reference.d.ts.map +1 -0
  151. package/dist/reference.js +51 -0
  152. package/dist/reference.js.map +1 -0
  153. package/dist/resource.d.ts +13 -0
  154. package/dist/resource.d.ts.map +1 -0
  155. package/dist/resource.js +27 -0
  156. package/dist/resource.js.map +1 -0
  157. package/dist/result.d.ts +18 -0
  158. package/dist/result.d.ts.map +1 -0
  159. package/dist/result.js +50 -0
  160. package/dist/result.js.map +1 -0
  161. package/dist/retry.d.ts +18 -0
  162. package/dist/retry.d.ts.map +1 -0
  163. package/dist/retry.js +51 -0
  164. package/dist/retry.js.map +1 -0
  165. package/dist/rich-text.d.ts +17 -0
  166. package/dist/rich-text.d.ts.map +1 -0
  167. package/dist/rich-text.js +9 -0
  168. package/dist/rich-text.js.map +1 -0
  169. package/dist/set.d.ts +5 -0
  170. package/dist/set.d.ts.map +1 -0
  171. package/dist/set.js +44 -0
  172. package/dist/set.js.map +1 -0
  173. package/dist/signature.d.ts +9 -0
  174. package/dist/signature.d.ts.map +1 -0
  175. package/dist/signature.js +20 -0
  176. package/dist/signature.js.map +1 -0
  177. package/dist/store.d.ts +40 -0
  178. package/dist/store.d.ts.map +1 -0
  179. package/dist/store.js +50 -0
  180. package/dist/store.js.map +1 -0
  181. package/dist/string.d.ts +40 -0
  182. package/dist/string.d.ts.map +1 -0
  183. package/dist/string.js +154 -0
  184. package/dist/string.js.map +1 -0
  185. package/dist/tag.d.ts +24 -0
  186. package/dist/tag.d.ts.map +1 -0
  187. package/dist/tag.js +50 -0
  188. package/dist/tag.js.map +1 -0
  189. package/dist/types.d.ts +16 -0
  190. package/dist/types.d.ts.map +1 -0
  191. package/dist/types.js +1 -0
  192. package/dist/types.js.map +1 -0
  193. package/dist/ulid.d.ts +8 -0
  194. package/dist/ulid.d.ts.map +1 -0
  195. package/dist/ulid.js +28 -0
  196. package/dist/ulid.js.map +1 -0
  197. package/dist/unit.d.ts +4 -0
  198. package/dist/unit.d.ts.map +1 -0
  199. package/dist/unit.js +6 -0
  200. package/dist/unit.js.map +1 -0
  201. package/dist/uri.d.ts +47 -0
  202. package/dist/uri.d.ts.map +1 -0
  203. package/dist/uri.js +211 -0
  204. package/dist/uri.js.map +1 -0
  205. package/dist/url.d.ts +25 -0
  206. package/dist/url.d.ts.map +1 -0
  207. package/dist/url.js +120 -0
  208. package/dist/url.js.map +1 -0
  209. package/dist/uuid.d.ts +8 -0
  210. package/dist/uuid.d.ts.map +1 -0
  211. package/dist/uuid.js +35 -0
  212. package/dist/uuid.js.map +1 -0
  213. package/dist/zod.d.ts +17 -0
  214. package/dist/zod.d.ts.map +1 -0
  215. package/dist/zod.js +31 -0
  216. package/dist/zod.js.map +1 -0
  217. package/package.json +5 -2
  218. package/jest.config.js +0 -3
  219. package/src/array.ts +0 -142
  220. package/src/async.ts +0 -114
  221. package/src/cache.ts +0 -236
  222. package/src/combinable.ts +0 -40
  223. package/src/comparator.ts +0 -78
  224. package/src/content.ts +0 -138
  225. package/src/context.ts +0 -6
  226. package/src/crypto.ts +0 -11
  227. package/src/date.ts +0 -18
  228. package/src/duration.ts +0 -57
  229. package/src/either.ts +0 -29
  230. package/src/entry.ts +0 -21
  231. package/src/equalitor.ts +0 -12
  232. package/src/error-event.ts +0 -126
  233. package/src/error.ts +0 -16
  234. package/src/expression/array-expression.ts +0 -29
  235. package/src/expression/expression-evaluator.ts +0 -34
  236. package/src/expression/expression.ts +0 -188
  237. package/src/expression/internal.ts +0 -34
  238. package/src/expression/numeric-expression.ts +0 -182
  239. package/src/expression/string-expression.ts +0 -38
  240. package/src/expression.ts +0 -48
  241. package/src/function.ts +0 -3
  242. package/src/glob.ts +0 -19
  243. package/src/global-variable.ts +0 -40
  244. package/src/hash.ts +0 -28
  245. package/src/hex-code.ts +0 -6
  246. package/src/index.ts +0 -82
  247. package/src/lazy.ts +0 -11
  248. package/src/logger.ts +0 -144
  249. package/src/math.ts +0 -132
  250. package/src/misc.ts +0 -22
  251. package/src/object.ts +0 -236
  252. package/src/patch.ts +0 -128
  253. package/src/precondition.ts +0 -25
  254. package/src/promise.ts +0 -16
  255. package/src/property.ts +0 -29
  256. package/src/reference.ts +0 -68
  257. package/src/resource.ts +0 -32
  258. package/src/result.ts +0 -66
  259. package/src/retry.ts +0 -70
  260. package/src/rich-text.ts +0 -24
  261. package/src/set.ts +0 -46
  262. package/src/signature.ts +0 -20
  263. package/src/store.ts +0 -91
  264. package/src/string.ts +0 -173
  265. package/src/tag.ts +0 -68
  266. package/src/types.ts +0 -21
  267. package/src/ulid.ts +0 -28
  268. package/src/unit.ts +0 -4
  269. package/src/uri.ts +0 -321
  270. package/src/url.ts +0 -155
  271. package/src/uuid.ts +0 -37
  272. package/src/zod.ts +0 -24
  273. package/test/comparator.test.ts +0 -1
  274. package/test/expression.test.ts +0 -12
  275. package/test/object.test.ts +0 -104
  276. package/test/patch.test.ts +0 -170
  277. package/test/set.test.ts +0 -20
  278. package/test/string.test.ts +0 -22
  279. package/test/uri.test.ts +0 -111
  280. package/test/url.test.ts +0 -174
  281. package/tsconfig.build.json +0 -13
  282. package/tsup.config.ts +0 -4
@@ -0,0 +1,79 @@
1
+ import { Expression } from '@bessemer/cornerstone/expression';
2
+ import { Maths } from '@bessemer/cornerstone';
3
+ export declare const SumExpression: import("@bessemer/cornerstone/expression").ExpressionDefinition<number, [initialOperands: Expression<number>[]], Expression<number> & {
4
+ operands: Expression<number>[];
5
+ }>;
6
+ export declare const sum: (initialOperands: Expression<number>[]) => Expression<number> & {
7
+ operands: Expression<number>[];
8
+ };
9
+ export declare const MultiplyExpression: import("@bessemer/cornerstone/expression").ExpressionDefinition<number, [initialOperands: Expression<number>[]], Expression<number> & {
10
+ operands: Expression<number>[];
11
+ }>;
12
+ export declare const multiply: (initialOperands: Expression<number>[]) => Expression<number> & {
13
+ operands: Expression<number>[];
14
+ };
15
+ export declare const LessThanExpression: import("@bessemer/cornerstone/expression").ExpressionDefinition<boolean, [left: Expression<number>, right: Expression<number>], Expression<boolean> & {
16
+ left: Expression<number>;
17
+ right: Expression<number>;
18
+ }>;
19
+ export declare const lessThan: (left: Expression<number>, right: Expression<number>) => Expression<boolean> & {
20
+ left: Expression<number>;
21
+ right: Expression<number>;
22
+ };
23
+ export declare const GreaterThanExpression: import("@bessemer/cornerstone/expression").ExpressionDefinition<boolean, [left: Expression<number>, right: Expression<number>], Expression<boolean> & {
24
+ left: Expression<number>;
25
+ right: Expression<number>;
26
+ }>;
27
+ export declare const greaterThan: (left: Expression<number>, right: Expression<number>) => Expression<boolean> & {
28
+ left: Expression<number>;
29
+ right: Expression<number>;
30
+ };
31
+ export declare const BoundsExpression: import("@bessemer/cornerstone/expression").ExpressionDefinition<number, [value: Expression<number>, minimumThreshold: Expression<number> | null, maximumThreshold: Expression<number> | null], Expression<number> & {
32
+ value: Expression<number>;
33
+ minimumThreshold: Expression<number> | null;
34
+ maximumThreshold: Expression<number> | null;
35
+ }>;
36
+ export declare const bounds: (value: Expression<number>, minimumThreshold: Expression<number> | null, maximumThreshold: Expression<number> | null) => Expression<number> & {
37
+ value: Expression<number>;
38
+ minimumThreshold: Expression<number> | null;
39
+ maximumThreshold: Expression<number> | null;
40
+ };
41
+ export declare const FloorExpression: import("@bessemer/cornerstone/expression").ExpressionDefinition<number, [value: Expression<number>, minimumThreshold: Expression<number> | null], Expression<number> & {
42
+ value: Expression<number>;
43
+ minimumThreshold: Expression<number> | null;
44
+ }>;
45
+ export declare const floor: (value: Expression<number>, minimumThreshold: Expression<number> | null) => Expression<number> & {
46
+ value: Expression<number>;
47
+ minimumThreshold: Expression<number> | null;
48
+ };
49
+ export declare const CeilingExpression: import("@bessemer/cornerstone/expression").ExpressionDefinition<number, [value: Expression<number>, maximumThreshold: Expression<number> | null], Expression<number> & {
50
+ value: Expression<number>;
51
+ maximumThreshold: Expression<number> | null;
52
+ }>;
53
+ export declare const ceiling: (value: Expression<number>, maximumThreshold: Expression<number> | null) => Expression<number> & {
54
+ value: Expression<number>;
55
+ maximumThreshold: Expression<number> | null;
56
+ };
57
+ export declare const RoundExpression: import("@bessemer/cornerstone/expression").ExpressionDefinition<number, [value: Expression<number>, scale: number, roundingMode: Maths.RoundingMode], Expression<number> & {
58
+ value: Expression<number>;
59
+ scale: number;
60
+ roundingMode: Maths.RoundingMode;
61
+ }>;
62
+ export declare const round: (value: Expression<number>, scale: number, roundingMode: Maths.RoundingMode) => Expression<number> & {
63
+ value: Expression<number>;
64
+ scale: number;
65
+ roundingMode: Maths.RoundingMode;
66
+ };
67
+ export declare const MinExpression: import("@bessemer/cornerstone/expression").ExpressionDefinition<number, [initialOperands: Expression<number>[]], Expression<number> & {
68
+ operands: Expression<number>[];
69
+ }>;
70
+ export declare const min: (initialOperands: Expression<number>[]) => Expression<number> & {
71
+ operands: Expression<number>[];
72
+ };
73
+ export declare const MaxExpression: import("@bessemer/cornerstone/expression").ExpressionDefinition<number, [initialOperands: Expression<number>[]], Expression<number> & {
74
+ operands: Expression<number>[];
75
+ }>;
76
+ export declare const max: (initialOperands: Expression<number>[]) => Expression<number> & {
77
+ operands: Expression<number>[];
78
+ };
79
+ //# sourceMappingURL=numeric-expression.d.ts.map
@@ -0,0 +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;AAGtD,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,kBAAkB;;;EAQ7B,CAAA;AAEF,eAAO,MAAM,QAAQ;;;CAA6B,CAAA;AAElD,eAAO,MAAM,qBAAqB;;;EAQhC,CAAA;AAEF,eAAO,MAAM,WAAW;;;CAAgC,CAAA;AAExD,eAAO,MAAM,gBAAgB;;;;EAkB3B,CAAA;AAEF,eAAO,MAAM,MAAM;;;;CAA2B,CAAA;AAE9C,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"}
@@ -0,0 +1,177 @@
1
+ // src/expression/numeric-expression.ts
2
+ import { defineExpression, isType } from "@bessemer/cornerstone/expression/internal";
3
+ import { Maths, Objects } from "@bessemer/cornerstone";
4
+ var SumExpression = defineExpression({
5
+ expressionKey: "Numeric.Sum",
6
+ builder: (initialOperands) => {
7
+ const operands = initialOperands.flatMap((it) => {
8
+ if (isType(it, SumExpression)) {
9
+ return it.operands;
10
+ } else {
11
+ return [it];
12
+ }
13
+ });
14
+ return { operands };
15
+ },
16
+ resolver: ({ operands }, evaluate) => {
17
+ const values = operands.map((it) => evaluate(it));
18
+ return values.reduce((x, y) => x + y, 0);
19
+ }
20
+ });
21
+ var sum = SumExpression.builder;
22
+ var MultiplyExpression = defineExpression({
23
+ expressionKey: "Numeric.Multiply",
24
+ builder: (initialOperands) => {
25
+ const operands = initialOperands.flatMap((it) => {
26
+ if (isType(it, MultiplyExpression)) {
27
+ return it.operands;
28
+ } else {
29
+ return [it];
30
+ }
31
+ });
32
+ return { operands };
33
+ },
34
+ resolver: ({ operands }, evaluate) => {
35
+ const values = operands.map((it) => evaluate(it));
36
+ return values.reduce((x, y) => x * y, 1);
37
+ }
38
+ });
39
+ var multiply = MultiplyExpression.builder;
40
+ var LessThanExpression = defineExpression({
41
+ expressionKey: "Numeric.LessThan",
42
+ builder: (left, right) => {
43
+ return { left, right };
44
+ },
45
+ resolver: ({ left, right }, evaluate) => {
46
+ return evaluate(left) < evaluate(right);
47
+ }
48
+ });
49
+ var lessThan = LessThanExpression.builder;
50
+ var GreaterThanExpression = defineExpression({
51
+ expressionKey: "Numeric.GreaterThan",
52
+ builder: (left, right) => {
53
+ return { left, right };
54
+ },
55
+ resolver: ({ left, right }, evaluate) => {
56
+ return evaluate(left) > evaluate(right);
57
+ }
58
+ });
59
+ var greaterThan = GreaterThanExpression.builder;
60
+ var BoundsExpression = defineExpression({
61
+ expressionKey: "Numeric.Bounds",
62
+ builder: (value, minimumThreshold, maximumThreshold) => {
63
+ return { value, minimumThreshold, maximumThreshold };
64
+ },
65
+ resolver: (expression, evaluate) => {
66
+ let value = evaluate(expression.value);
67
+ const minimumThreshold = Objects.isPresent(expression.minimumThreshold) ? evaluate(expression.minimumThreshold) : null;
68
+ const maximumThreshold = Objects.isPresent(expression.maximumThreshold) ? evaluate(expression.maximumThreshold) : null;
69
+ if (Objects.isPresent(minimumThreshold) && value < minimumThreshold) {
70
+ value = minimumThreshold;
71
+ }
72
+ if (Objects.isPresent(maximumThreshold) && value > maximumThreshold) {
73
+ value = maximumThreshold;
74
+ }
75
+ return value;
76
+ }
77
+ });
78
+ var bounds = BoundsExpression.builder;
79
+ var FloorExpression = defineExpression({
80
+ expressionKey: "Numeric.Floor",
81
+ builder: (value, minimumThreshold) => {
82
+ return { value, minimumThreshold };
83
+ },
84
+ resolver: (expression, evaluate) => {
85
+ let value = evaluate(expression.value);
86
+ const minimumThreshold = Objects.isPresent(expression.minimumThreshold) ? evaluate(expression.minimumThreshold) : null;
87
+ if (Objects.isPresent(minimumThreshold) && value < minimumThreshold) {
88
+ value = minimumThreshold;
89
+ }
90
+ return value;
91
+ }
92
+ });
93
+ var floor = FloorExpression.builder;
94
+ var CeilingExpression = defineExpression({
95
+ expressionKey: "Numeric.Ceiling",
96
+ builder: (value, maximumThreshold) => {
97
+ return { value, maximumThreshold };
98
+ },
99
+ resolver: (expression, evaluate) => {
100
+ let value = evaluate(expression.value);
101
+ const maximumThreshold = Objects.isPresent(expression.maximumThreshold) ? evaluate(expression.maximumThreshold) : null;
102
+ if (Objects.isPresent(maximumThreshold) && value > maximumThreshold) {
103
+ value = maximumThreshold;
104
+ }
105
+ return value;
106
+ }
107
+ });
108
+ var ceiling = CeilingExpression.builder;
109
+ var RoundExpression = defineExpression({
110
+ expressionKey: "Numeric.Round",
111
+ builder: (value, scale, roundingMode) => {
112
+ return { value, scale, roundingMode };
113
+ },
114
+ resolver: ({ value, scale, roundingMode }, evaluate) => {
115
+ return Maths.round(evaluate(value), scale, roundingMode);
116
+ }
117
+ });
118
+ var round = RoundExpression.builder;
119
+ var MinExpression = defineExpression({
120
+ expressionKey: "Numeric.Min",
121
+ builder: (initialOperands) => {
122
+ const operands = initialOperands.flatMap((it) => {
123
+ if (isType(it, MinExpression)) {
124
+ return it.operands;
125
+ } else {
126
+ return [it];
127
+ }
128
+ });
129
+ return { operands };
130
+ },
131
+ resolver: ({ operands }, evaluate) => {
132
+ const values = operands.map((it) => evaluate(it));
133
+ return Math.min(...values);
134
+ }
135
+ });
136
+ var min = MinExpression.builder;
137
+ var MaxExpression = defineExpression({
138
+ expressionKey: "Numeric.Max",
139
+ builder: (initialOperands) => {
140
+ const operands = initialOperands.flatMap((it) => {
141
+ if (isType(it, MaxExpression)) {
142
+ return it.operands;
143
+ } else {
144
+ return [it];
145
+ }
146
+ });
147
+ return { operands };
148
+ },
149
+ resolver: ({ operands }, evaluate) => {
150
+ const values = operands.map((it) => evaluate(it));
151
+ return Math.max(...values);
152
+ }
153
+ });
154
+ var max = MaxExpression.builder;
155
+ export {
156
+ BoundsExpression,
157
+ CeilingExpression,
158
+ FloorExpression,
159
+ GreaterThanExpression,
160
+ LessThanExpression,
161
+ MaxExpression,
162
+ MinExpression,
163
+ MultiplyExpression,
164
+ RoundExpression,
165
+ SumExpression,
166
+ bounds,
167
+ ceiling,
168
+ floor,
169
+ greaterThan,
170
+ lessThan,
171
+ max,
172
+ min,
173
+ multiply,
174
+ round,
175
+ sum
176
+ };
177
+ //# sourceMappingURL=numeric-expression.js.map
@@ -0,0 +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'\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 LessThanExpression = defineExpression({\n expressionKey: 'Numeric.LessThan',\n builder: (left: Expression<number>, right: Expression<number>) => {\n return { left, right }\n },\n resolver: ({ left, right }, evaluate) => {\n return evaluate(left) < evaluate(right)\n },\n})\n\nexport const lessThan = LessThanExpression.builder\n\nexport const GreaterThanExpression = defineExpression({\n expressionKey: 'Numeric.GreaterThan',\n builder: (left: Expression<number>, right: Expression<number>) => {\n return { left, right }\n },\n resolver: ({ left, right }, evaluate) => {\n return evaluate(left) > evaluate(right)\n },\n})\n\nexport const greaterThan = GreaterThanExpression.builder\n\nexport const BoundsExpression = defineExpression({\n expressionKey: 'Numeric.Bounds',\n builder: (value: Expression<number>, minimumThreshold: Expression<number> | null, maximumThreshold: Expression<number> | null) => {\n return { value, minimumThreshold, maximumThreshold }\n },\n resolver: (expression, evaluate) => {\n let value = evaluate(expression.value)\n const minimumThreshold = Objects.isPresent(expression.minimumThreshold) ? evaluate(expression.minimumThreshold) : null\n const maximumThreshold = Objects.isPresent(expression.maximumThreshold) ? evaluate(expression.maximumThreshold) : null\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 bounds = BoundsExpression.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":"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","names":[]}
@@ -0,0 +1,24 @@
1
+ import { Expression } from '@bessemer/cornerstone/expression';
2
+ export declare const ConcatenateExpression: import("@bessemer/cornerstone/expression").ExpressionDefinition<string, [first: Expression<string>, second: Expression<string>], Expression<string> & {
3
+ first: Expression<string>;
4
+ second: Expression<string>;
5
+ }>;
6
+ export declare const concatenate: (first: Expression<string>, second: Expression<string>) => Expression<string> & {
7
+ first: Expression<string>;
8
+ second: Expression<string>;
9
+ };
10
+ export declare const UppercaseExpression: import("@bessemer/cornerstone/expression").ExpressionDefinition<string, [value: Expression<string>], Expression<string> & {
11
+ value: Expression<string>;
12
+ }>;
13
+ export declare const uppercase: (value: Expression<string>) => Expression<string> & {
14
+ value: Expression<string>;
15
+ };
16
+ export declare const SubstringExpression: import("@bessemer/cornerstone/expression").ExpressionDefinition<boolean, [string: Expression<string>, substring: Expression<string>], Expression<boolean> & {
17
+ string: Expression<string>;
18
+ substring: Expression<string>;
19
+ }>;
20
+ export declare const substring: (string: Expression<string>, substring: Expression<string>) => Expression<boolean> & {
21
+ string: Expression<string>;
22
+ substring: Expression<string>;
23
+ };
24
+ //# sourceMappingURL=string-expression.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string-expression.d.ts","sourceRoot":"","sources":["../../src/expression/string-expression.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAE7D,eAAO,MAAM,qBAAqB;;;EAQhC,CAAA;AAEF,eAAO,MAAM,WAAW;;;CAAgC,CAAA;AAExD,eAAO,MAAM,mBAAmB;;EAQ9B,CAAA;AAEF,eAAO,MAAM,SAAS;;CAA8B,CAAA;AAEpD,eAAO,MAAM,mBAAmB;;;EAQ9B,CAAA;AAEF,eAAO,MAAM,SAAS;;;CAA8B,CAAA"}
@@ -0,0 +1,41 @@
1
+ // src/expression/string-expression.ts
2
+ import { defineExpression } from "@bessemer/cornerstone/expression/internal";
3
+ var ConcatenateExpression = defineExpression({
4
+ expressionKey: "Concatenate",
5
+ builder: (first, second) => {
6
+ return { first, second };
7
+ },
8
+ resolver: () => {
9
+ throw new Error("Not yet implemented");
10
+ }
11
+ });
12
+ var concatenate = ConcatenateExpression.builder;
13
+ var UppercaseExpression = defineExpression({
14
+ expressionKey: "Uppercase",
15
+ builder: (value) => {
16
+ return { value };
17
+ },
18
+ resolver: () => {
19
+ throw new Error("Not yet implemented");
20
+ }
21
+ });
22
+ var uppercase = UppercaseExpression.builder;
23
+ var SubstringExpression = defineExpression({
24
+ expressionKey: "Substring",
25
+ builder: (string, substring2) => {
26
+ return { string, substring: substring2 };
27
+ },
28
+ resolver: () => {
29
+ throw new Error("Not yet implemented");
30
+ }
31
+ });
32
+ var substring = SubstringExpression.builder;
33
+ export {
34
+ ConcatenateExpression,
35
+ SubstringExpression,
36
+ UppercaseExpression,
37
+ concatenate,
38
+ substring,
39
+ uppercase
40
+ };
41
+ //# sourceMappingURL=string-expression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/expression/string-expression.ts"],"sourcesContent":["import { defineExpression } from '@bessemer/cornerstone/expression/internal'\nimport { Expression } from '@bessemer/cornerstone/expression'\n\nexport const ConcatenateExpression = defineExpression({\n expressionKey: 'Concatenate',\n builder: (first: Expression<string>, second: Expression<string>) => {\n return { first, second }\n },\n resolver: (): string => {\n throw new Error('Not yet implemented')\n },\n})\n\nexport const concatenate = ConcatenateExpression.builder\n\nexport const UppercaseExpression = defineExpression({\n expressionKey: 'Uppercase',\n builder: (value: Expression<string>) => {\n return { value }\n },\n resolver: (): string => {\n throw new Error('Not yet implemented')\n },\n})\n\nexport const uppercase = UppercaseExpression.builder\n\nexport const SubstringExpression = defineExpression({\n expressionKey: 'Substring',\n builder: (string: Expression<string>, substring: Expression<string>) => {\n return { string, substring }\n },\n resolver: (): boolean => {\n throw new Error('Not yet implemented')\n },\n})\n\nexport const substring = SubstringExpression.builder\n"],"mappings":";AAAA,SAAS,wBAAwB;AAG1B,IAAM,wBAAwB,iBAAiB;AAAA,EACpD,eAAe;AAAA,EACf,SAAS,CAAC,OAA2B,WAA+B;AAClE,WAAO,EAAE,OAAO,OAAO;AAAA,EACzB;AAAA,EACA,UAAU,MAAc;AACtB,UAAM,IAAI,MAAM,qBAAqB;AAAA,EACvC;AACF,CAAC;AAEM,IAAM,cAAc,sBAAsB;AAE1C,IAAM,sBAAsB,iBAAiB;AAAA,EAClD,eAAe;AAAA,EACf,SAAS,CAAC,UAA8B;AACtC,WAAO,EAAE,MAAM;AAAA,EACjB;AAAA,EACA,UAAU,MAAc;AACtB,UAAM,IAAI,MAAM,qBAAqB;AAAA,EACvC;AACF,CAAC;AAEM,IAAM,YAAY,oBAAoB;AAEtC,IAAM,sBAAsB,iBAAiB;AAAA,EAClD,eAAe;AAAA,EACf,SAAS,CAAC,QAA4BA,eAAkC;AACtE,WAAO,EAAE,QAAQ,WAAAA,WAAU;AAAA,EAC7B;AAAA,EACA,UAAU,MAAe;AACvB,UAAM,IAAI,MAAM,qBAAqB;AAAA,EACvC;AACF,CAAC;AAEM,IAAM,YAAY,oBAAoB;","names":["substring"]}
@@ -0,0 +1,35 @@
1
+ import * as NumericExpressions from '@bessemer/cornerstone/expression/numeric-expression';
2
+ import * as StringExpressions from '@bessemer/cornerstone/expression/string-expression';
3
+ import * as ArrayExpressions from '@bessemer/cornerstone/expression/array-expression';
4
+ import * as Expressions from '@bessemer/cornerstone/expression/expression';
5
+ import { NominalType } from '@bessemer/cornerstone/types';
6
+ import { Signable } from '@bessemer/cornerstone/signature';
7
+ import { UnknownRecord } from 'type-fest';
8
+ export { Expressions, NumericExpressions, StringExpressions, ArrayExpressions };
9
+ export type ExpressionKey<ReturnType, ArgumentType extends Array<unknown>> = NominalType<string, ['ExpressionKey', ReturnType, ArgumentType]>;
10
+ export type Expression<ReturnType> = ReturnType | IExpression<ReturnType>;
11
+ export interface IExpression<ReturnType> {
12
+ expressionKey: ExpressionKey<ReturnType, Array<unknown>>;
13
+ }
14
+ export interface ExpressionReference<ReturnType, ArgumentType extends Array<unknown>> {
15
+ expressionKey: ExpressionKey<ReturnType, ArgumentType>;
16
+ }
17
+ export interface ReducingExpression<ReturnType, ArgumentType> extends ExpressionReference<ReturnType, [Array<Expression<ArgumentType>>]> {
18
+ }
19
+ export type EvaluateExpression = <T>(expression: Expression<T>) => T;
20
+ export type ExpressionDefinition<ReturnType, ArgumentType extends Array<unknown>, ExpressionType extends Expression<ReturnType>> = ExpressionReference<ReturnType, ArgumentType> & {
21
+ expressionKey: ExpressionKey<ReturnType, ArgumentType>;
22
+ builder: (...parameters: ArgumentType) => ExpressionType;
23
+ resolver: (expression: ExpressionType, evaluate: EvaluateExpression, context: ExpressionContext) => ReturnType;
24
+ };
25
+ export interface ExpressionVariable<T> extends IExpression<T> {
26
+ expressionKey: 'Variable';
27
+ name: string;
28
+ }
29
+ export interface ParameterizedVariable<ValueType, ParameterType extends Array<Signable>> {
30
+ apply(...parameters: ParameterType): ExpressionVariable<ValueType>;
31
+ }
32
+ export type ExpressionContext = {
33
+ variables: UnknownRecord;
34
+ };
35
+ //# sourceMappingURL=expression.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../src/expression.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,kBAAkB,MAAM,qDAAqD,CAAA;AACzF,OAAO,KAAK,iBAAiB,MAAM,oDAAoD,CAAA;AACvF,OAAO,KAAK,gBAAgB,MAAM,mDAAmD,CAAA;AACrF,OAAO,KAAK,WAAW,MAAM,6CAA6C,CAAA;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAEzC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,CAAA;AAE/E,MAAM,MAAM,aAAa,CAAC,UAAU,EAAE,YAAY,SAAS,KAAK,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,CAAA;AAE7I,MAAM,MAAM,UAAU,CAAC,UAAU,IAAI,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,CAAA;AAEzE,MAAM,WAAW,WAAW,CAAC,UAAU;IACrC,aAAa,EAAE,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;CACzD;AAED,MAAM,WAAW,mBAAmB,CAAC,UAAU,EAAE,YAAY,SAAS,KAAK,CAAC,OAAO,CAAC;IAClF,aAAa,EAAE,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;CACvD;AAED,MAAM,WAAW,kBAAkB,CAAC,UAAU,EAAE,YAAY,CAAE,SAAQ,mBAAmB,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;CAAG;AAE3I,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AAEpE,MAAM,MAAM,oBAAoB,CAC9B,UAAU,EACV,YAAY,SAAS,KAAK,CAAC,OAAO,CAAC,EACnC,cAAc,SAAS,UAAU,CAAC,UAAU,CAAC,IAC3C,mBAAmB,CAAC,UAAU,EAAE,YAAY,CAAC,GAAG;IAClD,aAAa,EAAE,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;IACtD,OAAO,EAAE,CAAC,GAAG,UAAU,EAAE,YAAY,KAAK,cAAc,CAAA;IACxD,QAAQ,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,kBAAkB,EAAE,OAAO,EAAE,iBAAiB,KAAK,UAAU,CAAA;CAC/G,CAAA;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IAC3D,aAAa,EAAE,UAAU,CAAA;IACzB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,qBAAqB,CAAC,SAAS,EAAE,aAAa,SAAS,KAAK,CAAC,QAAQ,CAAC;IACrF,KAAK,CAAC,GAAG,UAAU,EAAE,aAAa,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAA;CACnE;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,aAAa,CAAA;CACzB,CAAA"}
@@ -0,0 +1,12 @@
1
+ // src/expression.ts
2
+ import * as NumericExpressions from "@bessemer/cornerstone/expression/numeric-expression";
3
+ import * as StringExpressions from "@bessemer/cornerstone/expression/string-expression";
4
+ import * as ArrayExpressions from "@bessemer/cornerstone/expression/array-expression";
5
+ import * as Expressions from "@bessemer/cornerstone/expression/expression";
6
+ export {
7
+ ArrayExpressions,
8
+ Expressions,
9
+ NumericExpressions,
10
+ StringExpressions
11
+ };
12
+ //# sourceMappingURL=expression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/expression.ts"],"sourcesContent":["import * as NumericExpressions from '@bessemer/cornerstone/expression/numeric-expression'\nimport * as StringExpressions from '@bessemer/cornerstone/expression/string-expression'\nimport * as ArrayExpressions from '@bessemer/cornerstone/expression/array-expression'\nimport * as Expressions from '@bessemer/cornerstone/expression/expression'\nimport { NominalType } from '@bessemer/cornerstone/types'\nimport { Signable } from '@bessemer/cornerstone/signature'\nimport { UnknownRecord } from 'type-fest'\n\nexport { Expressions, NumericExpressions, StringExpressions, ArrayExpressions }\n\nexport type ExpressionKey<ReturnType, ArgumentType extends Array<unknown>> = NominalType<string, ['ExpressionKey', ReturnType, ArgumentType]>\n\nexport type Expression<ReturnType> = ReturnType | IExpression<ReturnType>\n\nexport interface IExpression<ReturnType> {\n expressionKey: ExpressionKey<ReturnType, Array<unknown>>\n}\n\nexport interface ExpressionReference<ReturnType, ArgumentType extends Array<unknown>> {\n expressionKey: ExpressionKey<ReturnType, ArgumentType>\n}\n\nexport interface ReducingExpression<ReturnType, ArgumentType> extends ExpressionReference<ReturnType, [Array<Expression<ArgumentType>>]> {}\n\nexport type EvaluateExpression = <T>(expression: Expression<T>) => T\n\nexport type ExpressionDefinition<\n ReturnType,\n ArgumentType extends Array<unknown>,\n ExpressionType extends Expression<ReturnType>\n> = ExpressionReference<ReturnType, ArgumentType> & {\n expressionKey: ExpressionKey<ReturnType, ArgumentType>\n builder: (...parameters: ArgumentType) => ExpressionType\n resolver: (expression: ExpressionType, evaluate: EvaluateExpression, context: ExpressionContext) => ReturnType\n}\n\nexport interface ExpressionVariable<T> extends IExpression<T> {\n expressionKey: 'Variable'\n name: string\n}\n\nexport interface ParameterizedVariable<ValueType, ParameterType extends Array<Signable>> {\n apply(...parameters: ParameterType): ExpressionVariable<ValueType>\n}\n\nexport type ExpressionContext = {\n variables: UnknownRecord\n}\n"],"mappings":";AAAA,YAAY,wBAAwB;AACpC,YAAY,uBAAuB;AACnC,YAAY,sBAAsB;AAClC,YAAY,iBAAiB;","names":[]}
@@ -0,0 +1,2 @@
1
+ export declare const isFunction: (value: any) => value is (...args: any[]) => any;
2
+ //# sourceMappingURL=function.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function.d.ts","sourceRoot":"","sources":["../src/function.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,4BAC87rB,GAAG,mBADn7rB,CAAA"}
@@ -0,0 +1,7 @@
1
+ // src/function.ts
2
+ import { isFunction as _isFunction } from "lodash-es";
3
+ var isFunction = _isFunction;
4
+ export {
5
+ isFunction
6
+ };
7
+ //# sourceMappingURL=function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/function.ts"],"sourcesContent":["import { isFunction as _isFunction } from 'lodash-es'\n\nexport const isFunction = _isFunction\n"],"mappings":";AAAA,SAAS,cAAc,mBAAmB;AAEnC,IAAM,aAAa;","names":[]}
package/dist/glob.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ import { NominalType } from '@bessemer/cornerstone/types';
2
+ import { ZodType } from 'zod';
3
+ export type GlobPattern = NominalType<string, 'GlobPattern'>;
4
+ export declare const GlobPatternSchema: ZodType<GlobPattern>;
5
+ export declare const schema: () => ZodType<GlobPattern>;
6
+ export declare const match: (str: string, pattern: GlobPattern) => boolean;
7
+ export declare const anyMatch: (str: string, patterns: Array<GlobPattern>) => boolean;
8
+ //# sourceMappingURL=glob.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../src/glob.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAA;AAG7B,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;AAC5D,eAAO,MAAM,iBAAiB,EAAE,OAAO,CAAC,WAAW,CAAY,CAAA;AAE/D,eAAO,MAAM,MAAM,QAAO,OAAO,CAAC,WAAW,CAE5C,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,KAAK,MAAM,EAAE,SAAS,WAAW,KAAG,OAEzD,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,EAAE,UAAU,KAAK,CAAC,WAAW,CAAC,KAAG,OAEpE,CAAA"}
package/dist/glob.js ADDED
@@ -0,0 +1,20 @@
1
+ // src/glob.ts
2
+ import { minimatch } from "minimatch";
3
+ import { string } from "@bessemer/cornerstone/zod";
4
+ var GlobPatternSchema = string();
5
+ var schema = () => {
6
+ return string();
7
+ };
8
+ var match = (str, pattern) => {
9
+ return minimatch(str, pattern);
10
+ };
11
+ var anyMatch = (str, patterns) => {
12
+ return patterns.some((it) => match(str, it));
13
+ };
14
+ export {
15
+ GlobPatternSchema,
16
+ anyMatch,
17
+ match,
18
+ schema
19
+ };
20
+ //# sourceMappingURL=glob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/glob.ts"],"sourcesContent":["import { minimatch } from 'minimatch'\nimport { NominalType } from '@bessemer/cornerstone/types'\nimport { ZodType } from 'zod'\nimport { string } from '@bessemer/cornerstone/zod'\n\nexport type GlobPattern = NominalType<string, 'GlobPattern'>\nexport const GlobPatternSchema: ZodType<GlobPattern> = string()\n\nexport const schema = (): ZodType<GlobPattern> => {\n return string()\n}\n\nexport const match = (str: string, pattern: GlobPattern): boolean => {\n return minimatch(str, pattern)\n}\n\nexport const anyMatch = (str: string, patterns: Array<GlobPattern>): boolean => {\n return patterns.some((it) => match(str, it))\n}\n"],"mappings":";AAAA,SAAS,iBAAiB;AAG1B,SAAS,cAAc;AAGhB,IAAM,oBAA0C,OAAO;AAEvD,IAAM,SAAS,MAA4B;AAChD,SAAO,OAAO;AAChB;AAEO,IAAM,QAAQ,CAAC,KAAa,YAAkC;AACnE,SAAO,UAAU,KAAK,OAAO;AAC/B;AAEO,IAAM,WAAW,CAAC,KAAa,aAA0C;AAC9E,SAAO,SAAS,KAAK,CAAC,OAAO,MAAM,KAAK,EAAE,CAAC;AAC7C;","names":[]}
@@ -0,0 +1,7 @@
1
+ import { LazyValue } from '@bessemer/cornerstone/lazy';
2
+ export type GlobalVariable<T> = {
3
+ getValue: () => T;
4
+ setValue: (value: T) => void;
5
+ };
6
+ export declare const createGlobalVariable: <T>(key: string, defaultValue: LazyValue<T>) => GlobalVariable<T>;
7
+ //# sourceMappingURL=global-variable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global-variable.d.ts","sourceRoot":"","sources":["../src/global-variable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAIhE,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC9B,QAAQ,EAAE,MAAM,CAAC,CAAA;IACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;CAC7B,CAAA;AAeD,eAAO,MAAM,oBAAoB,GAAI,CAAC,EAAE,KAAK,MAAM,EAAE,cAAc,SAAS,CAAC,CAAC,CAAC,KAAG,cAAc,CAAC,CAAC,CAiBjG,CAAA"}
@@ -0,0 +1,34 @@
1
+ // src/global-variable.ts
2
+ import { evaluate } from "@bessemer/cornerstone/lazy";
3
+ import { isUndefined } from "@bessemer/cornerstone/object";
4
+ var Global;
5
+ if (typeof window !== "undefined") {
6
+ Global = window;
7
+ } else if (typeof global !== "undefined") {
8
+ Global = global;
9
+ } else {
10
+ Global = globalThis;
11
+ }
12
+ if (isUndefined(Global.BessemerGlobalVariables)) {
13
+ Global.BessemerGlobalVariables = {};
14
+ }
15
+ var createGlobalVariable = (key, defaultValue) => {
16
+ return {
17
+ getValue: () => {
18
+ const value = Global.BessemerGlobalVariables[key];
19
+ if (isUndefined(value)) {
20
+ const def = evaluate(defaultValue);
21
+ Global.BessemerGlobalVariables[key] = def;
22
+ return def;
23
+ }
24
+ return value;
25
+ },
26
+ setValue: (value) => {
27
+ Global.BessemerGlobalVariables[key] = value;
28
+ }
29
+ };
30
+ };
31
+ export {
32
+ createGlobalVariable
33
+ };
34
+ //# sourceMappingURL=global-variable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/global-variable.ts"],"sourcesContent":["import { evaluate, LazyValue } from '@bessemer/cornerstone/lazy'\nimport { isUndefined } from '@bessemer/cornerstone/object'\nimport { UnknownRecord } from 'type-fest'\n\nexport type GlobalVariable<T> = {\n getValue: () => T\n setValue: (value: T) => void\n}\n\nlet Global: { BessemerGlobalVariables: UnknownRecord }\nif (typeof window !== 'undefined') {\n Global = window as any\n} else if (typeof global !== 'undefined') {\n Global = global as any\n} else {\n Global = globalThis as any\n}\n\nif (isUndefined(Global.BessemerGlobalVariables)) {\n Global.BessemerGlobalVariables = {}\n}\n\nexport const createGlobalVariable = <T>(key: string, defaultValue: LazyValue<T>): GlobalVariable<T> => {\n return {\n getValue: () => {\n const value = Global.BessemerGlobalVariables[key] as T | undefined\n\n if (isUndefined(value)) {\n const def = evaluate(defaultValue)\n Global.BessemerGlobalVariables[key] = def\n return def\n }\n\n return value\n },\n setValue: (value: T) => {\n Global.BessemerGlobalVariables[key] = value\n },\n }\n}\n"],"mappings":";AAAA,SAAS,gBAA2B;AACpC,SAAS,mBAAmB;AAQ5B,IAAI;AACJ,IAAI,OAAO,WAAW,aAAa;AACjC,WAAS;AACX,WAAW,OAAO,WAAW,aAAa;AACxC,WAAS;AACX,OAAO;AACL,WAAS;AACX;AAEA,IAAI,YAAY,OAAO,uBAAuB,GAAG;AAC/C,SAAO,0BAA0B,CAAC;AACpC;AAEO,IAAM,uBAAuB,CAAI,KAAa,iBAAkD;AACrG,SAAO;AAAA,IACL,UAAU,MAAM;AACd,YAAM,QAAQ,OAAO,wBAAwB,GAAG;AAEhD,UAAI,YAAY,KAAK,GAAG;AACtB,cAAM,MAAM,SAAS,YAAY;AACjC,eAAO,wBAAwB,GAAG,IAAI;AACtC,eAAO;AAAA,MACT;AAEA,aAAO;AAAA,IACT;AAAA,IACA,UAAU,CAAC,UAAa;AACtB,aAAO,wBAAwB,GAAG,IAAI;AAAA,IACxC;AAAA,EACF;AACF;","names":[]}
package/dist/hash.d.ts ADDED
@@ -0,0 +1,11 @@
1
+ import { TaggedType } from '@bessemer/cornerstone/types';
2
+ export type Hash = TaggedType<string, 'Hash'>;
3
+ export declare enum HashAlgorithm {
4
+ SHA1 = "SHA-1",
5
+ SHA256 = "SHA-256"
6
+ }
7
+ export declare const asString: (value: Hash) => string;
8
+ export declare const insecureHash: (message: string) => Promise<Hash>;
9
+ export declare const secureHash: (message: string) => Promise<Hash>;
10
+ export declare const hash: (message: string, algorithm: HashAlgorithm) => Promise<Hash>;
11
+ //# sourceMappingURL=hash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../src/hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAExD,MAAM,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAE7C,oBAAY,aAAa;IACvB,IAAI,UAAU;IACd,MAAM,YAAY;CACnB;AAED,eAAO,MAAM,QAAQ,GAAI,OAAO,IAAI,KAAG,MAEtC,CAAA;AAED,eAAO,MAAM,YAAY,GAAU,SAAS,MAAM,KAAG,OAAO,CAAC,IAAI,CAEhE,CAAA;AAED,eAAO,MAAM,UAAU,GAAU,SAAS,MAAM,KAAG,OAAO,CAAC,IAAI,CAE9D,CAAA;AAED,eAAO,MAAM,IAAI,GAAU,SAAS,MAAM,EAAE,WAAW,aAAa,KAAG,OAAO,CAAC,IAAI,CAMlF,CAAA"}
package/dist/hash.js ADDED
@@ -0,0 +1,30 @@
1
+ // src/hash.ts
2
+ var HashAlgorithm = /* @__PURE__ */ ((HashAlgorithm2) => {
3
+ HashAlgorithm2["SHA1"] = "SHA-1";
4
+ HashAlgorithm2["SHA256"] = "SHA-256";
5
+ return HashAlgorithm2;
6
+ })(HashAlgorithm || {});
7
+ var asString = (value) => {
8
+ return value;
9
+ };
10
+ var insecureHash = async (message) => {
11
+ return hash(message, "SHA-1" /* SHA1 */);
12
+ };
13
+ var secureHash = async (message) => {
14
+ return hash(message, "SHA-256" /* SHA256 */);
15
+ };
16
+ var hash = async (message, algorithm) => {
17
+ const msgBuffer = new TextEncoder().encode(message);
18
+ const hashBuffer = await crypto.subtle.digest(algorithm, msgBuffer);
19
+ const hashArray = Array.from(new Uint8Array(hashBuffer));
20
+ const hashHex = hashArray.map((b) => b.toString(16).padStart(2, "0")).join("");
21
+ return hashHex;
22
+ };
23
+ export {
24
+ HashAlgorithm,
25
+ asString,
26
+ hash,
27
+ insecureHash,
28
+ secureHash
29
+ };
30
+ //# sourceMappingURL=hash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hash.ts"],"sourcesContent":["import { TaggedType } from '@bessemer/cornerstone/types'\n\nexport type Hash = TaggedType<string, 'Hash'>\n\nexport enum HashAlgorithm {\n SHA1 = 'SHA-1',\n SHA256 = 'SHA-256',\n}\n\nexport const asString = (value: Hash): string => {\n return value\n}\n\nexport const insecureHash = async (message: string): Promise<Hash> => {\n return hash(message, HashAlgorithm.SHA1)\n}\n\nexport const secureHash = async (message: string): Promise<Hash> => {\n return hash(message, HashAlgorithm.SHA256)\n}\n\nexport const hash = async (message: string, algorithm: HashAlgorithm): Promise<Hash> => {\n const msgBuffer = new TextEncoder().encode(message)\n const hashBuffer = await crypto.subtle.digest(algorithm, msgBuffer)\n const hashArray = Array.from(new Uint8Array(hashBuffer))\n const hashHex = hashArray.map((b) => b.toString(16).padStart(2, '0')).join('')\n return hashHex as Hash\n}\n"],"mappings":";AAIO,IAAK,gBAAL,kBAAKA,mBAAL;AACL,EAAAA,eAAA,UAAO;AACP,EAAAA,eAAA,YAAS;AAFC,SAAAA;AAAA,GAAA;AAKL,IAAM,WAAW,CAAC,UAAwB;AAC/C,SAAO;AACT;AAEO,IAAM,eAAe,OAAO,YAAmC;AACpE,SAAO,KAAK,SAAS,kBAAkB;AACzC;AAEO,IAAM,aAAa,OAAO,YAAmC;AAClE,SAAO,KAAK,SAAS,sBAAoB;AAC3C;AAEO,IAAM,OAAO,OAAO,SAAiB,cAA4C;AACtF,QAAM,YAAY,IAAI,YAAY,EAAE,OAAO,OAAO;AAClD,QAAM,aAAa,MAAM,OAAO,OAAO,OAAO,WAAW,SAAS;AAClE,QAAM,YAAY,MAAM,KAAK,IAAI,WAAW,UAAU,CAAC;AACvD,QAAM,UAAU,UAAU,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,EAAE,KAAK,EAAE;AAC7E,SAAO;AACT;","names":["HashAlgorithm"]}
@@ -0,0 +1,5 @@
1
+ import { NominalType } from '@bessemer/cornerstone/types';
2
+ import { ZodType } from 'zod';
3
+ export type HexCode = NominalType<string, 'HexCode'>;
4
+ export declare const HexCodeSchema: ZodType<HexCode>;
5
+ //# sourceMappingURL=hex-code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hex-code.d.ts","sourceRoot":"","sources":["../src/hex-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAEzD,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAA;AAE7B,MAAM,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;AACpD,eAAO,MAAM,aAAa,EAAE,OAAO,CAAC,OAAO,CAA2F,CAAA"}
@@ -0,0 +1,7 @@
1
+ // src/hex-code.ts
2
+ import { Zod } from "@bessemer/cornerstone/index";
3
+ var HexCodeSchema = Zod.string().length(7).startsWith("#").describe("A 6-digit hex code starting a # sign");
4
+ export {
5
+ HexCodeSchema
6
+ };
7
+ //# sourceMappingURL=hex-code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hex-code.ts"],"sourcesContent":["import { NominalType } from '@bessemer/cornerstone/types'\nimport { Zod } from '@bessemer/cornerstone/index'\nimport { ZodType } from 'zod'\n\nexport type HexCode = NominalType<string, 'HexCode'>\nexport const HexCodeSchema: ZodType<HexCode> = Zod.string().length(7).startsWith('#').describe('A 6-digit hex code starting a # sign')\n"],"mappings":";AACA,SAAS,WAAW;AAIb,IAAM,gBAAkC,IAAI,OAAO,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,EAAE,SAAS,sCAAsC;","names":[]}