@satoshibits/functional 1.0.3 → 1.1.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.
package/dist/option.mjs CHANGED
@@ -33,6 +33,17 @@
33
33
  * @category Core
34
34
  * @since 2025-07-03
35
35
  */
36
+ var __assign = (this && this.__assign) || function () {
37
+ __assign = Object.assign || function(t) {
38
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
39
+ s = arguments[i];
40
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
41
+ t[p] = s[p];
42
+ }
43
+ return t;
44
+ };
45
+ return __assign.apply(this, arguments);
46
+ };
36
47
  /**
37
48
  * Creates a Some variant containing the provided value.
38
49
  * @description Wraps a value in the Some variant of Option.
@@ -64,7 +75,7 @@
64
75
  * @since 2025-07-03
65
76
  */
66
77
  export var some = function (value) { return ({
67
- _tag: 'Some',
78
+ _tag: "Some",
68
79
  value: value,
69
80
  }); };
70
81
  /**
@@ -94,7 +105,7 @@ export var some = function (value) { return ({
94
105
  * @since 2025-07-03
95
106
  */
96
107
  export var none = function () { return ({
97
- _tag: 'None',
108
+ _tag: "None",
98
109
  }); };
99
110
  /**
100
111
  * Creates an Option from a nullable value.
@@ -173,7 +184,7 @@ export var fromPredicate = function (predicate) {
173
184
  * return processValue(result.value);
174
185
  */
175
186
  export var isSome = function (option) {
176
- return option._tag === 'Some';
187
+ return option._tag === "Some";
177
188
  };
178
189
  /**
179
190
  * Type guard to check if an Option is None.
@@ -199,7 +210,7 @@ export var isSome = function (option) {
199
210
  * }
200
211
  */
201
212
  export var isNone = function (option) {
202
- return option._tag === 'None';
213
+ return option._tag === "None";
203
214
  };
204
215
  /**
205
216
  * Maps a function over the value in Some, does nothing for None.
@@ -450,16 +461,16 @@ export var tryCatch = function (fn) {
450
461
  * @example
451
462
  * const logValue = pipe(
452
463
  * Option.some(42),
453
- * Option.tap(value => console.log('Found value:', value))
464
+ * Option.tapOption(value => console.log('Found value:', value))
454
465
  * ); // logs "Found value: 42" and returns Some(42)
455
466
  *
456
467
  * @example
457
468
  * // Debug logging in a chain
458
469
  * const result = pipe(
459
470
  * getUserInput(),
460
- * Option.tap(input => console.log('Raw input:', input)),
471
+ * Option.tapOption(input => console.log('Raw input:', input)),
461
472
  * Option.map(normalize),
462
- * Option.tap(normalized => console.log('Normalized:', normalized)),
473
+ * Option.tapOption(normalized => console.log('Normalized:', normalized)),
463
474
  * Option.filter(isValid)
464
475
  * );
465
476
  *
@@ -467,10 +478,10 @@ export var tryCatch = function (fn) {
467
478
  * // Side effects like analytics
468
479
  * const trackEvent = pipe(
469
480
  * findUser(id),
470
- * Option.tap(user => analytics.track('user.found', { id: user.id }))
481
+ * Option.tapOption(user => analytics.track('user.found', { id: user.id }))
471
482
  * );
472
483
  */
473
- export var tap = function (fn) {
484
+ export var tapOption = function (fn) {
474
485
  return function (option) {
475
486
  if (isSome(option)) {
476
487
  fn(option.value);
@@ -478,30 +489,6 @@ export var tap = function (fn) {
478
489
  return option;
479
490
  };
480
491
  };
481
- /**
482
- * Namespace containing all Option utilities.
483
- *
484
- * @category Namespace
485
- */
486
- export var Option = {
487
- some: some,
488
- none: none,
489
- fromNullable: fromNullable,
490
- fromPredicate: fromPredicate,
491
- tryCatch: tryCatch,
492
- isSome: isSome,
493
- isNone: isNone,
494
- map: map,
495
- flatMap: flatMap,
496
- chain: chain,
497
- getOrElse: getOrElse,
498
- orElse: orElse,
499
- filter: filter,
500
- tap: tap,
501
- match: match,
502
- toNullable: toNullable,
503
- toUndefined: toUndefined,
504
- };
505
492
  /**
506
493
  * Combines two Options using a binary function.
507
494
  * Returns None if either Option is None.
@@ -538,7 +525,7 @@ export var lift2 = function (fn) {
538
525
  *
539
526
  * @category Combinations
540
527
  * @example
541
- * const results = sequence([
528
+ * const results = sequenceOption([
542
529
  * Option.some(1),
543
530
  * Option.some(2),
544
531
  * Option.some(3)
@@ -547,19 +534,19 @@ export var lift2 = function (fn) {
547
534
  *
548
535
  * @example
549
536
  * // Parse multiple values
550
- * const numbers = sequence(
537
+ * const numbers = sequenceOption(
551
538
  * inputs.map(input => parseNumber(input))
552
539
  * );
553
540
  *
554
541
  * @example
555
542
  * // Validate all fields
556
- * const validatedFields = sequence([
543
+ * const validatedFields = sequenceOption([
557
544
  * validateField('name', data.name),
558
545
  * validateField('email', data.email),
559
546
  * validateField('age', data.age)
560
547
  * ]);
561
548
  */
562
- export var sequence = function (options) {
549
+ export var sequenceOption = function (options) {
563
550
  var results = [];
564
551
  for (var _i = 0, options_1 = options; _i < options_1.length; _i++) {
565
552
  var option = options_1[_i];
@@ -570,29 +557,6 @@ export var sequence = function (options) {
570
557
  }
571
558
  return some(results);
572
559
  };
573
- /**
574
- * Applies a function wrapped in an Option to a value wrapped in an Option.
575
- *
576
- * @category Apply
577
- * @example
578
- * const addOne = (n: number) => n + 1;
579
- * const result = ap(Option.some(addOne))(Option.some(5));
580
- * // => Some(6)
581
- *
582
- * @example
583
- * // Partial application with options
584
- * const add = (a: number) => (b: number) => a + b;
585
- * const maybeAdd5 = Option.map(add)(Option.some(5));
586
- * const result = ap(maybeAdd5)(Option.some(3));
587
- * // => Some(8)
588
- */
589
- export var ap = function (optionFn) {
590
- return function (optionA) {
591
- return isSome(optionFn) && isSome(optionA)
592
- ? some(optionFn.value(optionA.value))
593
- : none();
594
- };
595
- };
596
560
  /**
597
561
  * Sequences a struct of Options into an Option of a struct.
598
562
  * Returns Some with the struct of all values if all are Some, None if any is None.
@@ -634,4 +598,231 @@ export var sequenceS = function (struct) {
634
598
  }
635
599
  return some(result);
636
600
  };
601
+ /**
602
+ * Executes an Option for its side effects, discarding the result.
603
+ * @description Runs an Option-returning function but preserves the original value.
604
+ * Useful for logging or other side effects where the result isn't needed.
605
+ *
606
+ * @template A - The type of the value
607
+ * @param {function(A): Option<unknown>} f - Function that returns an Option (result discarded)
608
+ * @returns {function(Option<A>): Option<A>} A function that executes side effects
609
+ *
610
+ * @category Combinators
611
+ * @example
612
+ * const log = (msg: string): Option<void> => {
613
+ * console.log(msg);
614
+ * return Option.some(undefined);
615
+ * };
616
+ *
617
+ * const result = Option.chainFirst((n: number) => log(`Got: ${n}`))(
618
+ * Option.some(42)
619
+ * ); // logs "Got: 42", returns Some(42)
620
+ *
621
+ * @since 2025-09-18
622
+ */
623
+ export var chainFirst = function (f) {
624
+ return function (option) {
625
+ if (isNone(option)) {
626
+ return option;
627
+ }
628
+ var sideEffect = f(option.value);
629
+ if (isNone(sideEffect)) {
630
+ return none();
631
+ }
632
+ return option;
633
+ };
634
+ };
635
+ /**
636
+ * Combines Options in a tuple into an Option of a tuple.
637
+ * @description Takes multiple Options and returns an Option containing a tuple
638
+ * of their values. Returns None if any Option is None.
639
+ *
640
+ * @template T - Tuple type of Options
641
+ * @param {...T} options - Options to combine
642
+ * @returns {Option<{ [K in keyof T]: T[K] extends Option<infer U> ? U : never }>} Option of tuple
643
+ *
644
+ * @category Combinators
645
+ * @example
646
+ * const option1 = Option.some(1);
647
+ * const option2 = Option.some('hello');
648
+ * const option3 = Option.some(true);
649
+ *
650
+ * const combined = Option.sequenceT(option1, option2, option3);
651
+ * // => Some([1, 'hello', true])
652
+ *
653
+ * @since 2025-09-18
654
+ */
655
+ export var sequenceT = function () {
656
+ var options = [];
657
+ for (var _i = 0; _i < arguments.length; _i++) {
658
+ options[_i] = arguments[_i];
659
+ }
660
+ var values = [];
661
+ for (var _a = 0, options_2 = options; _a < options_2.length; _a++) {
662
+ var option = options_2[_a];
663
+ if (isNone(option)) {
664
+ return none();
665
+ }
666
+ values.push(option.value);
667
+ }
668
+ return some(values);
669
+ };
670
+ /**
671
+ * Maps a function returning an Option over an array and sequences the results.
672
+ * @description Applies an Option-returning function to each element of an array
673
+ * and collects all results. If any operation returns None, returns None.
674
+ *
675
+ * @template T - The input type
676
+ * @template U - The output type
677
+ * @param {function(T): Option<U>} f - Function that returns an Option
678
+ * @returns {function(T[]): Option<U[]>} A function that traverses arrays with Options
679
+ *
680
+ * @category Combinators
681
+ * @example
682
+ * const parseNumber = (s: string): Option<number> => {
683
+ * const n = Number(s);
684
+ * return isNaN(n) ? Option.none() : Option.some(n);
685
+ * };
686
+ *
687
+ * const parseAll = Option.traverse(parseNumber);
688
+ * parseAll(['1', '2', '3']); // => Some([1, 2, 3])
689
+ * parseAll(['1', 'x', '3']); // => None
690
+ *
691
+ * @since 2025-09-18
692
+ */
693
+ export var traverse = function (f) {
694
+ return function (ts) {
695
+ var results = [];
696
+ for (var _i = 0, ts_1 = ts; _i < ts_1.length; _i++) {
697
+ var t = ts_1[_i];
698
+ var option = f(t);
699
+ if (isNone(option)) {
700
+ return none();
701
+ }
702
+ results.push(option.value);
703
+ }
704
+ return some(results);
705
+ };
706
+ };
707
+ /**
708
+ * Applies an Option of a function to an Option of a value.
709
+ * @description Enables applying functions wrapped in Options to values wrapped
710
+ * in Options. If either Option is None, returns None. This is the
711
+ * applicative apply operation for Option types.
712
+ *
713
+ * @template A - The input type
714
+ * @template B - The output type
715
+ * @param {Option<A>} optionValue - Option containing a value
716
+ * @returns {function(Option<function(A): B>): Option<B>} A function that applies Option functions
717
+ *
718
+ * @category Combinators
719
+ * @example
720
+ * const add = (a: number) => (b: number) => a + b;
721
+ * const optionAdd = Option.some(add);
722
+ * const option5 = Option.some(5);
723
+ * const option3 = Option.some(3);
724
+ *
725
+ * const sum = Option.ap(option3)(
726
+ * Option.ap(option5)(
727
+ * Option.map(add)(Option.some(10))
728
+ * )
729
+ * ); // => Some(18)
730
+ *
731
+ * @since 2025-09-18
732
+ */
733
+ export var ap = function (optionValue) {
734
+ return function (optionFn) {
735
+ if (isNone(optionFn) || isNone(optionValue)) {
736
+ return none();
737
+ }
738
+ return some(optionFn.value(optionValue.value));
739
+ };
740
+ };
741
+ /**
742
+ * Do notation helper for Option types.
743
+ * @description Provides a way to write sequential Option operations in an
744
+ * imperative style, similar to async/await but for Option types.
745
+ *
746
+ * @returns {object} Do notation builder
747
+ *
748
+ * @category Do Notation
749
+ * @example
750
+ * const result = Option.Do()
751
+ * .bind('x', Option.some(5))
752
+ * .bind('y', Option.some(3))
753
+ * .map(({ x, y }) => x + y);
754
+ * // => Some(8)
755
+ *
756
+ * @example
757
+ * const withNone = Option.Do()
758
+ * .bind('x', Option.some(5))
759
+ * .bind('y', Option.none())
760
+ * .map(({ x, y }) => x + y);
761
+ * // => None
762
+ *
763
+ * @example
764
+ * // With dependent bindings
765
+ * const calculation = Option.Do()
766
+ * .bind('a', Option.some(10))
767
+ * .bind('b', ({ a }) => a > 5 ? Option.some(a * 2) : Option.none())
768
+ * .bind('c', ({ b }) => Option.some(b + 1))
769
+ * .map(({ a, b, c }) => ({ original: a, doubled: b, final: c }));
770
+ * // => Some({ original: 10, doubled: 20, final: 21 })
771
+ *
772
+ * @since 2025-09-18
773
+ */
774
+ export var Do = function () {
775
+ var createBuilder = function (context) { return ({
776
+ bind: function (key, option) {
777
+ var _a;
778
+ if (isNone(context)) {
779
+ return createBuilder(context);
780
+ }
781
+ var actualOption = typeof option === "function" ? option(context.value) : option;
782
+ if (isNone(actualOption)) {
783
+ return createBuilder(none());
784
+ }
785
+ return createBuilder(some(__assign(__assign({}, context.value), (_a = {}, _a[key] = actualOption.value, _a))));
786
+ },
787
+ map: function (f) {
788
+ return isSome(context) ? some(f(context.value)) : none();
789
+ },
790
+ flatMap: function (f) {
791
+ return isSome(context) ? f(context.value) : none();
792
+ },
793
+ value: function () { return context; },
794
+ }); };
795
+ return createBuilder(some({}));
796
+ };
797
+ /**
798
+ * Namespace containing all Option utilities.
799
+ *
800
+ * @category Namespace
801
+ */
802
+ export var Option = {
803
+ some: some,
804
+ none: none,
805
+ fromNullable: fromNullable,
806
+ fromPredicate: fromPredicate,
807
+ tryCatch: tryCatch,
808
+ isSome: isSome,
809
+ isNone: isNone,
810
+ map: map,
811
+ flatMap: flatMap,
812
+ chain: chain,
813
+ getOrElse: getOrElse,
814
+ orElse: orElse,
815
+ filter: filter,
816
+ tapOption: tapOption,
817
+ match: match,
818
+ toNullable: toNullable,
819
+ toUndefined: toUndefined,
820
+ ap: ap,
821
+ chainFirst: chainFirst,
822
+ sequenceT: sequenceT,
823
+ traverse: traverse,
824
+ sequenceOption: sequenceOption,
825
+ sequenceS: sequenceS,
826
+ Do: Do,
827
+ };
637
828
  //# sourceMappingURL=option.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"option.mjs","sourceRoot":"","sources":["../src/option.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"option.mjs","sourceRoot":"","sources":["../src/option.mts"],"names":[],"mappings":"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"}
@@ -260,6 +260,6 @@ export declare const timingUtils: {
260
260
  *
261
261
  * const data = await timedFetch('/api/data');
262
262
  */
263
- measureTime: <T extends unknown[], R>(fn: (...args: T) => R, onComplete?: (duration: number, result: Awaited<R>) => void) => ((...args: T) => R);
263
+ measureTime: <T extends unknown[], R>(fn: (...args: T) => R, onComplete?: (duration: number, result: Awaited<R>) => void, onError?: (duration: number, error: unknown) => void) => ((...args: T) => R);
264
264
  };
265
265
  //# sourceMappingURL=performance.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"performance.d.mts","sourceRoot":"","sources":["../src/performance.mts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAEH,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,GAAG,EAAE,MAClC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,IAAI,SACjB,MAAM,KACZ,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,IAAI,CAOvB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC,MACrC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,SACd,MAAM,KACZ,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,SAAS,CAahC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,eAAO,MAAM,UAAU,GAAU,CAAC,EAAE,CAAC,SAC5B,CAAC,EAAE,MACN,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,2CAG1B,OAAO,CAAC,CAAC,EAAE,CAeb,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW;IACtB;;;;;;;;;;;;;;;;;;;OAmBG;4BAEqB,CAAC,SAAS,GAAG,EAAE,MACjC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,IAAI,SACjB,MAAM,0BAEZ,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAuBzB;;;;;;;;;;;;;;;;;;;;;OAqBG;2BAEoB,CAAC,SAAS,GAAG,EAAE,MAChC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,IAAI,SACjB,MAAM,yBAEZ,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IA+BzB;;;;;;;;;;;;;;;;OAgBG;kBACW,CAAC,SAAS,OAAO,EAAE,EAAE,CAAC,MAC9B,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,eACR,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,KAC1D,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;CAuBvB,CAAC"}
1
+ {"version":3,"file":"performance.d.mts","sourceRoot":"","sources":["../src/performance.mts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAEH,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,GAAG,EAAE,MAClC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,IAAI,SACjB,MAAM,KACZ,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,IAAI,CAOvB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC,MACrC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,SACd,MAAM,KACZ,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,SAAS,CAahC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,eAAO,MAAM,UAAU,GAAU,CAAC,EAAE,CAAC,SAC5B,CAAC,EAAE,MACN,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,2CAG1B,OAAO,CAAC,CAAC,EAAE,CAeb,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW;IACtB;;;;;;;;;;;;;;;;;;;OAmBG;4BAEqB,CAAC,SAAS,GAAG,EAAE,MACjC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,IAAI,SACjB,MAAM,0BAEZ,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAuBzB;;;;;;;;;;;;;;;;;;;;;OAqBG;2BAEoB,CAAC,SAAS,GAAG,EAAE,MAChC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,IAAI,SACjB,MAAM,yBAEZ,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IA+BzB;;;;;;;;;;;;;;;;OAgBG;kBACW,CAAC,SAAS,OAAO,EAAE,EAAE,CAAC,MAC9B,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,eACR,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,YACjD,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,KACnD,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;CA2BvB,CAAC"}
@@ -424,29 +424,34 @@ export var timingUtils = {
424
424
  *
425
425
  * const data = await timedFetch('/api/data');
426
426
  */
427
- measureTime: function (fn, onComplete) {
427
+ measureTime: function (fn, onComplete, onError) {
428
428
  return function () {
429
429
  var args = [];
430
430
  for (var _i = 0; _i < arguments.length; _i++) {
431
431
  args[_i] = arguments[_i];
432
432
  }
433
433
  var start = performance.now();
434
- var result = fn.apply(void 0, args);
435
- if (onComplete) {
434
+ try {
435
+ var result = fn.apply(void 0, args);
436
436
  if (result instanceof Promise) {
437
- // Handle async functions
438
- var promiseWithTiming = result.then(function (value) {
439
- var totalDuration = performance.now() - start;
440
- onComplete(totalDuration, value);
437
+ var promiseWithTiming = result
438
+ .then(function (value) {
439
+ onComplete === null || onComplete === void 0 ? void 0 : onComplete(performance.now() - start, value);
441
440
  return value;
441
+ })
442
+ .catch(function (error) {
443
+ onError === null || onError === void 0 ? void 0 : onError(performance.now() - start, error);
444
+ throw error;
442
445
  });
443
446
  return promiseWithTiming;
444
447
  }
445
- // Handle sync functions
446
- var duration = performance.now() - start;
447
- onComplete(duration, result);
448
+ onComplete === null || onComplete === void 0 ? void 0 : onComplete(performance.now() - start, result);
449
+ return result;
450
+ }
451
+ catch (error) {
452
+ onError === null || onError === void 0 ? void 0 : onError(performance.now() - start, error);
453
+ throw error;
448
454
  }
449
- return result;
450
455
  };
451
456
  },
452
457
  };
@@ -1 +1 @@
1
- {"version":3,"file":"performance.mjs","sourceRoot":"","sources":["../src/performance.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"performance.mjs","sourceRoot":"","sources":["../src/performance.mts"],"names":[],"mappings":"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"}