@bessemer/cornerstone 0.5.113 → 0.5.115

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 (255) hide show
  1. package/dist/array.d.ts.map +1 -1
  2. package/dist/array.js +28 -28
  3. package/dist/array.js.map +1 -1
  4. package/dist/aspect-ratio.d.ts +3 -3
  5. package/dist/aspect-ratio.d.ts.map +1 -1
  6. package/dist/aspect-ratio.js +13 -12
  7. package/dist/aspect-ratio.js.map +1 -1
  8. package/dist/assertion.d.ts.map +1 -1
  9. package/dist/assertion.js +5 -5
  10. package/dist/assertion.js.map +1 -1
  11. package/dist/async-value.js +2 -2
  12. package/dist/async-value.js.map +1 -1
  13. package/dist/async.d.ts.map +1 -1
  14. package/dist/async.js +2 -2
  15. package/dist/async.js.map +1 -1
  16. package/dist/cache.d.ts.map +1 -1
  17. package/dist/cache.js +11 -12
  18. package/dist/cache.js.map +1 -1
  19. package/dist/combinable.js +5 -5
  20. package/dist/combinable.js.map +1 -1
  21. package/dist/comparator.js +8 -8
  22. package/dist/comparator.js.map +1 -1
  23. package/dist/data-size.d.ts +2 -1
  24. package/dist/data-size.d.ts.map +1 -1
  25. package/dist/data-size.js +3 -3
  26. package/dist/data-size.js.map +1 -1
  27. package/dist/either.js +5 -5
  28. package/dist/either.js.map +1 -1
  29. package/dist/equalitor.d.ts.map +1 -1
  30. package/dist/equalitor.js +2 -2
  31. package/dist/equalitor.js.map +1 -1
  32. package/dist/error/error-cause.d.ts.map +1 -1
  33. package/dist/error/error-cause.js +14 -14
  34. package/dist/error/error-cause.js.map +1 -1
  35. package/dist/error/error-code.js +2 -2
  36. package/dist/error/error-code.js.map +1 -1
  37. package/dist/error/error-event.d.ts +3 -2
  38. package/dist/error/error-event.d.ts.map +1 -1
  39. package/dist/error/error-event.js +28 -28
  40. package/dist/error/error-event.js.map +1 -1
  41. package/dist/error/error-type.d.ts +2 -1
  42. package/dist/error/error-type.d.ts.map +1 -1
  43. package/dist/error/error-type.js +2 -2
  44. package/dist/error/error-type.js.map +1 -1
  45. package/dist/error/error.js +5 -5
  46. package/dist/error/error.js.map +1 -1
  47. package/dist/expression/array-expression.js +3 -3
  48. package/dist/expression/array-expression.js.map +1 -1
  49. package/dist/expression/core-expression.d.ts.map +1 -1
  50. package/dist/expression/core-expression.js +19 -19
  51. package/dist/expression/core-expression.js.map +1 -1
  52. package/dist/expression/expression-evaluator.js +2 -2
  53. package/dist/expression/expression-evaluator.js.map +1 -1
  54. package/dist/expression/expression-mapper.js +4 -4
  55. package/dist/expression/expression-mapper.js.map +1 -1
  56. package/dist/expression/internal.js +3 -3
  57. package/dist/expression/internal.js.map +1 -1
  58. package/dist/expression/numeric-expression.js +13 -13
  59. package/dist/expression/numeric-expression.js.map +1 -1
  60. package/dist/expression/string-expression.js +4 -4
  61. package/dist/expression/string-expression.js.map +1 -1
  62. package/dist/expression.d.ts +17 -1
  63. package/dist/expression.d.ts.map +1 -1
  64. package/dist/expression.js.map +1 -1
  65. package/dist/glob.d.ts +3 -3
  66. package/dist/glob.d.ts.map +1 -1
  67. package/dist/glob.js +11 -12
  68. package/dist/glob.js.map +1 -1
  69. package/dist/global-variable.d.ts.map +1 -1
  70. package/dist/global-variable.js +5 -5
  71. package/dist/global-variable.js.map +1 -1
  72. package/dist/hex-code.d.ts +3 -3
  73. package/dist/hex-code.d.ts.map +1 -1
  74. package/dist/hex-code.js +11 -10
  75. package/dist/hex-code.js.map +1 -1
  76. package/dist/index.d.ts +311 -1
  77. package/dist/index.d.ts.map +1 -1
  78. package/dist/index.js +4 -0
  79. package/dist/index.js.map +1 -1
  80. package/dist/intl/country-code.d.ts +3 -3
  81. package/dist/intl/country-code.d.ts.map +1 -1
  82. package/dist/intl/country-code.js +9 -10
  83. package/dist/intl/country-code.js.map +1 -1
  84. package/dist/intl/country-subdivision-code.d.ts +3 -3
  85. package/dist/intl/country-subdivision-code.d.ts.map +1 -1
  86. package/dist/intl/country-subdivision-code.js +13 -11
  87. package/dist/intl/country-subdivision-code.js.map +1 -1
  88. package/dist/intl/currency-code.d.ts +3 -3
  89. package/dist/intl/currency-code.d.ts.map +1 -1
  90. package/dist/intl/currency-code.js +9 -10
  91. package/dist/intl/currency-code.js.map +1 -1
  92. package/dist/intl/language-code.d.ts +3 -3
  93. package/dist/intl/language-code.d.ts.map +1 -1
  94. package/dist/intl/language-code.js +9 -10
  95. package/dist/intl/language-code.js.map +1 -1
  96. package/dist/intl/locale.d.ts +3 -3
  97. package/dist/intl/locale.d.ts.map +1 -1
  98. package/dist/intl/locale.js +18 -19
  99. package/dist/intl/locale.js.map +1 -1
  100. package/dist/json.d.ts.map +1 -1
  101. package/dist/json.js +2 -2
  102. package/dist/json.js.map +1 -1
  103. package/dist/logger.d.ts.map +1 -1
  104. package/dist/logger.js +12 -12
  105. package/dist/logger.js.map +1 -1
  106. package/dist/map.d.ts +306 -0
  107. package/dist/map.d.ts.map +1 -1
  108. package/dist/map.js +8 -8
  109. package/dist/map.js.map +1 -1
  110. package/dist/mime-type.d.ts +3 -3
  111. package/dist/mime-type.d.ts.map +1 -1
  112. package/dist/mime-type.js +9 -10
  113. package/dist/mime-type.js.map +1 -1
  114. package/dist/misc.js +4 -4
  115. package/dist/misc.js.map +1 -1
  116. package/dist/monetary-amount.d.ts +3 -2
  117. package/dist/monetary-amount.d.ts.map +1 -1
  118. package/dist/monetary-amount.js +16 -16
  119. package/dist/monetary-amount.js.map +1 -1
  120. package/dist/net/content-type.d.ts +2 -1
  121. package/dist/net/content-type.d.ts.map +1 -1
  122. package/dist/net/content-type.js +2 -2
  123. package/dist/net/content-type.js.map +1 -1
  124. package/dist/net/domain-name.d.ts +3 -3
  125. package/dist/net/domain-name.d.ts.map +1 -1
  126. package/dist/net/domain-name.js +10 -11
  127. package/dist/net/domain-name.js.map +1 -1
  128. package/dist/net/http-method.d.ts.map +1 -1
  129. package/dist/net/http-method.js +9 -9
  130. package/dist/net/http-method.js.map +1 -1
  131. package/dist/net/ipv4-address.d.ts +3 -3
  132. package/dist/net/ipv4-address.d.ts.map +1 -1
  133. package/dist/net/ipv4-address.js +10 -11
  134. package/dist/net/ipv4-address.js.map +1 -1
  135. package/dist/net/ipv6-address.d.ts +3 -3
  136. package/dist/net/ipv6-address.d.ts.map +1 -1
  137. package/dist/net/ipv6-address.js +10 -11
  138. package/dist/net/ipv6-address.js.map +1 -1
  139. package/dist/net/uri-host-name.d.ts +3 -3
  140. package/dist/net/uri-host-name.d.ts.map +1 -1
  141. package/dist/net/uri-host-name.js +15 -16
  142. package/dist/net/uri-host-name.js.map +1 -1
  143. package/dist/net/uri.d.ts +1 -2
  144. package/dist/net/uri.d.ts.map +1 -1
  145. package/dist/net/uri.js +5 -3
  146. package/dist/net/uri.js.map +1 -1
  147. package/dist/net/url.d.ts.map +1 -1
  148. package/dist/net/url.js +6 -7
  149. package/dist/net/url.js.map +1 -1
  150. package/dist/object/object-path.d.ts.map +1 -1
  151. package/dist/object/object-path.js +23 -28
  152. package/dist/object/object-path.js.map +1 -1
  153. package/dist/object/type-path.js +19 -19
  154. package/dist/object/type-path.js.map +1 -1
  155. package/dist/patch.js +4 -4
  156. package/dist/patch.js.map +1 -1
  157. package/dist/promise.js +2 -2
  158. package/dist/promise.js.map +1 -1
  159. package/dist/property.d.ts.map +1 -1
  160. package/dist/property.js +7 -7
  161. package/dist/property.js.map +1 -1
  162. package/dist/proxy.js +2 -2
  163. package/dist/proxy.js.map +1 -1
  164. package/dist/range.js +2 -2
  165. package/dist/range.js.map +1 -1
  166. package/dist/reference.d.ts +2 -1
  167. package/dist/reference.d.ts.map +1 -1
  168. package/dist/reference.js +13 -13
  169. package/dist/reference.js.map +1 -1
  170. package/dist/resource-key.js +2 -2
  171. package/dist/resource-key.js.map +1 -1
  172. package/dist/result.js +5 -5
  173. package/dist/result.js.map +1 -1
  174. package/dist/retry.d.ts.map +1 -1
  175. package/dist/retry.js +12 -12
  176. package/dist/retry.js.map +1 -1
  177. package/dist/rich-text.js +2 -2
  178. package/dist/rich-text.js.map +1 -1
  179. package/dist/signature.d.ts.map +1 -1
  180. package/dist/signature.js +9 -9
  181. package/dist/signature.js.map +1 -1
  182. package/dist/sql/sql-expression-parser.js +2 -2
  183. package/dist/sql/sql-expression-parser.js.map +1 -1
  184. package/dist/sql.d.ts +5 -1
  185. package/dist/sql.d.ts.map +1 -1
  186. package/dist/sql.js.map +1 -1
  187. package/dist/store.d.ts.map +1 -1
  188. package/dist/store.js +9 -9
  189. package/dist/store.js.map +1 -1
  190. package/dist/string.js +4 -4
  191. package/dist/string.js.map +1 -1
  192. package/dist/tag.d.ts.map +1 -1
  193. package/dist/tag.js +10 -10
  194. package/dist/tag.js.map +1 -1
  195. package/dist/temporal/clock.d.ts +13 -13
  196. package/dist/temporal/clock.d.ts.map +1 -1
  197. package/dist/temporal/clock.js +10 -10
  198. package/dist/temporal/clock.js.map +1 -1
  199. package/dist/temporal/duration.d.ts +15 -9
  200. package/dist/temporal/duration.d.ts.map +1 -1
  201. package/dist/temporal/duration.js +30 -31
  202. package/dist/temporal/duration.js.map +1 -1
  203. package/dist/temporal/instant.d.ts +18 -15
  204. package/dist/temporal/instant.d.ts.map +1 -1
  205. package/dist/temporal/instant.js +42 -43
  206. package/dist/temporal/instant.js.map +1 -1
  207. package/dist/temporal/plain-date-time.d.ts +16 -13
  208. package/dist/temporal/plain-date-time.d.ts.map +1 -1
  209. package/dist/temporal/plain-date-time.js +36 -38
  210. package/dist/temporal/plain-date-time.js.map +1 -1
  211. package/dist/temporal/plain-date.d.ts +16 -13
  212. package/dist/temporal/plain-date.d.ts.map +1 -1
  213. package/dist/temporal/plain-date.js +35 -37
  214. package/dist/temporal/plain-date.js.map +1 -1
  215. package/dist/temporal/plain-month-day.d.ts +37 -0
  216. package/dist/temporal/plain-month-day.d.ts.map +1 -0
  217. package/dist/temporal/plain-month-day.js +84 -0
  218. package/dist/temporal/plain-month-day.js.map +1 -0
  219. package/dist/temporal/plain-time.d.ts +19 -17
  220. package/dist/temporal/plain-time.d.ts.map +1 -1
  221. package/dist/temporal/plain-time.js +43 -42
  222. package/dist/temporal/plain-time.js.map +1 -1
  223. package/dist/temporal/plain-year-month.d.ts +57 -0
  224. package/dist/temporal/plain-year-month.d.ts.map +1 -0
  225. package/dist/temporal/plain-year-month.js +109 -0
  226. package/dist/temporal/plain-year-month.js.map +1 -0
  227. package/dist/temporal/time-zone-id.d.ts +5 -4
  228. package/dist/temporal/time-zone-id.d.ts.map +1 -1
  229. package/dist/temporal/time-zone-id.js +11 -11
  230. package/dist/temporal/time-zone-id.js.map +1 -1
  231. package/dist/temporal/time-zone-offset.d.ts +12 -11
  232. package/dist/temporal/time-zone-offset.d.ts.map +1 -1
  233. package/dist/temporal/time-zone-offset.js +42 -50
  234. package/dist/temporal/time-zone-offset.js.map +1 -1
  235. package/dist/temporal/zoned-date-time.d.ts +16 -13
  236. package/dist/temporal/zoned-date-time.d.ts.map +1 -1
  237. package/dist/temporal/zoned-date-time.js +35 -36
  238. package/dist/temporal/zoned-date-time.js.map +1 -1
  239. package/dist/uuid/ulid.d.ts +3 -3
  240. package/dist/uuid/ulid.d.ts.map +1 -1
  241. package/dist/uuid/ulid.js +9 -10
  242. package/dist/uuid/ulid.js.map +1 -1
  243. package/dist/uuid/uuid-v4.d.ts +3 -3
  244. package/dist/uuid/uuid-v4.d.ts.map +1 -1
  245. package/dist/uuid/uuid-v4.js +13 -14
  246. package/dist/uuid/uuid-v4.js.map +1 -1
  247. package/dist/uuid/uuid-v7.d.ts +1 -2
  248. package/dist/uuid/uuid-v7.d.ts.map +1 -1
  249. package/dist/uuid/uuid-v7.js +1 -2
  250. package/dist/uuid/uuid-v7.js.map +1 -1
  251. package/dist/zod-util.d.ts +4 -3
  252. package/dist/zod-util.d.ts.map +1 -1
  253. package/dist/zod-util.js +21 -11
  254. package/dist/zod-util.js.map +1 -1
  255. package/package.json +6 -4
@@ -1,11 +1,11 @@
1
1
  // src/expression/numeric-expression.ts
2
- import { defineExpression, isType } from "@bessemer/cornerstone/expression/internal";
2
+ import * as ExpressionInternal from "@bessemer/cornerstone/expression/internal";
3
3
  import { Maths, Objects } from "@bessemer/cornerstone";
4
- var SumExpression = defineExpression({
4
+ var SumExpression = ExpressionInternal.defineExpression({
5
5
  expressionKey: "Numeric.Sum",
6
6
  builder: (initialOperands) => {
7
7
  const operands = initialOperands.flatMap((it) => {
8
- if (isType(it, SumExpression)) {
8
+ if (ExpressionInternal.isType(it, SumExpression)) {
9
9
  return it.operands;
10
10
  } else {
11
11
  return [it];
@@ -19,11 +19,11 @@ var SumExpression = defineExpression({
19
19
  }
20
20
  });
21
21
  var sum = SumExpression.builder;
22
- var MultiplyExpression = defineExpression({
22
+ var MultiplyExpression = ExpressionInternal.defineExpression({
23
23
  expressionKey: "Numeric.Multiply",
24
24
  builder: (initialOperands) => {
25
25
  const operands = initialOperands.flatMap((it) => {
26
- if (isType(it, MultiplyExpression)) {
26
+ if (ExpressionInternal.isType(it, MultiplyExpression)) {
27
27
  return it.operands;
28
28
  } else {
29
29
  return [it];
@@ -37,7 +37,7 @@ var MultiplyExpression = defineExpression({
37
37
  }
38
38
  });
39
39
  var multiply = MultiplyExpression.builder;
40
- var BoundExpression = defineExpression({
40
+ var BoundExpression = ExpressionInternal.defineExpression({
41
41
  expressionKey: "Numeric.Bound",
42
42
  builder: (value, bounds) => {
43
43
  return { value, bounds };
@@ -56,7 +56,7 @@ var BoundExpression = defineExpression({
56
56
  }
57
57
  });
58
58
  var bound = BoundExpression.builder;
59
- var FloorExpression = defineExpression({
59
+ var FloorExpression = ExpressionInternal.defineExpression({
60
60
  expressionKey: "Numeric.Floor",
61
61
  builder: (value, minimumThreshold) => {
62
62
  return { value, minimumThreshold };
@@ -71,7 +71,7 @@ var FloorExpression = defineExpression({
71
71
  }
72
72
  });
73
73
  var floor = FloorExpression.builder;
74
- var CeilingExpression = defineExpression({
74
+ var CeilingExpression = ExpressionInternal.defineExpression({
75
75
  expressionKey: "Numeric.Ceiling",
76
76
  builder: (value, maximumThreshold) => {
77
77
  return { value, maximumThreshold };
@@ -86,7 +86,7 @@ var CeilingExpression = defineExpression({
86
86
  }
87
87
  });
88
88
  var ceiling = CeilingExpression.builder;
89
- var RoundExpression = defineExpression({
89
+ var RoundExpression = ExpressionInternal.defineExpression({
90
90
  expressionKey: "Numeric.Round",
91
91
  builder: (value, scale, roundingMode) => {
92
92
  return { value, scale, roundingMode };
@@ -96,11 +96,11 @@ var RoundExpression = defineExpression({
96
96
  }
97
97
  });
98
98
  var round = RoundExpression.builder;
99
- var MinExpression = defineExpression({
99
+ var MinExpression = ExpressionInternal.defineExpression({
100
100
  expressionKey: "Numeric.Min",
101
101
  builder: (initialOperands) => {
102
102
  const operands = initialOperands.flatMap((it) => {
103
- if (isType(it, MinExpression)) {
103
+ if (ExpressionInternal.isType(it, MinExpression)) {
104
104
  return it.operands;
105
105
  } else {
106
106
  return [it];
@@ -114,11 +114,11 @@ var MinExpression = defineExpression({
114
114
  }
115
115
  });
116
116
  var min = MinExpression.builder;
117
- var MaxExpression = defineExpression({
117
+ var MaxExpression = ExpressionInternal.defineExpression({
118
118
  expressionKey: "Numeric.Max",
119
119
  builder: (initialOperands) => {
120
120
  const operands = initialOperands.flatMap((it) => {
121
- if (isType(it, MaxExpression)) {
121
+ if (ExpressionInternal.isType(it, MaxExpression)) {
122
122
  return it.operands;
123
123
  } else {
124
124
  return [it];
@@ -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":"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","names":[]}
1
+ {"version":3,"sources":["../../src/expression/numeric-expression.ts"],"sourcesContent":["import * as ExpressionInternal 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 = ExpressionInternal.defineExpression({\n expressionKey: 'Numeric.Sum',\n builder: (initialOperands: Array<Expression<number>>) => {\n const operands: Array<Expression<number>> = initialOperands.flatMap((it) => {\n if (ExpressionInternal.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 = ExpressionInternal.defineExpression({\n expressionKey: 'Numeric.Multiply',\n builder: (initialOperands: Array<Expression<number>>) => {\n const operands: Array<Expression<number>> = initialOperands.flatMap((it) => {\n if (ExpressionInternal.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 = ExpressionInternal.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 = ExpressionInternal.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 = ExpressionInternal.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 = ExpressionInternal.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 = ExpressionInternal.defineExpression({\n expressionKey: 'Numeric.Min',\n builder: (initialOperands: Array<Expression<number>>) => {\n const operands: Array<Expression<number>> = initialOperands.flatMap((it) => {\n if (ExpressionInternal.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 = ExpressionInternal.defineExpression({\n expressionKey: 'Numeric.Max',\n builder: (initialOperands: Array<Expression<number>>) => {\n const operands: Array<Expression<number>> = initialOperands.flatMap((it) => {\n if (ExpressionInternal.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,6 +1,6 @@
1
1
  // src/expression/string-expression.ts
2
- import { defineExpression } from "@bessemer/cornerstone/expression/internal";
3
- var ConcatenateExpression = defineExpression({
2
+ import * as ExpressionInternal from "@bessemer/cornerstone/expression/internal";
3
+ var ConcatenateExpression = ExpressionInternal.defineExpression({
4
4
  expressionKey: "Concatenate",
5
5
  builder: (first, second) => {
6
6
  return { first, second };
@@ -10,7 +10,7 @@ var ConcatenateExpression = defineExpression({
10
10
  }
11
11
  });
12
12
  var concatenate = ConcatenateExpression.builder;
13
- var UppercaseExpression = defineExpression({
13
+ var UppercaseExpression = ExpressionInternal.defineExpression({
14
14
  expressionKey: "Uppercase",
15
15
  builder: (value) => {
16
16
  return { value };
@@ -20,7 +20,7 @@ var UppercaseExpression = defineExpression({
20
20
  }
21
21
  });
22
22
  var uppercase = UppercaseExpression.builder;
23
- var SubstringExpression = defineExpression({
23
+ var SubstringExpression = ExpressionInternal.defineExpression({
24
24
  expressionKey: "Substring",
25
25
  builder: (string, substring2) => {
26
26
  return { string, substring: substring2 };
@@ -1 +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"]}
1
+ {"version":3,"sources":["../../src/expression/string-expression.ts"],"sourcesContent":["import * as ExpressionInternal from '@bessemer/cornerstone/expression/internal'\nimport { Expression } from '@bessemer/cornerstone/expression'\n\nexport const ConcatenateExpression = ExpressionInternal.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 = ExpressionInternal.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 = ExpressionInternal.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,YAAY,wBAAwB;AAG7B,IAAM,wBAA2C,oCAAiB;AAAA,EACvE,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,sBAAyC,oCAAiB;AAAA,EACrE,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,sBAAyC,oCAAiB;AAAA,EACrE,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"]}
@@ -5,7 +5,23 @@ import * as Expressions from '@bessemer/cornerstone/expression/expression';
5
5
  import { TaggedType } from '@bessemer/cornerstone/types';
6
6
  import { Signable } from '@bessemer/cornerstone/signature';
7
7
  import { UnknownRecord } from 'type-fest';
8
- export { Expressions, NumericExpressions, StringExpressions, ArrayExpressions };
8
+ export {
9
+ /**
10
+ * @since 2.0.0
11
+ */
12
+ Expressions,
13
+ /**
14
+ * @since 2.0.0
15
+ */
16
+ NumericExpressions,
17
+ /**
18
+ * @since 2.0.0
19
+ */
20
+ StringExpressions,
21
+ /**
22
+ * @since 2.0.0
23
+ */
24
+ ArrayExpressions, };
9
25
  export type ExpressionKey<ReturnType, ArgumentType extends Array<unknown>> = TaggedType<string, ['ExpressionKey', ReturnType, ArgumentType]>;
10
26
  export type Expression<ReturnType> = ReturnType | IExpression<ReturnType>;
11
27
  export interface IExpression<ReturnType> {
@@ -1 +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,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,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,UAAU,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,CAAA;AAE5I,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"}
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,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAEzC,OAAO;AACL;;GAEG;AACH,WAAW;AACX;;GAEG;AACH,kBAAkB;AAClB;;GAEG;AACH,iBAAiB;AACjB;;GAEG;AACH,gBAAgB,GACjB,CAAA;AAED,MAAM,MAAM,aAAa,CAAC,UAAU,EAAE,YAAY,SAAS,KAAK,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,CAAA;AAE5I,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"}
@@ -1 +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 { TaggedType } 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>> = TaggedType<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":[]}
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 { TaggedType } from '@bessemer/cornerstone/types'\nimport { Signable } from '@bessemer/cornerstone/signature'\nimport { UnknownRecord } from 'type-fest'\n\nexport {\n /**\n * @since 2.0.0\n */\n Expressions,\n /**\n * @since 2.0.0\n */\n NumericExpressions,\n /**\n * @since 2.0.0\n */\n StringExpressions,\n /**\n * @since 2.0.0\n */\n ArrayExpressions,\n}\n\nexport type ExpressionKey<ReturnType, ArgumentType extends Array<unknown>> = TaggedType<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":[]}
package/dist/glob.d.ts CHANGED
@@ -1,12 +1,12 @@
1
- import Zod from 'zod';
2
1
  import { Result } from '@bessemer/cornerstone/result';
3
2
  import { NominalType } from '@bessemer/cornerstone/types';
4
3
  import { ErrorEvent } from '@bessemer/cornerstone/error/error-event';
5
- export declare const Namespace: import("@bessemer/cornerstone/resource-key").ResourceNamespace<"glob">;
4
+ import * as ResourceKeys from '@bessemer/cornerstone/resource-key';
5
+ export declare const Namespace: ResourceKeys.ResourceNamespace<"glob">;
6
6
  export type GlobPattern = NominalType<string, typeof Namespace>;
7
7
  export declare const parseString: (value: string) => Result<GlobPattern, ErrorEvent>;
8
8
  export declare const from: (value: string) => GlobPattern;
9
- export declare const Schema: Zod.ZodPipe<Zod.ZodString, Zod.ZodTransform<GlobPattern, string>>;
9
+ export declare const Schema: import("zod").ZodPipe<import("zod").ZodType<GlobPattern, GlobPattern, import("zod/v4/core").$ZodTypeInternals<GlobPattern, GlobPattern>>, import("zod").ZodTransform<GlobPattern, GlobPattern>>;
10
10
  export declare const match: (str: string, pattern: GlobPattern) => boolean;
11
11
  export declare const anyMatch: (str: string, patterns: Array<GlobPattern>) => boolean;
12
12
  //# sourceMappingURL=glob.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../src/glob.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAW,MAAM,EAAW,MAAM,8BAA8B,CAAA;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAE,UAAU,EAA8B,MAAM,yCAAyC,CAAA;AAIhG,eAAO,MAAM,SAAS,wEAA0B,CAAA;AAChD,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,SAAS,CAAC,CAAA;AAE/D,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,MAAM,CAAC,WAAW,EAAE,UAAU,CA8BzE,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,OAAO,MAAM,KAAG,WAEpC,CAAA;AAED,eAAO,MAAM,MAAM,mEAIjB,CAAA;AAEF,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"}
1
+ {"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../src/glob.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAA;AACpE,OAAO,KAAK,YAAY,MAAM,oCAAoC,CAAA;AAGlE,eAAO,MAAM,SAAS,wCAAuC,CAAA;AAC7D,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,SAAS,CAAC,CAAA;AAE/D,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,MAAM,CAAC,WAAW,EAAE,UAAU,CA8BzE,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,OAAO,MAAM,KAAG,WAEpC,CAAA;AAED,eAAO,MAAM,MAAM,iMAIjB,CAAA;AAEF,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 CHANGED
@@ -1,22 +1,21 @@
1
1
  // src/glob.ts
2
2
  import { minimatch } from "minimatch";
3
- import Zod from "zod";
4
- import { failure, success } from "@bessemer/cornerstone/result";
5
- import { invalidValue, unpackResult } from "@bessemer/cornerstone/error/error-event";
6
- import { createNamespace } from "@bessemer/cornerstone/resource-key";
7
- import { structuredTransform } from "@bessemer/cornerstone/zod-util";
8
- var Namespace = createNamespace("glob");
3
+ import * as Results from "@bessemer/cornerstone/result";
4
+ import * as ErrorEvents from "@bessemer/cornerstone/error/error-event";
5
+ import * as ResourceKeys from "@bessemer/cornerstone/resource-key";
6
+ import * as ZodUtil from "@bessemer/cornerstone/zod-util";
7
+ var Namespace = ResourceKeys.createNamespace("glob");
9
8
  var parseString = (value) => {
10
9
  const validGlobPattern = /^[a-zA-Z0-9\-_.\/\\*?\[\]{}!,|]+$/;
11
10
  if (!validGlobPattern.test(value)) {
12
- return failure(invalidValue(value, { namespace: Namespace, message: `GlobPattern contains invalid characters.` }));
11
+ return Results.failure(ErrorEvents.invalidValue(value, { namespace: Namespace, message: `GlobPattern contains invalid characters.` }));
13
12
  }
14
13
  const brackets = value.match(/[\[\]]/g);
15
14
  if (brackets) {
16
15
  const openBrackets = (value.match(/\[/g) || []).length;
17
16
  const closeBrackets = (value.match(/]/g) || []).length;
18
17
  if (openBrackets !== closeBrackets) {
19
- return failure(invalidValue(value, { namespace: Namespace, message: `GlobPattern has unbalanced brackets.` }));
18
+ return Results.failure(ErrorEvents.invalidValue(value, { namespace: Namespace, message: `GlobPattern has unbalanced brackets.` }));
20
19
  }
21
20
  }
22
21
  const braces = value.match(/[{}]/g);
@@ -24,15 +23,15 @@ var parseString = (value) => {
24
23
  const openBraces = (value.match(/\{/g) || []).length;
25
24
  const closeBraces = (value.match(/}/g) || []).length;
26
25
  if (openBraces !== closeBraces) {
27
- return failure(invalidValue(value, { namespace: Namespace, message: `GlobPattern has unbalanced braces.` }));
26
+ return Results.failure(ErrorEvents.invalidValue(value, { namespace: Namespace, message: `GlobPattern has unbalanced braces.` }));
28
27
  }
29
28
  }
30
- return success(value);
29
+ return Results.success(value);
31
30
  };
32
31
  var from = (value) => {
33
- return unpackResult(parseString(value));
32
+ return ErrorEvents.unpackResult(parseString(value));
34
33
  };
35
- var Schema = structuredTransform(Zod.string(), parseString).meta({
34
+ var Schema = ZodUtil.structuredTransform(ZodUtil.string(), parseString).meta({
36
35
  type: "string",
37
36
  format: Namespace,
38
37
  pattern: "^[a-zA-Z0-9\\-_.\\/\\\\*?\\[\\]{}!,|]+$"
package/dist/glob.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/glob.ts"],"sourcesContent":["import { minimatch } from 'minimatch'\nimport Zod from 'zod'\nimport { failure, Result, success } from '@bessemer/cornerstone/result'\nimport { NominalType } from '@bessemer/cornerstone/types'\nimport { ErrorEvent, invalidValue, unpackResult } from '@bessemer/cornerstone/error/error-event'\nimport { createNamespace } from '@bessemer/cornerstone/resource-key'\nimport { structuredTransform } from '@bessemer/cornerstone/zod-util'\n\nexport const Namespace = createNamespace('glob')\nexport type GlobPattern = NominalType<string, typeof Namespace>\n\nexport const parseString = (value: string): Result<GlobPattern, ErrorEvent> => {\n // Check for valid glob characters and patterns\n const validGlobPattern = /^[a-zA-Z0-9\\-_.\\/\\\\*?\\[\\]{}!,|]+$/\n\n // Basic validation - contains valid characters\n if (!validGlobPattern.test(value)) {\n return failure(invalidValue(value, { namespace: Namespace, message: `GlobPattern contains invalid characters.` }))\n }\n\n // Check for balanced brackets\n const brackets = value.match(/[\\[\\]]/g)\n if (brackets) {\n const openBrackets = (value.match(/\\[/g) || []).length\n const closeBrackets = (value.match(/]/g) || []).length\n if (openBrackets !== closeBrackets) {\n return failure(invalidValue(value, { namespace: Namespace, message: `GlobPattern has unbalanced brackets.` }))\n }\n }\n\n // Check for balanced braces\n const braces = value.match(/[{}]/g)\n if (braces) {\n const openBraces = (value.match(/\\{/g) || []).length\n const closeBraces = (value.match(/}/g) || []).length\n if (openBraces !== closeBraces) {\n return failure(invalidValue(value, { namespace: Namespace, message: `GlobPattern has unbalanced braces.` }))\n }\n }\n\n return success(value as GlobPattern)\n}\n\nexport const from = (value: string): GlobPattern => {\n return unpackResult(parseString(value))\n}\n\nexport const Schema = structuredTransform(Zod.string(), parseString).meta({\n type: 'string',\n format: Namespace,\n pattern: '^[a-zA-Z0-9\\\\-_.\\\\/\\\\\\\\*?\\\\[\\\\]{}!,|]+$',\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;AAC1B,OAAO,SAAS;AAChB,SAAS,SAAiB,eAAe;AAEzC,SAAqB,cAAc,oBAAoB;AACvD,SAAS,uBAAuB;AAChC,SAAS,2BAA2B;AAE7B,IAAM,YAAY,gBAAgB,MAAM;AAGxC,IAAM,cAAc,CAAC,UAAmD;AAE7E,QAAM,mBAAmB;AAGzB,MAAI,CAAC,iBAAiB,KAAK,KAAK,GAAG;AACjC,WAAO,QAAQ,aAAa,OAAO,EAAE,WAAW,WAAW,SAAS,2CAA2C,CAAC,CAAC;AAAA,EACnH;AAGA,QAAM,WAAW,MAAM,MAAM,SAAS;AACtC,MAAI,UAAU;AACZ,UAAM,gBAAgB,MAAM,MAAM,KAAK,KAAK,CAAC,GAAG;AAChD,UAAM,iBAAiB,MAAM,MAAM,IAAI,KAAK,CAAC,GAAG;AAChD,QAAI,iBAAiB,eAAe;AAClC,aAAO,QAAQ,aAAa,OAAO,EAAE,WAAW,WAAW,SAAS,uCAAuC,CAAC,CAAC;AAAA,IAC/G;AAAA,EACF;AAGA,QAAM,SAAS,MAAM,MAAM,OAAO;AAClC,MAAI,QAAQ;AACV,UAAM,cAAc,MAAM,MAAM,KAAK,KAAK,CAAC,GAAG;AAC9C,UAAM,eAAe,MAAM,MAAM,IAAI,KAAK,CAAC,GAAG;AAC9C,QAAI,eAAe,aAAa;AAC9B,aAAO,QAAQ,aAAa,OAAO,EAAE,WAAW,WAAW,SAAS,qCAAqC,CAAC,CAAC;AAAA,IAC7G;AAAA,EACF;AAEA,SAAO,QAAQ,KAAoB;AACrC;AAEO,IAAM,OAAO,CAAC,UAA+B;AAClD,SAAO,aAAa,YAAY,KAAK,CAAC;AACxC;AAEO,IAAM,SAAS,oBAAoB,IAAI,OAAO,GAAG,WAAW,EAAE,KAAK;AAAA,EACxE,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,SAAS;AACX,CAAC;AAEM,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":[]}
1
+ {"version":3,"sources":["../src/glob.ts"],"sourcesContent":["import { minimatch } from 'minimatch'\nimport * as Results from '@bessemer/cornerstone/result'\nimport { Result } from '@bessemer/cornerstone/result'\nimport { NominalType } from '@bessemer/cornerstone/types'\nimport * as ErrorEvents from '@bessemer/cornerstone/error/error-event'\nimport { ErrorEvent } from '@bessemer/cornerstone/error/error-event'\nimport * as ResourceKeys from '@bessemer/cornerstone/resource-key'\nimport * as ZodUtil from '@bessemer/cornerstone/zod-util'\n\nexport const Namespace = ResourceKeys.createNamespace('glob')\nexport type GlobPattern = NominalType<string, typeof Namespace>\n\nexport const parseString = (value: string): Result<GlobPattern, ErrorEvent> => {\n // Check for valid glob characters and patterns\n const validGlobPattern = /^[a-zA-Z0-9\\-_.\\/\\\\*?\\[\\]{}!,|]+$/\n\n // Basic validation - contains valid characters\n if (!validGlobPattern.test(value)) {\n return Results.failure(ErrorEvents.invalidValue(value, { namespace: Namespace, message: `GlobPattern contains invalid characters.` }))\n }\n\n // Check for balanced brackets\n const brackets = value.match(/[\\[\\]]/g)\n if (brackets) {\n const openBrackets = (value.match(/\\[/g) || []).length\n const closeBrackets = (value.match(/]/g) || []).length\n if (openBrackets !== closeBrackets) {\n return Results.failure(ErrorEvents.invalidValue(value, { namespace: Namespace, message: `GlobPattern has unbalanced brackets.` }))\n }\n }\n\n // Check for balanced braces\n const braces = value.match(/[{}]/g)\n if (braces) {\n const openBraces = (value.match(/\\{/g) || []).length\n const closeBraces = (value.match(/}/g) || []).length\n if (openBraces !== closeBraces) {\n return Results.failure(ErrorEvents.invalidValue(value, { namespace: Namespace, message: `GlobPattern has unbalanced braces.` }))\n }\n }\n\n return Results.success(value as GlobPattern)\n}\n\nexport const from = (value: string): GlobPattern => {\n return ErrorEvents.unpackResult(parseString(value))\n}\n\nexport const Schema = ZodUtil.structuredTransform<GlobPattern>(ZodUtil.string(), parseString).meta({\n type: 'string',\n format: Namespace,\n pattern: '^[a-zA-Z0-9\\\\-_.\\\\/\\\\\\\\*?\\\\[\\\\]{}!,|]+$',\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;AAC1B,YAAY,aAAa;AAGzB,YAAY,iBAAiB;AAE7B,YAAY,kBAAkB;AAC9B,YAAY,aAAa;AAElB,IAAM,YAAyB,6BAAgB,MAAM;AAGrD,IAAM,cAAc,CAAC,UAAmD;AAE7E,QAAM,mBAAmB;AAGzB,MAAI,CAAC,iBAAiB,KAAK,KAAK,GAAG;AACjC,WAAe,gBAAoB,yBAAa,OAAO,EAAE,WAAW,WAAW,SAAS,2CAA2C,CAAC,CAAC;AAAA,EACvI;AAGA,QAAM,WAAW,MAAM,MAAM,SAAS;AACtC,MAAI,UAAU;AACZ,UAAM,gBAAgB,MAAM,MAAM,KAAK,KAAK,CAAC,GAAG;AAChD,UAAM,iBAAiB,MAAM,MAAM,IAAI,KAAK,CAAC,GAAG;AAChD,QAAI,iBAAiB,eAAe;AAClC,aAAe,gBAAoB,yBAAa,OAAO,EAAE,WAAW,WAAW,SAAS,uCAAuC,CAAC,CAAC;AAAA,IACnI;AAAA,EACF;AAGA,QAAM,SAAS,MAAM,MAAM,OAAO;AAClC,MAAI,QAAQ;AACV,UAAM,cAAc,MAAM,MAAM,KAAK,KAAK,CAAC,GAAG;AAC9C,UAAM,eAAe,MAAM,MAAM,IAAI,KAAK,CAAC,GAAG;AAC9C,QAAI,eAAe,aAAa;AAC9B,aAAe,gBAAoB,yBAAa,OAAO,EAAE,WAAW,WAAW,SAAS,qCAAqC,CAAC,CAAC;AAAA,IACjI;AAAA,EACF;AAEA,SAAe,gBAAQ,KAAoB;AAC7C;AAEO,IAAM,OAAO,CAAC,UAA+B;AAClD,SAAmB,yBAAa,YAAY,KAAK,CAAC;AACpD;AAEO,IAAM,SAAiB,4BAAyC,eAAO,GAAG,WAAW,EAAE,KAAK;AAAA,EACjG,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,SAAS;AACX,CAAC;AAEM,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":[]}
@@ -1 +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"}
1
+ {"version":3,"file":"global-variable.d.ts","sourceRoot":"","sources":["../src/global-variable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAItD,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"}
@@ -1,6 +1,6 @@
1
1
  // src/global-variable.ts
2
- import { evaluate } from "@bessemer/cornerstone/lazy";
3
- import { isUndefined } from "@bessemer/cornerstone/object";
2
+ import * as Lazy from "@bessemer/cornerstone/lazy";
3
+ import * as Objects from "@bessemer/cornerstone/object";
4
4
  var Global;
5
5
  if (typeof window !== "undefined") {
6
6
  Global = window;
@@ -9,15 +9,15 @@ if (typeof window !== "undefined") {
9
9
  } else {
10
10
  Global = globalThis;
11
11
  }
12
- if (isUndefined(Global.BessemerGlobalVariables)) {
12
+ if (Objects.isUndefined(Global.BessemerGlobalVariables)) {
13
13
  Global.BessemerGlobalVariables = {};
14
14
  }
15
15
  var createGlobalVariable = (key, defaultValue) => {
16
16
  return {
17
17
  getValue: () => {
18
18
  const value = Global.BessemerGlobalVariables[key];
19
- if (isUndefined(value)) {
20
- const def = evaluate(defaultValue);
19
+ if (Objects.isUndefined(value)) {
20
+ const def = Lazy.evaluate(defaultValue);
21
21
  Global.BessemerGlobalVariables[key] = def;
22
22
  return def;
23
23
  }
@@ -1 +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":[]}
1
+ {"version":3,"sources":["../src/global-variable.ts"],"sourcesContent":["import * as Lazy from '@bessemer/cornerstone/lazy'\nimport { LazyValue } from '@bessemer/cornerstone/lazy'\nimport * as Objects 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 (Objects.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 (Objects.isUndefined(value)) {\n const def = Lazy.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,YAAY,UAAU;AAEtB,YAAY,aAAa;AAQzB,IAAI;AACJ,IAAI,OAAO,WAAW,aAAa;AACjC,WAAS;AACX,WAAW,OAAO,WAAW,aAAa;AACxC,WAAS;AACX,OAAO;AACL,WAAS;AACX;AAEA,IAAY,oBAAY,OAAO,uBAAuB,GAAG;AACvD,SAAO,0BAA0B,CAAC;AACpC;AAEO,IAAM,uBAAuB,CAAI,KAAa,iBAAkD;AACrG,SAAO;AAAA,IACL,UAAU,MAAM;AACd,YAAM,QAAQ,OAAO,wBAAwB,GAAG;AAEhD,UAAY,oBAAY,KAAK,GAAG;AAC9B,cAAM,MAAW,cAAS,YAAY;AACtC,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":[]}
@@ -1,10 +1,10 @@
1
- import Zod from 'zod';
2
1
  import { NominalType } from '@bessemer/cornerstone/types';
3
2
  import { Result } from '@bessemer/cornerstone/result';
3
+ import * as ResourceKeys from '@bessemer/cornerstone/resource-key';
4
4
  import { ErrorEvent } from '@bessemer/cornerstone/error/error-event';
5
- export declare const Namespace: import("@bessemer/cornerstone/resource-key").ResourceNamespace<"hex-code">;
5
+ export declare const Namespace: ResourceKeys.ResourceNamespace<"hex-code">;
6
6
  export type HexCode = NominalType<string, typeof Namespace>;
7
7
  export declare const parseString: (value: string) => Result<HexCode, ErrorEvent>;
8
8
  export declare const from: (value: string) => HexCode;
9
- export declare const Schema: Zod.ZodPipe<Zod.ZodString, Zod.ZodTransform<HexCode, string>>;
9
+ export declare const Schema: import("zod").ZodPipe<import("zod").ZodType<HexCode, HexCode, import("zod/v4/core").$ZodTypeInternals<HexCode, HexCode>>, import("zod").ZodTransform<HexCode, HexCode>>;
10
10
  //# 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,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAW,MAAM,EAAW,MAAM,8BAA8B,CAAA;AAEvE,OAAO,EAAE,UAAU,EAA8B,MAAM,yCAAyC,CAAA;AAGhG,eAAO,MAAM,SAAS,4EAA8B,CAAA;AACpD,MAAM,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,SAAS,CAAC,CAAA;AAE3D,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,MAAM,CAAC,OAAO,EAAE,UAAU,CAarE,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,OAAO,MAAM,KAAG,OAEpC,CAAA;AAED,eAAO,MAAM,MAAM,+DAIjB,CAAA"}
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,MAAM,EAAE,MAAM,8BAA8B,CAAA;AACrD,OAAO,KAAK,YAAY,MAAM,oCAAoC,CAAA;AAElE,OAAO,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAA;AAGpE,eAAO,MAAM,SAAS,4CAA2C,CAAA;AACjE,MAAM,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,SAAS,CAAC,CAAA;AAE3D,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,MAAM,CAAC,OAAO,EAAE,UAAU,CAerE,CAAA;AAED,eAAO,MAAM,IAAI,GAAI,OAAO,MAAM,KAAG,OAEpC,CAAA;AAED,eAAO,MAAM,MAAM,yKAIjB,CAAA"}
package/dist/hex-code.js CHANGED
@@ -1,25 +1,26 @@
1
1
  // src/hex-code.ts
2
- import Zod from "zod";
3
- import { failure, success } from "@bessemer/cornerstone/result";
4
- import { createNamespace } from "@bessemer/cornerstone/resource-key";
5
- import { invalidValue, unpackResult } from "@bessemer/cornerstone/error/error-event";
6
- import { structuredTransform } from "@bessemer/cornerstone/zod-util";
7
- var Namespace = createNamespace("hex-code");
2
+ import * as Results from "@bessemer/cornerstone/result";
3
+ import * as ResourceKeys from "@bessemer/cornerstone/resource-key";
4
+ import * as ErrorEvents from "@bessemer/cornerstone/error/error-event";
5
+ import * as ZodUtil from "@bessemer/cornerstone/zod-util";
6
+ var Namespace = ResourceKeys.createNamespace("hex-code");
8
7
  var parseString = (value) => {
9
8
  if (!/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(value)) {
10
- return failure(invalidValue(value, { namespace: Namespace, message: `HexCode must be a valid hex code (# followed by 3 or 6 characters).` }));
9
+ return Results.failure(
10
+ ErrorEvents.invalidValue(value, { namespace: Namespace, message: `HexCode must be a valid hex code (# followed by 3 or 6 characters).` })
11
+ );
11
12
  }
12
13
  let normalizedValue = value.toUpperCase();
13
14
  if (normalizedValue.length === 4) {
14
15
  const shortHex = normalizedValue.slice(1);
15
16
  normalizedValue = `#${shortHex[0]}${shortHex[0]}${shortHex[1]}${shortHex[1]}${shortHex[2]}${shortHex[2]}`;
16
17
  }
17
- return success(normalizedValue);
18
+ return Results.success(normalizedValue);
18
19
  };
19
20
  var from = (value) => {
20
- return unpackResult(parseString(value));
21
+ return ErrorEvents.unpackResult(parseString(value));
21
22
  };
22
- var Schema = structuredTransform(Zod.string(), parseString).meta({
23
+ var Schema = ZodUtil.structuredTransform(ZodUtil.string(), parseString).meta({
23
24
  type: "string",
24
25
  format: Namespace,
25
26
  pattern: "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/hex-code.ts"],"sourcesContent":["import Zod from 'zod'\nimport { NominalType } from '@bessemer/cornerstone/types'\nimport { failure, Result, success } from '@bessemer/cornerstone/result'\nimport { createNamespace } from '@bessemer/cornerstone/resource-key'\nimport { ErrorEvent, invalidValue, unpackResult } from '@bessemer/cornerstone/error/error-event'\nimport { structuredTransform } from '@bessemer/cornerstone/zod-util'\n\nexport const Namespace = createNamespace('hex-code')\nexport type HexCode = NominalType<string, typeof Namespace>\n\nexport const parseString = (value: string): Result<HexCode, ErrorEvent> => {\n if (!/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(value)) {\n return failure(invalidValue(value, { namespace: Namespace, message: `HexCode must be a valid hex code (# followed by 3 or 6 characters).` }))\n }\n\n let normalizedValue = value.toUpperCase()\n\n if (normalizedValue.length === 4) {\n const shortHex = normalizedValue.slice(1) // Remove the #\n normalizedValue = `#${shortHex[0]}${shortHex[0]}${shortHex[1]}${shortHex[1]}${shortHex[2]}${shortHex[2]}`\n }\n\n return success(normalizedValue as HexCode)\n}\n\nexport const from = (value: string): HexCode => {\n return unpackResult(parseString(value))\n}\n\nexport const Schema = structuredTransform(Zod.string(), parseString).meta({\n type: 'string',\n format: Namespace,\n pattern: '^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$',\n})\n"],"mappings":";AAAA,OAAO,SAAS;AAEhB,SAAS,SAAiB,eAAe;AACzC,SAAS,uBAAuB;AAChC,SAAqB,cAAc,oBAAoB;AACvD,SAAS,2BAA2B;AAE7B,IAAM,YAAY,gBAAgB,UAAU;AAG5C,IAAM,cAAc,CAAC,UAA+C;AACzE,MAAI,CAAC,qCAAqC,KAAK,KAAK,GAAG;AACrD,WAAO,QAAQ,aAAa,OAAO,EAAE,WAAW,WAAW,SAAS,sEAAsE,CAAC,CAAC;AAAA,EAC9I;AAEA,MAAI,kBAAkB,MAAM,YAAY;AAExC,MAAI,gBAAgB,WAAW,GAAG;AAChC,UAAM,WAAW,gBAAgB,MAAM,CAAC;AACxC,sBAAkB,IAAI,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;AAAA,EACzG;AAEA,SAAO,QAAQ,eAA0B;AAC3C;AAEO,IAAM,OAAO,CAAC,UAA2B;AAC9C,SAAO,aAAa,YAAY,KAAK,CAAC;AACxC;AAEO,IAAM,SAAS,oBAAoB,IAAI,OAAO,GAAG,WAAW,EAAE,KAAK;AAAA,EACxE,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,SAAS;AACX,CAAC;","names":[]}
1
+ {"version":3,"sources":["../src/hex-code.ts"],"sourcesContent":["import { NominalType } from '@bessemer/cornerstone/types'\nimport * as Results from '@bessemer/cornerstone/result'\nimport { Result } from '@bessemer/cornerstone/result'\nimport * as ResourceKeys from '@bessemer/cornerstone/resource-key'\nimport * as ErrorEvents from '@bessemer/cornerstone/error/error-event'\nimport { ErrorEvent } from '@bessemer/cornerstone/error/error-event'\nimport * as ZodUtil from '@bessemer/cornerstone/zod-util'\n\nexport const Namespace = ResourceKeys.createNamespace('hex-code')\nexport type HexCode = NominalType<string, typeof Namespace>\n\nexport const parseString = (value: string): Result<HexCode, ErrorEvent> => {\n if (!/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(value)) {\n return Results.failure(\n ErrorEvents.invalidValue(value, { namespace: Namespace, message: `HexCode must be a valid hex code (# followed by 3 or 6 characters).` })\n )\n }\n\n let normalizedValue = value.toUpperCase()\n\n if (normalizedValue.length === 4) {\n const shortHex = normalizedValue.slice(1) // Remove the #\n normalizedValue = `#${shortHex[0]}${shortHex[0]}${shortHex[1]}${shortHex[1]}${shortHex[2]}${shortHex[2]}`\n }\n\n return Results.success(normalizedValue as HexCode)\n}\n\nexport const from = (value: string): HexCode => {\n return ErrorEvents.unpackResult(parseString(value))\n}\n\nexport const Schema = ZodUtil.structuredTransform<HexCode>(ZodUtil.string(), parseString).meta({\n type: 'string',\n format: Namespace,\n pattern: '^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$',\n})\n"],"mappings":";AACA,YAAY,aAAa;AAEzB,YAAY,kBAAkB;AAC9B,YAAY,iBAAiB;AAE7B,YAAY,aAAa;AAElB,IAAM,YAAyB,6BAAgB,UAAU;AAGzD,IAAM,cAAc,CAAC,UAA+C;AACzE,MAAI,CAAC,qCAAqC,KAAK,KAAK,GAAG;AACrD,WAAe;AAAA,MACD,yBAAa,OAAO,EAAE,WAAW,WAAW,SAAS,sEAAsE,CAAC;AAAA,IAC1I;AAAA,EACF;AAEA,MAAI,kBAAkB,MAAM,YAAY;AAExC,MAAI,gBAAgB,WAAW,GAAG;AAChC,UAAM,WAAW,gBAAgB,MAAM,CAAC;AACxC,sBAAkB,IAAI,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;AAAA,EACzG;AAEA,SAAe,gBAAQ,eAA0B;AACnD;AAEO,IAAM,OAAO,CAAC,UAA2B;AAC9C,SAAmB,yBAAa,YAAY,KAAK,CAAC;AACpD;AAEO,IAAM,SAAiB,4BAAqC,eAAO,GAAG,WAAW,EAAE,KAAK;AAAA,EAC7F,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,SAAS;AACX,CAAC;","names":[]}