@oscarpalmer/atoms 0.213.0 → 0.214.0

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 (252) hide show
  1. package/dist/array/difference.d.mts +1 -1
  2. package/dist/array/difference.mjs +3 -2
  3. package/dist/array/exists.d.mts +1 -1
  4. package/dist/array/exists.mjs +3 -2
  5. package/dist/array/filter.d.mts +1 -1
  6. package/dist/array/filter.mjs +1 -0
  7. package/dist/array/find.d.mts +1 -1
  8. package/dist/array/find.mjs +4 -3
  9. package/dist/array/first.d.mts +1 -1
  10. package/dist/array/flatten.d.mts +1 -1
  11. package/dist/array/group-by.d.mts +1 -1
  12. package/dist/array/index.d.mts +2 -2
  13. package/dist/array/insert.mjs +3 -2
  14. package/dist/array/intersection.mjs +3 -2
  15. package/dist/array/last.d.mts +1 -1
  16. package/dist/array/move.d.mts +1 -1
  17. package/dist/array/partition.d.mts +1 -1
  18. package/dist/array/partition.mjs +1 -0
  19. package/dist/array/push.mjs +3 -2
  20. package/dist/array/select.d.mts +10 -12
  21. package/dist/array/select.mjs +1 -0
  22. package/dist/array/single.d.mts +1 -1
  23. package/dist/array/single.mjs +1 -0
  24. package/dist/array/slice.d.mts +1 -1
  25. package/dist/array/slice.mjs +4 -5
  26. package/dist/array/sort.d.mts +4 -103
  27. package/dist/array/sort.mjs +6 -14
  28. package/dist/array/splice.mjs +3 -2
  29. package/dist/array/swap.d.mts +1 -1
  30. package/dist/array/to-map.d.mts +1 -1
  31. package/dist/array/to-record.d.mts +1 -1
  32. package/dist/array/to-set.d.mts +1 -1
  33. package/dist/array/toggle.d.mts +1 -1
  34. package/dist/array/union.mjs +3 -2
  35. package/dist/array/unique.d.mts +1 -1
  36. package/dist/array/unique.mjs +3 -2
  37. package/dist/array/update.d.mts +1 -1
  38. package/dist/beacon.d.mts +6 -92
  39. package/dist/beacon.mjs +6 -16
  40. package/dist/color/constants.d.mts +2 -2
  41. package/dist/color/constants.mjs +1 -1
  42. package/dist/color/index.d.mts +1 -1
  43. package/dist/color/instance.d.mts +1 -1
  44. package/dist/color/misc/alpha.d.mts +1 -1
  45. package/dist/color/misc/format.d.mts +1 -1
  46. package/dist/color/misc/get.d.mts +1 -1
  47. package/dist/color/misc/is.d.mts +2 -2
  48. package/dist/color/misc/is.mjs +1 -0
  49. package/dist/color/misc/state.d.mts +1 -1
  50. package/dist/color/space/hex.d.mts +1 -1
  51. package/dist/color/space/hsl.d.mts +1 -1
  52. package/dist/color/space/hwb.d.mts +1 -1
  53. package/dist/color/space/rgb.d.mts +1 -1
  54. package/dist/function/limit.d.mts +2 -2
  55. package/dist/function/limit.mjs +2 -1
  56. package/dist/function/once.d.mts +7 -3
  57. package/dist/function/once.mjs +5 -10
  58. package/dist/function/retry.d.mts +4 -14
  59. package/dist/function/retry.mjs +3 -15
  60. package/dist/herald.d.mts +2 -2
  61. package/dist/index.d.mts +425 -318
  62. package/dist/index.mjs +454 -408
  63. package/dist/internal/aborter.d.mts +1 -6
  64. package/dist/internal/aborter.mjs +3 -4
  65. package/dist/internal/array/callbacks.d.mts +3 -7
  66. package/dist/internal/array/chunk.mjs +2 -2
  67. package/dist/internal/array/find.d.mts +5 -23
  68. package/dist/internal/array/find.mjs +5 -9
  69. package/dist/internal/array/get.d.mts +1 -1
  70. package/dist/internal/array/group.d.mts +1 -1
  71. package/dist/internal/array/index-of.d.mts +1 -1
  72. package/dist/internal/array/index-of.mjs +4 -3
  73. package/dist/internal/array/insert.d.mts +2 -5
  74. package/dist/internal/array/insert.mjs +2 -4
  75. package/dist/internal/array/match.d.mts +2 -5
  76. package/dist/internal/array/match.mjs +10 -20
  77. package/dist/internal/array/overlap.d.mts +2 -10
  78. package/dist/internal/array/sets.d.mts +2 -5
  79. package/dist/internal/array/sets.mjs +5 -7
  80. package/dist/internal/function/assert.d.mts +5 -12
  81. package/dist/internal/function/assert.mjs +2 -2
  82. package/dist/internal/function/limit.d.mts +2 -37
  83. package/dist/internal/function/limit.mjs +4 -15
  84. package/dist/internal/function/memoize.d.mts +5 -70
  85. package/dist/internal/function/memoize.mjs +2 -5
  86. package/dist/internal/function/work.d.mts +16 -22
  87. package/dist/internal/function/work.mjs +1 -8
  88. package/dist/internal/herald.d.mts +3 -3
  89. package/dist/internal/herald.mjs +2 -1
  90. package/dist/internal/is.d.mts +1 -1
  91. package/dist/internal/math/aggregate.d.mts +2 -14
  92. package/dist/internal/math/aggregate.mjs +2 -5
  93. package/dist/internal/number.mjs +4 -7
  94. package/dist/internal/result/attempt.d.mts +1 -1
  95. package/dist/internal/result/misc.d.mts +1 -1
  96. package/dist/internal/string/case.mjs +6 -16
  97. package/dist/internal/string/misc.mjs +1 -2
  98. package/dist/internal/subscription.d.mts +1 -100
  99. package/dist/internal/subscription.mjs +3 -9
  100. package/dist/internal/value/compare.d.mts +4 -4
  101. package/dist/internal/value/compare.mjs +1 -1
  102. package/dist/internal/value/equal.d.mts +6 -57
  103. package/dist/internal/value/equal.mjs +5 -10
  104. package/dist/internal/value/get.d.mts +1 -1
  105. package/dist/internal/value/handlers.d.mts +2 -21
  106. package/dist/internal/value/has.d.mts +2 -2
  107. package/dist/internal/value/misc.d.mts +1 -1
  108. package/dist/internal/value/misc.mjs +8 -14
  109. package/dist/internal/value/set.d.mts +1 -1
  110. package/dist/internal/value/set.mjs +2 -2
  111. package/dist/is.mjs +3 -3
  112. package/dist/logger.d.mts +3 -70
  113. package/dist/logger.mjs +2 -5
  114. package/dist/math.d.mts +1 -1
  115. package/dist/math.mjs +2 -1
  116. package/dist/models/aborter.model.d.mts +12 -0
  117. package/dist/models/aborter.model.mjs +5 -0
  118. package/dist/models/array/array.find.model.d.mts +22 -0
  119. package/dist/models/array/array.find.model.mjs +8 -0
  120. package/dist/models/array/array.match.model.d.mts +14 -0
  121. package/dist/models/array/array.match.model.mjs +14 -0
  122. package/dist/models/array/array.misc.model.d.mts +36 -0
  123. package/dist/models/array/array.misc.model.mjs +12 -0
  124. package/dist/models/array/array.sort.model.d.mts +122 -0
  125. package/dist/models/array/array.sort.model.mjs +12 -0
  126. package/dist/models/beacon.model.d.mts +119 -0
  127. package/dist/models/beacon.model.mjs +16 -0
  128. package/dist/{color/models.d.mts → models/color.model.d.mts} +4 -4
  129. package/dist/models/function/assert.model.d.mts +13 -0
  130. package/dist/models/function/assert.model.mjs +4 -0
  131. package/dist/models/function/limiter.model.d.mts +71 -0
  132. package/dist/models/function/limiter.model.mjs +15 -0
  133. package/dist/models/function/memoize.model.d.mts +88 -0
  134. package/dist/models/function/memoize.model.mjs +7 -0
  135. package/dist/models/function/once.model.d.mts +76 -0
  136. package/dist/models/function/once.model.mjs +9 -0
  137. package/dist/models/function/retry.model.d.mts +17 -0
  138. package/dist/models/function/retry.model.mjs +17 -0
  139. package/dist/models/function/work.model.d.mts +20 -0
  140. package/dist/models/function/work.model.mjs +11 -0
  141. package/dist/{internal/models → models}/herald.model.d.mts +3 -3
  142. package/dist/{internal/models → models}/herald.model.mjs +2 -2
  143. package/dist/{models.d.mts → models/index.d.mts} +5 -47
  144. package/dist/models/logger.model.d.mts +83 -0
  145. package/dist/models/logger.model.mjs +7 -0
  146. package/dist/models/math.model.d.mts +16 -0
  147. package/dist/models/math.model.mjs +7 -0
  148. package/dist/models/misc.model.d.mts +10 -0
  149. package/dist/models/misc.model.mjs +11 -0
  150. package/dist/{internal/models → models}/plan.model.d.mts +3 -3
  151. package/dist/{internal/models → models}/plan.model.mjs +1 -1
  152. package/dist/models/promise.model.d.mts +119 -0
  153. package/dist/models/promise.model.mjs +47 -0
  154. package/dist/models/query.model.d.mts +9 -0
  155. package/dist/models/query.model.mjs +14 -0
  156. package/dist/models/queue.model.d.mts +251 -0
  157. package/dist/models/queue.model.mjs +29 -0
  158. package/dist/models/random.model.d.mts +6 -0
  159. package/dist/models/random.model.mjs +7 -0
  160. package/dist/{internal/models → models}/result.model.d.mts +10 -2
  161. package/dist/models/string/string.case.model.d.mts +19 -0
  162. package/dist/models/string/string.case.model.mjs +14 -0
  163. package/dist/models/string/string.fuzzy.model.d.mts +108 -0
  164. package/dist/models/string/string.fuzzy.model.mjs +9 -0
  165. package/dist/models/string/string.misc.model.d.mts +13 -0
  166. package/dist/models/string/string.misc.model.mjs +13 -0
  167. package/dist/models/string/string.normalize.model.d.mts +85 -0
  168. package/dist/models/string/string.normalize.model.mjs +43 -0
  169. package/dist/models/string/string.template.model.d.mts +50 -0
  170. package/dist/models/string/string.template.model.mjs +5 -0
  171. package/dist/models/subscription.model.d.mts +127 -0
  172. package/dist/models/subscription.model.mjs +10 -0
  173. package/dist/models/value/value.clone.model.d.mts +56 -0
  174. package/dist/models/value/value.clone.model.mjs +24 -0
  175. package/dist/models/value/value.diff.model.d.mts +61 -0
  176. package/dist/models/value/value.diff.model.mjs +6 -0
  177. package/dist/models/value/value.equal.model.d.mts +76 -0
  178. package/dist/models/value/value.equal.model.mjs +9 -0
  179. package/dist/models/value/value.handler.model.d.mts +27 -0
  180. package/dist/models/value/value.handler.model.mjs +1 -0
  181. package/dist/models/value/value.merge.model.d.mts +82 -0
  182. package/dist/models/value/value.merge.model.mjs +5 -0
  183. package/dist/models/value/value.misc.model.d.mts +33 -0
  184. package/dist/models/value/value.misc.model.mjs +12 -0
  185. package/dist/models/value/value.transform.model.d.mts +28 -0
  186. package/dist/models/value/value.transform.model.mjs +4 -0
  187. package/dist/plan/generate.d.mts +3 -2
  188. package/dist/plan/generate.mjs +11 -7
  189. package/dist/plan/index.d.mts +1 -1
  190. package/dist/plan/index.mjs +1 -1
  191. package/dist/plan/is.d.mts +1 -1
  192. package/dist/plan/is.mjs +1 -1
  193. package/dist/plan/misc.d.mts +1 -1
  194. package/dist/plan/models.d.mts +1 -1
  195. package/dist/plan/result.d.mts +2 -2
  196. package/dist/plan/result.mjs +3 -3
  197. package/dist/plan/run.d.mts +1 -1
  198. package/dist/plan/run.mjs +3 -3
  199. package/dist/promise/delay.d.mts +1 -1
  200. package/dist/promise/delay.mjs +2 -1
  201. package/dist/promise/helpers.d.mts +2 -2
  202. package/dist/promise/helpers.mjs +6 -6
  203. package/dist/promise/index.d.mts +2 -2
  204. package/dist/promise/index.mjs +1 -1
  205. package/dist/promise/misc.d.mts +3 -3
  206. package/dist/promise/misc.mjs +7 -4
  207. package/dist/promise/models.d.mts +2 -106
  208. package/dist/promise/models.mjs +1 -35
  209. package/dist/promise/timed.d.mts +2 -2
  210. package/dist/promise/timed.mjs +3 -3
  211. package/dist/query.d.mts +1 -1
  212. package/dist/query.mjs +5 -15
  213. package/dist/queue.d.mts +6 -200
  214. package/dist/queue.mjs +9 -34
  215. package/dist/random.mjs +2 -5
  216. package/dist/result/match.d.mts +1 -1
  217. package/dist/result/match.mjs +27 -15
  218. package/dist/result/misc.d.mts +1 -1
  219. package/dist/result/work/flow.d.mts +13 -21
  220. package/dist/result/work/pipe.d.mts +2 -2
  221. package/dist/string/fuzzy.d.mts +5 -87
  222. package/dist/string/fuzzy.mjs +6 -11
  223. package/dist/string/index.mjs +6 -8
  224. package/dist/string/match.mjs +4 -6
  225. package/dist/string/normalize.d.mts +4 -40
  226. package/dist/string/normalize.mjs +9 -48
  227. package/dist/string/template.d.mts +5 -43
  228. package/dist/string/template.mjs +1 -2
  229. package/dist/subscription.d.mts +2 -1
  230. package/dist/value/clone.d.mts +6 -42
  231. package/dist/value/clone.mjs +10 -30
  232. package/dist/value/collection.mjs +2 -0
  233. package/dist/value/diff.d.mts +3 -44
  234. package/dist/value/diff.mjs +1 -3
  235. package/dist/value/freeze.d.mts +1 -5
  236. package/dist/value/index.d.mts +4 -3
  237. package/dist/value/merge.d.mts +6 -64
  238. package/dist/value/merge.mjs +8 -8
  239. package/dist/value/omit.d.mts +1 -1
  240. package/dist/value/pick.d.mts +1 -1
  241. package/dist/value/shake.d.mts +4 -6
  242. package/dist/value/smush.d.mts +4 -6
  243. package/dist/value/smush.mjs +2 -2
  244. package/dist/value/transform.d.mts +6 -22
  245. package/dist/value/transform.mjs +1 -1
  246. package/dist/value/unsmush.d.mts +4 -10
  247. package/package.json +12 -4
  248. package/dist/promise/constants.d.mts +0 -17
  249. package/dist/promise/constants.mjs +0 -15
  250. /package/dist/{color/models.mjs → models/color.model.mjs} +0 -0
  251. /package/dist/{internal/models/result.model.mjs → models/index.mjs} +0 -0
  252. /package/dist/{models.mjs → models/result.model.mjs} +0 -0
package/dist/index.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- //#region src/models.d.ts
1
+ //#region src/models/index.d.ts
2
2
  /**
3
3
  * A generic array or object
4
4
  */
@@ -13,6 +13,10 @@ export type BuiltIns = void | Date | Primitive | RegExp;
13
13
  * A generic class constructor
14
14
  */
15
15
  export type Constructor<Instance = unknown> = new (...args: any[]) => Instance;
16
+ /**
17
+ * A frozen value with readonly properties _(going as deep as possible)_
18
+ */
19
+ export type Frozen<Value> = Value extends unknown[] ? Readonly<Value> : Value extends PlainObject ? { readonly [Key in keyof Value]: Frozen<Value[Key$1]>; } : Value extends Map<infer Key, infer Value> ? ReadonlyMap<Key$1, Frozen<Value>> : Value extends Set<infer Item> ? ReadonlySet<Frozen<Item>> : Readonly<Value>;
16
20
  /**
17
21
  * A generic async callback function
18
22
  */
@@ -72,52 +76,6 @@ export type NumericalKeys<Value> = { [ItemKey in keyof Value]: ItemKey extends n
72
76
  * The numerical values of an object
73
77
  */
74
78
  export type NumericalValues<Item extends PlainObject> = Simplify<{ [ItemKey in keyof Item as Item[ItemKey] extends number ? ItemKey : never]: Item[ItemKey]; }>;
75
- /**
76
- * An asynchronous function that can only be called once, returning the same value on subsequent calls
77
- */
78
- export type OnceAsync<Callback extends GenericAsyncCallback> = {
79
- /**
80
- * Did the callback's promise reject?
81
- */
82
- readonly error: boolean;
83
- /**
84
- * Has the callback finished?
85
- */
86
- readonly finished: boolean;
87
- /**
88
- * Run the callback
89
- *
90
- * @param parameters Callback parameters
91
- * @returns Call result
92
- */
93
- run(...parameters: Parameters<Callback>): ReturnType<Callback>;
94
- } & OnceProperties;
95
- /**
96
- * A callback function that can only be called once, returning the same value on subsequent calls
97
- */
98
- export type Once<Callback extends GenericCallback> = {
99
- /**
100
- * Run the callback
101
- *
102
- * @param parameters Callback parameters
103
- * @returns Call result
104
- */
105
- run(...parameters: Parameters<Callback>): ReturnType<Callback>;
106
- } & OnceProperties;
107
- type OnceProperties = {
108
- /**
109
- * Has the callback been called?
110
- */
111
- readonly called: boolean;
112
- /**
113
- * Has the callback's value been cleared?
114
- */
115
- readonly cleared: boolean;
116
- /**
117
- * Clear the callback's cached value
118
- */
119
- clear(): void;
120
- };
121
79
  /**
122
80
  * A generic object
123
81
  */
@@ -824,11 +782,16 @@ export declare function getArray<Item>(value: Item[]): Item[];
824
782
  */
825
783
  export declare function getArray<Value>(value: Value): Value[];
826
784
  //#endregion
827
- //#region src/internal/array/match.d.ts
785
+ //#region src/models/array/array.misc.model.d.ts
828
786
  /**
829
787
  * Comparison of an array within another array
830
788
  */
831
- export type ArrayComparison = "end" | "inside" | "invalid" | "outside" | "same" | "start";
789
+ type ArrayComparison = "end" | "inside" | "invalid" | "outside" | "same" | "start";
790
+ type ArrayMapKeyOrCallback<Item> = ((item: Item, index: number, array: Item[]) => unknown) | (Item extends PlainObject ? keyof Item : never);
791
+ type ArrayMapped<Item, Map extends ArrayMapKeyOrCallback<Item>> = Map extends ((item: Item, index: number, array: Item[]) => unknown) ? ReturnType<Map> : Map extends keyof Item ? Item[Map] : never;
792
+ type ArrayObjectKeysOf<Item> = { [Key in keyof Item]: Item[Key] extends PlainObject ? Key : never; }[keyof Item];
793
+ //#endregion
794
+ //#region src/internal/array/match.d.ts
832
795
  /**
833
796
  * Is the needle array at the end of the haystack array?
834
797
  *
@@ -2372,9 +2335,6 @@ export declare namespace move {
2372
2335
  }
2373
2336
  //#endregion
2374
2337
  //#region src/array/select.d.ts
2375
- type MapKeyOrCallback<Item> = ((item: Item, index: number, array: Item[]) => unknown) | (Item extends PlainObject ? keyof Item : never);
2376
- type Mapped<Item, Map extends MapKeyOrCallback<Item>> = Map extends ((item: Item, index: number, array: Item[]) => unknown) ? ReturnType<Map> : Map extends keyof Item ? Item[Map] : never;
2377
- type ObjectKeysOf<Item> = { [Key in keyof Item]: Item[Key] extends PlainObject ? Key : never; }[keyof Item];
2378
2338
  /**
2379
2339
  * Get a filtered and mapped array of items
2380
2340
  *
@@ -2394,7 +2354,7 @@ type ObjectKeysOf<Item> = { [Key in keyof Item]: Item[Key] extends PlainObject ?
2394
2354
  * ); // => ['Bob']
2395
2355
  * ```
2396
2356
  */
2397
- export declare function filterAndMap<Item, FilterCallback extends (item: Item, index: number, array: Item[]) => unknown, Map extends MapKeyOrCallback<Item>>(array: Item[], filterCallback: FilterCallback, filterValue: ReturnType<FilterCallback>, map: Map): Array<Mapped<Item, Map>>;
2357
+ export declare function filterAndMap<Item, FilterCallback extends (item: Item, index: number, array: Item[]) => unknown, Map extends ArrayMapKeyOrCallback<Item>>(array: Item[], filterCallback: FilterCallback, filterValue: ReturnType<FilterCallback>, map: Map): Array<ArrayMapped<Item, Map>>;
2398
2358
  /**
2399
2359
  * Get a filtered and mapped array of items
2400
2360
  *
@@ -2414,7 +2374,7 @@ export declare function filterAndMap<Item, FilterCallback extends (item: Item, i
2414
2374
  * ); // => ['Bob']
2415
2375
  * ```
2416
2376
  */
2417
- export declare function filterAndMap<Item extends PlainObject, ItemKey extends keyof Item, Map extends MapKeyOrCallback<Item>>(array: Item[], filterKey: ItemKey, filterValue: Item[ItemKey], map: Map): Array<Mapped<Item, Map>>;
2377
+ export declare function filterAndMap<Item extends PlainObject, ItemKey extends keyof Item, Map extends ArrayMapKeyOrCallback<Item>>(array: Item[], filterKey: ItemKey, filterValue: Item[ItemKey], map: Map): Array<ArrayMapped<Item, Map>>;
2418
2378
  /**
2419
2379
  * Get a filtered and mapped array of items
2420
2380
  *
@@ -2432,7 +2392,7 @@ export declare function filterAndMap<Item extends PlainObject, ItemKey extends k
2432
2392
  * ); // => ['Bob']
2433
2393
  * ```
2434
2394
  */
2435
- export declare function filterAndMap<Item, Map extends MapKeyOrCallback<Item>>(array: Item[], filter: (item: Item, index: number, array: Item[]) => boolean, map: Map): Array<Mapped<Item, Map>>;
2395
+ export declare function filterAndMap<Item, Map extends ArrayMapKeyOrCallback<Item>>(array: Item[], filter: (item: Item, index: number, array: Item[]) => boolean, map: Map): Array<ArrayMapped<Item, Map>>;
2436
2396
  /**
2437
2397
  * Get a filtered and mapped array of items
2438
2398
  *
@@ -2450,7 +2410,7 @@ export declare function filterAndMap<Item, Map extends MapKeyOrCallback<Item>>(a
2450
2410
  * ); // => [9]
2451
2411
  * ```
2452
2412
  */
2453
- export declare function filterAndMap<Item, Map extends MapKeyOrCallback<Item>>(array: Item[], item: Item, map: Map): Array<Mapped<Item, Map>>;
2413
+ export declare function filterAndMap<Item, Map extends ArrayMapKeyOrCallback<Item>>(array: Item[], item: Item, map: Map): Array<ArrayMapped<Item, Map>>;
2454
2414
  /**
2455
2415
  * Get a mapped and filtered array of items
2456
2416
  *
@@ -2472,7 +2432,7 @@ export declare function filterAndMap<Item, Map extends MapKeyOrCallback<Item>>(a
2472
2432
  * ); // => ['Bob']
2473
2433
  * ```
2474
2434
  */
2475
- export declare function mapAndFilter<Item, Map extends MapKeyOrCallback<Item>, FilterCallback extends (item: Mapped<Item, Map>, index: number, array: Item[]) => unknown>(array: Item[], map: Map, filterCallback: FilterCallback, filterValue: ReturnType<FilterCallback>): Array<Mapped<Item, Map>>;
2435
+ export declare function mapAndFilter<Item, Map extends ArrayMapKeyOrCallback<Item>, FilterCallback extends (item: ArrayMapped<Item, Map>, index: number, array: Item[]) => unknown>(array: Item[], map: Map, filterCallback: FilterCallback, filterValue: ReturnType<FilterCallback>): Array<ArrayMapped<Item, Map>>;
2476
2436
  /**
2477
2437
  * Get a mapped and filtered array of items
2478
2438
  *
@@ -2516,7 +2476,7 @@ export declare function mapAndFilter<Item, MapCallback extends (item: Item, inde
2516
2476
  * ); // => [{tag: 'b'}]
2517
2477
  * ```
2518
2478
  */
2519
- export declare function mapAndFilter<Item, MapKey extends ObjectKeysOf<Item>, ItemKey extends keyof Item[MapKey]>(array: Item[], map: MapKey, filterKey: ItemKey, filterValue: Item[MapKey][ItemKey]): Array<Item[MapKey]>;
2479
+ export declare function mapAndFilter<Item, MapKey extends ArrayObjectKeysOf<Item>, ItemKey extends keyof Item[MapKey]>(array: Item[], map: MapKey, filterKey: ItemKey, filterValue: Item[MapKey][ItemKey]): Array<Item[MapKey]>;
2520
2480
  /**
2521
2481
  * Get a mapped and filtered array of items
2522
2482
  *
@@ -2536,7 +2496,7 @@ export declare function mapAndFilter<Item, MapKey extends ObjectKeysOf<Item>, It
2536
2496
  * ); // => ['Bob']
2537
2497
  * ```
2538
2498
  */
2539
- export declare function mapAndFilter<Item, Map extends MapKeyOrCallback<Item>>(array: Item[], map: Map, filter: (item: Mapped<Item, Map>, index: number, array: Item[]) => boolean): Array<Mapped<Item, Map>>;
2499
+ export declare function mapAndFilter<Item, Map extends ArrayMapKeyOrCallback<Item>>(array: Item[], map: Map, filter: (item: ArrayMapped<Item, Map>, index: number, array: Item[]) => boolean): Array<ArrayMapped<Item, Map>>;
2540
2500
  /**
2541
2501
  * Get a mapped and filtered array of items
2542
2502
  *
@@ -2556,16 +2516,16 @@ export declare function mapAndFilter<Item, Map extends MapKeyOrCallback<Item>>(a
2556
2516
  * ); // => [4, 4]
2557
2517
  * ```
2558
2518
  */
2559
- export declare function mapAndFilter<Item, Map extends MapKeyOrCallback<Item>>(array: Item[], map: Map, value: Mapped<Item, Map>): Array<Mapped<Item, Map>>;
2519
+ export declare function mapAndFilter<Item, Map extends ArrayMapKeyOrCallback<Item>>(array: Item[], map: Map, value: ArrayMapped<Item, Map>): Array<ArrayMapped<Item, Map>>;
2560
2520
  export declare namespace filterAndMap {
2561
2521
  export var reverse: typeof mapAndFilter;
2562
2522
  }
2563
2523
  //#endregion
2564
- //#region src/array/sort.d.ts
2524
+ //#region src/models/array/array.sort.model.d.ts
2565
2525
  /**
2566
2526
  * Sorting information for arrays _(using a comparison callback)_
2567
2527
  */
2568
- export type ArrayComparisonSorter<Item> = {
2528
+ type ArrayComparisonSorter<Item> = {
2569
2529
  /**
2570
2530
  * Callback to use when comparing items and values
2571
2531
  */
@@ -2578,7 +2538,7 @@ export type ArrayComparisonSorter<Item> = {
2578
2538
  /**
2579
2539
  * Sorting information for arrays _(using a key)_
2580
2540
  */
2581
- export type ArrayKeySorter<Item extends PlainObject, ItemKey extends keyof Item> = {
2541
+ type ArrayKeySorter<Item extends PlainObject, ItemKey extends keyof Item> = {
2582
2542
  /**
2583
2543
  * Comparator to use when comparing items and values
2584
2544
  */
@@ -2599,15 +2559,15 @@ type ArrayKeySorters<Item extends PlainObject> = { [ItemKey in keyof Item]: Arra
2599
2559
  /**
2600
2560
  * Sorter to use for sorting
2601
2561
  */
2602
- export type ArraySorter<Item> = Item extends PlainObject ? keyof Item | ArrayComparisonSorter<Item> | ArrayKeySorters<Item> | ArrayValueSorter<Item> | ComparisonSorter<Item> : ArrayComparisonSorter<Item> | ArrayValueSorter<Item> | ComparisonSorter<Item>;
2562
+ type ArraySorter<Item> = Item extends PlainObject ? keyof Item | ArrayComparisonSorter<Item> | ArrayKeySorters<Item> | ArrayValueSorter<Item> | ComparisonSorter<Item> : ArrayComparisonSorter<Item> | ArrayValueSorter<Item> | ComparisonSorter<Item>;
2603
2563
  /**
2604
2564
  * Sorters to use for sorting
2605
2565
  */
2606
- export type ArraySorters<Item> = Array<ArraySorter<Item>>;
2566
+ type ArraySorters<Item> = Array<ArraySorter<Item>>;
2607
2567
  /**
2608
2568
  * Sorting information for arrays _(using a value callback and built-in comparison)_
2609
2569
  */
2610
- export type ArrayValueSorter<Item> = {
2570
+ type ArrayValueSorter<Item> = {
2611
2571
  /**
2612
2572
  * Direction to sort by
2613
2573
  */
@@ -2629,13 +2589,24 @@ type ComparisonSorter<Item> = (first: Item, second: Item) => number;
2629
2589
  /**
2630
2590
  * Direction to sort by
2631
2591
  */
2632
- export type SortDirection = "ascending" | "descending";
2592
+ type SortDirection = "ascending" | "descending";
2593
+ type SortHandler = {
2594
+ comparison?: SortHandlerComparison;
2595
+ get: boolean;
2596
+ identifier: string;
2597
+ modifier: number;
2598
+ value?: Function;
2599
+ };
2600
+ type SortHandlerComparison = {
2601
+ complex?: Function;
2602
+ simple?: Function;
2603
+ };
2633
2604
  /**
2634
2605
  * Sorter for an array with predefined sorters
2635
2606
  *
2636
2607
  * Can be used to sort an array, get the predicted index for an item, and check if an array is sorted
2637
2608
  */
2638
- export type Sorter<Item> = {
2609
+ type Sorter<Item> = {
2639
2610
  /**
2640
2611
  * Get the index for an item _(to be inserted into an array of items)_
2641
2612
  *
@@ -2661,6 +2632,11 @@ export type Sorter<Item> = {
2661
2632
  */
2662
2633
  sort(array: Item[]): Item[];
2663
2634
  };
2635
+ export declare const SORT_DIRECTION_ASCENDING: SortDirection;
2636
+ export declare const SORT_DIRECTION_DESCENDING: SortDirection;
2637
+ //#endregion
2638
+ //#region src/array/sort.d.ts
2639
+ declare function Sorter(this: any, sorters: SortHandler[]): void;
2664
2640
  /**
2665
2641
  * Get the index for an item _(to be inserted into an array of items)_ based on sorters _(and an optional default direction)_
2666
2642
  *
@@ -2806,8 +2782,6 @@ export declare function sort<Item>(array: Item[], sorter: ArraySorter<Item>, des
2806
2782
  * @returns Sorted array
2807
2783
  */
2808
2784
  export declare function sort<Item>(array: Item[], descending?: boolean): Item[];
2809
- export declare const SORT_DIRECTION_ASCENDING: SortDirection;
2810
- export declare const SORT_DIRECTION_DESCENDING: SortDirection;
2811
2785
  export declare namespace sort {
2812
2786
  export var getIndex: typeof getSortedIndex;
2813
2787
  export var initialize: typeof initializeSorter;
@@ -3194,7 +3168,7 @@ export declare namespace toRecord {
3194
3168
  */
3195
3169
  export declare function noop(): void;
3196
3170
  //#endregion
3197
- //#region src/internal/function/limit.d.ts
3171
+ //#region src/models/function/limiter.model.d.ts
3198
3172
  /**
3199
3173
  * An asynchronous function that can be cancelled
3200
3174
  */
@@ -3280,7 +3254,57 @@ export declare namespace throttle {
3280
3254
  export var async: typeof asyncThrottle;
3281
3255
  }
3282
3256
  //#endregion
3257
+ //#region src/models/function/once.model.d.ts
3258
+ /**
3259
+ * An asynchronous function that can only be called once, returning the same value on subsequent calls
3260
+ */
3261
+ type AsyncOnce<Callback extends GenericAsyncCallback> = {
3262
+ /**
3263
+ * Did the callback's promise reject?
3264
+ */
3265
+ readonly error: boolean;
3266
+ /**
3267
+ * Has the callback finished?
3268
+ */
3269
+ readonly finished: boolean;
3270
+ /**
3271
+ * Run the callback
3272
+ *
3273
+ * @param parameters Callback parameters
3274
+ * @returns Call result
3275
+ */
3276
+ run(...parameters: Parameters<Callback>): ReturnType<Callback>;
3277
+ } & OnceProperties;
3278
+ /**
3279
+ * A callback function that can only be called once, returning the same value on subsequent calls
3280
+ */
3281
+ type Once<Callback extends GenericCallback> = {
3282
+ /**
3283
+ * Run the callback
3284
+ *
3285
+ * @param parameters Callback parameters
3286
+ * @returns Call result
3287
+ */
3288
+ run(...parameters: Parameters<Callback>): ReturnType<Callback>;
3289
+ } & OnceProperties;
3290
+ type OnceProperties = {
3291
+ /**
3292
+ * Has the callback been called?
3293
+ */
3294
+ readonly called: boolean;
3295
+ /**
3296
+ * Has the callback's value been cleared?
3297
+ */
3298
+ readonly cleared: boolean;
3299
+ /**
3300
+ * Clear the callback's cached value
3301
+ */
3302
+ clear(): void;
3303
+ };
3304
+ //#endregion
3283
3305
  //#region src/function/once.d.ts
3306
+ declare function AsyncOnce(this: any, callback: GenericAsyncCallback): void;
3307
+ declare function Once(this: any, callback: GenericCallback): void;
3284
3308
  /**
3285
3309
  * Create an asynchronous function that can only be called once, rejecting or resolving the same result on subsequent calls
3286
3310
  *
@@ -3289,7 +3313,7 @@ export declare namespace throttle {
3289
3313
  * @param callback Callback to use once
3290
3314
  * @returns _Once_ callback
3291
3315
  */
3292
- export declare function asyncOnce<Callback extends GenericAsyncCallback>(callback: Callback): OnceAsync<Callback>;
3316
+ export declare function asyncOnce<Callback extends GenericAsyncCallback>(callback: Callback): AsyncOnce<Callback>;
3293
3317
  /**
3294
3318
  * Is the value an asynchronous once callback?
3295
3319
  *
@@ -3320,7 +3344,7 @@ export declare namespace once {
3320
3344
  export var isAsync: typeof isAsyncOnce;
3321
3345
  }
3322
3346
  //#endregion
3323
- //#region src/function/retry.d.ts
3347
+ //#region src/models/function/retry.model.d.ts
3324
3348
  /**
3325
3349
  * An error thrown when a retry fails
3326
3350
  */
@@ -3328,11 +3352,13 @@ export declare class RetryError extends Error {
3328
3352
  readonly original: unknown;
3329
3353
  constructor(message: string, original: unknown);
3330
3354
  }
3331
- export type RetryOptions = {
3355
+ type RetryOptions = {
3332
3356
  delay?: number;
3333
3357
  times?: number;
3334
3358
  when?: (error: unknown) => boolean;
3335
3359
  };
3360
+ //#endregion
3361
+ //#region src/function/retry.d.ts
3336
3362
  /**
3337
3363
  * Retry a callback a specified number of times, with a delay between attempts
3338
3364
  *
@@ -3508,16 +3534,14 @@ export declare namespace indexOf {
3508
3534
  export var last: typeof lastIndexOf;
3509
3535
  }
3510
3536
  //#endregion
3511
- //#region src/internal/function/assert.d.ts
3512
- /**
3513
- * Asserter for a property of a value
3514
- */
3515
- export type AssertProperty<Value extends PlainObject, Path extends NestedKeys<Value>, Asserted extends NestedPick<Value, Path> = NestedPick<Value, Path>> = Asserter<Asserted>;
3537
+ //#region src/models/function/assert.model.d.ts
3538
+ type AssertNestedPick<Value, Path extends string> = Value extends PlainObject ? Path extends `${infer Head}.${infer Rest}` ? Head extends keyof Value ? { [Key in Head]: AssertNestedPick<Value[Key], Rest>; } : never : Path extends keyof Value ? { [Key in Path]: Value[Key]; } : never : never;
3516
3539
  /**
3517
3540
  * A function that asserts a value is of a specific type, throwing an error if it is not
3518
3541
  */
3519
- export type Asserter<Value> = (value: unknown) => asserts value is Value;
3520
- type NestedPick<Value, Path extends string> = Value extends PlainObject ? Path extends `${infer Head}.${infer Rest}` ? Head extends keyof Value ? { [Key in Head]: NestedPick<Value[Key], Rest>; } : never : Path extends keyof Value ? { [Key in Path]: Value[Key]; } : never : never;
3542
+ type Asserter<Value> = (value: unknown) => asserts value is Value;
3543
+ //#endregion
3544
+ //#region src/internal/function/assert.d.ts
3521
3545
  /**
3522
3546
  * Asserts that a condition is true, throwing an error if it is not
3523
3547
  *
@@ -3580,7 +3604,7 @@ export declare function assertIs<Value>(condition: (value: unknown) => value is
3580
3604
  * @param error Error constructor _(defaults to `Error`)_
3581
3605
  * @returns _Asserter_
3582
3606
  */
3583
- export declare function assertProperty<Value extends PlainObject, Path extends NestedKeys<Value>>(path: Path, condition: (value: NestedValue<Value, Path>) => boolean, message: string, error?: ErrorConstructor): Asserter<NestedPick<Value, Path>>;
3607
+ export declare function assertProperty<Value extends PlainObject, Path extends NestedKeys<Value>>(path: Path, condition: (value: NestedValue<Value, Path>) => boolean, message: string, error?: ErrorConstructor): Asserter<AssertNestedPick<Value, Path>>;
3584
3608
  export declare namespace assert {
3585
3609
  export var condition: typeof assertCondition;
3586
3610
  export var defined: typeof assertDefined;
@@ -3589,11 +3613,59 @@ export declare namespace assert {
3589
3613
  export var property: typeof assertProperty;
3590
3614
  }
3591
3615
  //#endregion
3592
- //#region src/internal/function/memoize.d.ts
3616
+ //#region src/internal/sized/map.d.ts
3617
+ /**
3618
+ * A _Map_ with a maximum size
3619
+ *
3620
+ * Behavior is similar to a _LRU_ cache, where the least recently used entries are removed
3621
+ */
3622
+ export declare class SizedMap<SizedKey = unknown, SizedValue = unknown> extends Map<SizedKey, SizedValue> {
3623
+ #private;
3624
+ /**
3625
+ * Is the _Map_ full?
3626
+ */
3627
+ get full(): boolean;
3628
+ get maximum(): number;
3629
+ /**
3630
+ * Create a new _SizedMap_ with entries and a maximum size _(2^20)_
3631
+ *
3632
+ * @param entries Array of key-value pairs to initialize the _SizedMap_ with
3633
+ * @template SizedKey Type of the keys in the _SizedMap_
3634
+ * @template SizedValue Type of the values in the _SizedMap_
3635
+ */
3636
+ constructor(entries: [SizedKey, SizedValue][]);
3637
+ /**
3638
+ * Create a new _SizedMap_ with a maximum size _(but clamped at 2^24)_
3639
+ *
3640
+ * @param maximum Maximum size of the _SizedMap_
3641
+ * @template SizedKey Type of the keys in the _SizedMap_
3642
+ * @template SizedValue Type of the values in the _SizedMap_
3643
+ */
3644
+ constructor(maximum: number);
3645
+ /**
3646
+ * Create a new _SizedMap_ with _(optional)_ entries and a maximum size
3647
+ *
3648
+ * @param entries Array of key-value pairs to initialize the _SizedMap_ with
3649
+ * @param maximum Maximum size of the _SizedMap_ _(defaults to 2^20; clamped at 2^24)_
3650
+ * @template SizedKey Type of the keys in the _SizedMap_
3651
+ * @template SizedValue Type of the values in the _SizedMap_
3652
+ */
3653
+ constructor(entries?: [SizedKey, SizedValue][], maximum?: number);
3654
+ /**
3655
+ * @inheritdoc
3656
+ */
3657
+ override get(key: SizedKey): SizedValue | undefined;
3658
+ /**
3659
+ * @inheritdoc
3660
+ */
3661
+ override set(key: SizedKey, value: SizedValue): this;
3662
+ }
3663
+ //#endregion
3664
+ //#region src/models/function/memoize.model.d.ts
3593
3665
  /**
3594
3666
  * A _Memoized_ function instance, caching and retrieving results based on the its parameters _(or a custom cache key)_
3595
3667
  */
3596
- export type Memoized<Callback extends GenericCallback> = {
3668
+ type Memoized<Callback extends GenericCallback> = {
3597
3669
  /**
3598
3670
  * Maximum cache size
3599
3671
  *
@@ -3648,7 +3720,7 @@ export type Memoized<Callback extends GenericCallback> = {
3648
3720
  /**
3649
3721
  * Options for a _Memoized_ function
3650
3722
  */
3651
- export type MemoizedOptions<Callback extends GenericCallback> = {
3723
+ type MemoizedOptions<Callback extends GenericCallback> = {
3652
3724
  /**
3653
3725
  * Callback for getting a cache key for the provided parameters
3654
3726
  */
@@ -3658,6 +3730,13 @@ export type MemoizedOptions<Callback extends GenericCallback> = {
3658
3730
  */
3659
3731
  cacheSize?: number;
3660
3732
  };
3733
+ type MemoizedStateOptions = {
3734
+ cacheKey?: GenericCallback;
3735
+ cacheSize: number;
3736
+ };
3737
+ //#endregion
3738
+ //#region src/internal/function/memoize.d.ts
3739
+ declare function Memoized(this: any, callback: GenericCallback, options: MemoizedStateOptions): void;
3661
3740
  /**
3662
3741
  * Memoize a function, caching and retrieving results based on the first parameter
3663
3742
  *
@@ -3667,11 +3746,19 @@ export type MemoizedOptions<Callback extends GenericCallback> = {
3667
3746
  */
3668
3747
  export declare function memoize<Callback extends GenericCallback>(callback: Callback, options?: MemoizedOptions<Callback>): Memoized<Callback>;
3669
3748
  //#endregion
3670
- //#region src/internal/models/result.model.d.ts
3749
+ //#region src/models/result.model.d.ts
3671
3750
  /**
3672
3751
  * An unknown result
3673
3752
  */
3674
3753
  export type AnyResult<Value, E> = Err<E> | ExtendedErr<E> | Ok<Value>;
3754
+ /**
3755
+ * A synchronous _Flow_, a function that attempts to pipe values through a series of functions
3756
+ */
3757
+ export type AttemptFlow<Callback extends GenericCallback, Value> = (...args: Parameters<Callback>) => Result<UnwrapValue<Value>>;
3758
+ /**
3759
+ * An asynchronous _Flow_, a function that attempts to pipe values through a series of functions
3760
+ */
3761
+ export type AttemptAsyncFlow<Callback extends GenericCallback, Value> = (...args: Parameters<Callback>) => Promise<Result<UnwrapValue<Value>>>;
3675
3762
  /**
3676
3763
  * An error result
3677
3764
  */
@@ -3729,15 +3816,17 @@ type UnwrapResult<Original extends Result<unknown, unknown>> = Original extends
3729
3816
  */
3730
3817
  export type UnwrapValue<Original> = Original extends GenericCallback ? ReturnType<Original> extends Result<unknown, unknown> ? UnwrapResult<ReturnType<Original>> : ReturnType<Original> : Original extends Result<unknown, unknown> ? UnwrapResult<Original> : Original extends Promise<infer Value> ? Awaited<Value> : Original;
3731
3818
  //#endregion
3732
- //#region src/internal/function/work.d.ts
3819
+ //#region src/models/function/work.model.d.ts
3733
3820
  /**
3734
- * A synchronous _Flow_, a function that pipe a value through a series of functions
3821
+ * An asynchronous _Flow_, a function that pipes a value through a series of functions
3735
3822
  */
3736
- export type Flow<Callback extends GenericCallback, Value> = (...args: Parameters<Callback>) => UnwrapValue<Value>;
3823
+ type AsyncFlow<Callback extends GenericCallback, Value> = (...args: Parameters<Callback>) => Promise<UnwrapValue<Value>>;
3737
3824
  /**
3738
- * An asynchronous _Flow_, a function that pipes a value through a series of functions
3825
+ * A synchronous _Flow_, a function that pipe a value through a series of functions
3739
3826
  */
3740
- export type FlowPromise<Callback extends GenericCallback, Value> = (...args: Parameters<Callback>) => Promise<UnwrapValue<Value>>;
3827
+ type Flow<Callback extends GenericCallback, Value> = (...args: Parameters<Callback>) => UnwrapValue<Value>;
3828
+ //#endregion
3829
+ //#region src/internal/function/work.d.ts
3741
3830
  /**
3742
3831
  * Create an asynchronous _Flow_, a function that pipes values through a function
3743
3832
  *
@@ -3745,7 +3834,7 @@ export type FlowPromise<Callback extends GenericCallback, Value> = (...args: Par
3745
3834
  *
3746
3835
  * @returns _Flow_ function
3747
3836
  */
3748
- export declare function asyncFlow<Fn extends GenericCallback>(fn: Fn): FlowPromise<Fn, ReturnType<Fn>>;
3837
+ export declare function asyncFlow<Fn extends GenericCallback>(fn: Fn): AsyncFlow<Fn, ReturnType<Fn>>;
3749
3838
  /**
3750
3839
  * Create an asynchronous _Flow_, a function that pipes values through a series of functions
3751
3840
  *
@@ -3753,7 +3842,7 @@ export declare function asyncFlow<Fn extends GenericCallback>(fn: Fn): FlowPromi
3753
3842
  *
3754
3843
  * @returns _Flow_ function
3755
3844
  */
3756
- export declare function asyncFlow<First extends GenericCallback, Second>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second): FlowPromise<First, Second>;
3845
+ export declare function asyncFlow<First extends GenericCallback, Second>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second): AsyncFlow<First, Second>;
3757
3846
  /**
3758
3847
  * Create an asynchronous _Flow_, a function that pipes values through a series of functions
3759
3848
  *
@@ -3761,7 +3850,7 @@ export declare function asyncFlow<First extends GenericCallback, Second>(first:
3761
3850
  *
3762
3851
  * @returns _Flow_ function
3763
3852
  */
3764
- export declare function asyncFlow<First extends GenericCallback, Second, Third>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second, third: (value: Awaited<UnwrapValue<Second>>) => Third): FlowPromise<First, Third>;
3853
+ export declare function asyncFlow<First extends GenericCallback, Second, Third>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second, third: (value: Awaited<UnwrapValue<Second>>) => Third): AsyncFlow<First, Third>;
3765
3854
  /**
3766
3855
  * Create an asynchronous _Flow_, a function that pipes values through a series of functions
3767
3856
  *
@@ -3769,7 +3858,7 @@ export declare function asyncFlow<First extends GenericCallback, Second, Third>(
3769
3858
  *
3770
3859
  * @returns _Flow_ function
3771
3860
  */
3772
- export declare function asyncFlow<First extends GenericCallback, Second, Third, Fourth>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second, third: (value: Awaited<UnwrapValue<Second>>) => Third, fourth: (value: Awaited<UnwrapValue<Third>>) => Fourth): FlowPromise<First, Fourth>;
3861
+ export declare function asyncFlow<First extends GenericCallback, Second, Third, Fourth>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second, third: (value: Awaited<UnwrapValue<Second>>) => Third, fourth: (value: Awaited<UnwrapValue<Third>>) => Fourth): AsyncFlow<First, Fourth>;
3773
3862
  /**
3774
3863
  * Create an asynchronous _Flow_, a function that pipes values through a series of functions
3775
3864
  *
@@ -3777,7 +3866,7 @@ export declare function asyncFlow<First extends GenericCallback, Second, Third,
3777
3866
  *
3778
3867
  * @returns _Flow_ function
3779
3868
  */
3780
- export declare function asyncFlow<First extends GenericCallback, Second, Third, Fourth, Fifth>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second, third: (value: Awaited<UnwrapValue<Second>>) => Third, fourth: (value: Awaited<UnwrapValue<Third>>) => Fourth, fifth: (value: Awaited<UnwrapValue<Fourth>>) => Fifth): FlowPromise<First, Fifth>;
3869
+ export declare function asyncFlow<First extends GenericCallback, Second, Third, Fourth, Fifth>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second, third: (value: Awaited<UnwrapValue<Second>>) => Third, fourth: (value: Awaited<UnwrapValue<Third>>) => Fourth, fifth: (value: Awaited<UnwrapValue<Fourth>>) => Fifth): AsyncFlow<First, Fifth>;
3781
3870
  /**
3782
3871
  * Create an asynchronous _Flow_, a function that pipes values through a series of functions
3783
3872
  *
@@ -3785,7 +3874,7 @@ export declare function asyncFlow<First extends GenericCallback, Second, Third,
3785
3874
  *
3786
3875
  * @returns _Flow_ function
3787
3876
  */
3788
- export declare function asyncFlow<First extends GenericCallback, Second, Third, Fourth, Fifth, Sixth>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second, third: (value: Awaited<UnwrapValue<Second>>) => Third, fourth: (value: Awaited<UnwrapValue<Third>>) => Fourth, fifth: (value: Awaited<UnwrapValue<Fourth>>) => Fifth, sixth: (value: Awaited<UnwrapValue<Fifth>>) => Sixth): FlowPromise<First, Sixth>;
3877
+ export declare function asyncFlow<First extends GenericCallback, Second, Third, Fourth, Fifth, Sixth>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second, third: (value: Awaited<UnwrapValue<Second>>) => Third, fourth: (value: Awaited<UnwrapValue<Third>>) => Fourth, fifth: (value: Awaited<UnwrapValue<Fourth>>) => Fifth, sixth: (value: Awaited<UnwrapValue<Fifth>>) => Sixth): AsyncFlow<First, Sixth>;
3789
3878
  /**
3790
3879
  * Create an asynchronous _Flow_, a function that pipes values through a series of functions
3791
3880
  *
@@ -3793,7 +3882,7 @@ export declare function asyncFlow<First extends GenericCallback, Second, Third,
3793
3882
  *
3794
3883
  * @returns _Flow_ function
3795
3884
  */
3796
- export declare function asyncFlow<First extends GenericCallback, Second, Third, Fourth, Fifth, Sixth, Seventh>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second, third: (value: Awaited<UnwrapValue<Second>>) => Third, fourth: (value: Awaited<UnwrapValue<Third>>) => Fourth, fifth: (value: Awaited<UnwrapValue<Fourth>>) => Fifth, sixth: (value: Awaited<UnwrapValue<Fifth>>) => Sixth, seventh: (value: Awaited<UnwrapValue<Sixth>>) => Seventh): FlowPromise<First, Seventh>;
3885
+ export declare function asyncFlow<First extends GenericCallback, Second, Third, Fourth, Fifth, Sixth, Seventh>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second, third: (value: Awaited<UnwrapValue<Second>>) => Third, fourth: (value: Awaited<UnwrapValue<Third>>) => Fourth, fifth: (value: Awaited<UnwrapValue<Fourth>>) => Fifth, sixth: (value: Awaited<UnwrapValue<Fifth>>) => Sixth, seventh: (value: Awaited<UnwrapValue<Sixth>>) => Seventh): AsyncFlow<First, Seventh>;
3797
3886
  /**
3798
3887
  * Create an asynchronous _Flow_, a function that pipes values through a series of functions
3799
3888
  *
@@ -3801,7 +3890,7 @@ export declare function asyncFlow<First extends GenericCallback, Second, Third,
3801
3890
  *
3802
3891
  * @returns _Flow_ function
3803
3892
  */
3804
- export declare function asyncFlow<First extends GenericCallback, Second, Third, Fourth, Fifth, Sixth, Seventh, Eighth>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second, third: (value: Awaited<UnwrapValue<Second>>) => Third, fourth: (value: Awaited<UnwrapValue<Third>>) => Fourth, fifth: (value: Awaited<UnwrapValue<Fourth>>) => Fifth, sixth: (value: Awaited<UnwrapValue<Fifth>>) => Sixth, seventh: (value: Awaited<UnwrapValue<Sixth>>) => Seventh, eighth: (value: Awaited<UnwrapValue<Seventh>>) => Eighth): FlowPromise<First, Eighth>;
3893
+ export declare function asyncFlow<First extends GenericCallback, Second, Third, Fourth, Fifth, Sixth, Seventh, Eighth>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second, third: (value: Awaited<UnwrapValue<Second>>) => Third, fourth: (value: Awaited<UnwrapValue<Third>>) => Fourth, fifth: (value: Awaited<UnwrapValue<Fourth>>) => Fifth, sixth: (value: Awaited<UnwrapValue<Fifth>>) => Sixth, seventh: (value: Awaited<UnwrapValue<Sixth>>) => Seventh, eighth: (value: Awaited<UnwrapValue<Seventh>>) => Eighth): AsyncFlow<First, Eighth>;
3805
3894
  /**
3806
3895
  * Create an asynchronous _Flow_, a function that pipes values through a series of functions
3807
3896
  *
@@ -3809,7 +3898,7 @@ export declare function asyncFlow<First extends GenericCallback, Second, Third,
3809
3898
  *
3810
3899
  * @returns _Flow_ function
3811
3900
  */
3812
- export declare function asyncFlow<First extends GenericCallback, Second, Third, Fourth, Fifth, Sixth, Seventh, Eighth, Ninth>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second, third: (value: Awaited<UnwrapValue<Second>>) => Third, fourth: (value: Awaited<UnwrapValue<Third>>) => Fourth, fifth: (value: Awaited<UnwrapValue<Fourth>>) => Fifth, sixth: (value: Awaited<UnwrapValue<Fifth>>) => Sixth, seventh: (value: Awaited<UnwrapValue<Sixth>>) => Seventh, eighth: (value: Awaited<UnwrapValue<Seventh>>) => Eighth, ninth: (value: Awaited<UnwrapValue<Eighth>>) => Ninth): FlowPromise<First, Ninth>;
3901
+ export declare function asyncFlow<First extends GenericCallback, Second, Third, Fourth, Fifth, Sixth, Seventh, Eighth, Ninth>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second, third: (value: Awaited<UnwrapValue<Second>>) => Third, fourth: (value: Awaited<UnwrapValue<Third>>) => Fourth, fifth: (value: Awaited<UnwrapValue<Fourth>>) => Fifth, sixth: (value: Awaited<UnwrapValue<Fifth>>) => Sixth, seventh: (value: Awaited<UnwrapValue<Sixth>>) => Seventh, eighth: (value: Awaited<UnwrapValue<Seventh>>) => Eighth, ninth: (value: Awaited<UnwrapValue<Eighth>>) => Ninth): AsyncFlow<First, Ninth>;
3813
3902
  /**
3814
3903
  * Create an asynchronous _Flow_, a function that pipes values through a series of functions
3815
3904
  *
@@ -3817,7 +3906,7 @@ export declare function asyncFlow<First extends GenericCallback, Second, Third,
3817
3906
  *
3818
3907
  * @returns _Flow_ function
3819
3908
  */
3820
- export declare function asyncFlow<First extends GenericCallback, Second, Third, Fourth, Fifth, Sixth, Seventh, Eighth, Ninth, Tenth>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second, third: (value: Awaited<UnwrapValue<Second>>) => Third, fourth: (value: Awaited<UnwrapValue<Third>>) => Fourth, fifth: (value: Awaited<UnwrapValue<Fourth>>) => Fifth, sixth: (value: Awaited<UnwrapValue<Fifth>>) => Sixth, seventh: (value: Awaited<UnwrapValue<Sixth>>) => Seventh, eighth: (value: Awaited<UnwrapValue<Seventh>>) => Eighth, ninth: (value: Awaited<UnwrapValue<Eighth>>) => Ninth, tenth: (value: Awaited<UnwrapValue<Ninth>>) => Tenth): FlowPromise<First, Tenth>;
3909
+ export declare function asyncFlow<First extends GenericCallback, Second, Third, Fourth, Fifth, Sixth, Seventh, Eighth, Ninth, Tenth>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second, third: (value: Awaited<UnwrapValue<Second>>) => Third, fourth: (value: Awaited<UnwrapValue<Third>>) => Fourth, fifth: (value: Awaited<UnwrapValue<Fourth>>) => Fifth, sixth: (value: Awaited<UnwrapValue<Fifth>>) => Sixth, seventh: (value: Awaited<UnwrapValue<Sixth>>) => Seventh, eighth: (value: Awaited<UnwrapValue<Seventh>>) => Eighth, ninth: (value: Awaited<UnwrapValue<Eighth>>) => Ninth, tenth: (value: Awaited<UnwrapValue<Ninth>>) => Tenth): AsyncFlow<First, Tenth>;
3821
3910
  /**
3822
3911
  * Create an asynchronous _Flow_, a function that pipes values through a series of functions
3823
3912
  *
@@ -3825,7 +3914,7 @@ export declare function asyncFlow<First extends GenericCallback, Second, Third,
3825
3914
  *
3826
3915
  * @returns _Flow_ function
3827
3916
  */
3828
- export declare function asyncFlow<Fn extends GenericCallback>(fn: Fn, ...fns: Array<(value: Awaited<UnwrapValue<ReturnType<Fn>>>) => unknown>): FlowPromise<Fn, ReturnType<Fn>>;
3917
+ export declare function asyncFlow<Fn extends GenericCallback>(fn: Fn, ...fns: Array<(value: Awaited<UnwrapValue<ReturnType<Fn>>>) => unknown>): AsyncFlow<Fn, ReturnType<Fn>>;
3829
3918
  /**
3830
3919
  * Create an asynchronous _Flow_, a function that pipes values through a series of functions
3831
3920
  *
@@ -4105,54 +4194,6 @@ export declare namespace pipe {
4105
4194
  export var async: typeof asyncPipe;
4106
4195
  }
4107
4196
  //#endregion
4108
- //#region src/internal/sized/map.d.ts
4109
- /**
4110
- * A _Map_ with a maximum size
4111
- *
4112
- * Behavior is similar to a _LRU_ cache, where the least recently used entries are removed
4113
- */
4114
- export declare class SizedMap<SizedKey = unknown, SizedValue = unknown> extends Map<SizedKey, SizedValue> {
4115
- #private;
4116
- /**
4117
- * Is the _Map_ full?
4118
- */
4119
- get full(): boolean;
4120
- get maximum(): number;
4121
- /**
4122
- * Create a new _SizedMap_ with entries and a maximum size _(2^20)_
4123
- *
4124
- * @param entries Array of key-value pairs to initialize the _SizedMap_ with
4125
- * @template SizedKey Type of the keys in the _SizedMap_
4126
- * @template SizedValue Type of the values in the _SizedMap_
4127
- */
4128
- constructor(entries: [SizedKey, SizedValue][]);
4129
- /**
4130
- * Create a new _SizedMap_ with a maximum size _(but clamped at 2^24)_
4131
- *
4132
- * @param maximum Maximum size of the _SizedMap_
4133
- * @template SizedKey Type of the keys in the _SizedMap_
4134
- * @template SizedValue Type of the values in the _SizedMap_
4135
- */
4136
- constructor(maximum: number);
4137
- /**
4138
- * Create a new _SizedMap_ with _(optional)_ entries and a maximum size
4139
- *
4140
- * @param entries Array of key-value pairs to initialize the _SizedMap_ with
4141
- * @param maximum Maximum size of the _SizedMap_ _(defaults to 2^20; clamped at 2^24)_
4142
- * @template SizedKey Type of the keys in the _SizedMap_
4143
- * @template SizedValue Type of the values in the _SizedMap_
4144
- */
4145
- constructor(entries?: [SizedKey, SizedValue][], maximum?: number);
4146
- /**
4147
- * @inheritdoc
4148
- */
4149
- override get(key: SizedKey): SizedValue | undefined;
4150
- /**
4151
- * @inheritdoc
4152
- */
4153
- override set(key: SizedKey, value: SizedValue): this;
4154
- }
4155
- //#endregion
4156
4197
  //#region src/internal/string/case.d.ts
4157
4198
  /**
4158
4199
  * Convert a string to camel case _(thisIsCamelCase)_
@@ -4252,7 +4293,7 @@ export declare function tryEncode(value: boolean | number | string): unknown;
4252
4293
  */
4253
4294
  export declare function words(value: string): string[];
4254
4295
  //#endregion
4255
- //#region src/internal/value/handlers.d.ts
4296
+ //#region src/models/value/value.handler.model.d.ts
4256
4297
  type BaseHandler = {
4257
4298
  handlers: WeakMap<WeakKey, string | GenericCallback>;
4258
4299
  options: BaseHandlerOptions;
@@ -4274,8 +4315,26 @@ type ValueHandler = {
4274
4315
  handle(value: unknown, ...parameters: unknown[]): unknown;
4275
4316
  };
4276
4317
  //#endregion
4318
+ //#region src/models/value/value.misc.model.d.ts
4319
+ type ComparisonHandler<Value = any> = (first: Value, second: Value) => number;
4320
+ /**
4321
+ * Thanks, type-fest!
4322
+ */
4323
+ type KeysOfUnion<ObjectType> = keyof UnionToIntersection<ObjectType extends unknown ? Record<keyof ObjectType, never> : never>;
4324
+ /**
4325
+ * A shaken object, without any `undefined` values
4326
+ */
4327
+ type Shaken<Value extends PlainObject> = Simplify<{ [Key in keyof Value as undefined extends Value[Key] ? never : Key]: Value[Key]; } & { [Key in keyof Value as undefined extends Value[Key] ? [Value[Key]] extends [undefined] ? never : Key : never]?: Exclude<Value[Key], undefined>; }>;
4328
+ /**
4329
+ * A smushed object, with all nested objects flattened into a single level, using dot notation keys
4330
+ */
4331
+ type Smushed<Value extends PlainObject> = Simplify<{ [NestedKey in NestedKeys<Value>]: NestedValue<Value, ToString<NestedKey>>; }>;
4332
+ /**
4333
+ * An unsmushed object, with all dot notation keys turned into nested keys
4334
+ */
4335
+ type Unsmushed<Value extends PlainObject> = Simplify<Omit<{ [UnionKey in KeysOfUnion<Value>]: Value[UnionKey]; }, `${string}.${string}`>>;
4336
+ //#endregion
4277
4337
  //#region src/internal/value/compare.d.ts
4278
- type Comparator<Value = any> = (first: Value, second: Value) => number;
4279
4338
  /**
4280
4339
  * Compare two values _(for sorting purposes)_
4281
4340
  *
@@ -4300,18 +4359,18 @@ export declare function deregisterComparator<Instance>(constructor: Constructor<
4300
4359
  * @param constructor Class constructor
4301
4360
  * @param handler Method name or comparison function _(defaults to `compare`)_
4302
4361
  */
4303
- export declare function registerComparator<Instance>(constructor: Constructor<Instance>, handler?: string | Comparator<Instance>): void;
4362
+ export declare function registerComparator<Instance>(constructor: Constructor<Instance>, handler?: string | ComparisonHandler<Instance>): void;
4304
4363
  export declare namespace compare {
4305
4364
  export var deregister: typeof deregisterComparator;
4306
4365
  export var handler: CompareHandler<number>;
4307
4366
  export var register: typeof registerComparator;
4308
4367
  }
4309
4368
  //#endregion
4310
- //#region src/internal/value/equal.d.ts
4369
+ //#region src/models/value/value.equal.model.d.ts
4311
4370
  /**
4312
4371
  * Options for value equality comparison
4313
4372
  */
4314
- export type EqualOptions = {
4373
+ type EqualOptions = {
4315
4374
  /**
4316
4375
  * When `true`, strings are compared case-insensitively
4317
4376
  */
@@ -4362,6 +4421,19 @@ type Equalizer = {
4362
4421
  */
4363
4422
  register: <Instance>(constructor: Constructor<Instance>, handler: (first: Instance, second: Instance) => boolean) => void;
4364
4423
  };
4424
+ type EqualizerOptions = {
4425
+ ignoreCase: boolean;
4426
+ ignoreExpressions: EqualizerOptionsKeys<RegExp[]>;
4427
+ ignoreKeys: EqualizerOptionsKeys<Set<string>>;
4428
+ relaxedNullish: boolean;
4429
+ };
4430
+ type EqualizerOptionsKeys<Values> = {
4431
+ enabled: boolean;
4432
+ values: Values;
4433
+ };
4434
+ //#endregion
4435
+ //#region src/internal/value/equal.d.ts
4436
+ declare function Equalizer(this: any, options: EqualizerOptions): void;
4365
4437
  /**
4366
4438
  * Deregister a equality comparison handler for a specific class
4367
4439
  *
@@ -4587,7 +4659,7 @@ export declare function setValue<Data extends PlainObject, Path extends NestedKe
4587
4659
  */
4588
4660
  export declare function setValue<Data extends PlainObject>(data: Data, path: string, value: unknown, ignoreCase?: boolean): Data;
4589
4661
  //#endregion
4590
- //#region src/internal/models/plan.model.d.ts
4662
+ //#region src/models/plan.model.d.ts
4591
4663
  /**
4592
4664
  * An asynchronous plan of execution that can yield intermediate results and eventually return a result
4593
4665
  */
@@ -4614,6 +4686,18 @@ type AsyncPlan<Yielded, Returned, Parameters extends unknown[]> = {
4614
4686
  */
4615
4687
  run(...parameters: Parameters): Promise<PlanReturned<Returned>>;
4616
4688
  };
4689
+ type AsyncPlanState = {
4690
+ generator(...parameters: unknown[]): AsyncGenerator;
4691
+ } & BaseState<typeof PLAN_TYPE_PLAN_ASYNC>;
4692
+ type BaseState<Type extends PlanType> = {
4693
+ type: Type;
4694
+ };
4695
+ type InternalAsyncPlan = {
4696
+ [PLAN_SYMBOL]: AsyncPlanState;
4697
+ } & AsyncPlan<never, never, unknown[]>;
4698
+ type InternalPlan = {
4699
+ [PLAN_SYMBOL]: PlanState;
4700
+ } & Plan<never, never, unknown[]>;
4617
4701
  /**
4618
4702
  * A plan of execution that can yield intermediate results and eventually return a result
4619
4703
  */
@@ -4645,6 +4729,13 @@ type PlanErrors<Yielded, Returned> = PlanErrorValues<Yielded> | PlanErrorValues<
4645
4729
  type PlanError<Yielded, Returned> = [PlanErrors<Yielded, Returned>] extends [never] ? Error : PlanErrors<Yielded, Returned>;
4646
4730
  type PlanErrorValues<Original> = Original extends Error ? Original : Original extends Err<infer Error> ? Error : never;
4647
4731
  type PlanReturned<Returned> = Returned extends Error ? never : Returned extends Err<infer _> ? never : Returned;
4732
+ type PlanState = {
4733
+ generator(...parameters: unknown[]): Generator;
4734
+ } & BaseState<typeof PLAN_TYPE_PLAN_SYNC>;
4735
+ type PlanType = "asyncPlan" | "plan";
4736
+ declare const PLAN_SYMBOL: symbol;
4737
+ declare const PLAN_TYPE_PLAN_ASYNC: PlanType;
4738
+ declare const PLAN_TYPE_PLAN_SYNC: PlanType;
4648
4739
  //#endregion
4649
4740
  //#region src/plan/result.d.ts
4650
4741
  /**
@@ -4679,6 +4770,8 @@ export declare function attemptRun<Yielded, Returned, Parameters extends unknown
4679
4770
  * @returns Result
4680
4771
  */
4681
4772
  export declare function attemptRun<Yielded, Returned, Parameters extends unknown[]>(plan: Plan<Yielded, Returned, Parameters>, ...parameters: Parameters): Result<PlanOk<Returned>, PlanError<Yielded, Returned>>;
4773
+ export declare function attemptRunAsyncPlan(this: InternalAsyncPlan, ...parameters: unknown[]): Promise<unknown>;
4774
+ export declare function attemptRunPlan(this: InternalPlan, ...parameters: unknown[]): unknown;
4682
4775
  export declare namespace attemptRun {
4683
4776
  export var async: typeof asyncAttemptRun;
4684
4777
  }
@@ -4712,6 +4805,8 @@ export declare function run<Yielded, Returned, Parameters extends unknown[]>(gen
4712
4805
  * @returns Result
4713
4806
  */
4714
4807
  export declare function run<Yielded, Returned, Parameters extends unknown[]>(plan: Plan<Yielded, Returned, Parameters>, ...parameters: Parameters): PlanReturned<Returned>;
4808
+ export declare function runAsyncPlan(this: InternalAsyncPlan, ...parameters: unknown[]): Promise<unknown>;
4809
+ export declare function runPlan(this: InternalPlan, ...parameters: unknown[]): unknown;
4715
4810
  export declare namespace asyncRun {
4716
4811
  export var attempt: typeof asyncAttemptRun;
4717
4812
  }
@@ -4786,18 +4881,14 @@ export declare namespace succeed {
4786
4881
  export var result: typeof succeedResult;
4787
4882
  }
4788
4883
  //#endregion
4789
- //#region src/internal/aborter.d.ts
4884
+ //#region src/models/aborter.model.d.ts
4790
4885
  type Aborter = {
4791
4886
  callback: GenericCallback;
4792
4887
  cancel(): void;
4793
4888
  signal: AbortSignal;
4794
4889
  };
4795
4890
  //#endregion
4796
- //#region src/promise/constants.d.ts
4797
- declare const PROMISE_TYPE_FULFILLED = "fulfilled";
4798
- declare const PROMISE_TYPE_REJECTED = "rejected";
4799
- //#endregion
4800
- //#region src/promise/models.d.ts
4891
+ //#region src/models/promise.model.d.ts
4801
4892
  /**
4802
4893
  * A _Promise_ that can be canceled
4803
4894
  */
@@ -4814,7 +4905,7 @@ export declare class CancelablePromise<Value = void> extends Promise<Value> {
4814
4905
  /**
4815
4906
  * A _Promise_ that was fulfilled
4816
4907
  */
4817
- export type FulfilledPromise<Value> = {
4908
+ type FulfilledPromise<Value> = {
4818
4909
  /**
4819
4910
  * Status of the _Promise_
4820
4911
  */
@@ -4824,18 +4915,18 @@ export type FulfilledPromise<Value> = {
4824
4915
  */
4825
4916
  value: Awaited<Value>;
4826
4917
  };
4827
- export type PromiseData = {
4918
+ type PromiseData = {
4828
4919
  last: number;
4829
4920
  result: ArrayOrPlainObject;
4830
4921
  };
4831
- export type PromiseHandlers = {
4922
+ type PromiseHandlers = {
4832
4923
  resolve(value: unknown[]): void;
4833
4924
  reject(reason: unknown): void;
4834
4925
  };
4835
4926
  /**
4836
4927
  * Options for a _Promise_-handling function
4837
4928
  */
4838
- export type PromiseOptions = {
4929
+ type PromiseOptions = {
4839
4930
  /**
4840
4931
  * AbortSignal for aborting the _Promise_; when aborted, the _Promise_ will reject with the reason of the signal
4841
4932
  */
@@ -4845,7 +4936,7 @@ export type PromiseOptions = {
4845
4936
  */
4846
4937
  time?: number;
4847
4938
  };
4848
- export type PromiseParameters = {
4939
+ type PromiseParameters = {
4849
4940
  aborter?: Aborter;
4850
4941
  complete: boolean;
4851
4942
  data: PromiseData;
@@ -4860,18 +4951,18 @@ export type PromiseParameters = {
4860
4951
  * - `complete`: wait for all _Promises_ to settle, then return the results, as an array of fulfilled and/or rejected results
4861
4952
  * - `first`: rejects on the first rejected _Promise_, and returns an array of values
4862
4953
  */
4863
- export type PromiseStrategy = "complete" | "first";
4954
+ type PromiseStrategy = "complete" | "first";
4864
4955
  /**
4865
4956
  * An error thrown when a promise times out
4866
4957
  */
4867
4958
  export declare class PromiseTimeoutError extends Error {
4868
4959
  constructor();
4869
4960
  }
4870
- export type PromisesItems<Items extends ArrayOrPlainObject> = { [ItemsKey in keyof Items]: Items[ItemsKey] extends GenericCallback ? ReturnType<Items[ItemsKey]> extends Promise<infer Value> ? Promise<Value> : never : Items[ItemsKey] extends Promise<infer Value> ? Promise<Value> : Promise<Items[ItemsKey]>; } extends (infer Result) ? Result : never;
4961
+ type PromisesItems<Items extends ArrayOrPlainObject> = { [ItemsKey in keyof Items]: Items[ItemsKey] extends GenericCallback ? ReturnType<Items[ItemsKey]> extends Promise<infer Value> ? Promise<Value> : never : Items[ItemsKey] extends Promise<infer Value> ? Promise<Value> : Promise<Items[ItemsKey]>; };
4871
4962
  /**
4872
4963
  * Options for handling multiple _Promises_
4873
4964
  */
4874
- export type PromisesOptions = {
4965
+ type PromisesOptions = {
4875
4966
  /**
4876
4967
  * AbortSignal for aborting the _Promises_; when aborted, the _Promises_ will reject with the reason of the signal
4877
4968
  */
@@ -4881,14 +4972,14 @@ export type PromisesOptions = {
4881
4972
  */
4882
4973
  strategy?: PromiseStrategy;
4883
4974
  };
4884
- export type PromisesResult<Items extends ArrayOrPlainObject> = { [ItemsKey in keyof Items]: Items[ItemsKey] extends Promise<infer Value> ? Result<Awaited<Value>> : never; };
4885
- export type PromisesUnwrapped<Items extends ArrayOrPlainObject> = { [ItemsKey in keyof Items]: Items[ItemsKey] extends GenericCallback ? ReturnType<Items[ItemsKey]> extends Promise<infer Value> ? Awaited<Value> : never : Items[ItemsKey] extends Promise<infer Value> ? Awaited<Value> : never; } extends (infer Result) ? Result : never;
4886
- export type PromisesValue<Value> = (FulfilledPromise<Value> | RejectedPromise);
4887
- export type PromisesValues<Items extends ArrayOrPlainObject> = { [ItemsKey in keyof Items]: Items[ItemsKey] extends Promise<infer Value> ? PromisesValue<Awaited<Value>> : never; } extends (infer Result) ? Result : never;
4975
+ type PromisesResult<Items extends ArrayOrPlainObject> = { [ItemsKey in keyof Items]: Items[ItemsKey] extends Promise<infer Value> ? Result<Awaited<Value>> : never; };
4976
+ type PromisesUnwrapped<Items extends ArrayOrPlainObject> = { [ItemsKey in keyof Items]: Items[ItemsKey] extends GenericCallback ? ReturnType<Items[ItemsKey]> extends Promise<infer Value> ? Awaited<Value> : never : Items[ItemsKey] extends Promise<infer Value> ? Awaited<Value> : never; } extends (infer Result) ? Result : never;
4977
+ type PromisesValue<Value> = FulfilledPromise<Value> | RejectedPromise;
4978
+ type PromisesValues<Items extends ArrayOrPlainObject> = { [ItemsKey in keyof Items]: Items[ItemsKey] extends Promise<infer Value> ? PromisesValue<Awaited<Value>> : never; } extends (infer Result) ? Result : never;
4888
4979
  /**
4889
4980
  * A _Promise_ that was rejected
4890
4981
  */
4891
- export type RejectedPromise = {
4982
+ type RejectedPromise = {
4892
4983
  /**
4893
4984
  * Status of the _Promise_
4894
4985
  */
@@ -4898,6 +4989,8 @@ export type RejectedPromise = {
4898
4989
  */
4899
4990
  reason: unknown;
4900
4991
  };
4992
+ declare const PROMISE_TYPE_FULFILLED = "fulfilled";
4993
+ declare const PROMISE_TYPE_REJECTED = "rejected";
4901
4994
  //#endregion
4902
4995
  //#region src/promise/delay.d.ts
4903
4996
  /**
@@ -5302,14 +5395,6 @@ export declare namespace matchResult {
5302
5395
  }
5303
5396
  //#endregion
5304
5397
  //#region src/result/work/flow.d.ts
5305
- /**
5306
- * A synchronous _Flow_, a function that attempts to pipe values through a series of functions
5307
- */
5308
- export type AttemptFlow<Callback extends GenericCallback, Value> = (...args: Parameters<Callback>) => Result<UnwrapValue<Value>>;
5309
- /**
5310
- * An asynchronous _Flow_, a function that attempts to pipe values through a series of functions
5311
- */
5312
- export type AttemptFlowPromise<Callback extends GenericCallback, Value> = (...args: Parameters<Callback>) => Promise<Result<UnwrapValue<Value>>>;
5313
5398
  /**
5314
5399
  * Create an asynchronous _Flow_, a function that attempts to pipe a value through a series of functions
5315
5400
  *
@@ -5317,7 +5402,7 @@ export type AttemptFlowPromise<Callback extends GenericCallback, Value> = (...ar
5317
5402
  *
5318
5403
  * @returns _Flow_ function
5319
5404
  */
5320
- export declare function attemptAsyncFlow<Fn extends GenericCallback>(fn: Fn): AttemptFlowPromise<Fn, ReturnType<Fn>>;
5405
+ export declare function attemptAsyncFlow<Fn extends GenericCallback>(fn: Fn): AttemptAsyncFlow<Fn, ReturnType<Fn>>;
5321
5406
  /**
5322
5407
  * Create an asynchronous _Flow_, a function that pipes values through a series of functions
5323
5408
  *
@@ -5325,7 +5410,7 @@ export declare function attemptAsyncFlow<Fn extends GenericCallback>(fn: Fn): At
5325
5410
  *
5326
5411
  * @returns _Flow_ function
5327
5412
  */
5328
- export declare function attemptAsyncFlow<First extends GenericCallback, Second>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second): AttemptFlowPromise<First, Second>;
5413
+ export declare function attemptAsyncFlow<First extends GenericCallback, Second>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second): AttemptAsyncFlow<First, Second>;
5329
5414
  /**
5330
5415
  * Create an asynchronous _Flow_, a function that pipes values through a series of functions
5331
5416
  *
@@ -5333,7 +5418,7 @@ export declare function attemptAsyncFlow<First extends GenericCallback, Second>(
5333
5418
  *
5334
5419
  * @returns _Flow_ function
5335
5420
  */
5336
- export declare function attemptAsyncFlow<First extends GenericCallback, Second, Third>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second, third: (value: Awaited<UnwrapValue<Second>>) => Third): AttemptFlowPromise<First, Third>;
5421
+ export declare function attemptAsyncFlow<First extends GenericCallback, Second, Third>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second, third: (value: Awaited<UnwrapValue<Second>>) => Third): AttemptAsyncFlow<First, Third>;
5337
5422
  /**
5338
5423
  * Create an asynchronous _Flow_, a function that pipes values through a series of functions
5339
5424
  *
@@ -5341,7 +5426,7 @@ export declare function attemptAsyncFlow<First extends GenericCallback, Second,
5341
5426
  *
5342
5427
  * @returns _Flow_ function
5343
5428
  */
5344
- export declare function attemptAsyncFlow<First extends GenericCallback, Second, Third, Fourth>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second, third: (value: Awaited<UnwrapValue<Second>>) => Third, fourth: (value: Awaited<UnwrapValue<Third>>) => Fourth): AttemptFlowPromise<First, Fourth>;
5429
+ export declare function attemptAsyncFlow<First extends GenericCallback, Second, Third, Fourth>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second, third: (value: Awaited<UnwrapValue<Second>>) => Third, fourth: (value: Awaited<UnwrapValue<Third>>) => Fourth): AttemptAsyncFlow<First, Fourth>;
5345
5430
  /**
5346
5431
  * Create an asynchronous _Flow_, a function that pipes values through a series of functions
5347
5432
  *
@@ -5349,7 +5434,7 @@ export declare function attemptAsyncFlow<First extends GenericCallback, Second,
5349
5434
  *
5350
5435
  * @returns _Flow_ function
5351
5436
  */
5352
- export declare function attemptAsyncFlow<First extends GenericCallback, Second, Third, Fourth, Fifth>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second, third: (value: Awaited<UnwrapValue<Second>>) => Third, fourth: (value: Awaited<UnwrapValue<Third>>) => Fourth, fifth: (value: Awaited<UnwrapValue<Fourth>>) => Fifth): AttemptFlowPromise<First, Fifth>;
5437
+ export declare function attemptAsyncFlow<First extends GenericCallback, Second, Third, Fourth, Fifth>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second, third: (value: Awaited<UnwrapValue<Second>>) => Third, fourth: (value: Awaited<UnwrapValue<Third>>) => Fourth, fifth: (value: Awaited<UnwrapValue<Fourth>>) => Fifth): AttemptAsyncFlow<First, Fifth>;
5353
5438
  /**
5354
5439
  * Create an asynchronous _Flow_, a function that pipes values through a series of functions
5355
5440
  *
@@ -5357,7 +5442,7 @@ export declare function attemptAsyncFlow<First extends GenericCallback, Second,
5357
5442
  *
5358
5443
  * @returns _Flow_ function
5359
5444
  */
5360
- export declare function attemptAsyncFlow<First extends GenericCallback, Second, Third, Fourth, Fifth, Sixth>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second, third: (value: Awaited<UnwrapValue<Second>>) => Third, fourth: (value: Awaited<UnwrapValue<Third>>) => Fourth, fifth: (value: Awaited<UnwrapValue<Fourth>>) => Fifth, sixth: (value: Awaited<UnwrapValue<Fifth>>) => Sixth): AttemptFlowPromise<First, Sixth>;
5445
+ export declare function attemptAsyncFlow<First extends GenericCallback, Second, Third, Fourth, Fifth, Sixth>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second, third: (value: Awaited<UnwrapValue<Second>>) => Third, fourth: (value: Awaited<UnwrapValue<Third>>) => Fourth, fifth: (value: Awaited<UnwrapValue<Fourth>>) => Fifth, sixth: (value: Awaited<UnwrapValue<Fifth>>) => Sixth): AttemptAsyncFlow<First, Sixth>;
5361
5446
  /**
5362
5447
  * Create an asynchronous _Flow_, a function that pipes values through a series of functions
5363
5448
  *
@@ -5365,7 +5450,7 @@ export declare function attemptAsyncFlow<First extends GenericCallback, Second,
5365
5450
  *
5366
5451
  * @returns _Flow_ function
5367
5452
  */
5368
- export declare function attemptAsyncFlow<First extends GenericCallback, Second, Third, Fourth, Fifth, Sixth, Seventh>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second, third: (value: Awaited<UnwrapValue<Second>>) => Third, fourth: (value: Awaited<UnwrapValue<Third>>) => Fourth, fifth: (value: Awaited<UnwrapValue<Fourth>>) => Fifth, sixth: (value: Awaited<UnwrapValue<Fifth>>) => Sixth, seventh: (value: Awaited<UnwrapValue<Sixth>>) => Seventh): AttemptFlowPromise<First, Seventh>;
5453
+ export declare function attemptAsyncFlow<First extends GenericCallback, Second, Third, Fourth, Fifth, Sixth, Seventh>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second, third: (value: Awaited<UnwrapValue<Second>>) => Third, fourth: (value: Awaited<UnwrapValue<Third>>) => Fourth, fifth: (value: Awaited<UnwrapValue<Fourth>>) => Fifth, sixth: (value: Awaited<UnwrapValue<Fifth>>) => Sixth, seventh: (value: Awaited<UnwrapValue<Sixth>>) => Seventh): AttemptAsyncFlow<First, Seventh>;
5369
5454
  /**
5370
5455
  * Create an asynchronous _Flow_, a function that pipes values through a series of functions
5371
5456
  *
@@ -5373,7 +5458,7 @@ export declare function attemptAsyncFlow<First extends GenericCallback, Second,
5373
5458
  *
5374
5459
  * @returns _Flow_ function
5375
5460
  */
5376
- export declare function attemptAsyncFlow<First extends GenericCallback, Second, Third, Fourth, Fifth, Sixth, Seventh, Eighth>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second, third: (value: Awaited<UnwrapValue<Second>>) => Third, fourth: (value: Awaited<UnwrapValue<Third>>) => Fourth, fifth: (value: Awaited<UnwrapValue<Fourth>>) => Fifth, sixth: (value: Awaited<UnwrapValue<Fifth>>) => Sixth, seventh: (value: Awaited<UnwrapValue<Sixth>>) => Seventh, eighth: (value: Awaited<UnwrapValue<Seventh>>) => Eighth): AttemptFlowPromise<First, Eighth>;
5461
+ export declare function attemptAsyncFlow<First extends GenericCallback, Second, Third, Fourth, Fifth, Sixth, Seventh, Eighth>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second, third: (value: Awaited<UnwrapValue<Second>>) => Third, fourth: (value: Awaited<UnwrapValue<Third>>) => Fourth, fifth: (value: Awaited<UnwrapValue<Fourth>>) => Fifth, sixth: (value: Awaited<UnwrapValue<Fifth>>) => Sixth, seventh: (value: Awaited<UnwrapValue<Sixth>>) => Seventh, eighth: (value: Awaited<UnwrapValue<Seventh>>) => Eighth): AttemptAsyncFlow<First, Eighth>;
5377
5462
  /**
5378
5463
  * Create an asynchronous _Flow_, a function that pipes values through a series of functions
5379
5464
  *
@@ -5381,7 +5466,7 @@ export declare function attemptAsyncFlow<First extends GenericCallback, Second,
5381
5466
  *
5382
5467
  * @returns _Flow_ function
5383
5468
  */
5384
- export declare function attemptAsyncFlow<First extends GenericCallback, Second, Third, Fourth, Fifth, Sixth, Seventh, Eighth, Ninth>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second, third: (value: Awaited<UnwrapValue<Second>>) => Third, fourth: (value: Awaited<UnwrapValue<Third>>) => Fourth, fifth: (value: Awaited<UnwrapValue<Fourth>>) => Fifth, sixth: (value: Awaited<UnwrapValue<Fifth>>) => Sixth, seventh: (value: Awaited<UnwrapValue<Sixth>>) => Seventh, eighth: (value: Awaited<UnwrapValue<Seventh>>) => Eighth, ninth: (value: Awaited<UnwrapValue<Eighth>>) => Ninth): AttemptFlowPromise<First, Ninth>;
5469
+ export declare function attemptAsyncFlow<First extends GenericCallback, Second, Third, Fourth, Fifth, Sixth, Seventh, Eighth, Ninth>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second, third: (value: Awaited<UnwrapValue<Second>>) => Third, fourth: (value: Awaited<UnwrapValue<Third>>) => Fourth, fifth: (value: Awaited<UnwrapValue<Fourth>>) => Fifth, sixth: (value: Awaited<UnwrapValue<Fifth>>) => Sixth, seventh: (value: Awaited<UnwrapValue<Sixth>>) => Seventh, eighth: (value: Awaited<UnwrapValue<Seventh>>) => Eighth, ninth: (value: Awaited<UnwrapValue<Eighth>>) => Ninth): AttemptAsyncFlow<First, Ninth>;
5385
5470
  /**
5386
5471
  * Create an asynchronous _Flow_, a function that pipes values through a series of functions
5387
5472
  *
@@ -5389,7 +5474,7 @@ export declare function attemptAsyncFlow<First extends GenericCallback, Second,
5389
5474
  *
5390
5475
  * @returns _Flow_ function
5391
5476
  */
5392
- export declare function attemptAsyncFlow<First extends GenericCallback, Second, Third, Fourth, Fifth, Sixth, Seventh, Eighth, Ninth, Tenth>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second, third: (value: Awaited<UnwrapValue<Second>>) => Third, fourth: (value: Awaited<UnwrapValue<Third>>) => Fourth, fifth: (value: Awaited<UnwrapValue<Fourth>>) => Fifth, sixth: (value: Awaited<UnwrapValue<Fifth>>) => Sixth, seventh: (value: Awaited<UnwrapValue<Sixth>>) => Seventh, eighth: (value: Awaited<UnwrapValue<Seventh>>) => Eighth, ninth: (value: Awaited<UnwrapValue<Eighth>>) => Ninth, tenth: (value: Awaited<UnwrapValue<Ninth>>) => Tenth): AttemptFlowPromise<First, Tenth>;
5477
+ export declare function attemptAsyncFlow<First extends GenericCallback, Second, Third, Fourth, Fifth, Sixth, Seventh, Eighth, Ninth, Tenth>(first: First, second: (value: Awaited<UnwrapValue<ReturnType<First>>>) => Second, third: (value: Awaited<UnwrapValue<Second>>) => Third, fourth: (value: Awaited<UnwrapValue<Third>>) => Fourth, fifth: (value: Awaited<UnwrapValue<Fourth>>) => Fifth, sixth: (value: Awaited<UnwrapValue<Fifth>>) => Sixth, seventh: (value: Awaited<UnwrapValue<Sixth>>) => Seventh, eighth: (value: Awaited<UnwrapValue<Seventh>>) => Eighth, ninth: (value: Awaited<UnwrapValue<Eighth>>) => Ninth, tenth: (value: Awaited<UnwrapValue<Ninth>>) => Tenth): AttemptAsyncFlow<First, Tenth>;
5393
5478
  /**
5394
5479
  * Create an asynchronous _Flow_, a function that pipes values through a series of functions
5395
5480
  *
@@ -5397,7 +5482,7 @@ export declare function attemptAsyncFlow<First extends GenericCallback, Second,
5397
5482
  *
5398
5483
  * @returns _Flow_ function
5399
5484
  */
5400
- export declare function attemptAsyncFlow<Fn extends GenericCallback>(fn: Fn, ...fns: Array<(value: Awaited<UnwrapValue<ReturnType<Fn>>>) => unknown>): AttemptFlowPromise<Fn, ReturnType<Fn>>;
5485
+ export declare function attemptAsyncFlow<Fn extends GenericCallback>(fn: Fn, ...fns: Array<(value: Awaited<UnwrapValue<ReturnType<Fn>>>) => unknown>): AttemptAsyncFlow<Fn, ReturnType<Fn>>;
5401
5486
  /**
5402
5487
  * Create an asynchronous _Flow_, a function that pipes values through a series of functions
5403
5488
  *
@@ -5664,11 +5749,11 @@ export declare namespace attemptPipe {
5664
5749
  export var async: typeof attemptAsyncPipe;
5665
5750
  }
5666
5751
  //#endregion
5667
- //#region src/string/fuzzy.d.ts
5752
+ //#region src/models/string/string.fuzzy.model.d.ts
5668
5753
  /**
5669
5754
  * Fuzzy searcher for an array of items
5670
5755
  */
5671
- export type Fuzzy<Item> = {
5756
+ type Fuzzy<Item> = {
5672
5757
  /**
5673
5758
  * Get items currently being searched through
5674
5759
  *
@@ -5704,7 +5789,7 @@ export type Fuzzy<Item> = {
5704
5789
  */
5705
5790
  search(value: string, limit: number): FuzzyResult<Item>;
5706
5791
  };
5707
- export type FuzzyConfiguration<Item> = {
5792
+ type FuzzyConfiguration<Item> = {
5708
5793
  /**
5709
5794
  * Handler to stringify items
5710
5795
  *
@@ -5720,7 +5805,11 @@ export type FuzzyConfiguration<Item> = {
5720
5805
  */
5721
5806
  key?: keyof Item;
5722
5807
  } : {}) & FuzzyOptions;
5723
- export type FuzzyOptions = {
5808
+ type FuzzyItem<Item> = {
5809
+ item: Item;
5810
+ haystack: string;
5811
+ };
5812
+ type FuzzyOptions = {
5724
5813
  /**
5725
5814
  * Maximum number of combined items to return in `exact` and `similar` _(defaults to all matches)_
5726
5815
  */
@@ -5736,7 +5825,7 @@ export type FuzzyOptions = {
5736
5825
  /**
5737
5826
  * Search results from a fuzzy search, with exact and similar matches
5738
5827
  */
5739
- export type FuzzyResult<Item> = {
5828
+ type FuzzyResult<Item> = {
5740
5829
  /**
5741
5830
  * Ordered items that exactly match the search value
5742
5831
  */
@@ -5746,10 +5835,16 @@ export type FuzzyResult<Item> = {
5746
5835
  */
5747
5836
  similar: Item[];
5748
5837
  };
5749
- /**
5750
- * Options for fuzzy searching
5751
- */
5752
- export type FuzzySearchOptions = FuzzyOptions;
5838
+ type FuzzyState<Item> = {
5839
+ handler(item: Item): string;
5840
+ items: Item[];
5841
+ limit?: number;
5842
+ strings: string[];
5843
+ tolerance: number;
5844
+ };
5845
+ //#endregion
5846
+ //#region src/string/fuzzy.d.ts
5847
+ declare function Fuzzy(this: any, state: FuzzyState<unknown>): void;
5753
5848
  /**
5754
5849
  * Create a fuzzy searcher for an array of items
5755
5850
  *
@@ -5879,11 +5974,11 @@ export declare function includes(haystack: string, needle: string, ignoreCase?:
5879
5974
  */
5880
5975
  export declare function startsWith(haystack: string, needle: string, ignoreCase?: boolean): boolean;
5881
5976
  //#endregion
5882
- //#region src/string/normalize.d.ts
5977
+ //#region src/models/string/string.normalize.model.d.ts
5883
5978
  /**
5884
5979
  * Options for normalizing a string
5885
5980
  */
5886
- export type NormalizeOptions = {
5981
+ type NormalizeOptions = {
5887
5982
  /**
5888
5983
  * Remove diacritical marks from the string? _(defaults to `true`)_
5889
5984
  */
@@ -5910,7 +6005,7 @@ export type NormalizeOptions = {
5910
6005
  /**
5911
6006
  * String normalizer function
5912
6007
  */
5913
- export type Normalizer = {
6008
+ type Normalizer = {
5914
6009
  /**
5915
6010
  * Normalize a string
5916
6011
  *
@@ -5919,6 +6014,10 @@ export type Normalizer = {
5919
6014
  */
5920
6015
  normalize(value: string): string;
5921
6016
  };
6017
+ type NormalizerOptions = Required<NormalizeOptions>;
6018
+ //#endregion
6019
+ //#region src/string/normalize.d.ts
6020
+ declare function Normalizer(this: any, options: NormalizerOptions): void;
5922
6021
  /**
5923
6022
  * Deburr a string, removing diacritical marks
5924
6023
  *
@@ -5949,7 +6048,7 @@ export declare namespace normalize {
5949
6048
  export var initialize: typeof initializeNormalizer;
5950
6049
  }
5951
6050
  //#endregion
5952
- //#region src/string/template.d.ts
6051
+ //#region src/models/string/string.template.model.d.ts
5953
6052
  /**
5954
6053
  * Renderer for a string template with variables
5955
6054
  *
@@ -5961,7 +6060,7 @@ type Renderer = (variables?: PlainObject, options?: Partial<TemplateOptions>) =>
5961
6060
  /**
5962
6061
  * Options for templating strings
5963
6062
  */
5964
- export type TemplateOptions = {
6063
+ type TemplateOptions = {
5965
6064
  /**
5966
6065
  * Ignore case when searching for variables?
5967
6066
  */
@@ -5987,10 +6086,14 @@ type Templater = {
5987
6086
  */
5988
6087
  render(value: string, variables?: PlainObject): string;
5989
6088
  };
6089
+ type TemplaterOptions = Required<TemplateOptions>;
5990
6090
  /**
5991
6091
  * Render a template string with variables
5992
6092
  */
5993
6093
  type TemplaterRenderer = (variables?: PlainObject) => string;
6094
+ //#endregion
6095
+ //#region src/string/template.d.ts
6096
+ declare function Templater(this: any, options: TemplaterOptions): void;
5994
6097
  /**
5995
6098
  * Create a _Templater_ with predefined options
5996
6099
  *
@@ -6019,8 +6122,8 @@ export declare namespace template {
6019
6122
  export var initialize: typeof initializeTemplater;
6020
6123
  }
6021
6124
  //#endregion
6022
- //#region src/value/clone.d.ts
6023
- export type CloneOptions = {
6125
+ //#region src/models/value/value.clone.model.d.ts
6126
+ type CloneOptions = {
6024
6127
  /**
6025
6128
  * Copy functions instead of returning `undefined`? _(defaults to `false`)_
6026
6129
  */
@@ -6033,7 +6136,7 @@ export type CloneOptions = {
6033
6136
  /**
6034
6137
  * A cloning function with predefined options
6035
6138
  */
6036
- export type Cloner = {
6139
+ type Cloner = {
6037
6140
  /**
6038
6141
  * Clone any kind of value
6039
6142
  *
@@ -6048,7 +6151,7 @@ export type Cloner = {
6048
6151
  *
6049
6152
  * @param constructor Class constructor
6050
6153
  */
6051
- deregister: typeof deregisterCloner;
6154
+ deregister<Instance>(constructor: Constructor<Instance>): void;
6052
6155
  /**
6053
6156
  * Register a clone handler for a specific class
6054
6157
  *
@@ -6057,8 +6160,11 @@ export type Cloner = {
6057
6160
  * @param constructor Class constructor
6058
6161
  * @param handler Method name or clone function _(defaults to method name `clone`)_
6059
6162
  */
6060
- register: typeof registerCloner;
6163
+ register<Instance>(constructor: Constructor<Instance>, handler?: string | ((value: Instance) => Instance)): void;
6061
6164
  };
6165
+ //#endregion
6166
+ //#region src/value/clone.d.ts
6167
+ declare function Cloner(this: any, options: Required<CloneOptions>): void;
6062
6168
  /**
6063
6169
  * Clone any kind of value _(deeply, if needed)_
6064
6170
  *
@@ -6137,11 +6243,11 @@ export declare function inMap<Key, Value>(map: Map<Key, Value>, value: Value, ke
6137
6243
  */
6138
6244
  export declare function inSet<Value>(set: Set<Value>, value: Value): boolean;
6139
6245
  //#endregion
6140
- //#region src/value/diff.d.ts
6246
+ //#region src/models/value/value.diff.model.d.ts
6141
6247
  /**
6142
6248
  * Options for value comparison
6143
6249
  */
6144
- export type DiffOptions = {
6250
+ type DiffOptions = {
6145
6251
  /**
6146
6252
  * Should `null` and `undefined` be considered equal and ignored in results?
6147
6253
  */
@@ -6150,7 +6256,7 @@ export type DiffOptions = {
6150
6256
  /**
6151
6257
  * The result of a comparison beteen two values
6152
6258
  */
6153
- export type DiffResult<First, Second = First> = {
6259
+ type DiffResult<First, Second = First> = {
6154
6260
  /**
6155
6261
  * The original values that were compared
6156
6262
  */
@@ -6171,7 +6277,7 @@ type DiffType = "full" | "none" | "partial";
6171
6277
  /**
6172
6278
  * The difference between two values
6173
6279
  */
6174
- export type DiffValue<First = unknown, Second = First> = {
6280
+ type DiffValue<First = unknown, Second = First> = {
6175
6281
  /**
6176
6282
  * The value from the first value
6177
6283
  */
@@ -6181,6 +6287,8 @@ export type DiffValue<First = unknown, Second = First> = {
6181
6287
  */
6182
6288
  to: Second;
6183
6289
  };
6290
+ //#endregion
6291
+ //#region src/value/diff.d.ts
6184
6292
  /**
6185
6293
  * Find the differences between two values
6186
6294
  *
@@ -6192,10 +6300,6 @@ export type DiffValue<First = unknown, Second = First> = {
6192
6300
  export declare function diff<First, Second = First>(first: First, second: Second, options?: DiffOptions): DiffResult<First, Second>;
6193
6301
  //#endregion
6194
6302
  //#region src/value/freeze.d.ts
6195
- /**
6196
- * A frozen value with readonly properties _(going as deep as possible)_
6197
- */
6198
- export type Frozen<Value> = Value extends unknown[] ? Readonly<Value> : Value extends PlainObject ? { readonly [Key in keyof Value]: Frozen<Value[Key]>; } : Value extends Map<infer Key, infer Value> ? ReadonlyMap<Key, Frozen<Value>> : Value extends Set<infer Item> ? ReadonlySet<Frozen<Item>> : Readonly<Value>;
6199
6303
  /**
6200
6304
  * Freeze an array and its indiced values, but not any nested values
6201
6305
  *
@@ -6355,10 +6459,6 @@ export declare function omit<Value extends PlainObject, ValueKey extends keyof V
6355
6459
  export declare function pick<Value extends PlainObject, ValueKey extends keyof Value>(value: Value, keys: ValueKey[]): Pick<Value, ValueKey>;
6356
6460
  //#endregion
6357
6461
  //#region src/value/shake.d.ts
6358
- /**
6359
- * A shaken object, without any `undefined` values
6360
- */
6361
- type Shaken<Value extends PlainObject> = Simplify<{ [Key in keyof Value as undefined extends Value[Key] ? never : Key]: Value[Key]; } & { [Key in keyof Value as undefined extends Value[Key] ? [Value[Key]] extends [undefined] ? never : Key : never]?: Exclude<Value[Key], undefined>; }>;
6362
6462
  /**
6363
6463
  * Shake an object, removing all keys with `undefined` values
6364
6464
  *
@@ -6368,10 +6468,6 @@ type Shaken<Value extends PlainObject> = Simplify<{ [Key in keyof Value as undef
6368
6468
  export declare function shake<Value extends PlainObject>(value: Value): Shaken<Value>;
6369
6469
  //#endregion
6370
6470
  //#region src/value/smush.d.ts
6371
- /**
6372
- * A smushed object, with all nested objects flattened into a single level, using dot notation keys
6373
- */
6374
- type Smushed<Value extends PlainObject> = Simplify<{ [NestedKey in NestedKeys<Value>]: NestedValue<Value, ToString<NestedKey>>; }>;
6375
6471
  /**
6376
6472
  * Smush an object into a flat object that uses dot notation keys
6377
6473
  *
@@ -6381,14 +6477,6 @@ type Smushed<Value extends PlainObject> = Simplify<{ [NestedKey in NestedKeys<Va
6381
6477
  export declare function smush<Value extends PlainObject>(value: Value): Smushed<Value>;
6382
6478
  //#endregion
6383
6479
  //#region src/value/unsmush.d.ts
6384
- /**
6385
- * Thanks, type-fest!
6386
- */
6387
- type KeysOfUnion<ObjectType> = keyof UnionToIntersection<ObjectType extends unknown ? Record<keyof ObjectType, never> : never>;
6388
- /**
6389
- * An unsmushed object, with all dot notation keys turned into nested keys
6390
- */
6391
- type Unsmushed<Value extends PlainObject> = Simplify<Omit<{ [UnionKey in KeysOfUnion<Value>]: Value[UnionKey]; }, `${string}.${string}`>>;
6392
6480
  /**
6393
6481
  * Unsmush a smushed object _(turning dot notation keys into nested keys)_
6394
6482
  *
@@ -6397,32 +6485,12 @@ type Unsmushed<Value extends PlainObject> = Simplify<Omit<{ [UnionKey in KeysOfU
6397
6485
  */
6398
6486
  export declare function unsmush<Value extends PlainObject>(value: Value): Unsmushed<Value>;
6399
6487
  //#endregion
6400
- //#region src/value/merge.d.ts
6488
+ //#region src/models/value/value.merge.model.d.ts
6401
6489
  /**
6402
6490
  * Options for assigning values
6403
6491
  */
6404
- export type AssignOptions = Omit<MergeOptions, "assignValues">;
6405
- /**
6406
- * An assigner function for assigning values from one or more objects to the first one
6407
- */
6408
- export type Assigner = {
6409
- /**
6410
- * Assign values from one or more objects to the first one
6411
- *
6412
- * @param to Value to assign to
6413
- * @param from Values to assign
6414
- * @returns Assigned value
6415
- */
6416
- assign<To extends PlainObject, From extends PlainObject[]>(to: To, from: [...From]): To & UnionToIntersection<From[number]>;
6417
- };
6418
- /**
6419
- * Options for merging values
6420
- */
6421
- export type MergeOptions = {
6422
- /**
6423
- * Assign values to the first array or object instead of creating a new one?
6424
- */
6425
- assignValues?: boolean;
6492
+ type AssignOptions = BaseOptions;
6493
+ type BaseOptions = {
6426
6494
  /**
6427
6495
  * Key _(or key epxressions)_ for values that should be replaced
6428
6496
  *
@@ -6448,10 +6516,32 @@ export type MergeOptions = {
6448
6516
  */
6449
6517
  skipNullableInArrays?: boolean;
6450
6518
  };
6519
+ /**
6520
+ * An assigner function for assigning values from one or more objects to the first one
6521
+ */
6522
+ type Assigner = {
6523
+ /**
6524
+ * Assign values from one or more objects to the first one
6525
+ *
6526
+ * @param to Value to assign to
6527
+ * @param from Values to assign
6528
+ * @returns Assigned value
6529
+ */
6530
+ assign<To extends PlainObject, From extends PlainObject[]>(to: To, from: [...From]): To & UnionToIntersection<From[number]>;
6531
+ };
6532
+ /**
6533
+ * Options for merging values
6534
+ */
6535
+ type MergeOptions = {
6536
+ /**
6537
+ * Assign values to the first array or object instead of creating a new one?
6538
+ */
6539
+ assignValues?: boolean;
6540
+ };
6451
6541
  /**
6452
6542
  * A merger function for merging multiple arrays or objects into a single one
6453
6543
  */
6454
- export type Merger = {
6544
+ type Merger = {
6455
6545
  /**
6456
6546
  * Merge multiple arrays or objects into a single one
6457
6547
  *
@@ -6460,6 +6550,17 @@ export type Merger = {
6460
6550
  */
6461
6551
  merge<Values extends ArrayOrPlainObject[]>(values: Array<NestedPartial<Values[number]>>): UnionToIntersection<Values[number]>;
6462
6552
  };
6553
+ type MergeReplaceableObjectsCallback = (name: string) => boolean;
6554
+ type MergingOptions = {
6555
+ assignValues: boolean;
6556
+ replaceableObjects: MergeReplaceableObjectsCallback | undefined;
6557
+ skipNullableAny: boolean;
6558
+ skipNullableInArrays: boolean;
6559
+ };
6560
+ //#endregion
6561
+ //#region src/value/merge.d.ts
6562
+ declare function Assigner(this: any, options: MergingOptions): void;
6563
+ declare function Merger(this: any, options: MergingOptions): void;
6463
6564
  /**
6464
6565
  * Assign values from one or more objects to the first one
6465
6566
  *
@@ -6502,7 +6603,7 @@ export declare namespace merge {
6502
6603
  export var initialize: typeof initializeMerger;
6503
6604
  }
6504
6605
  //#endregion
6505
- //#region src/value/transform.d.ts
6606
+ //#region src/models/value/value.transform.model.d.ts
6506
6607
  /**
6507
6608
  * A callback transform an object's properties
6508
6609
  */
@@ -6511,18 +6612,11 @@ type TransformCallback<Value extends PlainObject, Key extends keyof Value> = (ke
6511
6612
  * A collection of keyed callbacks to transform an object's properties
6512
6613
  */
6513
6614
  type TransformCallbacks<Value extends PlainObject> = Partial<{ [Key in keyof Value]: (value: Value[Key]) => Value[Key]; }>;
6514
- /**
6515
- * A transformer for an object, with predefined callbacks for transforming its properties
6516
- */
6517
- export type Transformer<Value extends PlainObject> = {
6518
- /**
6519
- * Transform an object's properties
6520
- *
6521
- * @param value Object to transform
6522
- * @returns Transformed object
6523
- */
6524
- transform(value: Value): Value;
6525
- };
6615
+ type TransformHandler<Value extends PlainObject> = TransformCallback<Value, keyof Value> | TransformCallbacks<Value>;
6616
+ //#endregion
6617
+ //#region src/value/transform.d.ts
6618
+ declare function Transformer(this: any, transformer: ReturnType<typeof getTransformHandler>): void;
6619
+ declare function getTransformHandler<Value extends PlainObject, Key extends keyof Value>(input: unknown): TransformHandler<Value> | undefined;
6526
6620
  /**
6527
6621
  * Initialize a transformer for an object with a transformer function
6528
6622
  *
@@ -6561,7 +6655,7 @@ export declare namespace transform {
6561
6655
  export var initialize: typeof initializeTransformer;
6562
6656
  }
6563
6657
  //#endregion
6564
- //#region src/internal/subscription.d.ts
6658
+ //#region src/models/subscription.model.d.ts
6565
6659
  type Subscription = {
6566
6660
  /**
6567
6661
  * Is the subscription active?
@@ -6660,33 +6754,12 @@ type SubscriptionsValuesItem<MapKey, MapValue> = {
6660
6754
  any: Map<MapKey, MapValue>;
6661
6755
  keyed?: Map<Key$1, Map<MapKey, MapValue>>;
6662
6756
  };
6663
- /**
6664
- * Is the value a subscription?
6665
- *
6666
- * @param value Value to check
6667
- * @returns `true` if the value is a subscription, otherwise `false`
6668
- */
6669
- export declare function isSubscription(value: unknown): value is Subscription;
6670
- /**
6671
- * Is the value a subscriptions store?
6672
- *
6673
- * @param value Value to check
6674
- * @returns `true` if the value is a subscriptions store, otherwise `false`
6675
- */
6676
- export declare function isSubscriptions(value: unknown): value is Subscriptions;
6677
- /**
6678
- * Create a subscription store
6679
- *
6680
- * @param parameters Store parameters
6681
- * @returns Subscription store
6682
- */
6683
- export declare function subscriptions<Value = unknown>(parameters?: SubscriptionsParameters): Subscriptions<Value>;
6684
6757
  //#endregion
6685
- //#region src/beacon.d.ts
6758
+ //#region src/models/beacon.model.d.ts
6686
6759
  /**
6687
6760
  * A beacon is a lighthouse, holding an observable value that can be subscribed to and emitted from
6688
6761
  */
6689
- export type Beacon<Value> = {
6762
+ type Beacon<Value> = {
6690
6763
  /**
6691
6764
  * Is the beacon active?
6692
6765
  */
@@ -6722,7 +6795,7 @@ export type Beacon<Value> = {
6722
6795
  */
6723
6796
  finish(): void;
6724
6797
  };
6725
- export type BeaconOptions<Value> = {
6798
+ type BeaconOptions<Value> = {
6726
6799
  /**
6727
6800
  * Method for comparing values for equality
6728
6801
  *
@@ -6733,7 +6806,14 @@ export type BeaconOptions<Value> = {
6733
6806
  */
6734
6807
  equal?: (first: Value, second: Value) => boolean;
6735
6808
  };
6736
- export type Observable<Value> = {
6809
+ type BeaconState<Value> = {
6810
+ active: boolean;
6811
+ observable?: Observable<Value>;
6812
+ options: Required<BeaconOptions<Value>>;
6813
+ subscriptions?: Subscriptions<Observer<unknown>>;
6814
+ value: Value;
6815
+ };
6816
+ type Observable<Value> = {
6737
6817
  /**
6738
6818
  * Is the observable active?
6739
6819
  */
@@ -6773,6 +6853,33 @@ type Observer<Value> = {
6773
6853
  */
6774
6854
  next?: (value: Value) => void;
6775
6855
  };
6856
+ //#endregion
6857
+ //#region src/internal/subscription.d.ts
6858
+ /**
6859
+ * Is the value a subscription?
6860
+ *
6861
+ * @param value Value to check
6862
+ * @returns `true` if the value is a subscription, otherwise `false`
6863
+ */
6864
+ export declare function isSubscription(value: unknown): value is Subscription;
6865
+ /**
6866
+ * Is the value a subscriptions store?
6867
+ *
6868
+ * @param value Value to check
6869
+ * @returns `true` if the value is a subscriptions store, otherwise `false`
6870
+ */
6871
+ export declare function isSubscriptions(value: unknown): value is Subscriptions;
6872
+ /**
6873
+ * Create a subscription store
6874
+ *
6875
+ * @param parameters Store parameters
6876
+ * @returns Subscription store
6877
+ */
6878
+ export declare function subscriptions<Value = unknown>(parameters?: SubscriptionsParameters): Subscriptions<Value>;
6879
+ //#endregion
6880
+ //#region src/beacon.d.ts
6881
+ declare function Beacon(this: any, value: unknown, options?: BeaconOptions<unknown>): void;
6882
+ declare function Observable(this: any, beacon: BeaconState<unknown>): void;
6776
6883
  /**
6777
6884
  * Create a new beacon
6778
6885
  *
@@ -6803,7 +6910,7 @@ export declare function isBeaconSubscription(value: unknown): value is Subscript
6803
6910
  */
6804
6911
  export declare function isObservable<Value = unknown>(value: unknown): value is Observable<Value>;
6805
6912
  //#endregion
6806
- //#region src/internal/models/herald.model.d.ts
6913
+ //#region src/models/herald.model.d.ts
6807
6914
  type Herald<Events extends Record<string, GenericCallback>> = {
6808
6915
  readonly events: HeraldEvents<Events>;
6809
6916
  /**
@@ -6842,7 +6949,7 @@ type HeraldOptions<Events extends Record<string, GenericCallback>> = {
6842
6949
  onCreate?: HeraldOnCreate<Events>;
6843
6950
  };
6844
6951
  //#endregion
6845
- //#region src/color/models.d.ts
6952
+ //#region src/models/color.model.d.ts
6846
6953
  /**
6847
6954
  * A color that is represented in multiple color formats
6848
6955
  */
@@ -7765,8 +7872,8 @@ export declare function isNumerical(value: unknown): value is number | `${number
7765
7872
  */
7766
7873
  export declare function isObject(value: unknown): value is object;
7767
7874
  //#endregion
7768
- //#region src/logger.d.ts
7769
- type Logger = {
7875
+ //#region src/models/logger.model.d.ts
7876
+ type Lumberjack = {
7770
7877
  /**
7771
7878
  * Log any number of values at the "debug" log level
7772
7879
  */
@@ -7834,15 +7941,17 @@ type TimeLogger = {
7834
7941
  */
7835
7942
  get stop(): () => void;
7836
7943
  };
7944
+ //#endregion
7945
+ //#region src/logger.d.ts
7837
7946
  declare function TimeLogger(this: any, label: string): void;
7838
- declare function isLogger(value: unknown): value is Logger;
7947
+ declare function isLogger(value: unknown): value is Lumberjack;
7839
7948
  declare function isTimeLogger(value: unknown): value is TimeLogger;
7840
7949
  /**
7841
7950
  * A logger that can be used to log messages to the console
7842
7951
  *
7843
7952
  * _(Logging can be enabled or disabled by setting the `enabled` property)_
7844
7953
  */
7845
- declare const Logger: Logger;
7954
+ declare const Logger: Lumberjack;
7846
7955
  //#endregion
7847
7956
  //#region src/internal/math/aggregate.d.ts
7848
7957
  /**
@@ -8148,11 +8257,11 @@ export declare function fromQuery(query: string): PlainObject;
8148
8257
  */
8149
8258
  export declare function toQuery(parameters: PlainObject): string;
8150
8259
  //#endregion
8151
- //#region src/queue.d.ts
8260
+ //#region src/models/queue.model.d.ts
8152
8261
  /**
8153
8262
  * A queue that can be used to manage (a)synchronous tasks with a specific key
8154
8263
  */
8155
- export type KeyedQueue<Callback extends GenericCallback | GenericAsyncCallback, CallbackParameters extends unknown[] = Parameters<Callback>> = {
8264
+ type KeyedQueue<Callback extends GenericCallback | GenericAsyncCallback, CallbackParameters extends unknown[] = Parameters<Callback>> = {
8156
8265
  /**
8157
8266
  * Get keys of all active queues
8158
8267
  */
@@ -8250,7 +8359,7 @@ export type KeyedQueue<Callback extends GenericCallback | GenericAsyncCallback,
8250
8359
  /**
8251
8360
  * A queue that can be used to manage (a)synchronous tasks
8252
8361
  */
8253
- export type Queue<Callback extends GenericCallback | GenericAsyncCallback, CallbackParameters extends unknown[] = Parameters<Callback>> = {
8362
+ type Queue<Callback extends GenericCallback | GenericAsyncCallback, CallbackParameters extends unknown[] = Parameters<Callback>> = {
8254
8363
  /**
8255
8364
  * Is the queue active?
8256
8365
  */
@@ -8313,13 +8422,7 @@ export type Queue<Callback extends GenericCallback | GenericAsyncCallback, Callb
8313
8422
  */
8314
8423
  resume(): void;
8315
8424
  };
8316
- /**
8317
- * An error thrown by the Queue when an operation fails
8318
- */
8319
- export declare class QueueError extends Error {
8320
- constructor(message: string);
8321
- }
8322
- export type QueueOptions = {
8425
+ type QueueOptions = {
8323
8426
  /**
8324
8427
  * Automatically start processing the queue when the first item is added _(defaults to `true`)_
8325
8428
  */
@@ -8336,7 +8439,7 @@ export type QueueOptions = {
8336
8439
  /**
8337
8440
  * A queued item
8338
8441
  */
8339
- export type Queued<Value> = {
8442
+ type Queued<Value> = {
8340
8443
  /**
8341
8444
  * ID of the queued item _(can be used to remove it from the queue)_
8342
8445
  */
@@ -8347,6 +8450,10 @@ export type Queued<Value> = {
8347
8450
  readonly promise: Promise<Value extends Promise<infer Result> ? Result : Value>;
8348
8451
  };
8349
8452
  type Tail<Values extends any[]> = Values extends [infer _, ...infer Rest] ? Rest : never;
8453
+ //#endregion
8454
+ //#region src/queue.d.ts
8455
+ declare function KeyedQueue(this: any, callback: GenericAsyncCallback, options: Required<QueueOptions>): void;
8456
+ declare function Queue(this: any, callback: GenericAsyncCallback, options: Required<QueueOptions>, key?: string): void;
8350
8457
  /**
8351
8458
  * Is the value keyed queue?
8352
8459
  *
@@ -8518,4 +8625,4 @@ export declare class SizedSet<Value = unknown> extends Set<Value> {
8518
8625
  get(value: Value, update?: boolean): Value | undefined;
8519
8626
  }
8520
8627
  //#endregion
8521
- export { type AsyncLimiter, type AsyncPlan, type Color, type ColorType, type ColorTypeExtended, type ColorValue, type ColorValueExtended, type HSLAColor, type HSLColor, type HWBAColor, type HWBColor, type Herald, type HeraldEvents, Key$1 as Key, type Limiter, Logger, type Plan, type RGBAColor, type RGBColor, type Shaken, type Smushed, type Subscription, type SubscriptionParameters, type SubscriptionProperty, type Subscriptions, type SubscriptionsParameters, type TimeLogger, type Unsmushed, push as append, filterAndMap as select, toPromise as fromResult, getRandomFloatingNumber as getRandomFloat, isLogger, isTimeLogger, mapAndFilter as reverseSelect };
8628
+ export { type ArrayComparisonSorter, type ArrayKeySorter, type ArrayKeySorters, type ArraySorter, type ArraySorters, type ArrayValueSorter, type Asserter, type AssignOptions, type Assigner, type AsyncFlow, type AsyncLimiter, type AsyncOnce, type AsyncPlan, type Beacon, type BeaconOptions, type CloneOptions, type Cloner, type Color, type ColorType, type ColorTypeExtended, type ColorValue, type ColorValueExtended, type CompareCallback, type ComparisonSorter, type DiffOptions, type DiffResult, type EqualOptions, type Equalizer, type Flow, type FulfilledPromise, type Fuzzy, type FuzzyItem, type FuzzyOptions, type FuzzyResult, type HSLAColor, type HSLColor, type HWBAColor, type HWBColor, type Herald, type HeraldEvents, type HeraldOptions, Key$1 as Key, type KeyedQueue, type Limiter, Logger, type Memoized, type MemoizedOptions, type MergeOptions, type Merger, type NormalizeOptions, type Normalizer, type Observable, type Observer, type Once, type Plan, type PromiseOptions, type PromiseStrategy, type PromisesOptions, type Queue, type QueueOptions, type Queued, type RGBAColor, type RGBColor, type RejectedPromise, type Renderer, type Shaken, type Smushed, type SortDirection, type Sorter, type Subscription, type SubscriptionParameters, type SubscriptionProperty, type Subscriptions, type SubscriptionsParameters, type TemplateOptions, type Templater, type TemplaterOptions, type TemplaterRenderer, type TimeLogger, type TransformCallback, type TransformCallbacks, type Transformer, type Unsmushed, push as append, filterAndMap as select, toPromise as fromResult, getRandomFloatingNumber as getRandomFloat, isLogger, isTimeLogger, mapAndFilter as reverseSelect };