@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
package/dist/option.d.mts CHANGED
@@ -5,6 +5,18 @@
5
5
  * Forces explicit handling of edge cases and eliminates null pointer exceptions.
6
6
  * Inspired by functional programming languages like Haskell and Rust.
7
7
  *
8
+ * ### For Dummies
9
+ * - An `Option` is either "Some value" or "None"—no surprises, no `null` pitfalls.
10
+ * - You poke at it with helper functions instead of checking for `null` everywhere.
11
+ * - When you finally need a real value, you decide how to handle the empty case explicitly.
12
+ *
13
+ * ### Decision Tree
14
+ * - Have a definite value? Wrap it with `Option.some(value)`.
15
+ * - Unsure if a value exists? Use `Option.fromNullable(maybeValue)`.
16
+ * - Transforming without changing emptiness? Use `Option.map(fn)`.
17
+ * - Need the next step to also be optional? Use `Option.flatMap(fnReturningOption)`.
18
+ * - Want a default? Call `Option.getOrElse(() => fallback)(option)` at the edge.
19
+ *
8
20
  * @example
9
21
  * ```typescript
10
22
  * import { Option, some, none, fromNullable, map, getOrElse } from './option.mts';
@@ -55,7 +67,7 @@ export type Option<T> = Some<T> | None;
55
67
  * @since 2025-07-03
56
68
  */
57
69
  export interface Some<T> {
58
- readonly _tag: 'Some';
70
+ readonly _tag: "Some";
59
71
  readonly value: T;
60
72
  }
61
73
  /**
@@ -68,7 +80,7 @@ export interface Some<T> {
68
80
  * @since 2025-07-03
69
81
  */
70
82
  export interface None {
71
- readonly _tag: 'None';
83
+ readonly _tag: "None";
72
84
  }
73
85
  /**
74
86
  * Creates a Some variant containing the provided value.
@@ -266,8 +278,10 @@ export declare const map: <A, B>(fn: (value: A) => B) => (option: Option<A>) =>
266
278
  * @example
267
279
  * // Chaining optional operations
268
280
  * const getManager = (employee: Employee) =>
269
- * Option.fromNullable(employee.managerId)
270
- * .pipe(Option.flatMap(id => findEmployee(id)));
281
+ * pipe(
282
+ * Option.fromNullable(employee.managerId),
283
+ * Option.flatMap(id => findEmployee(id)),
284
+ * );
271
285
  *
272
286
  * @example
273
287
  * // Validation chain
@@ -473,16 +487,16 @@ export declare const tryCatch: <T>(fn: () => T) => Option<T>;
473
487
  * @example
474
488
  * const logValue = pipe(
475
489
  * Option.some(42),
476
- * Option.tap(value => console.log('Found value:', value))
490
+ * Option.tapOption(value => console.log('Found value:', value))
477
491
  * ); // logs "Found value: 42" and returns Some(42)
478
492
  *
479
493
  * @example
480
494
  * // Debug logging in a chain
481
495
  * const result = pipe(
482
496
  * getUserInput(),
483
- * Option.tap(input => console.log('Raw input:', input)),
497
+ * Option.tapOption(input => console.log('Raw input:', input)),
484
498
  * Option.map(normalize),
485
- * Option.tap(normalized => console.log('Normalized:', normalized)),
499
+ * Option.tapOption(normalized => console.log('Normalized:', normalized)),
486
500
  * Option.filter(isValid)
487
501
  * );
488
502
  *
@@ -490,37 +504,10 @@ export declare const tryCatch: <T>(fn: () => T) => Option<T>;
490
504
  * // Side effects like analytics
491
505
  * const trackEvent = pipe(
492
506
  * findUser(id),
493
- * Option.tap(user => analytics.track('user.found', { id: user.id }))
507
+ * Option.tapOption(user => analytics.track('user.found', { id: user.id }))
494
508
  * );
495
509
  */
496
- export declare const tap: <T>(fn: (value: T) => void) => (option: Option<T>) => Option<T>;
497
- /**
498
- * Namespace containing all Option utilities.
499
- *
500
- * @category Namespace
501
- */
502
- export declare const Option: {
503
- readonly some: <T>(value: T) => Option<T>;
504
- readonly none: () => Option<never>;
505
- readonly fromNullable: <T>(value: T | null | undefined) => Option<T>;
506
- readonly fromPredicate: <T>(predicate: (value: T) => boolean) => (value: T) => Option<T>;
507
- readonly tryCatch: <T>(fn: () => T) => Option<T>;
508
- readonly isSome: <T>(option: Option<T>) => option is Some<T>;
509
- readonly isNone: <T>(option: Option<T>) => option is None;
510
- readonly map: <A, B>(fn: (value: A) => B) => (option: Option<A>) => Option<B>;
511
- readonly flatMap: <A, B>(fn: (value: A) => Option<B>) => (option: Option<A>) => Option<B>;
512
- readonly chain: <A, B>(fn: (value: A) => Option<B>) => (option: Option<A>) => Option<B>;
513
- readonly getOrElse: <T>(defaultValue: () => T) => (option: Option<T>) => T;
514
- readonly orElse: <T>(alternative: () => Option<T>) => (option: Option<T>) => Option<T>;
515
- readonly filter: typeof filter;
516
- readonly tap: <T>(fn: (value: T) => void) => (option: Option<T>) => Option<T>;
517
- readonly match: <T, A, B>(patterns: {
518
- some: (value: T) => A;
519
- none: () => B;
520
- }) => (option: Option<T>) => A | B;
521
- readonly toNullable: <T>(option: Option<T>) => T | null;
522
- readonly toUndefined: <T>(option: Option<T>) => T | undefined;
523
- };
510
+ export declare const tapOption: <T>(fn: (value: T) => void) => (option: Option<T>) => Option<T>;
524
511
  /**
525
512
  * Combines two Options using a binary function.
526
513
  * Returns None if either Option is None.
@@ -551,7 +538,7 @@ export declare const lift2: <A, B, C>(fn: (a: A, b: B) => C) => (optionA: Option
551
538
  *
552
539
  * @category Combinations
553
540
  * @example
554
- * const results = sequence([
541
+ * const results = sequenceOption([
555
542
  * Option.some(1),
556
543
  * Option.some(2),
557
544
  * Option.some(3)
@@ -560,36 +547,19 @@ export declare const lift2: <A, B, C>(fn: (a: A, b: B) => C) => (optionA: Option
560
547
  *
561
548
  * @example
562
549
  * // Parse multiple values
563
- * const numbers = sequence(
550
+ * const numbers = sequenceOption(
564
551
  * inputs.map(input => parseNumber(input))
565
552
  * );
566
553
  *
567
554
  * @example
568
555
  * // Validate all fields
569
- * const validatedFields = sequence([
556
+ * const validatedFields = sequenceOption([
570
557
  * validateField('name', data.name),
571
558
  * validateField('email', data.email),
572
559
  * validateField('age', data.age)
573
560
  * ]);
574
561
  */
575
- export declare const sequence: <T>(options: Option<T>[]) => Option<T[]>;
576
- /**
577
- * Applies a function wrapped in an Option to a value wrapped in an Option.
578
- *
579
- * @category Apply
580
- * @example
581
- * const addOne = (n: number) => n + 1;
582
- * const result = ap(Option.some(addOne))(Option.some(5));
583
- * // => Some(6)
584
- *
585
- * @example
586
- * // Partial application with options
587
- * const add = (a: number) => (b: number) => a + b;
588
- * const maybeAdd5 = Option.map(add)(Option.some(5));
589
- * const result = ap(maybeAdd5)(Option.some(3));
590
- * // => Some(8)
591
- */
592
- export declare const ap: <A, B>(optionFn: Option<(a: A) => B>) => (optionA: Option<A>) => Option<B>;
562
+ export declare const sequenceOption: <T>(options: Option<T>[]) => Option<T[]>;
593
563
  /**
594
564
  * Sequences a struct of Options into an Option of a struct.
595
565
  * Returns Some with the struct of all values if all are Some, None if any is None.
@@ -615,8 +585,182 @@ export declare const ap: <A, B>(optionFn: Option<(a: A) => B>) => (optionA: Opti
615
585
  * const config = sequenceS({
616
586
  * apiKey: Option.fromNullable(process.env.API_KEY),
617
587
  * port: Option.tryCatch(() => parseInt(process.env.PORT!)),
618
- * debug: Option.fromNullable(process.env.DEBUG).pipe(Option.map(v => v === 'true'))
588
+ * debug: pipe(
589
+ * Option.fromNullable(process.env.DEBUG),
590
+ * Option.map(v => v === 'true'),
591
+ * )
619
592
  * });
620
593
  */
621
594
  export declare const sequenceS: <T extends Record<string, Option<unknown>>>(struct: T) => Option<{ [K in keyof T]: T[K] extends Option<infer U> ? U : never; }>;
595
+ /**
596
+ * Executes an Option for its side effects, discarding the result.
597
+ * @description Runs an Option-returning function but preserves the original value.
598
+ * Useful for logging or other side effects where the result isn't needed.
599
+ *
600
+ * @template A - The type of the value
601
+ * @param {function(A): Option<unknown>} f - Function that returns an Option (result discarded)
602
+ * @returns {function(Option<A>): Option<A>} A function that executes side effects
603
+ *
604
+ * @category Combinators
605
+ * @example
606
+ * const log = (msg: string): Option<void> => {
607
+ * console.log(msg);
608
+ * return Option.some(undefined);
609
+ * };
610
+ *
611
+ * const result = Option.chainFirst((n: number) => log(`Got: ${n}`))(
612
+ * Option.some(42)
613
+ * ); // logs "Got: 42", returns Some(42)
614
+ *
615
+ * @since 2025-09-18
616
+ */
617
+ export declare const chainFirst: <A>(f: (a: A) => Option<unknown>) => (option: Option<A>) => Option<A>;
618
+ /**
619
+ * Combines Options in a tuple into an Option of a tuple.
620
+ * @description Takes multiple Options and returns an Option containing a tuple
621
+ * of their values. Returns None if any Option is None.
622
+ *
623
+ * @template T - Tuple type of Options
624
+ * @param {...T} options - Options to combine
625
+ * @returns {Option<{ [K in keyof T]: T[K] extends Option<infer U> ? U : never }>} Option of tuple
626
+ *
627
+ * @category Combinators
628
+ * @example
629
+ * const option1 = Option.some(1);
630
+ * const option2 = Option.some('hello');
631
+ * const option3 = Option.some(true);
632
+ *
633
+ * const combined = Option.sequenceT(option1, option2, option3);
634
+ * // => Some([1, 'hello', true])
635
+ *
636
+ * @since 2025-09-18
637
+ */
638
+ export declare const sequenceT: <T extends readonly Option<unknown>[]>(...options: T) => Option<{ [K in keyof T]: T[K] extends Option<infer U> ? U : never; }>;
639
+ /**
640
+ * Maps a function returning an Option over an array and sequences the results.
641
+ * @description Applies an Option-returning function to each element of an array
642
+ * and collects all results. If any operation returns None, returns None.
643
+ *
644
+ * @template T - The input type
645
+ * @template U - The output type
646
+ * @param {function(T): Option<U>} f - Function that returns an Option
647
+ * @returns {function(T[]): Option<U[]>} A function that traverses arrays with Options
648
+ *
649
+ * @category Combinators
650
+ * @example
651
+ * const parseNumber = (s: string): Option<number> => {
652
+ * const n = Number(s);
653
+ * return isNaN(n) ? Option.none() : Option.some(n);
654
+ * };
655
+ *
656
+ * const parseAll = Option.traverse(parseNumber);
657
+ * parseAll(['1', '2', '3']); // => Some([1, 2, 3])
658
+ * parseAll(['1', 'x', '3']); // => None
659
+ *
660
+ * @since 2025-09-18
661
+ */
662
+ export declare const traverse: <T, U>(f: (t: T) => Option<U>) => (ts: T[]) => Option<U[]>;
663
+ /**
664
+ * Applies an Option of a function to an Option of a value.
665
+ * @description Enables applying functions wrapped in Options to values wrapped
666
+ * in Options. If either Option is None, returns None. This is the
667
+ * applicative apply operation for Option types.
668
+ *
669
+ * @template A - The input type
670
+ * @template B - The output type
671
+ * @param {Option<A>} optionValue - Option containing a value
672
+ * @returns {function(Option<function(A): B>): Option<B>} A function that applies Option functions
673
+ *
674
+ * @category Combinators
675
+ * @example
676
+ * const add = (a: number) => (b: number) => a + b;
677
+ * const optionAdd = Option.some(add);
678
+ * const option5 = Option.some(5);
679
+ * const option3 = Option.some(3);
680
+ *
681
+ * const sum = Option.ap(option3)(
682
+ * Option.ap(option5)(
683
+ * Option.map(add)(Option.some(10))
684
+ * )
685
+ * ); // => Some(18)
686
+ *
687
+ * @since 2025-09-18
688
+ */
689
+ export declare const ap: <A, B>(optionValue: Option<A>) => (optionFn: Option<(a: A) => B>) => Option<B>;
690
+ type Context = Record<string, unknown>;
691
+ interface Builder {
692
+ bind: <K extends string, T>(key: K, option: Option<T> | ((ctx: Context) => Option<T>)) => Builder;
693
+ map: <T>(f: (ctx: Context) => T) => Option<T>;
694
+ flatMap: <T>(f: (ctx: Context) => Option<T>) => Option<T>;
695
+ value: () => Option<Context>;
696
+ }
697
+ /**
698
+ * Do notation helper for Option types.
699
+ * @description Provides a way to write sequential Option operations in an
700
+ * imperative style, similar to async/await but for Option types.
701
+ *
702
+ * @returns {object} Do notation builder
703
+ *
704
+ * @category Do Notation
705
+ * @example
706
+ * const result = Option.Do()
707
+ * .bind('x', Option.some(5))
708
+ * .bind('y', Option.some(3))
709
+ * .map(({ x, y }) => x + y);
710
+ * // => Some(8)
711
+ *
712
+ * @example
713
+ * const withNone = Option.Do()
714
+ * .bind('x', Option.some(5))
715
+ * .bind('y', Option.none())
716
+ * .map(({ x, y }) => x + y);
717
+ * // => None
718
+ *
719
+ * @example
720
+ * // With dependent bindings
721
+ * const calculation = Option.Do()
722
+ * .bind('a', Option.some(10))
723
+ * .bind('b', ({ a }) => a > 5 ? Option.some(a * 2) : Option.none())
724
+ * .bind('c', ({ b }) => Option.some(b + 1))
725
+ * .map(({ a, b, c }) => ({ original: a, doubled: b, final: c }));
726
+ * // => Some({ original: 10, doubled: 20, final: 21 })
727
+ *
728
+ * @since 2025-09-18
729
+ */
730
+ export declare const Do: () => Builder;
731
+ /**
732
+ * Namespace containing all Option utilities.
733
+ *
734
+ * @category Namespace
735
+ */
736
+ export declare const Option: {
737
+ readonly some: <T>(value: T) => Option<T>;
738
+ readonly none: () => Option<never>;
739
+ readonly fromNullable: <T>(value: T | null | undefined) => Option<T>;
740
+ readonly fromPredicate: <T>(predicate: (value: T) => boolean) => (value: T) => Option<T>;
741
+ readonly tryCatch: <T>(fn: () => T) => Option<T>;
742
+ readonly isSome: <T>(option: Option<T>) => option is Some<T>;
743
+ readonly isNone: <T>(option: Option<T>) => option is None;
744
+ readonly map: <A, B>(fn: (value: A) => B) => (option: Option<A>) => Option<B>;
745
+ readonly flatMap: <A, B>(fn: (value: A) => Option<B>) => (option: Option<A>) => Option<B>;
746
+ readonly chain: <A, B>(fn: (value: A) => Option<B>) => (option: Option<A>) => Option<B>;
747
+ readonly getOrElse: <T>(defaultValue: () => T) => (option: Option<T>) => T;
748
+ readonly orElse: <T>(alternative: () => Option<T>) => (option: Option<T>) => Option<T>;
749
+ readonly filter: typeof filter;
750
+ readonly tapOption: <T>(fn: (value: T) => void) => (option: Option<T>) => Option<T>;
751
+ readonly match: <T, A, B>(patterns: {
752
+ some: (value: T) => A;
753
+ none: () => B;
754
+ }) => (option: Option<T>) => A | B;
755
+ readonly toNullable: <T>(option: Option<T>) => T | null;
756
+ readonly toUndefined: <T>(option: Option<T>) => T | undefined;
757
+ readonly ap: <A, B>(optionValue: Option<A>) => (optionFn: Option<(a: A) => B>) => Option<B>;
758
+ readonly chainFirst: <A>(f: (a: A) => Option<unknown>) => (option: Option<A>) => Option<A>;
759
+ readonly sequenceT: <T extends readonly Option<unknown>[]>(...options: T) => Option<{ [K in keyof T]: T[K] extends Option<infer U> ? U : never; }>;
760
+ readonly traverse: <T, U>(f: (t: T) => Option<U>) => (ts: T[]) => Option<U[]>;
761
+ readonly sequenceOption: <T>(options: Option<T>[]) => Option<T[]>;
762
+ readonly sequenceS: <T extends Record<string, Option<unknown>>>(struct: T) => Option<{ [K in keyof T]: T[K] extends Option<infer U> ? U : never; }>;
763
+ readonly Do: () => Builder;
764
+ };
765
+ export {};
622
766
  //# sourceMappingURL=option.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"option.d.mts","sourceRoot":"","sources":["../src/option.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"option.d.mts","sourceRoot":"","sources":["../src/option.mts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH;;;;;;;;;GASG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAEvC;;;;;;;;;;GAUG;AACH,MAAM,WAAW,IAAI,CAAC,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,SAAU,CAAC,KAAG,MAAM,CAAC,CAAC,CAG1C,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,IAAI,QAAO,MAAM,CAAC,KAAK,CAElC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAU,CAAC,GAAG,IAAI,GAAG,SAAS,KAAG,MAAM,CAAC,CAAC,CACT,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,aAAa,GACvB,CAAC,aAAc,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,aAC7B,CAAC,KAAG,MAAM,CAAC,CAAC,CACqB,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,MAAM,GAAI,CAAC,UAAW,MAAM,CAAC,CAAC,CAAC,KAAG,MAAM,IAAI,IAAI,CAAC,CAAC,CACvC,CAAC;AAEzB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,MAAM,GAAI,CAAC,UAAW,MAAM,CAAC,CAAC,CAAC,KAAG,MAAM,IAAI,IACjC,CAAC;AAEzB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,GAAG,GACb,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,cACjB,MAAM,CAAC,CAAC,CAAC,KAAG,MAAM,CAAC,CAAC,CACqB,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,OAAO,GACjB,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,cACzB,MAAM,CAAC,CAAC,CAAC,KAAG,MAAM,CAAC,CAAC,CACe,CAAC;AAE/C;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAVf,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,cACzB,MAAM,CAAC,CAAC,CAAC,KAAG,MAAM,CAAC,CAAC,CASH,CAAC;AAE7B;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,SAAS,GACnB,CAAC,gBAAiB,MAAM,CAAC,cACjB,MAAM,CAAC,CAAC,CAAC,KAAG,CAC2B,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,MAAM,GAChB,CAAC,eAAgB,MAAM,MAAM,CAAC,CAAC,CAAC,cACxB,MAAM,CAAC,CAAC,CAAC,KAAG,MAAM,CAAC,CAAC,CACY,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,EACnC,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,GAClC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;AACpC,wBAAgB,MAAM,CAAC,CAAC,EACtB,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAC/B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;AAMpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,KAAK,GACf,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY;IAAE,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,CAAA;CAAE,cACnD,MAAM,CAAC,CAAC,CAAC,KAAG,CAAC,GAAG,CACuC,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,UAAW,MAAM,CAAC,CAAC,CAAC,KAAG,CAAC,GAAG,IACjB,CAAC;AAEvC;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,UAAW,MAAM,CAAC,CAAC,CAAC,KAAG,CAAC,GAAG,SACb,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,MAAO,MAAM,CAAC,KAAG,MAAM,CAAC,CAAC,CAMlD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,SAAS,GACnB,CAAC,MAAO,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,cAClB,MAAM,CAAC,CAAC,CAAC,KAAG,MAAM,CAAC,CAAC,CAK5B,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,KAAK,GACf,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,eACrB,MAAM,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,CAAC,CAAC,KAAG,MAAM,CAAC,CAAC,CAGtC,CAAC;AAEf;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,WAAY,MAAM,CAAC,CAAC,CAAC,EAAE,KAAG,MAAM,CAAC,CAAC,EAAE,CASnE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,UACzD,CAAC,KACR,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAAE,CAarE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,UAAU,GACpB,CAAC,KAAM,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC,cACxB,MAAM,CAAC,CAAC,CAAC,KAAG,MAAM,CAAC,CAAC,CAS5B,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,SAAS,MAAM,CAAC,OAAO,CAAC,EAAE,cAChD,CAAC,KACZ,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAAE,CAWrE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,QAAQ,GAClB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,UACxB,CAAC,EAAE,KAAG,MAAM,CAAC,CAAC,EAAE,CAUpB,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,EAAE,GACZ,CAAC,EAAE,CAAC,eAAe,MAAM,CAAC,CAAC,CAAC,gBAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAG,MAAM,CAAC,CAAC,CAKxC,CAAC;AAEJ,KAAK,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEvC,UAAU,OAAO;IACf,IAAI,EAAE,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EACxB,GAAG,EAAE,CAAC,EACN,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,KAC9C,OAAO,CAAC;IACb,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9C,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1D,KAAK,EAAE,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;CAC9B;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,EAAE,eA0Bd,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,MAAM;oBA1xBE,CAAC,SAAU,CAAC,KAAG,MAAM,CAAC,CAAC,CAAC;yBA+BrB,MAAM,CAAC,KAAK,CAAC;4BA+BR,CAAC,SAAU,CAAC,GAAG,IAAI,GAAG,SAAS,KAAG,MAAM,CAAC,CAAC,CAAC;6BAwBrE,CAAC,aAAc,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,aAC7B,CAAC,KAAG,MAAM,CAAC,CAAC,CAAC;wBAuUE,CAAC,MAAO,MAAM,CAAC,KAAG,MAAM,CAAC,CAAC,CAAC;sBA/S7B,CAAC,UAAW,MAAM,CAAC,CAAC,CAAC,KAAG,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;sBA0BzC,CAAC,UAAW,MAAM,CAAC,CAAC,CAAC,KAAG,MAAM,IAAI,IAAI;mBA6B1D,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,cACjB,MAAM,CAAC,CAAC,CAAC,KAAG,MAAM,CAAC,CAAC,CAAC;uBAkC7B,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,cACzB,MAAM,CAAC,CAAC,CAAC,KAAG,MAAM,CAAC,CAAC,CAAC;qBAD7B,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,cACzB,MAAM,CAAC,CAAC,CAAC,KAAG,MAAM,CAAC,CAAC,CAAC;yBAkC7B,CAAC,gBAAiB,MAAM,CAAC,cACjB,MAAM,CAAC,CAAC,CAAC,KAAG,CAAC;sBA6BrB,CAAC,eAAgB,MAAM,MAAM,CAAC,CAAC,CAAC,cACxB,MAAM,CAAC,CAAC,CAAC,KAAG,MAAM,CAAC,CAAC,CAAC;;yBAwL7B,CAAC,MAAO,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,cAClB,MAAM,CAAC,CAAC,CAAC,KAAG,MAAM,CAAC,CAAC,CAAC;qBA7G7B,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY;QAAE,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,CAAA;KAAE,cACnD,MAAM,CAAC,CAAC,CAAC,KAAG,CAAC,GAAG,CAAC;0BA2BD,CAAC,UAAW,MAAM,CAAC,CAAC,CAAC,KAAG,CAAC,GAAG,IAAI;2BAoB/B,CAAC,UAAW,MAAM,CAAC,CAAC,CAAC,KAAG,CAAC,GAAG,SAAS;kBA8T9D,CAAC,EAAE,CAAC,eAAe,MAAM,CAAC,CAAC,CAAC,gBAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAG,MAAM,CAAC,CAAC,CAAC;0BAhHzC,CAAC,KAAM,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC,cACxB,MAAM,CAAC,CAAC,CAAC,KAAG,MAAM,CAAC,CAAC,CAAC;yBA+BN,CAAC,SAAS,SAAS,MAAM,CAAC,OAAO,CAAC,EAAE,cAChD,CAAC,KACZ,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAAE,CAAC;wBAqCpE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,UACxB,CAAC,EAAE,KAAG,MAAM,CAAC,CAAC,EAAE,CAAC;8BA1JO,CAAC,WAAY,MAAM,CAAC,CAAC,CAAC,EAAE,KAAG,MAAM,CAAC,CAAC,EAAE,CAAC;yBA0C3C,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,UACzD,CAAC,KACR,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAAE,CAAC;;CAmQ7D,CAAC"}