@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,41 @@
1
+ import * as Objects from '@bessemer/cornerstone/object';
2
+ import * as Functions from '@bessemer/cornerstone/function';
3
+ import * as Arrays from '@bessemer/cornerstone/array';
4
+ import * as Strings from '@bessemer/cornerstone/string';
5
+ import * as Async from '@bessemer/cornerstone/async';
6
+ import * as Maths from '@bessemer/cornerstone/math';
7
+ import * as Sets from '@bessemer/cornerstone/set';
8
+ import * as Dates from '@bessemer/cornerstone/date';
9
+ import * as Comparators from '@bessemer/cornerstone/comparator';
10
+ import * as Equalitors from '@bessemer/cornerstone/equalitor';
11
+ import * as Durations from '@bessemer/cornerstone/duration';
12
+ import * as Uris from '@bessemer/cornerstone/uri';
13
+ import * as Urls from '@bessemer/cornerstone/url';
14
+ import * as Loggers from '@bessemer/cornerstone/logger';
15
+ import * as Errors from '@bessemer/cornerstone/error';
16
+ import * as ErrorEvents from '@bessemer/cornerstone/error-event';
17
+ import * as Preconditions from '@bessemer/cornerstone/precondition';
18
+ import * as Uuids from '@bessemer/cornerstone/uuid';
19
+ import * as Ulids from '@bessemer/cornerstone/ulid';
20
+ import * as Entries from '@bessemer/cornerstone/entry';
21
+ import * as Hashes from '@bessemer/cornerstone/hash';
22
+ import * as Crypto from '@bessemer/cornerstone/crypto';
23
+ import * as Globs from '@bessemer/cornerstone/glob';
24
+ import * as Zod from '@bessemer/cornerstone/zod';
25
+ import * as Tags from '@bessemer/cornerstone/tag';
26
+ import * as Promises from '@bessemer/cornerstone/promise';
27
+ import * as References from '@bessemer/cornerstone/reference';
28
+ import * as Signatures from '@bessemer/cornerstone/signature';
29
+ import * as Eithers from '@bessemer/cornerstone/either';
30
+ import * as Results from '@bessemer/cornerstone/result';
31
+ import * as Lazy from '@bessemer/cornerstone/lazy';
32
+ import * as Patches from '@bessemer/cornerstone/patch';
33
+ import * as Content from '@bessemer/cornerstone/content';
34
+ import * as Combinables from '@bessemer/cornerstone/combinable';
35
+ import * as Properties from '@bessemer/cornerstone/property';
36
+ import * as RichTexts from '@bessemer/cornerstone/rich-text';
37
+ import * as Retry from '@bessemer/cornerstone/retry';
38
+ import * as Stores from '@bessemer/cornerstone/store';
39
+ import * as Misc from '@bessemer/cornerstone/misc';
40
+ export { Objects, Functions, Arrays, Strings, Async, Maths, Sets, Dates, Comparators, Equalitors, Durations, Uris, Urls, Loggers, Errors, ErrorEvents, Preconditions, Uuids, Ulids, Entries, Hashes, Crypto, Globs, Zod, Tags, Promises, References, Signatures, Eithers, Results, Lazy, Patches, Content, Combinables, Properties, RichTexts, Retry, Stores, Misc, };
41
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,8BAA8B,CAAA;AACvD,OAAO,KAAK,SAAS,MAAM,gCAAgC,CAAA;AAC3D,OAAO,KAAK,MAAM,MAAM,6BAA6B,CAAA;AACrD,OAAO,KAAK,OAAO,MAAM,8BAA8B,CAAA;AACvD,OAAO,KAAK,KAAK,MAAM,6BAA6B,CAAA;AACpD,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAA;AACnD,OAAO,KAAK,IAAI,MAAM,2BAA2B,CAAA;AACjD,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAA;AACnD,OAAO,KAAK,WAAW,MAAM,kCAAkC,CAAA;AAC/D,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAA;AAC7D,OAAO,KAAK,SAAS,MAAM,gCAAgC,CAAA;AAC3D,OAAO,KAAK,IAAI,MAAM,2BAA2B,CAAA;AACjD,OAAO,KAAK,IAAI,MAAM,2BAA2B,CAAA;AACjD,OAAO,KAAK,OAAO,MAAM,8BAA8B,CAAA;AACvD,OAAO,KAAK,MAAM,MAAM,6BAA6B,CAAA;AACrD,OAAO,KAAK,WAAW,MAAM,mCAAmC,CAAA;AAChE,OAAO,KAAK,aAAa,MAAM,oCAAoC,CAAA;AACnE,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAA;AACnD,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAA;AACnD,OAAO,KAAK,OAAO,MAAM,6BAA6B,CAAA;AACtD,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAA;AACpD,OAAO,KAAK,MAAM,MAAM,8BAA8B,CAAA;AACtD,OAAO,KAAK,KAAK,MAAM,4BAA4B,CAAA;AAEnD,OAAO,KAAK,GAAG,MAAM,2BAA2B,CAAA;AAChD,OAAO,KAAK,IAAI,MAAM,2BAA2B,CAAA;AACjD,OAAO,KAAK,QAAQ,MAAM,+BAA+B,CAAA;AACzD,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAA;AAC7D,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAA;AAC7D,OAAO,KAAK,OAAO,MAAM,8BAA8B,CAAA;AACvD,OAAO,KAAK,OAAO,MAAM,8BAA8B,CAAA;AACvD,OAAO,KAAK,IAAI,MAAM,4BAA4B,CAAA;AAClD,OAAO,KAAK,OAAO,MAAM,6BAA6B,CAAA;AACtD,OAAO,KAAK,OAAO,MAAM,+BAA+B,CAAA;AACxD,OAAO,KAAK,WAAW,MAAM,kCAAkC,CAAA;AAC/D,OAAO,KAAK,UAAU,MAAM,gCAAgC,CAAA;AAC5D,OAAO,KAAK,SAAS,MAAM,iCAAiC,CAAA;AAC5D,OAAO,KAAK,KAAK,MAAM,6BAA6B,CAAA;AACpD,OAAO,KAAK,MAAM,MAAM,6BAA6B,CAAA;AACrD,OAAO,KAAK,IAAI,MAAM,4BAA4B,CAAA;AAElD,OAAO,EACL,OAAO,EACP,SAAS,EACT,MAAM,EACN,OAAO,EACP,KAAK,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,WAAW,EACX,UAAU,EACV,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,MAAM,EACN,WAAW,EACX,aAAa,EACb,KAAK,EACL,KAAK,EACL,OAAO,EACP,MAAM,EACN,MAAM,EACN,KAAK,EACL,GAAG,EACH,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,UAAU,EACV,OAAO,EACP,OAAO,EACP,IAAI,EACJ,OAAO,EACP,OAAO,EACP,WAAW,EACX,UAAU,EACV,SAAS,EACT,KAAK,EACL,MAAM,EACN,IAAI,GACL,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,82 @@
1
+ // src/index.ts
2
+ import * as Objects from "@bessemer/cornerstone/object";
3
+ import * as Functions from "@bessemer/cornerstone/function";
4
+ import * as Arrays from "@bessemer/cornerstone/array";
5
+ import * as Strings from "@bessemer/cornerstone/string";
6
+ import * as Async from "@bessemer/cornerstone/async";
7
+ import * as Maths from "@bessemer/cornerstone/math";
8
+ import * as Sets from "@bessemer/cornerstone/set";
9
+ import * as Dates from "@bessemer/cornerstone/date";
10
+ import * as Comparators from "@bessemer/cornerstone/comparator";
11
+ import * as Equalitors from "@bessemer/cornerstone/equalitor";
12
+ import * as Durations from "@bessemer/cornerstone/duration";
13
+ import * as Uris from "@bessemer/cornerstone/uri";
14
+ import * as Urls from "@bessemer/cornerstone/url";
15
+ import * as Loggers from "@bessemer/cornerstone/logger";
16
+ import * as Errors from "@bessemer/cornerstone/error";
17
+ import * as ErrorEvents from "@bessemer/cornerstone/error-event";
18
+ import * as Preconditions from "@bessemer/cornerstone/precondition";
19
+ import * as Uuids from "@bessemer/cornerstone/uuid";
20
+ import * as Ulids from "@bessemer/cornerstone/ulid";
21
+ import * as Entries from "@bessemer/cornerstone/entry";
22
+ import * as Hashes from "@bessemer/cornerstone/hash";
23
+ import * as Crypto from "@bessemer/cornerstone/crypto";
24
+ import * as Globs from "@bessemer/cornerstone/glob";
25
+ import * as Zod from "@bessemer/cornerstone/zod";
26
+ import * as Tags from "@bessemer/cornerstone/tag";
27
+ import * as Promises from "@bessemer/cornerstone/promise";
28
+ import * as References from "@bessemer/cornerstone/reference";
29
+ import * as Signatures from "@bessemer/cornerstone/signature";
30
+ import * as Eithers from "@bessemer/cornerstone/either";
31
+ import * as Results from "@bessemer/cornerstone/result";
32
+ import * as Lazy from "@bessemer/cornerstone/lazy";
33
+ import * as Patches from "@bessemer/cornerstone/patch";
34
+ import * as Content from "@bessemer/cornerstone/content";
35
+ import * as Combinables from "@bessemer/cornerstone/combinable";
36
+ import * as Properties from "@bessemer/cornerstone/property";
37
+ import * as RichTexts from "@bessemer/cornerstone/rich-text";
38
+ import * as Retry from "@bessemer/cornerstone/retry";
39
+ import * as Stores from "@bessemer/cornerstone/store";
40
+ import * as Misc from "@bessemer/cornerstone/misc";
41
+ export {
42
+ Arrays,
43
+ Async,
44
+ Combinables,
45
+ Comparators,
46
+ Content,
47
+ Crypto,
48
+ Dates,
49
+ Durations,
50
+ Eithers,
51
+ Entries,
52
+ Equalitors,
53
+ ErrorEvents,
54
+ Errors,
55
+ Functions,
56
+ Globs,
57
+ Hashes,
58
+ Lazy,
59
+ Loggers,
60
+ Maths,
61
+ Misc,
62
+ Objects,
63
+ Patches,
64
+ Preconditions,
65
+ Promises,
66
+ Properties,
67
+ References,
68
+ Results,
69
+ Retry,
70
+ RichTexts,
71
+ Sets,
72
+ Signatures,
73
+ Stores,
74
+ Strings,
75
+ Tags,
76
+ Ulids,
77
+ Uris,
78
+ Urls,
79
+ Uuids,
80
+ Zod
81
+ };
82
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import * as Objects from '@bessemer/cornerstone/object'\nimport * as Functions from '@bessemer/cornerstone/function'\nimport * as Arrays from '@bessemer/cornerstone/array'\nimport * as Strings from '@bessemer/cornerstone/string'\nimport * as Async from '@bessemer/cornerstone/async'\nimport * as Maths from '@bessemer/cornerstone/math'\nimport * as Sets from '@bessemer/cornerstone/set'\nimport * as Dates from '@bessemer/cornerstone/date'\nimport * as Comparators from '@bessemer/cornerstone/comparator'\nimport * as Equalitors from '@bessemer/cornerstone/equalitor'\nimport * as Durations from '@bessemer/cornerstone/duration'\nimport * as Uris from '@bessemer/cornerstone/uri'\nimport * as Urls from '@bessemer/cornerstone/url'\nimport * as Loggers from '@bessemer/cornerstone/logger'\nimport * as Errors from '@bessemer/cornerstone/error'\nimport * as ErrorEvents from '@bessemer/cornerstone/error-event'\nimport * as Preconditions from '@bessemer/cornerstone/precondition'\nimport * as Uuids from '@bessemer/cornerstone/uuid'\nimport * as Ulids from '@bessemer/cornerstone/ulid'\nimport * as Entries from '@bessemer/cornerstone/entry'\nimport * as Hashes from '@bessemer/cornerstone/hash'\nimport * as Crypto from '@bessemer/cornerstone/crypto'\nimport * as Globs from '@bessemer/cornerstone/glob'\n\nimport * as Zod from '@bessemer/cornerstone/zod'\nimport * as Tags from '@bessemer/cornerstone/tag'\nimport * as Promises from '@bessemer/cornerstone/promise'\nimport * as References from '@bessemer/cornerstone/reference'\nimport * as Signatures from '@bessemer/cornerstone/signature'\nimport * as Eithers from '@bessemer/cornerstone/either'\nimport * as Results from '@bessemer/cornerstone/result'\nimport * as Lazy from '@bessemer/cornerstone/lazy'\nimport * as Patches from '@bessemer/cornerstone/patch'\nimport * as Content from '@bessemer/cornerstone/content'\nimport * as Combinables from '@bessemer/cornerstone/combinable'\nimport * as Properties from '@bessemer/cornerstone/property'\nimport * as RichTexts from '@bessemer/cornerstone/rich-text'\nimport * as Retry from '@bessemer/cornerstone/retry'\nimport * as Stores from '@bessemer/cornerstone/store'\nimport * as Misc from '@bessemer/cornerstone/misc'\n\nexport {\n Objects,\n Functions,\n Arrays,\n Strings,\n Async,\n Maths,\n Sets,\n Dates,\n Comparators,\n Equalitors,\n Durations,\n Uris,\n Urls,\n Loggers,\n Errors,\n ErrorEvents,\n Preconditions,\n Uuids,\n Ulids,\n Entries,\n Hashes,\n Crypto,\n Globs,\n Zod,\n Tags,\n Promises,\n References,\n Signatures,\n Eithers,\n Results,\n Lazy,\n Patches,\n Content,\n Combinables,\n Properties,\n RichTexts,\n Retry,\n Stores,\n Misc,\n}\n"],"mappings":";AAAA,YAAY,aAAa;AACzB,YAAY,eAAe;AAC3B,YAAY,YAAY;AACxB,YAAY,aAAa;AACzB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB,YAAY,iBAAiB;AAC7B,YAAY,gBAAgB;AAC5B,YAAY,eAAe;AAC3B,YAAY,UAAU;AACtB,YAAY,UAAU;AACtB,YAAY,aAAa;AACzB,YAAY,YAAY;AACxB,YAAY,iBAAiB;AAC7B,YAAY,mBAAmB;AAC/B,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB,YAAY,aAAa;AACzB,YAAY,YAAY;AACxB,YAAY,YAAY;AACxB,YAAY,WAAW;AAEvB,YAAY,SAAS;AACrB,YAAY,UAAU;AACtB,YAAY,cAAc;AAC1B,YAAY,gBAAgB;AAC5B,YAAY,gBAAgB;AAC5B,YAAY,aAAa;AACzB,YAAY,aAAa;AACzB,YAAY,UAAU;AACtB,YAAY,aAAa;AACzB,YAAY,aAAa;AACzB,YAAY,iBAAiB;AAC7B,YAAY,gBAAgB;AAC5B,YAAY,eAAe;AAC3B,YAAY,WAAW;AACvB,YAAY,YAAY;AACxB,YAAY,UAAU;","names":[]}
package/dist/lazy.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export type LazyValue<T> = T | (() => T);
2
+ export declare const evaluate: <T>(value: LazyValue<T>) => T;
3
+ //# sourceMappingURL=lazy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../src/lazy.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;AAExC,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,OAAO,SAAS,CAAC,CAAC,CAAC,KAAG,CAMjD,CAAA"}
package/dist/lazy.js ADDED
@@ -0,0 +1,13 @@
1
+ // src/lazy.ts
2
+ import { Functions } from "@bessemer/cornerstone";
3
+ var evaluate = (value) => {
4
+ if (Functions.isFunction(value)) {
5
+ return value();
6
+ } else {
7
+ return value;
8
+ }
9
+ };
10
+ export {
11
+ evaluate
12
+ };
13
+ //# sourceMappingURL=lazy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lazy.ts"],"sourcesContent":["import { Functions } from '@bessemer/cornerstone'\n\nexport type LazyValue<T> = T | (() => T)\n\nexport const evaluate = <T>(value: LazyValue<T>): T => {\n if (Functions.isFunction(value)) {\n return value()\n } else {\n return value\n }\n}\n"],"mappings":";AAAA,SAAS,iBAAiB;AAInB,IAAM,WAAW,CAAI,UAA2B;AACrD,MAAI,UAAU,WAAW,KAAK,GAAG;AAC/B,WAAO,MAAM;AAAA,EACf,OAAO;AACL,WAAO;AAAA,EACT;AACF;","names":[]}
@@ -0,0 +1,30 @@
1
+ import pino from 'pino';
2
+ import { LazyValue } from '@bessemer/cornerstone/lazy';
3
+ import { UnknownRecord } from 'type-fest';
4
+ type PinoLogger = pino.Logger;
5
+ export type LoggerOptions = pino.LoggerOptions;
6
+ type LogOptions = {
7
+ error?: unknown;
8
+ context?: UnknownRecord;
9
+ };
10
+ type LogFunction = (message: LazyValue<string>, options?: LogOptions) => void;
11
+ export declare class Logger {
12
+ private readonly logger;
13
+ constructor(logger: PinoLogger);
14
+ trace: LogFunction;
15
+ debug: LogFunction;
16
+ info: LogFunction;
17
+ warn: LogFunction;
18
+ error: LogFunction;
19
+ fatal: LogFunction;
20
+ }
21
+ export declare const initialize: (initialOptions?: LoggerOptions) => void;
22
+ export declare const child: (module: string) => Logger;
23
+ export declare const trace: LogFunction;
24
+ export declare const debug: LogFunction;
25
+ export declare const info: LogFunction;
26
+ export declare const warn: LogFunction;
27
+ export declare const error: LogFunction;
28
+ export declare const fatal: LogFunction;
29
+ export {};
30
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAGvB,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAEzC,KAAK,UAAU,GAAG,IAAI,CAAC,MAAM,CAAA;AAE7B,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;AAE9C,KAAK,UAAU,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,aAAa,CAAA;CAAE,CAAA;AAC9D,KAAK,WAAW,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;AAE7E,qBAAa,MAAM;IACL,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAE/C,KAAK,EAAE,WAAW,CAIjB;IAED,KAAK,EAAE,WAAW,CAIjB;IAED,IAAI,EAAE,WAAW,CAIhB;IAED,IAAI,EAAE,WAAW,CAIhB;IAED,KAAK,EAAE,WAAW,CAIjB;IAED,KAAK,EAAE,WAAW,CAIjB;CACF;AA8ED,eAAO,MAAM,UAAU,GAAI,iBAAiB,aAAa,KAAG,IAG3D,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,QAAQ,MAAM,KAAG,MAEtC,CAAA;AAED,eAAO,MAAM,KAAK,aAAgB,CAAA;AAClC,eAAO,MAAM,KAAK,aAAgB,CAAA;AAClC,eAAO,MAAM,IAAI,aAAe,CAAA;AAChC,eAAO,MAAM,IAAI,aAAe,CAAA;AAChC,eAAO,MAAM,KAAK,aAAgB,CAAA;AAClC,eAAO,MAAM,KAAK,aAAgB,CAAA"}
package/dist/logger.js ADDED
@@ -0,0 +1,124 @@
1
+ // src/logger.ts
2
+ import pino from "pino";
3
+ import { Lazy, Objects } from "@bessemer/cornerstone";
4
+ import { createGlobalVariable } from "@bessemer/cornerstone/global-variable";
5
+ var Logger = class {
6
+ constructor(logger) {
7
+ this.logger = logger;
8
+ }
9
+ trace = (message, options) => {
10
+ if (this.logger.isLevelEnabled?.("trace") ?? true) {
11
+ this.logger.trace({ err: options?.error, context: options?.context }, Lazy.evaluate(message));
12
+ }
13
+ };
14
+ debug = (message, options) => {
15
+ if (this.logger.isLevelEnabled?.("debug") ?? true) {
16
+ this.logger.debug({ err: options?.error, context: options?.context }, Lazy.evaluate(message));
17
+ }
18
+ };
19
+ info = (message, options) => {
20
+ if (this.logger.isLevelEnabled?.("info") ?? true) {
21
+ this.logger.info({ err: options?.error, context: options?.context }, Lazy.evaluate(message));
22
+ }
23
+ };
24
+ warn = (message, options) => {
25
+ if (this.logger.isLevelEnabled?.("warn") ?? true) {
26
+ this.logger.warn({ err: options?.error, context: options?.context }, Lazy.evaluate(message));
27
+ }
28
+ };
29
+ error = (message, options) => {
30
+ if (this.logger.isLevelEnabled?.("error") ?? true) {
31
+ this.logger.error({ err: options?.error, context: options?.context }, Lazy.evaluate(message));
32
+ }
33
+ };
34
+ fatal = (message, options) => {
35
+ if (this.logger.isLevelEnabled?.("fatal") ?? true) {
36
+ this.logger.fatal({ err: options?.error, context: options?.context }, Lazy.evaluate(message));
37
+ }
38
+ };
39
+ };
40
+ var getPrettyTransport = () => {
41
+ if (process.env.NODE_ENV === "production" || typeof window !== "undefined") {
42
+ return {};
43
+ }
44
+ return {
45
+ transport: {
46
+ target: "pino-pretty",
47
+ options: {
48
+ colorize: true,
49
+ ignore: "pid,hostname,module",
50
+ messageFormat: "{if module}{module} - {end}{msg}"
51
+ }
52
+ }
53
+ };
54
+ };
55
+ var applyDefaultOptions = (options) => {
56
+ const defaultOptions = {
57
+ browser: {
58
+ asObject: true
59
+ },
60
+ ...getPrettyTransport()
61
+ };
62
+ return Objects.merge(defaultOptions, options);
63
+ };
64
+ var createProxyHandler = (getLogger) => {
65
+ let cachedLogger = null;
66
+ let cachedVersion = GlobalLoggerState.getValue().version;
67
+ const getOrCreateLogger = () => {
68
+ if (cachedVersion !== GlobalLoggerState.getValue().version) {
69
+ cachedLogger = null;
70
+ cachedVersion = GlobalLoggerState.getValue().version;
71
+ }
72
+ if (Objects.isNil(cachedLogger)) {
73
+ cachedLogger = getLogger();
74
+ }
75
+ return cachedLogger;
76
+ };
77
+ return {
78
+ get(_, prop) {
79
+ if (prop === "child") {
80
+ return (bindings) => {
81
+ return new Proxy(
82
+ {},
83
+ createProxyHandler(() => getOrCreateLogger().child(bindings))
84
+ );
85
+ };
86
+ }
87
+ return getOrCreateLogger()[prop];
88
+ }
89
+ };
90
+ };
91
+ var GlobalLoggerState = createGlobalVariable("GlobalLoggerState", () => ({
92
+ version: 0,
93
+ logger: pino(applyDefaultOptions({ level: "info" }))
94
+ }));
95
+ var LoggerProxy = new Proxy(
96
+ {},
97
+ createProxyHandler(() => GlobalLoggerState.getValue().logger)
98
+ );
99
+ var Primary = new Logger(LoggerProxy);
100
+ var initialize = (initialOptions) => {
101
+ const options = applyDefaultOptions(initialOptions);
102
+ GlobalLoggerState.setValue({ version: GlobalLoggerState.getValue().version + 1, logger: pino(options) });
103
+ };
104
+ var child = (module) => {
105
+ return new Logger(LoggerProxy.child({ module }));
106
+ };
107
+ var trace = Primary.trace;
108
+ var debug = Primary.debug;
109
+ var info = Primary.info;
110
+ var warn = Primary.warn;
111
+ var error = Primary.error;
112
+ var fatal = Primary.fatal;
113
+ export {
114
+ Logger,
115
+ child,
116
+ debug,
117
+ error,
118
+ fatal,
119
+ info,
120
+ initialize,
121
+ trace,
122
+ warn
123
+ };
124
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/logger.ts"],"sourcesContent":["import pino from 'pino'\nimport { Lazy, Objects } from '@bessemer/cornerstone'\nimport { createGlobalVariable } from '@bessemer/cornerstone/global-variable'\nimport { LazyValue } from '@bessemer/cornerstone/lazy'\nimport { UnknownRecord } from 'type-fest'\n\ntype PinoLogger = pino.Logger\ntype PinoBindings = pino.Bindings\nexport type LoggerOptions = pino.LoggerOptions\n\ntype LogOptions = { error?: unknown; context?: UnknownRecord }\ntype LogFunction = (message: LazyValue<string>, options?: LogOptions) => void\n\nexport class Logger {\n constructor(private readonly logger: PinoLogger) {}\n\n trace: LogFunction = (message: LazyValue<string>, options?: LogOptions): void => {\n if (this.logger.isLevelEnabled?.('trace') ?? true) {\n this.logger.trace({ err: options?.error, context: options?.context }, Lazy.evaluate(message))\n }\n }\n\n debug: LogFunction = (message: LazyValue<string>, options?: LogOptions): void => {\n if (this.logger.isLevelEnabled?.('debug') ?? true) {\n this.logger.debug({ err: options?.error, context: options?.context }, Lazy.evaluate(message))\n }\n }\n\n info: LogFunction = (message: LazyValue<string>, options?: LogOptions): void => {\n if (this.logger.isLevelEnabled?.('info') ?? true) {\n this.logger.info({ err: options?.error, context: options?.context }, Lazy.evaluate(message))\n }\n }\n\n warn: LogFunction = (message: LazyValue<string>, options?: LogOptions): void => {\n if (this.logger.isLevelEnabled?.('warn') ?? true) {\n this.logger.warn({ err: options?.error, context: options?.context }, Lazy.evaluate(message))\n }\n }\n\n error: LogFunction = (message: LazyValue<string>, options?: LogOptions): void => {\n if (this.logger.isLevelEnabled?.('error') ?? true) {\n this.logger.error({ err: options?.error, context: options?.context }, Lazy.evaluate(message))\n }\n }\n\n fatal: LogFunction = (message: LazyValue<string>, options?: LogOptions): void => {\n if (this.logger.isLevelEnabled?.('fatal') ?? true) {\n this.logger.fatal({ err: options?.error, context: options?.context }, Lazy.evaluate(message))\n }\n }\n}\n\nconst getPrettyTransport = (): LoggerOptions => {\n if (process.env.NODE_ENV === 'production' || typeof window !== 'undefined') {\n return {}\n }\n\n return {\n transport: {\n target: 'pino-pretty',\n options: {\n colorize: true,\n ignore: 'pid,hostname,module',\n messageFormat: '{if module}{module} - {end}{msg}',\n },\n },\n }\n}\n\nconst applyDefaultOptions = (options?: LoggerOptions): LoggerOptions => {\n const defaultOptions: LoggerOptions = {\n browser: {\n asObject: true,\n },\n ...getPrettyTransport(),\n }\n\n return Objects.merge(defaultOptions, options)\n}\n\nconst createProxyHandler = (getLogger: () => PinoLogger): ProxyHandler<PinoLogger> => {\n let cachedLogger: PinoLogger | null = null\n let cachedVersion = GlobalLoggerState.getValue().version\n\n const getOrCreateLogger = () => {\n if (cachedVersion !== GlobalLoggerState.getValue().version) {\n cachedLogger = null\n cachedVersion = GlobalLoggerState.getValue().version\n }\n\n if (Objects.isNil(cachedLogger)) {\n cachedLogger = getLogger()\n }\n\n return cachedLogger\n }\n\n return {\n get(_: any, prop: string): any {\n if (prop === 'child') {\n return (bindings: PinoBindings) => {\n return new Proxy(\n {} as PinoLogger,\n createProxyHandler(() => getOrCreateLogger().child(bindings))\n )\n }\n }\n\n return (getOrCreateLogger() as any)[prop]\n },\n }\n}\n\nconst GlobalLoggerState = createGlobalVariable<{\n version: number\n logger: pino.Logger\n}>('GlobalLoggerState', () => ({\n version: 0,\n logger: pino(applyDefaultOptions({ level: 'info' })),\n}))\n\nconst LoggerProxy: PinoLogger = new Proxy(\n {} as PinoLogger,\n createProxyHandler(() => GlobalLoggerState.getValue().logger)\n)\n\nconst Primary: Logger = new Logger(LoggerProxy)\n\nexport const initialize = (initialOptions?: LoggerOptions): void => {\n const options = applyDefaultOptions(initialOptions)\n GlobalLoggerState.setValue({ version: GlobalLoggerState.getValue().version + 1, logger: pino(options) })\n}\n\nexport const child = (module: string): Logger => {\n return new Logger(LoggerProxy.child({ module }))\n}\n\nexport const trace = Primary.trace\nexport const debug = Primary.debug\nexport const info = Primary.info\nexport const warn = Primary.warn\nexport const error = Primary.error\nexport const fatal = Primary.fatal\n"],"mappings":";AAAA,OAAO,UAAU;AACjB,SAAS,MAAM,eAAe;AAC9B,SAAS,4BAA4B;AAW9B,IAAM,SAAN,MAAa;AAAA,EAClB,YAA6B,QAAoB;AAApB;AAAA,EAAqB;AAAA,EAElD,QAAqB,CAAC,SAA4B,YAA+B;AAC/E,QAAI,KAAK,OAAO,iBAAiB,OAAO,KAAK,MAAM;AACjD,WAAK,OAAO,MAAM,EAAE,KAAK,SAAS,OAAO,SAAS,SAAS,QAAQ,GAAG,KAAK,SAAS,OAAO,CAAC;AAAA,IAC9F;AAAA,EACF;AAAA,EAEA,QAAqB,CAAC,SAA4B,YAA+B;AAC/E,QAAI,KAAK,OAAO,iBAAiB,OAAO,KAAK,MAAM;AACjD,WAAK,OAAO,MAAM,EAAE,KAAK,SAAS,OAAO,SAAS,SAAS,QAAQ,GAAG,KAAK,SAAS,OAAO,CAAC;AAAA,IAC9F;AAAA,EACF;AAAA,EAEA,OAAoB,CAAC,SAA4B,YAA+B;AAC9E,QAAI,KAAK,OAAO,iBAAiB,MAAM,KAAK,MAAM;AAChD,WAAK,OAAO,KAAK,EAAE,KAAK,SAAS,OAAO,SAAS,SAAS,QAAQ,GAAG,KAAK,SAAS,OAAO,CAAC;AAAA,IAC7F;AAAA,EACF;AAAA,EAEA,OAAoB,CAAC,SAA4B,YAA+B;AAC9E,QAAI,KAAK,OAAO,iBAAiB,MAAM,KAAK,MAAM;AAChD,WAAK,OAAO,KAAK,EAAE,KAAK,SAAS,OAAO,SAAS,SAAS,QAAQ,GAAG,KAAK,SAAS,OAAO,CAAC;AAAA,IAC7F;AAAA,EACF;AAAA,EAEA,QAAqB,CAAC,SAA4B,YAA+B;AAC/E,QAAI,KAAK,OAAO,iBAAiB,OAAO,KAAK,MAAM;AACjD,WAAK,OAAO,MAAM,EAAE,KAAK,SAAS,OAAO,SAAS,SAAS,QAAQ,GAAG,KAAK,SAAS,OAAO,CAAC;AAAA,IAC9F;AAAA,EACF;AAAA,EAEA,QAAqB,CAAC,SAA4B,YAA+B;AAC/E,QAAI,KAAK,OAAO,iBAAiB,OAAO,KAAK,MAAM;AACjD,WAAK,OAAO,MAAM,EAAE,KAAK,SAAS,OAAO,SAAS,SAAS,QAAQ,GAAG,KAAK,SAAS,OAAO,CAAC;AAAA,IAC9F;AAAA,EACF;AACF;AAEA,IAAM,qBAAqB,MAAqB;AAC9C,MAAI,QAAQ,IAAI,aAAa,gBAAgB,OAAO,WAAW,aAAa;AAC1E,WAAO,CAAC;AAAA,EACV;AAEA,SAAO;AAAA,IACL,WAAW;AAAA,MACT,QAAQ;AAAA,MACR,SAAS;AAAA,QACP,UAAU;AAAA,QACV,QAAQ;AAAA,QACR,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAM,sBAAsB,CAAC,YAA2C;AACtE,QAAM,iBAAgC;AAAA,IACpC,SAAS;AAAA,MACP,UAAU;AAAA,IACZ;AAAA,IACA,GAAG,mBAAmB;AAAA,EACxB;AAEA,SAAO,QAAQ,MAAM,gBAAgB,OAAO;AAC9C;AAEA,IAAM,qBAAqB,CAAC,cAA0D;AACpF,MAAI,eAAkC;AACtC,MAAI,gBAAgB,kBAAkB,SAAS,EAAE;AAEjD,QAAM,oBAAoB,MAAM;AAC9B,QAAI,kBAAkB,kBAAkB,SAAS,EAAE,SAAS;AAC1D,qBAAe;AACf,sBAAgB,kBAAkB,SAAS,EAAE;AAAA,IAC/C;AAEA,QAAI,QAAQ,MAAM,YAAY,GAAG;AAC/B,qBAAe,UAAU;AAAA,IAC3B;AAEA,WAAO;AAAA,EACT;AAEA,SAAO;AAAA,IACL,IAAI,GAAQ,MAAmB;AAC7B,UAAI,SAAS,SAAS;AACpB,eAAO,CAAC,aAA2B;AACjC,iBAAO,IAAI;AAAA,YACT,CAAC;AAAA,YACD,mBAAmB,MAAM,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAAA,UAC9D;AAAA,QACF;AAAA,MACF;AAEA,aAAQ,kBAAkB,EAAU,IAAI;AAAA,IAC1C;AAAA,EACF;AACF;AAEA,IAAM,oBAAoB,qBAGvB,qBAAqB,OAAO;AAAA,EAC7B,SAAS;AAAA,EACT,QAAQ,KAAK,oBAAoB,EAAE,OAAO,OAAO,CAAC,CAAC;AACrD,EAAE;AAEF,IAAM,cAA0B,IAAI;AAAA,EAClC,CAAC;AAAA,EACD,mBAAmB,MAAM,kBAAkB,SAAS,EAAE,MAAM;AAC9D;AAEA,IAAM,UAAkB,IAAI,OAAO,WAAW;AAEvC,IAAM,aAAa,CAAC,mBAAyC;AAClE,QAAM,UAAU,oBAAoB,cAAc;AAClD,oBAAkB,SAAS,EAAE,SAAS,kBAAkB,SAAS,EAAE,UAAU,GAAG,QAAQ,KAAK,OAAO,EAAE,CAAC;AACzG;AAEO,IAAM,QAAQ,CAAC,WAA2B;AAC/C,SAAO,IAAI,OAAO,YAAY,MAAM,EAAE,OAAO,CAAC,CAAC;AACjD;AAEO,IAAM,QAAQ,QAAQ;AACtB,IAAM,QAAQ,QAAQ;AACtB,IAAM,OAAO,QAAQ;AACrB,IAAM,OAAO,QAAQ;AACrB,IAAM,QAAQ,QAAQ;AACtB,IAAM,QAAQ,QAAQ;","names":[]}
package/dist/math.d.ts ADDED
@@ -0,0 +1,22 @@
1
+ export declare const isNumber: (value?: unknown) => value is number;
2
+ export declare const isPositive: (value?: unknown) => value is number;
3
+ export declare const isEven: (d: number) => boolean;
4
+ export declare enum RoundingMode {
5
+ Nearest = "Nearest",
6
+ Down = "Down",
7
+ Up = "Up",
8
+ HalfEven = "HalfEven"
9
+ }
10
+ export declare const round: (value: number, scale: number, roundingMode: RoundingMode) => number;
11
+ export declare const roundNearest: (value: number, scale: number) => number;
12
+ export declare const roundDown: (value: number, scale: number) => number;
13
+ export declare const roundUp: (value: number, scale: number) => number;
14
+ /**
15
+ * Round Half-Even (Banker's Rounding) Utility
16
+ * https://en.wikipedia.org/wiki/Rounding#Round_half_to_even
17
+ *
18
+ * Mostly copied from this Github: https://github.com/schowdhuri/round-half-even
19
+ */
20
+ export declare const roundHalfEven: (value: number, scale: number) => number;
21
+ export declare const random: (min: number, max: number) => number;
22
+ //# sourceMappingURL=math.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../src/math.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ,GAAI,QAAQ,OAAO,KAAG,KAAK,IAAI,MAEnD,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,QAAQ,OAAO,KAAG,KAAK,IAAI,MAErD,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,GAAG,MAAM,YAAgB,CAAA;AAEhD,oBAAY,YAAY;IACtB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,EAAE,OAAO;IACT,QAAQ,aAAa;CACtB;AAED,eAAO,MAAM,KAAK,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,EAAE,cAAc,YAAY,KAAG,MAWhF,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,KAAG,MAG3D,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,WAGrD,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,WAGnD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,KAAG,MA0E5D,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,KAAG,MAEjD,CAAA"}
package/dist/math.js ADDED
@@ -0,0 +1,123 @@
1
+ // src/math.ts
2
+ import { isNumber as _isNumber } from "lodash-es";
3
+ var isNumber = (value) => {
4
+ return _isNumber(value);
5
+ };
6
+ var isPositive = (value) => {
7
+ return isNumber(value) && value > 0;
8
+ };
9
+ var isEven = (d) => d % 2 === 0;
10
+ var RoundingMode = /* @__PURE__ */ ((RoundingMode2) => {
11
+ RoundingMode2["Nearest"] = "Nearest";
12
+ RoundingMode2["Down"] = "Down";
13
+ RoundingMode2["Up"] = "Up";
14
+ RoundingMode2["HalfEven"] = "HalfEven";
15
+ return RoundingMode2;
16
+ })(RoundingMode || {});
17
+ var round = (value, scale, roundingMode) => {
18
+ switch (roundingMode) {
19
+ case "Nearest" /* Nearest */:
20
+ return roundNearest(value, scale);
21
+ case "Down" /* Down */:
22
+ return roundDown(value, scale);
23
+ case "Up" /* Up */:
24
+ return roundUp(value, scale);
25
+ case "HalfEven" /* HalfEven */:
26
+ return roundHalfEven(value, scale);
27
+ }
28
+ };
29
+ var roundNearest = (value, scale) => {
30
+ const factor = Math.pow(10, scale);
31
+ return Math.round((value + Number.EPSILON) * factor) / factor;
32
+ };
33
+ var roundDown = (value, scale) => {
34
+ const factor = Math.pow(10, scale);
35
+ return Math.floor((value + +Number.EPSILON) * factor) / factor;
36
+ };
37
+ var roundUp = (value, scale) => {
38
+ const factor = Math.pow(10, scale);
39
+ return Math.ceil((value + +Number.EPSILON) * factor) / factor;
40
+ };
41
+ var roundHalfEven = (value, scale) => {
42
+ if (value < 0) {
43
+ return -roundHalfEven(-value, scale);
44
+ }
45
+ if (scale === 0) {
46
+ return roundHalfEven(value / 10, 1) * 10;
47
+ }
48
+ const MAX_DECIMALS_ALLOWED = 20;
49
+ if (scale > MAX_DECIMALS_ALLOWED) {
50
+ throw new Error(`Cannot handle more than ${MAX_DECIMALS_ALLOWED} decimals`);
51
+ }
52
+ const isExponentialForm = value.toString().includes("e") || value.toString().includes("E");
53
+ const strNum = (isExponentialForm ? value.toFixed(MAX_DECIMALS_ALLOWED).toString() : value.toString()).replace(/0+$/, "");
54
+ const decimalIndex = strNum.indexOf(".");
55
+ if (decimalIndex < 0) {
56
+ return value;
57
+ }
58
+ let intPart = strNum.slice(0, decimalIndex);
59
+ if (intPart.length == 0) {
60
+ intPart = "0";
61
+ }
62
+ let fractPart = strNum.slice(decimalIndex + 1);
63
+ if (fractPart.length < scale) {
64
+ return value;
65
+ }
66
+ const followingDig = parseInt(fractPart[scale], 10);
67
+ if (followingDig < 5) {
68
+ const newFractPart2 = fractPart.slice(0, scale);
69
+ return parseFloat(`${intPart}.${newFractPart2}`);
70
+ }
71
+ if (followingDig === 5) {
72
+ const newFractPart2 = fractPart.slice(0, scale + 1);
73
+ if (parseInt(fractPart.slice(scale + 1), 10) > 0) {
74
+ fractPart = `${newFractPart2}9`;
75
+ } else {
76
+ fractPart = newFractPart2;
77
+ }
78
+ }
79
+ let nextDig = parseInt(fractPart[fractPart.length - 1], 10);
80
+ let carriedOver = 0;
81
+ for (let ptr = fractPart.length - 1; ptr >= scale; ptr--) {
82
+ let dig = parseInt(fractPart[ptr - 1], 10) + carriedOver;
83
+ if (nextDig > 5 || nextDig == 5 && !isEven(dig)) {
84
+ ++dig;
85
+ }
86
+ if (dig > 9) {
87
+ dig -= 10;
88
+ carriedOver = 1;
89
+ } else {
90
+ carriedOver = 0;
91
+ }
92
+ nextDig = dig;
93
+ }
94
+ let newFractPart = "";
95
+ for (let ptr = scale - 2; ptr >= 0; ptr--) {
96
+ let d = parseInt(fractPart[ptr], 10) + carriedOver;
97
+ if (d > 9) {
98
+ d -= 10;
99
+ carriedOver = 1;
100
+ } else {
101
+ carriedOver = 0;
102
+ }
103
+ newFractPart = `${d}${newFractPart}`;
104
+ }
105
+ const resolvedIntPart = parseInt(intPart, 10) + carriedOver;
106
+ return parseFloat(`${resolvedIntPart}.${newFractPart}${nextDig}`);
107
+ };
108
+ var random = (min, max) => {
109
+ return Math.random() * (max - min) + min;
110
+ };
111
+ export {
112
+ RoundingMode,
113
+ isEven,
114
+ isNumber,
115
+ isPositive,
116
+ random,
117
+ round,
118
+ roundDown,
119
+ roundHalfEven,
120
+ roundNearest,
121
+ roundUp
122
+ };
123
+ //# sourceMappingURL=math.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/math.ts"],"sourcesContent":["import { isNumber as _isNumber } from 'lodash-es'\n\nexport const isNumber = (value?: unknown): value is number => {\n return _isNumber(value)\n}\n\nexport const isPositive = (value?: unknown): value is number => {\n return isNumber(value) && value > 0\n}\n\nexport const isEven = (d: number) => d % 2 === 0\n\nexport enum RoundingMode {\n Nearest = 'Nearest',\n Down = 'Down',\n Up = 'Up',\n HalfEven = 'HalfEven',\n}\n\nexport const round = (value: number, scale: number, roundingMode: RoundingMode): number => {\n switch (roundingMode) {\n case RoundingMode.Nearest:\n return roundNearest(value, scale)\n case RoundingMode.Down:\n return roundDown(value, scale)\n case RoundingMode.Up:\n return roundUp(value, scale)\n case RoundingMode.HalfEven:\n return roundHalfEven(value, scale)\n }\n}\n\nexport const roundNearest = (value: number, scale: number): number => {\n const factor = Math.pow(10, scale)\n return Math.round((value + Number.EPSILON) * factor) / factor\n}\n\nexport const roundDown = (value: number, scale: number) => {\n const factor = Math.pow(10, scale)\n return Math.floor((value + +Number.EPSILON) * factor) / factor\n}\n\nexport const roundUp = (value: number, scale: number) => {\n const factor = Math.pow(10, scale)\n return Math.ceil((value + +Number.EPSILON) * factor) / factor\n}\n\n/**\n * Round Half-Even (Banker's Rounding) Utility\n * https://en.wikipedia.org/wiki/Rounding#Round_half_to_even\n *\n * Mostly copied from this Github: https://github.com/schowdhuri/round-half-even\n */\nexport const roundHalfEven = (value: number, scale: number): number => {\n if (value < 0) {\n return -roundHalfEven(-value, scale)\n }\n if (scale === 0) {\n return roundHalfEven(value / 10, 1) * 10\n }\n\n const MAX_DECIMALS_ALLOWED = 20\n if (scale > MAX_DECIMALS_ALLOWED) {\n throw new Error(`Cannot handle more than ${MAX_DECIMALS_ALLOWED} decimals`)\n }\n\n // convert to string; remove trailing 0s\n const isExponentialForm = value.toString().includes('e') || value.toString().includes('E')\n const strNum = (isExponentialForm ? value.toFixed(MAX_DECIMALS_ALLOWED).toString() : value.toString()).replace(/0+$/, '')\n const decimalIndex = strNum.indexOf('.')\n if (decimalIndex < 0) {\n // no fractional part\n return value\n }\n let intPart: string = strNum.slice(0, decimalIndex)\n if (intPart.length == 0) {\n intPart = '0'\n }\n let fractPart = strNum.slice(decimalIndex + 1) // extract fractional part\n if (fractPart.length < scale) {\n return value\n }\n const followingDig = parseInt(fractPart[scale]!, 10)\n if (followingDig < 5) {\n // rounding not required\n const newFractPart = fractPart.slice(0, scale)\n return parseFloat(`${intPart}.${newFractPart}`)\n }\n if (followingDig === 5) {\n const newFractPart = fractPart.slice(0, scale + 1)\n if (parseInt(fractPart.slice(scale + 1), 10) > 0) {\n fractPart = `${newFractPart}9`\n } else {\n fractPart = newFractPart\n }\n }\n\n let nextDig = parseInt(fractPart[fractPart.length - 1]!, 10)\n let carriedOver = 0\n for (let ptr = fractPart.length - 1; ptr >= scale; ptr--) {\n let dig = parseInt(fractPart[ptr - 1]!, 10) + carriedOver\n if (nextDig > 5 || (nextDig == 5 && !isEven(dig))) {\n ++dig\n }\n if (dig > 9) {\n dig -= 10\n carriedOver = 1\n } else {\n carriedOver = 0\n }\n nextDig = dig\n }\n\n let newFractPart = ''\n for (let ptr = scale - 2; ptr >= 0; ptr--) {\n let d = parseInt(fractPart[ptr]!, 10) + carriedOver\n if (d > 9) {\n d -= 10\n carriedOver = 1\n } else {\n carriedOver = 0\n }\n newFractPart = `${d}${newFractPart}`\n }\n\n const resolvedIntPart = parseInt(intPart, 10) + carriedOver\n return parseFloat(`${resolvedIntPart}.${newFractPart}${nextDig}`)\n}\n\nexport const random = (min: number, max: number): number => {\n return Math.random() * (max - min) + min\n}\n"],"mappings":"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","names":["RoundingMode","newFractPart"]}
package/dist/misc.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import { Equalitor } from '@bessemer/cornerstone/equalitor';
2
+ export declare const doUntilConsistent: <T>(supplier: (previous: T | null) => T, equals: Equalitor<T>) => T;
3
+ //# sourceMappingURL=misc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../src/misc.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAA;AAE3D,eAAO,MAAM,iBAAiB,GAAI,CAAC,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE,QAAQ,SAAS,CAAC,CAAC,CAAC,KAAG,CAkBhG,CAAA"}
package/dist/misc.js ADDED
@@ -0,0 +1,21 @@
1
+ // src/misc.ts
2
+ import { Objects, Preconditions } from "@bessemer/cornerstone";
3
+ var doUntilConsistent = (supplier, equals) => {
4
+ let done = false;
5
+ let previousValue = null;
6
+ let attempts = 0;
7
+ do {
8
+ Preconditions.isTrue(attempts < 10);
9
+ const currentValue = supplier(previousValue);
10
+ if (Objects.isPresent(previousValue) && equals(previousValue, currentValue)) {
11
+ done = true;
12
+ }
13
+ previousValue = currentValue;
14
+ attempts++;
15
+ } while (!done);
16
+ return previousValue;
17
+ };
18
+ export {
19
+ doUntilConsistent
20
+ };
21
+ //# sourceMappingURL=misc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/misc.ts"],"sourcesContent":["import { Objects, Preconditions } from '@bessemer/cornerstone'\nimport { Equalitor } from '@bessemer/cornerstone/equalitor'\n\nexport const doUntilConsistent = <T>(supplier: (previous: T | null) => T, equals: Equalitor<T>): T => {\n let done = false\n let previousValue: T | null = null\n let attempts = 0\n do {\n Preconditions.isTrue(attempts < 10)\n\n const currentValue = supplier(previousValue)\n\n if (Objects.isPresent(previousValue) && equals(previousValue, currentValue)) {\n done = true\n }\n\n previousValue = currentValue\n attempts++\n } while (!done)\n\n return previousValue\n}\n"],"mappings":";AAAA,SAAS,SAAS,qBAAqB;AAGhC,IAAM,oBAAoB,CAAI,UAAqC,WAA4B;AACpG,MAAI,OAAO;AACX,MAAI,gBAA0B;AAC9B,MAAI,WAAW;AACf,KAAG;AACD,kBAAc,OAAO,WAAW,EAAE;AAElC,UAAM,eAAe,SAAS,aAAa;AAE3C,QAAI,QAAQ,UAAU,aAAa,KAAK,OAAO,eAAe,YAAY,GAAG;AAC3E,aAAO;AAAA,IACT;AAEA,oBAAgB;AAChB;AAAA,EACF,SAAS,CAAC;AAEV,SAAO;AACT;","names":[]}
@@ -0,0 +1,62 @@
1
+ import { mergeWith as unsafeMergeWith } from 'lodash-es';
2
+ import { produce } from 'immer';
3
+ import { NominalType } from '@bessemer/cornerstone/types';
4
+ import { UnknownRecord } from 'type-fest';
5
+ export declare const update: typeof produce;
6
+ export declare const isUndefined: (value: any) => value is undefined;
7
+ export declare const isNil: (value: any) => value is null | undefined;
8
+ export declare const isPresent: <T>(value: T) => value is NonNullable<T>;
9
+ export declare const isObject: (value?: any) => value is object;
10
+ export declare const isPlainObject: (value?: any) => boolean;
11
+ export declare const deepEqual: (value: any, other: any) => boolean;
12
+ export declare const invert: (object: object) => import("lodash").Dictionary<string>;
13
+ export declare const mapValues: {
14
+ <TResult>(obj: string | null | undefined, callback: import("lodash").StringIterator<TResult>): import("lodash").NumericDictionary<TResult>;
15
+ <T, TResult>(array: T[], callback: import("lodash").ArrayIterator<T, TResult>): import("lodash").NumericDictionary<TResult>;
16
+ <T extends object, TResult>(obj: T | null | undefined, callback: import("lodash").ObjectIterator<T, TResult>): { [P in keyof T]: TResult; };
17
+ <T>(obj: import("lodash").Dictionary<T> | import("lodash").NumericDictionary<T> | null | undefined, iteratee: object): import("lodash").Dictionary<boolean>;
18
+ <T extends object>(obj: T | null | undefined, iteratee: object): { [P in keyof T]: boolean; };
19
+ <T, TKey extends keyof T>(obj: import("lodash").Dictionary<T> | import("lodash").NumericDictionary<T> | null | undefined, iteratee: TKey): import("lodash").Dictionary<T[TKey]>;
20
+ <T>(obj: import("lodash").Dictionary<T> | import("lodash").NumericDictionary<T> | null | undefined, iteratee: string): import("lodash").Dictionary<any>;
21
+ <T extends object>(obj: T | null | undefined, iteratee: string): { [P in keyof T]: any; };
22
+ (obj: string | null | undefined): import("lodash").NumericDictionary<string>;
23
+ <T>(obj: import("lodash").Dictionary<T> | import("lodash").NumericDictionary<T> | null | undefined): import("lodash").Dictionary<T>;
24
+ <T extends object>(obj: T): T;
25
+ <T extends object>(obj: T | null | undefined): import("lodash").PartialObject<T>;
26
+ };
27
+ export declare const clone: <T>(value: T) => T;
28
+ export declare const cloneDeep: <T>(value: T) => T;
29
+ export declare const mergeAll: <T>(objects: Array<T>) => T;
30
+ export declare function merge<TObject, TSource>(object: TObject, source: TSource): TObject & TSource;
31
+ export declare function merge<TObject, TSource1, TSource2>(object: TObject, source1: TSource1, source2: TSource2): TObject & TSource1 & TSource2;
32
+ export declare function merge<TObject, TSource1, TSource2, TSource3>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3): TObject & TSource1 & TSource2 & TSource3;
33
+ export declare function merge<TObject, TSource1, TSource2, TSource3, TSource4>(object: TObject, source1: TSource1, source2: TSource2, source3: TSource3, source4: TSource4): TObject & TSource1 & TSource2 & TSource3 & TSource4;
34
+ export declare function mergeInto<Source1, Source2>(source: Source1, values: Source2): asserts source is Source1 & Source2;
35
+ export declare const mergeWith: typeof unsafeMergeWith;
36
+ export type ObjectDiffResult = {
37
+ elementsUpdated: Record<string, {
38
+ originalValue: unknown;
39
+ updatedValue: unknown;
40
+ }>;
41
+ elementsAdded: UnknownRecord;
42
+ elementsRemoved: UnknownRecord;
43
+ };
44
+ export declare function diffShallow(original: UnknownRecord, updated: UnknownRecord): ObjectDiffResult;
45
+ export declare const isValidKey: (field: PropertyKey, obj: object) => field is keyof typeof obj;
46
+ /** Determines if the list of fields are present on the object (not null or undefined), with type inference */
47
+ export declare function fieldsPresent<T extends object, K extends keyof T>(object: T, fields: Array<K>): object is Exclude<T, K> & Required<{
48
+ [P in K]: NonNullable<T[P]>;
49
+ }>;
50
+ export type ObjectPath = {
51
+ path: Array<string | number>;
52
+ };
53
+ export declare const path: (path: Array<string | number>) => ObjectPath;
54
+ export declare const parsePath: (path: string) => ObjectPath;
55
+ export declare const getPathValue: (object: UnknownRecord, initialPath: ObjectPath | string) => unknown | undefined;
56
+ export declare const applyPathValue: (object: UnknownRecord, initialPath: ObjectPath | string, value: unknown) => UnknownRecord | undefined;
57
+ export type RecordAttribute<Type = unknown, Class extends string = 'RecordAttribute'> = NominalType<string, [Type, Class]>;
58
+ type RecordAttributeType<Attribute> = Attribute extends RecordAttribute<infer Type, string> ? Type : never;
59
+ export declare const getAttribute: <T extends RecordAttribute<unknown, string>>(record: UnknownRecord, attribute: T) => RecordAttributeType<T> | undefined;
60
+ export declare const coerceNil: <T>(value: T | null | undefined) => T | undefined;
61
+ export {};
62
+ //# sourceMappingURL=object.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../src/object.ts"],"names":[],"mappings":"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"}