@satoshibits/functional 1.0.3 → 1.1.2

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 (134) hide show
  1. package/README.md +28 -145
  2. package/dist/array-utils.d.mts +13 -0
  3. package/dist/array-utils.d.mts.map +1 -1
  4. package/dist/array-utils.mjs +19 -3
  5. package/dist/array-utils.mjs.map +1 -1
  6. package/dist/array-utils.test.d.ts +2 -0
  7. package/dist/array-utils.test.d.ts.map +1 -0
  8. package/dist/array-utils.test.js +256 -0
  9. package/dist/array-utils.test.js.map +1 -0
  10. package/dist/composition.d.mts +53 -6
  11. package/dist/composition.d.mts.map +1 -1
  12. package/dist/composition.mjs +111 -22
  13. package/dist/composition.mjs.map +1 -1
  14. package/dist/composition.test.d.ts +2 -0
  15. package/dist/composition.test.d.ts.map +1 -0
  16. package/dist/composition.test.js +409 -0
  17. package/dist/composition.test.js.map +1 -0
  18. package/dist/index.d.mts +10 -5
  19. package/dist/index.d.mts.map +1 -1
  20. package/dist/index.mjs +10 -5
  21. package/dist/index.mjs.map +1 -1
  22. package/dist/integration.test.d.mts +2 -0
  23. package/dist/integration.test.d.mts.map +1 -0
  24. package/dist/integration.test.mjs +486 -0
  25. package/dist/integration.test.mjs.map +1 -0
  26. package/dist/io.d.mts +338 -0
  27. package/dist/io.d.mts.map +1 -0
  28. package/dist/io.mjs +389 -0
  29. package/dist/io.mjs.map +1 -0
  30. package/dist/io.test.d.mts +2 -0
  31. package/dist/io.test.d.mts.map +1 -0
  32. package/dist/io.test.mjs +373 -0
  33. package/dist/io.test.mjs.map +1 -0
  34. package/dist/laws.test.d.mts +2 -0
  35. package/dist/laws.test.d.mts.map +1 -0
  36. package/dist/laws.test.mjs +614 -0
  37. package/dist/laws.test.mjs.map +1 -0
  38. package/dist/object-utils.d.mts +11 -0
  39. package/dist/object-utils.d.mts.map +1 -1
  40. package/dist/object-utils.mjs +11 -0
  41. package/dist/object-utils.mjs.map +1 -1
  42. package/dist/object-utils.test.d.ts +2 -0
  43. package/dist/object-utils.test.d.ts.map +1 -0
  44. package/dist/object-utils.test.js +286 -0
  45. package/dist/object-utils.test.js.map +1 -0
  46. package/dist/option-additions.test.d.mts +2 -0
  47. package/dist/option-additions.test.d.mts.map +1 -0
  48. package/dist/option-additions.test.mjs +325 -0
  49. package/dist/option-additions.test.mjs.map +1 -0
  50. package/dist/option.d.mts +202 -58
  51. package/dist/option.d.mts.map +1 -1
  52. package/dist/option.mjs +271 -63
  53. package/dist/option.mjs.map +1 -1
  54. package/dist/option.test.d.ts +6 -0
  55. package/dist/option.test.d.ts.map +1 -0
  56. package/dist/option.test.js +606 -0
  57. package/dist/option.test.js.map +1 -0
  58. package/dist/performance.d.mts +27 -10
  59. package/dist/performance.d.mts.map +1 -1
  60. package/dist/performance.mjs +42 -20
  61. package/dist/performance.mjs.map +1 -1
  62. package/dist/performance.test.d.ts +2 -0
  63. package/dist/performance.test.d.ts.map +1 -0
  64. package/dist/performance.test.js +424 -0
  65. package/dist/performance.test.js.map +1 -0
  66. package/dist/pipeline.d.mts +12 -0
  67. package/dist/pipeline.d.mts.map +1 -1
  68. package/dist/pipeline.mjs +12 -0
  69. package/dist/pipeline.mjs.map +1 -1
  70. package/dist/pipeline.test.d.ts +2 -0
  71. package/dist/pipeline.test.d.ts.map +1 -0
  72. package/dist/pipeline.test.js +445 -0
  73. package/dist/pipeline.test.js.map +1 -0
  74. package/dist/predicates.d.mts +12 -0
  75. package/dist/predicates.d.mts.map +1 -1
  76. package/dist/predicates.mjs +12 -0
  77. package/dist/predicates.mjs.map +1 -1
  78. package/dist/predicates.test.d.ts +2 -0
  79. package/dist/predicates.test.d.ts.map +1 -0
  80. package/dist/predicates.test.js +375 -0
  81. package/dist/predicates.test.js.map +1 -0
  82. package/dist/reader-result.d.mts +37 -16
  83. package/dist/reader-result.d.mts.map +1 -1
  84. package/dist/reader-result.mjs +37 -16
  85. package/dist/reader-result.mjs.map +1 -1
  86. package/dist/reader-result.test.d.ts +2 -0
  87. package/dist/reader-result.test.d.ts.map +1 -0
  88. package/dist/reader-result.test.js +1259 -0
  89. package/dist/reader-result.test.js.map +1 -0
  90. package/dist/reader.d.mts +443 -0
  91. package/dist/reader.d.mts.map +1 -0
  92. package/dist/reader.mjs +456 -0
  93. package/dist/reader.mjs.map +1 -0
  94. package/dist/reader.test.d.mts +2 -0
  95. package/dist/reader.test.d.mts.map +1 -0
  96. package/dist/reader.test.mjs +288 -0
  97. package/dist/reader.test.mjs.map +1 -0
  98. package/dist/result-additions.test.d.mts +2 -0
  99. package/dist/result-additions.test.d.mts.map +1 -0
  100. package/dist/result-additions.test.mjs +325 -0
  101. package/dist/result-additions.test.mjs.map +1 -0
  102. package/dist/result.d.mts +208 -0
  103. package/dist/result.d.mts.map +1 -1
  104. package/dist/result.mjs +287 -0
  105. package/dist/result.mjs.map +1 -1
  106. package/dist/result.test.d.ts +2 -0
  107. package/dist/result.test.d.ts.map +1 -0
  108. package/dist/result.test.js +453 -0
  109. package/dist/result.test.js.map +1 -0
  110. package/dist/task.d.mts +374 -0
  111. package/dist/task.d.mts.map +1 -0
  112. package/dist/task.mjs +386 -0
  113. package/dist/task.mjs.map +1 -0
  114. package/dist/task.test.d.mts +2 -0
  115. package/dist/task.test.d.mts.map +1 -0
  116. package/dist/task.test.mjs +1006 -0
  117. package/dist/task.test.mjs.map +1 -0
  118. package/dist/types.d.mts +12 -0
  119. package/dist/types.d.mts.map +1 -1
  120. package/dist/types.mjs +12 -0
  121. package/dist/types.mjs.map +1 -1
  122. package/dist/types.test.d.ts +6 -0
  123. package/dist/types.test.d.ts.map +1 -0
  124. package/dist/types.test.js +447 -0
  125. package/dist/types.test.js.map +1 -0
  126. package/dist/validation.d.mts +12 -0
  127. package/dist/validation.d.mts.map +1 -1
  128. package/dist/validation.mjs +22 -4
  129. package/dist/validation.mjs.map +1 -1
  130. package/dist/validation.test.d.ts +2 -0
  131. package/dist/validation.test.d.ts.map +1 -0
  132. package/dist/validation.test.js +518 -0
  133. package/dist/validation.test.js.map +1 -0
  134. package/package.json +77 -13
@@ -5,6 +5,19 @@
5
5
  * for pipelines of any length. All functions follow functional programming principles,
6
6
  * supporting both synchronous and asynchronous composition patterns.
7
7
  *
8
+ * ### For Dummies
9
+ * - Treat these helpers as Lego roads for wiring tiny functions together without writing loops.
10
+ * - `pipe` runs a list of functions on a starting value, `flow` builds the list first and reuses it later.
11
+ * - `compose` is just `flow` read from right to left; `tap` lets you peek without changing the value.
12
+ * - Async variants like `pipeAsync` do the same thing but wait for promises at every hop.
13
+ *
14
+ * ### Decision Tree
15
+ * - Already holding the starting value? Use `pipe(value, step1, step2, ...)`.
16
+ * - Need a reusable function to call many times? Use `flow(step1, step2, ...)`.
17
+ * - Prefer mathematical right-to-left order? Reach for `compose(last, ..., first)`.
18
+ * - Want to debug without altering data? Insert `tap(logFn)` inside the pipeline.
19
+ * - Need to await each step? Use `pipeAsync(step1, step2, ...)` and call the returned async function.
20
+ *
8
21
  * @example
9
22
  * ```typescript
10
23
  * import { pipe, flow, compose, tap, pipeAsync } from './composition.mts';
@@ -406,6 +419,28 @@ export declare const flip: <A, B, C>(fn: (a: A, b: B) => C) => (b: B, a: A) => C
406
419
  * Memoization - caches function results based on arguments.
407
420
  * Improves performance for expensive pure functions by storing previously computed results.
408
421
  *
422
+ * @description
423
+ * Creates a memoized version of a function that caches results based on arguments.
424
+ * - Uses WeakMap for object/function arguments, enabling proper garbage collection
425
+ * - Handles circular references safely by using object identity, not structure
426
+ * - Creates a trie-like cache structure for multiple arguments
427
+ *
428
+ * @template Args - The argument types of the function
429
+ * @template Return - The return type of the function
430
+ * @param {Function} fn - The function to memoize
431
+ * @param {Function} [getKey] - Optional function to generate a cache key from arguments
432
+ *
433
+ * @warning **Cache Growth Considerations:**
434
+ * - Without `getKey`: Primitive arguments create unbounded cache growth.
435
+ * Each unique combination of primitives creates a permanent cache entry.
436
+ * - With `getKey`: If the key function returns objects, they're held with
437
+ * strong references and won't be garbage collected while cached.
438
+ *
439
+ * For applications requiring cache bounds or eviction policies, consider:
440
+ * - Using `getKey` to control cache keys
441
+ * - Implementing a wrapper with cache management
442
+ * - Using specialized memoization libraries with LRU or TTL support
443
+ *
409
444
  * @category Performance
410
445
  * @example
411
446
  * // Memoize expensive calculations
@@ -426,10 +461,21 @@ export declare const flip: <A, B, C>(fn: (a: A, b: B) => C) => (b: B, a: A) => C
426
461
  * ? { ...user, details: await fetchUserDetails(userId) }
427
462
  * : user;
428
463
  * },
429
- * (userId, options) => `${userId}-${options.includeDetails}`
464
+ * (userId, options) => `${userId}-${options.includeDetails}` // Returns primitive key
430
465
  * );
431
466
  *
432
467
  * @example
468
+ * // Safe with circular references
469
+ * const obj: any = { value: 1 };
470
+ * obj.self = obj; // Circular reference
471
+ *
472
+ * const process = memoize((item: any) => {
473
+ * return item.value * 2;
474
+ * });
475
+ *
476
+ * process(obj); // Works correctly, uses object identity for caching
477
+ *
478
+ * @example
433
479
  * // Memoizing API calls
434
480
  * const fetchProductData = memoize(async (productId: string) => {
435
481
  * const response = await fetch(`/api/products/${productId}`);
@@ -441,8 +487,9 @@ export declare const flip: <A, B, C>(fn: (a: A, b: B) => C) => (b: B, a: A) => C
441
487
  * await fetchProductData('123'); // Returns cached result
442
488
  *
443
489
  * @see identity - For functions that don't need memoization
490
+ * @since 2025-07-03
444
491
  */
445
- export declare const memoize: <Args extends unknown[], Return>(fn: (...args: Args) => Return, getKey?: (...args: Args) => string) => ((...args: Args) => Return);
492
+ export declare const memoize: <Args extends unknown[], Return>(fn: (...args: Args) => Return, getKey?: (...args: Args) => unknown) => ((...args: Args) => Return);
446
493
  /**
447
494
  * Compose async functions from right to left.
448
495
  * Allows composition of Promise-returning functions in mathematical order.
@@ -573,7 +620,7 @@ export declare function pipeAsync<A, B, C, D, E, F>(f1: (a: A) => Promise<B>, f2
573
620
  * async () => startServer()
574
621
  * ];
575
622
  *
576
- * const results = await sequence(initSteps);
623
+ * const results = await sequenceAsync(initSteps);
577
624
  * // All steps completed in order
578
625
  *
579
626
  * @example
@@ -582,12 +629,12 @@ export declare function pipeAsync<A, B, C, D, E, F>(f1: (a: A) => Promise<B>, f2
582
629
  * async () => fetchUserData(id)
583
630
  * );
584
631
  *
585
- * const allUserData = await sequence(fetchOperations);
632
+ * const allUserData = await sequenceAsync(fetchOperations);
586
633
  * // Fetches users one by one, not in parallel
587
634
  *
588
635
  * @example
589
636
  * // Cleanup operations
590
- * const cleanup = sequence([
637
+ * const cleanup = sequenceAsync([
591
638
  * async () => closeConnections(),
592
639
  * async () => flushCache(),
593
640
  * async () => logShutdown()
@@ -599,5 +646,5 @@ export declare function pipeAsync<A, B, C, D, E, F>(f1: (a: A) => Promise<B>, f2
599
646
  * @see pipeAsync - For composing async functions
600
647
  * @since 2025-07-03
601
648
  */
602
- export declare const sequence: <T>(fns: (() => Promise<T>)[]) => Promise<T[]>;
649
+ export declare const sequenceAsync: <T>(fns: (() => Promise<T>)[]) => Promise<T[]>;
603
650
  //# sourceMappingURL=composition.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"composition.d.mts","sourceRoot":"","sources":["../src/composition.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"composition.d.mts","sourceRoot":"","sources":["../src/composition.mts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;AAErC,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAE1D,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAE/E,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC7B,KAAK,EAAE,CAAC,EACR,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GACf,CAAC,CAAC;AAEL,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAChC,KAAK,EAAE,CAAC,EACR,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GACf,CAAC,CAAC;AAEL,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACnC,KAAK,EAAE,CAAC,EACR,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GACf,CAAC,CAAC;AAEL,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACtC,KAAK,EAAE,CAAC,EACR,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GACf,CAAC,CAAC;AASL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAC1D,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAC/E,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC7B,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GACf,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACf,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAChC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GACf,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACf,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACnC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GACf,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAEf,wBAAgB,IAAI,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,CAAC,EAC5C,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,GACxB,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC;AACxB,wBAAgB,IAAI,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAC/C,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,EACzB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GACf,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC;AACxB,wBAAgB,IAAI,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAClD,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,EACzB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GACf,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC;AAYxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,KAAM,CAAC,KAAG,CAAM,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,QAAQ,GAClB,CAAC,KAAM,CAAC,WACL,CACD,CAAC;AAEN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAC7D,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAC7B,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GACf,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACf,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAChC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GACf,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACf,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACnC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GACf,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAEf,wBAAgB,OAAO,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,CAAC,EAC/C,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,GACxB,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC;AACxB,wBAAgB,OAAO,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAClD,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,GACxB,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC;AACxB,wBAAgB,OAAO,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACrD,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,GACxB,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,CAAC;AAOxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,eAAO,MAAM,GAAG,GACb,CAAC,MAAO,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,SACnB,CAAC,KAAG,CAGP,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,KAAK,GACf,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,SAC3B,CAAC,SACD,CAAC,KAAG,CACE,CAAC;AAEb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,eAAO,MAAM,OAAO,GACjB,CAAC,SAAS,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,eAC3D,CAAC,KAAG,CACQ,CAAC;AAEzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,IAAI,GACd,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,SAC3B,CAAC,KAAK,CAAC,KAAG,CACJ,CAAC;AAEb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyEG;AACH,eAAO,MAAM,OAAO,GAAI,IAAI,SAAS,OAAO,EAAE,EAAE,MAAM,MAChD,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,WACpB,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,KAClC,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,CA6D5B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,EAC/B,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GACvB,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AACxB,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAClC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EACxB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GACvB,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AACxB,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACrC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EACxB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EACxB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GACvB,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AACxB,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACxC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EACxB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EACxB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EACxB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GACvB,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AACxB,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC3C,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EACxB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EACxB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EACxB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EACxB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GACvB,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAkBxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAChF,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAC/B,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EACxB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GACvB,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AACxB,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAClC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EACxB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EACxB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GACvB,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AACxB,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACrC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EACxB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EACxB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EACxB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GACvB,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AACxB,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACxC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EACxB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EACxB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EACxB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EACxB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GACvB,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAkBxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,OAAQ,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAG,OAAO,CAAC,CAAC,EAAE,CAQtE,CAAC"}
@@ -6,6 +6,19 @@
6
6
  * for pipelines of any length. All functions follow functional programming principles,
7
7
  * supporting both synchronous and asynchronous composition patterns.
8
8
  *
9
+ * ### For Dummies
10
+ * - Treat these helpers as Lego roads for wiring tiny functions together without writing loops.
11
+ * - `pipe` runs a list of functions on a starting value, `flow` builds the list first and reuses it later.
12
+ * - `compose` is just `flow` read from right to left; `tap` lets you peek without changing the value.
13
+ * - Async variants like `pipeAsync` do the same thing but wait for promises at every hop.
14
+ *
15
+ * ### Decision Tree
16
+ * - Already holding the starting value? Use `pipe(value, step1, step2, ...)`.
17
+ * - Need a reusable function to call many times? Use `flow(step1, step2, ...)`.
18
+ * - Prefer mathematical right-to-left order? Reach for `compose(last, ..., first)`.
19
+ * - Want to debug without altering data? Insert `tap(logFn)` inside the pipeline.
20
+ * - Need to await each step? Use `pipeAsync(step1, step2, ...)` and call the returned async function.
21
+ *
9
22
  * @example
10
23
  * ```typescript
11
24
  * import { pipe, flow, compose, tap, pipeAsync } from './composition.mts';
@@ -180,7 +193,11 @@ export var identity = function (x) { return x; };
180
193
  * @see identity - Return the input unchanged
181
194
  * @since 2025-07-03
182
195
  */
183
- export var constant = function (x) { return function () { return x; }; };
196
+ export var constant = function (x) {
197
+ return function () {
198
+ return x;
199
+ };
200
+ };
184
201
  export function compose() {
185
202
  var fns = [];
186
203
  for (var _i = 0; _i < arguments.length; _i++) {
@@ -233,10 +250,12 @@ export function compose() {
233
250
  * @see identity - Pass through without side effects
234
251
  * @since 2025-07-03
235
252
  */
236
- export var tap = function (fn) { return function (x) {
237
- fn(x);
238
- return x;
239
- }; };
253
+ export var tap = function (fn) {
254
+ return function (x) {
255
+ fn(x);
256
+ return x;
257
+ };
258
+ };
240
259
  /**
241
260
  * Currying utility - converts a function of multiple arguments into a sequence of functions.
242
261
  * Each function takes a single argument and returns another function until all arguments are provided.
@@ -361,6 +380,28 @@ export var flip = function (fn) {
361
380
  * Memoization - caches function results based on arguments.
362
381
  * Improves performance for expensive pure functions by storing previously computed results.
363
382
  *
383
+ * @description
384
+ * Creates a memoized version of a function that caches results based on arguments.
385
+ * - Uses WeakMap for object/function arguments, enabling proper garbage collection
386
+ * - Handles circular references safely by using object identity, not structure
387
+ * - Creates a trie-like cache structure for multiple arguments
388
+ *
389
+ * @template Args - The argument types of the function
390
+ * @template Return - The return type of the function
391
+ * @param {Function} fn - The function to memoize
392
+ * @param {Function} [getKey] - Optional function to generate a cache key from arguments
393
+ *
394
+ * @warning **Cache Growth Considerations:**
395
+ * - Without `getKey`: Primitive arguments create unbounded cache growth.
396
+ * Each unique combination of primitives creates a permanent cache entry.
397
+ * - With `getKey`: If the key function returns objects, they're held with
398
+ * strong references and won't be garbage collected while cached.
399
+ *
400
+ * For applications requiring cache bounds or eviction policies, consider:
401
+ * - Using `getKey` to control cache keys
402
+ * - Implementing a wrapper with cache management
403
+ * - Using specialized memoization libraries with LRU or TTL support
404
+ *
364
405
  * @category Performance
365
406
  * @example
366
407
  * // Memoize expensive calculations
@@ -381,10 +422,21 @@ export var flip = function (fn) {
381
422
  * ? { ...user, details: await fetchUserDetails(userId) }
382
423
  * : user;
383
424
  * },
384
- * (userId, options) => `${userId}-${options.includeDetails}`
425
+ * (userId, options) => `${userId}-${options.includeDetails}` // Returns primitive key
385
426
  * );
386
427
  *
387
428
  * @example
429
+ * // Safe with circular references
430
+ * const obj: any = { value: 1 };
431
+ * obj.self = obj; // Circular reference
432
+ *
433
+ * const process = memoize((item: any) => {
434
+ * return item.value * 2;
435
+ * });
436
+ *
437
+ * process(obj); // Works correctly, uses object identity for caching
438
+ *
439
+ * @example
388
440
  * // Memoizing API calls
389
441
  * const fetchProductData = memoize(async (productId: string) => {
390
442
  * const response = await fetch(`/api/products/${productId}`);
@@ -396,27 +448,64 @@ export var flip = function (fn) {
396
448
  * await fetchProductData('123'); // Returns cached result
397
449
  *
398
450
  * @see identity - For functions that don't need memoization
451
+ * @since 2025-07-03
399
452
  */
400
453
  export var memoize = function (fn, getKey) {
401
- var cache = new Map();
402
- var keyFn = getKey !== null && getKey !== void 0 ? getKey : (function () {
403
- var args = [];
404
- for (var _i = 0; _i < arguments.length; _i++) {
405
- args[_i] = arguments[_i];
406
- }
407
- return JSON.stringify(args);
408
- });
454
+ if (getKey) {
455
+ var keyedCache_1 = new Map();
456
+ return function () {
457
+ var args = [];
458
+ for (var _i = 0; _i < arguments.length; _i++) {
459
+ args[_i] = arguments[_i];
460
+ }
461
+ var key = getKey.apply(void 0, args);
462
+ if (keyedCache_1.has(key)) {
463
+ return keyedCache_1.get(key);
464
+ }
465
+ var result = fn.apply(void 0, args);
466
+ keyedCache_1.set(key, result);
467
+ return result;
468
+ };
469
+ }
470
+ var createNode = function () { return ({
471
+ primitiveChildren: new Map(),
472
+ objectChildren: new WeakMap(),
473
+ hasValue: false,
474
+ }); };
475
+ var root = createNode();
409
476
  return function () {
410
477
  var args = [];
411
478
  for (var _i = 0; _i < arguments.length; _i++) {
412
479
  args[_i] = arguments[_i];
413
480
  }
414
- var key = keyFn.apply(void 0, args);
415
- if (cache.has(key)) {
416
- return cache.get(key);
481
+ var node = root;
482
+ for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {
483
+ var arg = args_1[_a];
484
+ // Use WeakMap for objects and functions (garbage-collectible)
485
+ if ((typeof arg === "object" && arg !== null) || typeof arg === "function") {
486
+ var nextNode = node.objectChildren.get(arg);
487
+ if (!nextNode) {
488
+ nextNode = createNode();
489
+ node.objectChildren.set(arg, nextNode);
490
+ }
491
+ node = nextNode;
492
+ }
493
+ else {
494
+ // Use Map for primitives (permanent cache)
495
+ var nextNode = node.primitiveChildren.get(arg);
496
+ if (!nextNode) {
497
+ nextNode = createNode();
498
+ node.primitiveChildren.set(arg, nextNode);
499
+ }
500
+ node = nextNode;
501
+ }
502
+ }
503
+ if (node.hasValue) {
504
+ return node.value;
417
505
  }
418
506
  var result = fn.apply(void 0, args);
419
- cache.set(key, result);
507
+ node.hasValue = true;
508
+ node.value = result;
420
509
  return result;
421
510
  };
422
511
  };
@@ -471,7 +560,7 @@ export function pipeAsync() {
471
560
  * async () => startServer()
472
561
  * ];
473
562
  *
474
- * const results = await sequence(initSteps);
563
+ * const results = await sequenceAsync(initSteps);
475
564
  * // All steps completed in order
476
565
  *
477
566
  * @example
@@ -480,12 +569,12 @@ export function pipeAsync() {
480
569
  * async () => fetchUserData(id)
481
570
  * );
482
571
  *
483
- * const allUserData = await sequence(fetchOperations);
572
+ * const allUserData = await sequenceAsync(fetchOperations);
484
573
  * // Fetches users one by one, not in parallel
485
574
  *
486
575
  * @example
487
576
  * // Cleanup operations
488
- * const cleanup = sequence([
577
+ * const cleanup = sequenceAsync([
489
578
  * async () => closeConnections(),
490
579
  * async () => flushCache(),
491
580
  * async () => logShutdown()
@@ -497,7 +586,7 @@ export function pipeAsync() {
497
586
  * @see pipeAsync - For composing async functions
498
587
  * @since 2025-07-03
499
588
  */
500
- export var sequence = function (fns) {
589
+ export var sequenceAsync = function (fns) {
501
590
  return fns.reduce(function (promiseChain, currentFn) { return __awaiter(void 0, void 0, void 0, function () {
502
591
  var chainResults, currentResult;
503
592
  return __generator(this, function (_a) {
@@ -1 +1 @@
1
- {"version":3,"file":"composition.mjs","sourceRoot":"","sources":["../src/composition.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"composition.mjs","sourceRoot":"","sources":["../src/composition.mts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyFH,qEAAqE;AACrE,MAAM,UAAU,IAAI,CAClB,KAAc;IACd,aAAqC;SAArC,UAAqC,EAArC,qBAAqC,EAArC,IAAqC;QAArC,4BAAqC;;IAErC,OAAO,GAAG,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,EAAE,IAAK,OAAA,EAAE,CAAC,GAAG,CAAC,EAAP,CAAO,EAAE,KAAK,CAAC,CAAC;AACjD,CAAC;AAmFD,MAAM,UAAU,IAAI;IAAC,aAAqC;SAArC,UAAqC,EAArC,qBAAqC,EAArC,IAAqC;QAArC,wBAAqC;;IACxD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IACtC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;IAE7B,IAAA,OAAO,GAAgB,GAAG,GAAnB,EAAK,OAAO,GAAI,GAAG,SAAP,CAAQ;IAClC,OAAO;QAAC,cAAkB;aAAlB,UAAkB,EAAlB,qBAAkB,EAAlB,IAAkB;YAAlB,yBAAkB;;QACxB,IAAM,WAAW,GAAI,OAA2C,eAAI,IAAI,CAAC,CAAC;QAC1E,OAAO,OAAO,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,EAAE,IAAK,OAAA,EAAE,CAAC,GAAG,CAAC,EAAP,CAAO,EAAE,WAAW,CAAC,CAAC;IAC3D,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,CAAC,IAAM,QAAQ,GAAG,UAAK,CAAI,IAAQ,OAAA,CAAC,EAAD,CAAC,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAC,IAAM,QAAQ,GACnB,UAAK,CAAI;IACT,OAAA;QACE,OAAA,CAAC;IAAD,CAAC;AADH,CACG,CAAC;AA6DN,MAAM,UAAU,OAAO;IAAC,aAAqC;SAArC,UAAqC,EAArC,qBAAqC,EAArC,IAAqC;QAArC,wBAAqC;;IAC3D,2CAA2C;IAC3C,IAAM,WAAW,GAAG,kBAAI,GAAG,QAAE,OAAO,EAAE,CAAC;IACvC,OAAO,IAAI,eAAK,WAAuC,EAAE;AAC3D,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,MAAM,CAAC,IAAM,GAAG,GACd,UAAK,EAAkB;IACvB,OAAA,UAAC,CAAI;QACH,EAAE,CAAC,CAAC,CAAC,CAAC;QACN,OAAO,CAAC,CAAC;IACX,CAAC;AAHD,CAGC,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,CAAC,IAAM,KAAK,GAChB,UAAU,EAAqB;IAC/B,OAAA,UAAC,CAAI;QACL,OAAA,UAAC,CAAI;YACH,OAAA,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAAR,CAAQ;IADV,CACU;AAFV,CAEU,CAAC;AAEb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,CAAC,IAAM,OAAO,GAClB,UAA4B,EAA6B;IAAE,cAAU;SAAV,UAAU,EAAV,qBAAU,EAAV,IAAU;QAAV,6BAAU;;IACrE,OAAA,UAAC,OAAU;QACT,OAAA,EAAE,+CAAI,IAAI,WAAE,OAAO;IAAnB,CAAoB;AADtB,CACsB,CAAC;AAEzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,IAAM,IAAI,GACf,UAAU,EAAqB;IAC/B,OAAA,UAAC,CAAI,EAAE,CAAI;QACT,OAAA,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAAR,CAAQ;AADV,CACU,CAAC;AAEb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyEG;AACH,MAAM,CAAC,IAAM,OAAO,GAAG,UACrB,EAA6B,EAC7B,MAAmC;IAEnC,IAAI,MAAM,EAAE,CAAC;QACX,IAAM,YAAU,GAAG,IAAI,GAAG,EAAmB,CAAC;QAC9C,OAAO;YAAC,cAAa;iBAAb,UAAa,EAAb,qBAAa,EAAb,IAAa;gBAAb,yBAAa;;YACnB,IAAM,GAAG,GAAG,MAAM,eAAI,IAAI,CAAC,CAAC;YAC5B,IAAI,YAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,OAAO,YAAU,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;YAC9B,CAAC;YACD,IAAM,MAAM,GAAG,EAAE,eAAI,IAAI,CAAC,CAAC;YAC3B,YAAU,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC5B,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC;IASD,IAAM,UAAU,GAAG,cAAiB,OAAA,CAAC;QACnC,iBAAiB,EAAE,IAAI,GAAG,EAAE;QAC5B,cAAc,EAAE,IAAI,OAAO,EAAE;QAC7B,QAAQ,EAAE,KAAK;KAChB,CAAC,EAJkC,CAIlC,CAAC;IAEH,IAAM,IAAI,GAAG,UAAU,EAAE,CAAC;IAE1B,OAAO;QAAC,cAAa;aAAb,UAAa,EAAb,qBAAa,EAAb,IAAa;YAAb,yBAAa;;QACnB,IAAI,IAAI,GAAG,IAAI,CAAC;QAEhB,KAAkB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE,CAAC;YAApB,IAAM,GAAG,aAAA;YACZ,8DAA8D;YAC9D,IAAI,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE,CAAC;gBAC3E,IAAI,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,QAAQ,GAAG,UAAU,EAAE,CAAC;oBACxB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBACzC,CAAC;gBACD,IAAI,GAAG,QAAQ,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,2CAA2C;gBAC3C,IAAI,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,QAAQ,GAAG,UAAU,EAAE,CAAC;oBACxB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAC5C,CAAC;gBACD,IAAI,GAAG,QAAQ,CAAC;YAClB,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,KAAe,CAAC;QAC9B,CAAC;QAED,IAAM,MAAM,GAAG,EAAE,eAAI,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QACpB,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC,CAAC;AAuEF,MAAM,UAAU,YAAY;IAAC,aAA8C;SAA9C,UAA8C,EAA9C,qBAA8C,EAA9C,IAA8C;QAA9C,wBAA8C;;IACzE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,UAAC,CAAU,IAAK,OAAA,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAlB,CAAkB,CAAC;IAC5C,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC;IAED,OAAO,UAAC,OAAgB;QACtB,uCAAuC;QACvC,OAAO,GAAG,CAAC,WAAW,CACpB,UAAC,GAAG,EAAE,EAAE,IAAK,OAAA,GAAG,CAAC,IAAI,CAAC,UAAC,MAAM,IAAK,OAAA,EAAE,CAAC,MAAM,CAAC,EAAV,CAAU,CAAC,EAAhC,CAAgC,EAC7C,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CACzB,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAkFD,MAAM,UAAU,SAAS;IAAC,aAA8C;SAA9C,UAA8C,EAA9C,qBAA8C,EAA9C,IAA8C;QAA9C,wBAA8C;;IACtE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,UAAC,CAAU,IAAK,OAAA,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAlB,CAAkB,CAAC;IAC5C,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC;IAED,OAAO,UAAC,OAAgB;QACtB,uCAAuC;QACvC,OAAO,GAAG,CAAC,MAAM,CACf,UAAC,GAAG,EAAE,EAAE,IAAK,OAAA,GAAG,CAAC,IAAI,CAAC,UAAC,MAAM,IAAK,OAAA,EAAE,CAAC,MAAM,CAAC,EAAV,CAAU,CAAC,EAAhC,CAAgC,EAC7C,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CACzB,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAM,CAAC,IAAM,aAAa,GAAG,UAAK,GAAyB;IACzD,OAAA,GAAG,CAAC,MAAM,CACR,UAAO,YAAY,EAAE,SAAS;;;;wBACP,qBAAM,YAAY,EAAA;;oBAAjC,YAAY,GAAG,SAAkB;oBACjB,qBAAM,SAAS,EAAE,EAAA;;oBAAjC,aAAa,GAAG,SAAiB;oBACvC,sDAAW,YAAY,UAAE,aAAa,WAAE;;;SACzC,EACD,OAAO,CAAC,OAAO,CAAC,EAAS,CAAC,CAC3B;AAPD,CAOC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=composition.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composition.test.d.ts","sourceRoot":"","sources":["../src/composition.test.ts"],"names":[],"mappings":""}