@dereekb/util 13.10.8 → 13.11.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 (65) hide show
  1. package/fetch/package.json +2 -2
  2. package/index.cjs.js +2581 -51
  3. package/index.esm.js +2571 -52
  4. package/package.json +1 -1
  5. package/src/lib/array/array.d.ts +79 -0
  6. package/src/lib/array/array.factory.d.ts +12 -0
  7. package/src/lib/array/array.find.d.ts +11 -0
  8. package/src/lib/array/array.limit.d.ts +5 -0
  9. package/src/lib/array/array.random.d.ts +16 -0
  10. package/src/lib/array/array.set.d.ts +20 -0
  11. package/src/lib/array/array.unique.d.ts +38 -0
  12. package/src/lib/array/array.value.d.ts +10 -0
  13. package/src/lib/auth/index.d.ts +2 -0
  14. package/src/lib/auth/oauth.d.ts +12 -0
  15. package/src/lib/auth/pkce.d.ts +13 -0
  16. package/src/lib/boolean.d.ts +36 -0
  17. package/src/lib/cache/cache.d.ts +48 -0
  18. package/src/lib/cache/cache.memoize.d.ts +59 -0
  19. package/src/lib/cache/cache.memory.d.ts +39 -0
  20. package/src/lib/cache/cache.merge.d.ts +48 -0
  21. package/src/lib/cache/index.d.ts +4 -0
  22. package/src/lib/contact/domain.d.ts +15 -0
  23. package/src/lib/contact/email.d.ts +15 -0
  24. package/src/lib/date/date.unix.d.ts +20 -0
  25. package/src/lib/date/expires.d.ts +85 -16
  26. package/src/lib/file/pdf.d.ts +3 -0
  27. package/src/lib/function/function.d.ts +5 -0
  28. package/src/lib/getter/getter.d.ts +21 -0
  29. package/src/lib/grouping.d.ts +30 -0
  30. package/src/lib/hash.d.ts +10 -0
  31. package/src/lib/index.d.ts +1 -0
  32. package/src/lib/iterable/iterable.d.ts +20 -0
  33. package/src/lib/iterate.d.ts +5 -0
  34. package/src/lib/number/bound.d.ts +23 -0
  35. package/src/lib/number/number.d.ts +47 -0
  36. package/src/lib/number/random.d.ts +11 -0
  37. package/src/lib/number/round.d.ts +16 -0
  38. package/src/lib/object/object.d.ts +24 -0
  39. package/src/lib/object/object.empty.d.ts +5 -0
  40. package/src/lib/object/object.equal.d.ts +5 -0
  41. package/src/lib/object/object.filter.pojo.d.ts +31 -1
  42. package/src/lib/object/object.flatten.d.ts +4 -0
  43. package/src/lib/path/path.d.ts +191 -0
  44. package/src/lib/promise/is.d.ts +10 -0
  45. package/src/lib/promise/poll.d.ts +5 -0
  46. package/src/lib/promise/promise.d.ts +20 -0
  47. package/src/lib/promise/promise.type.d.ts +4 -0
  48. package/src/lib/promise/wait.d.ts +5 -0
  49. package/src/lib/set/set.d.ts +15 -0
  50. package/src/lib/sort.d.ts +16 -0
  51. package/src/lib/string/case.d.ts +10 -0
  52. package/src/lib/string/string.d.ts +54 -0
  53. package/src/lib/tree/tree.array.d.ts +6 -0
  54. package/src/lib/tree/tree.expand.d.ts +5 -0
  55. package/src/lib/tree/tree.explore.d.ts +24 -0
  56. package/src/lib/tree/tree.flatten.d.ts +16 -0
  57. package/src/lib/type.d.ts +20 -0
  58. package/src/lib/value/build.d.ts +4 -0
  59. package/src/lib/value/comparator.d.ts +11 -0
  60. package/src/lib/value/decision.d.ts +17 -0
  61. package/src/lib/value/equal.d.ts +17 -0
  62. package/src/lib/value/map.d.ts +23 -0
  63. package/src/lib/value/maybe.d.ts +49 -0
  64. package/src/lib/value/modifier.d.ts +5 -0
  65. package/test/package.json +2 -2
package/index.esm.js CHANGED
@@ -53,6 +53,11 @@ function _unsupported_iterable_to_array$B(o, minLen) {
53
53
  *
54
54
  * By default treats strings as a non-iterable value, using the string as a single value.
55
55
  *
56
+ * @dbxUtil
57
+ * @dbxUtilCategory iterable
58
+ * @dbxUtilTags iterable, array, convert, normalize, ensure
59
+ * @dbxUtilRelated iterable-to-set, iterable-to-map, as-iterable
60
+ *
56
61
  * @param values - The value or iterable to convert
57
62
  * @param treatStringAsIterable - Whether to treat strings as iterable (defaults to false)
58
63
  * @returns An array containing the value(s)
@@ -76,6 +81,11 @@ function _unsupported_iterable_to_array$B(o, minLen) {
76
81
  *
77
82
  * By default treats strings as a non-iterable value, using the string as a single value.
78
83
  *
84
+ * @dbxUtil
85
+ * @dbxUtilCategory iterable
86
+ * @dbxUtilTags iterable, set, convert, normalize, unique, dedupe
87
+ * @dbxUtilRelated iterable-to-array, iterable-to-map
88
+ *
79
89
  * @param values - The value or iterable to convert
80
90
  * @param treatStringAsIterable - Whether to treat strings as iterable (defaults to false)
81
91
  * @returns A Set containing the value(s)
@@ -101,6 +111,11 @@ function _unsupported_iterable_to_array$B(o, minLen) {
101
111
  * Type guard that returns true if the input is an Iterable.
102
112
  * By default, strings are not treated as iterable.
103
113
  *
114
+ * @dbxUtil
115
+ * @dbxUtilCategory iterable
116
+ * @dbxUtilTags iterable, type-guard, check, symbol-iterator
117
+ * @dbxUtilRelated is-empty-iterable, as-iterable
118
+ *
104
119
  * @param values - The value to check
105
120
  * @param treatStringAsIterable - Whether to treat strings as iterable (defaults to false)
106
121
  * @returns True if the value is iterable
@@ -117,6 +132,11 @@ function _unsupported_iterable_to_array$B(o, minLen) {
117
132
  /**
118
133
  * Returns true if the iterable has no values.
119
134
  *
135
+ * @dbxUtil
136
+ * @dbxUtilCategory iterable
137
+ * @dbxUtilTags iterable, empty, check, length
138
+ * @dbxUtilRelated is-iterable, first-value-from-iterable
139
+ *
120
140
  * @param values - The iterable to check
121
141
  * @returns True if the iterable is empty
122
142
  */ function isEmptyIterable(values) {
@@ -410,6 +430,11 @@ function _unsupported_iterable_to_array$A(o, minLen) {
410
430
  /**
411
431
  * Converts the input value to an array containing itself, or returns itself if it is a non-empty array. Returns undefined if the input is nullish or results in an empty array.
412
432
  *
433
+ * @dbxUtil
434
+ * @dbxUtilCategory array
435
+ * @dbxUtilTags array, non-empty, convert, ensure, normalize
436
+ * @dbxUtilRelated convert-maybe-to-array, convert-to-array
437
+ *
413
438
  * @param arrayOrValue - single value or array to convert
414
439
  * @returns an array with at least one element, or undefined if the result would be empty
415
440
  */ function convertMaybeToNonEmptyArray(arrayOrValue) {
@@ -425,6 +450,11 @@ function _unsupported_iterable_to_array$A(o, minLen) {
425
450
  /**
426
451
  * Converts the input value to an array containing itself, or returns itself if it is an array. Returns an empty array if the input is nullish.
427
452
  *
453
+ * @dbxUtil
454
+ * @dbxUtilCategory array
455
+ * @dbxUtilTags array, convert, ensure, normalize, maybe, nullish
456
+ * @dbxUtilRelated convert-maybe-to-non-empty-array, convert-to-array, as-array
457
+ *
428
458
  * @param arrayOrValue - single value, array, or nullish value to convert
429
459
  * @returns the input wrapped in an array, the input array itself, or an empty array if nullish
430
460
  */ function convertMaybeToArray(arrayOrValue) {
@@ -439,6 +469,11 @@ function _unsupported_iterable_to_array$A(o, minLen) {
439
469
  /**
440
470
  * Converts the input value to an array containing itself, or returns itself if it is already an array.
441
471
  *
472
+ * @dbxUtil
473
+ * @dbxUtilCategory array
474
+ * @dbxUtilTags array, convert, ensure, wrap, normalize
475
+ * @dbxUtilRelated convert-maybe-to-array, convert-maybe-to-non-empty-array
476
+ *
442
477
  * @param arrayOrValue - single value or array to convert
443
478
  * @returns the input array unchanged, or a new single-element array wrapping the input value
444
479
  */ function convertToArray(arrayOrValue) {
@@ -449,6 +484,11 @@ function _unsupported_iterable_to_array$A(o, minLen) {
449
484
  /**
450
485
  * Returns the first value from the array, or the value itself if not an array.
451
486
  *
487
+ * @dbxUtil
488
+ * @dbxUtilCategory array
489
+ * @dbxUtilTags array, first, head, get, value
490
+ * @dbxUtilRelated last-value, value-at-index, first-and-last-value
491
+ *
452
492
  * @param input - single value or array to retrieve from
453
493
  * @returns the first element of the array, or the input value itself
454
494
  */ function firstValue(input) {
@@ -457,6 +497,11 @@ function _unsupported_iterable_to_array$A(o, minLen) {
457
497
  /**
458
498
  * Returns the last value from the array, or the value itself if not an array.
459
499
  *
500
+ * @dbxUtil
501
+ * @dbxUtilCategory array
502
+ * @dbxUtilTags array, last, tail, get, value
503
+ * @dbxUtilRelated first-value, value-at-index, first-and-last-value
504
+ *
460
505
  * @param input - single value or array to retrieve from
461
506
  * @returns the last element of the array, or the input value itself
462
507
  */ function lastValue(input) {
@@ -467,6 +512,11 @@ function _unsupported_iterable_to_array$A(o, minLen) {
467
512
  *
468
513
  * If the input is not an array, returns that value as both the first and last value.
469
514
  *
515
+ * @dbxUtil
516
+ * @dbxUtilCategory array
517
+ * @dbxUtilTags array, first, last, head, tail, tuple, endpoints
518
+ * @dbxUtilRelated first-value, last-value, value-at-index
519
+ *
470
520
  * @param input - single value or array to retrieve from
471
521
  * @returns a two-element tuple of the first and last values
472
522
  */ function firstAndLastValue(input) {
@@ -480,6 +530,11 @@ function _unsupported_iterable_to_array$A(o, minLen) {
480
530
  /**
481
531
  * Returns the value at the given index from an array, or the value itself if not an array.
482
532
  *
533
+ * @dbxUtil
534
+ * @dbxUtilCategory array
535
+ * @dbxUtilTags array, index, get, value, at
536
+ * @dbxUtilRelated first-value, last-value, first-and-last-value
537
+ *
483
538
  * @param input - single value or array to retrieve from
484
539
  * @param index - zero-based index of the element to retrieve
485
540
  * @returns the element at the specified index, or the input value itself if not an array
@@ -489,6 +544,11 @@ function _unsupported_iterable_to_array$A(o, minLen) {
489
544
  /**
490
545
  * Concatenates the input arrays into a single array, filtering out nullish entries.
491
546
  *
547
+ * @dbxUtil
548
+ * @dbxUtilCategory array
549
+ * @dbxUtilTags array, concat, concatenate, combine, flatten, merge
550
+ * @dbxUtilRelated flatten-array, merge-arrays
551
+ *
492
552
  * @param arrays - arrays to concatenate; nullish entries are ignored
493
553
  * @returns a single flattened array containing all elements from the non-nullish input arrays
494
554
  */ function concatArrays() {
@@ -500,6 +560,11 @@ function _unsupported_iterable_to_array$A(o, minLen) {
500
560
  /**
501
561
  * Flattens a two-dimensional array into a single-dimensional array. Any null/undefined entries in the outer dimension are filtered out.
502
562
  *
563
+ * @dbxUtil
564
+ * @dbxUtilCategory array
565
+ * @dbxUtilTags array, flatten, flat, nested, two-dimensional, concat
566
+ * @dbxUtilRelated concat-arrays, flatten-array-or-value-array, merge-arrays
567
+ *
503
568
  * @param array - two-dimensional array to flatten, may contain nullish entries
504
569
  * @returns a single-dimensional array with all elements from the non-nullish inner arrays
505
570
  */ function flattenArray(array) {
@@ -519,6 +584,11 @@ function _unsupported_iterable_to_array$A(o, minLen) {
519
584
  /**
520
585
  * Creates a shallow copy of the input array. Returns an empty array if the input is nullish.
521
586
  *
587
+ * @dbxUtil
588
+ * @dbxUtilCategory array
589
+ * @dbxUtilTags array, copy, clone, shallow, duplicate
590
+ * @dbxUtilRelated convert-maybe-to-array
591
+ *
522
592
  * @param input - array to copy, or nullish
523
593
  * @returns a new array with the same elements, or an empty array if input is nullish
524
594
  */ function copyArray(input) {
@@ -540,6 +610,11 @@ function _unsupported_iterable_to_array$A(o, minLen) {
540
610
  /**
541
611
  * Merges all input arrays into a single new array. Nullish entries are ignored.
542
612
  *
613
+ * @dbxUtil
614
+ * @dbxUtilCategory array
615
+ * @dbxUtilTags array, merge, concat, flatten, combine
616
+ * @dbxUtilRelated merge-arrays-into-array
617
+ *
543
618
  * @param arrays - arrays to merge; nullish entries are skipped
544
619
  * @returns a new array containing all elements from the provided arrays
545
620
  */ function mergeArrays(arrays) {
@@ -593,6 +668,11 @@ function _unsupported_iterable_to_array$A(o, minLen) {
593
668
  /**
594
669
  * Copies/takes the elements from the front of the array up to the specified maximum.
595
670
  *
671
+ * @dbxUtil
672
+ * @dbxUtilCategory array
673
+ * @dbxUtilTags array, take, front, head, slice, limit
674
+ * @dbxUtilRelated take-last, split-front
675
+ *
596
676
  * @param values - source array to take from
597
677
  * @param maxToTake - maximum number of elements to take from the front
598
678
  * @returns a new array containing at most maxToTake elements from the front
@@ -602,6 +682,11 @@ function _unsupported_iterable_to_array$A(o, minLen) {
602
682
  /**
603
683
  * Splits the array into two arrays, the first being the front of the array up to the maxToTake, and the second being the remaining values.
604
684
  *
685
+ * @dbxUtil
686
+ * @dbxUtilCategory array
687
+ * @dbxUtilTags array, split, partition, front, slice
688
+ * @dbxUtilRelated take-front, take-last
689
+ *
605
690
  * @param values The array to split.
606
691
  * @param maxToTake The maximum number of values to take from the front of the array.
607
692
  * @returns The front and remaining values.
@@ -615,6 +700,11 @@ function _unsupported_iterable_to_array$A(o, minLen) {
615
700
  /**
616
701
  * Copies/takes as many elements as possible from the end.
617
702
  *
703
+ * @dbxUtil
704
+ * @dbxUtilCategory array
705
+ * @dbxUtilTags array, take, last, tail, end, slice, limit
706
+ * @dbxUtilRelated take-front, split-front
707
+ *
618
708
  * @param values Values to take from.
619
709
  * @param maxToTake Max number of values to take from the end of the input array.
620
710
  * @param keepFromFront Number of values to retain in the front of the array. These are not taken.
@@ -652,6 +742,11 @@ function _unsupported_iterable_to_array$A(o, minLen) {
652
742
  /**
653
743
  * Counts the total number of elements across all inner arrays of a nested array.
654
744
  *
745
+ * @dbxUtil
746
+ * @dbxUtilCategory array
747
+ * @dbxUtilTags array, count, nested, total, length, two-dimensional
748
+ * @dbxUtilRelated flatten-array
749
+ *
655
750
  * @param array - two-dimensional array whose elements are counted
656
751
  * @returns the total number of elements across all inner arrays
657
752
  */ function countAllInNestedArray(array) {
@@ -662,6 +757,10 @@ function _unsupported_iterable_to_array$A(o, minLen) {
662
757
  /**
663
758
  * Creates a copy of the array with the items at the specified indexes removed.
664
759
  *
760
+ * @dbxUtil
761
+ * @dbxUtilCategory array
762
+ * @dbxUtilTags array, remove, exclude, indexes, filter, copy
763
+ *
665
764
  * @param array - source array to copy from
666
765
  * @param removeIndexes - indexes of elements to exclude from the copy
667
766
  * @returns a new array without the elements at the specified indexes
@@ -786,6 +885,11 @@ function _unsupported_iterable_to_array$z(o, minLen) {
786
885
  /**
787
886
  * Converts an {@link IterableOrValue} into a Set. Strings are treated as single values rather than character iterables.
788
887
  *
888
+ * @dbxUtil
889
+ * @dbxUtilCategory set
890
+ * @dbxUtilTags set, convert, normalize, ensure, unique, dedupe
891
+ * @dbxUtilRelated add-to-set, iterable-to-set
892
+ *
789
893
  * @param values - The value or iterable to convert.
790
894
  * @returns A new Set containing all values.
791
895
  */ function asSet(values) {
@@ -825,6 +929,11 @@ function _unsupported_iterable_to_array$z(o, minLen) {
825
929
  /**
826
930
  * Adds one or more values to the given set in place.
827
931
  *
932
+ * @dbxUtil
933
+ * @dbxUtilCategory set
934
+ * @dbxUtilTags set, add, mutate, insert, in-place
935
+ * @dbxUtilRelated add-to-set-copy, remove-from-set, toggle-in-set
936
+ *
828
937
  * @param set - The set to add values to.
829
938
  * @param values - The value or iterable of values to add.
830
939
  */ function addToSet(set, values) {
@@ -846,6 +955,11 @@ function _unsupported_iterable_to_array$z(o, minLen) {
846
955
  /**
847
956
  * Toggles values in the set in place: adds if absent, removes if present.
848
957
  *
958
+ * @dbxUtil
959
+ * @dbxUtilCategory set
960
+ * @dbxUtilTags set, toggle, add, remove, mutate, in-place
961
+ * @dbxUtilRelated toggle-in-set-copy, add-to-set, remove-from-set
962
+ *
849
963
  * @param set - The set to modify.
850
964
  * @param values - The values to toggle.
851
965
  */ function toggleInSet(set, values) {
@@ -1327,6 +1441,12 @@ function _unsupported_iterable_to_array$y(o, minLen) {
1327
1441
  * When mode is `'any'`, the resulting function returns `true` if at least one element satisfies the predicate.
1328
1442
  * When mode is `'all'`, it returns `true` only if every element satisfies the predicate.
1329
1443
  *
1444
+ * @dbxUtil
1445
+ * @dbxUtilCategory array
1446
+ * @dbxUtilKind factory
1447
+ * @dbxUtilTags array, decision, predicate, find, every, some, all, any, factory
1448
+ * @dbxUtilRelated array-decision
1449
+ *
1330
1450
  * @param decision - Predicate used to test individual elements.
1331
1451
  * @param mode - Whether all or any elements must satisfy the predicate.
1332
1452
  * @returns A function that evaluates an array against the configured decision criteria.
@@ -1341,6 +1461,11 @@ function _unsupported_iterable_to_array$y(o, minLen) {
1341
1461
  /**
1342
1462
  * Convenience wrapper that creates and immediately invokes an {@link ArrayDecisionFunction}.
1343
1463
  *
1464
+ * @dbxUtil
1465
+ * @dbxUtilCategory array
1466
+ * @dbxUtilTags array, decision, predicate, find, every, some, all, any
1467
+ * @dbxUtilRelated array-decision-function
1468
+ *
1344
1469
  * @param values - Array to evaluate.
1345
1470
  * @param decision - Predicate used to test individual elements.
1346
1471
  * @param mode - Whether all or any elements must satisfy the predicate.
@@ -1349,7 +1474,7 @@ function _unsupported_iterable_to_array$y(o, minLen) {
1349
1474
  return arrayDecisionFunction(decision, mode)(values);
1350
1475
  }
1351
1476
 
1352
- function _define_property$m(obj, key, value) {
1477
+ function _define_property$n(obj, key, value) {
1353
1478
  if (key in obj) {
1354
1479
  Object.defineProperty(obj, key, {
1355
1480
  value: value,
@@ -1362,7 +1487,7 @@ function _define_property$m(obj, key, value) {
1362
1487
  }
1363
1488
  return obj;
1364
1489
  }
1365
- function _object_spread$f(target) {
1490
+ function _object_spread$g(target) {
1366
1491
  for(var i = 1; i < arguments.length; i++){
1367
1492
  var source = arguments[i] != null ? arguments[i] : {};
1368
1493
  var ownKeys = Object.keys(source);
@@ -1372,7 +1497,7 @@ function _object_spread$f(target) {
1372
1497
  }));
1373
1498
  }
1374
1499
  ownKeys.forEach(function(key) {
1375
- _define_property$m(target, key, source[key]);
1500
+ _define_property$n(target, key, source[key]);
1376
1501
  });
1377
1502
  }
1378
1503
  return target;
@@ -1380,6 +1505,11 @@ function _object_spread$f(target) {
1380
1505
  /**
1381
1506
  * Checks whether the object has no own enumerable keys.
1382
1507
  *
1508
+ * @dbxUtil
1509
+ * @dbxUtilCategory object
1510
+ * @dbxUtilTags object, empty, keys, check, type-guard
1511
+ * @dbxUtilRelated object-has-key, object-has-keys, has-value-or-not-empty-object
1512
+ *
1383
1513
  * @param obj - Object to check
1384
1514
  * @returns `true` if the object has zero keys
1385
1515
  */ function objectHasNoKeys(obj) {
@@ -1409,6 +1539,10 @@ function objectHasKeys(obj, keys, mode) {
1409
1539
  /**
1410
1540
  * Converts a Map to a plain object by iterating entries and assigning key-value pairs.
1411
1541
  *
1542
+ * @dbxUtil
1543
+ * @dbxUtilCategory object
1544
+ * @dbxUtilTags object, map, convert, transform, dictionary
1545
+ *
1412
1546
  * @param map - Map to convert
1413
1547
  * @returns A plain object with the same key-value pairs
1414
1548
  */ function mapToObject(map) {
@@ -1421,10 +1555,15 @@ function objectHasKeys(obj, keys, mode) {
1421
1555
  /**
1422
1556
  * Creates a shallow copy of an object using the spread operator.
1423
1557
  *
1558
+ * @dbxUtil
1559
+ * @dbxUtilCategory object
1560
+ * @dbxUtilTags object, copy, clone, shallow, spread
1561
+ * @dbxUtilRelated copy-array
1562
+ *
1424
1563
  * @param input - Object to copy
1425
1564
  * @returns A new object with the same properties
1426
1565
  */ function copyObject(input) {
1427
- return _object_spread$f({}, input);
1566
+ return _object_spread$g({}, input);
1428
1567
  }
1429
1568
 
1430
1569
  function _type_of$l(obj) {
@@ -1434,6 +1573,11 @@ function _type_of$l(obj) {
1434
1573
  /**
1435
1574
  * Type guard that returns `true` if the value is not `null` or `undefined`.
1436
1575
  *
1576
+ * @dbxUtil
1577
+ * @dbxUtilCategory value
1578
+ * @dbxUtilTags maybe, nullish, type-guard, defined, not-null, value
1579
+ * @dbxUtilRelated is-maybe-so, is-maybe-not, has-value-or-not-empty
1580
+ *
1437
1581
  * @param value - the value to check
1438
1582
  * @returns `true` if the value is not `null` or `undefined`
1439
1583
  */ function hasNonNullValue(value) {
@@ -1448,6 +1592,11 @@ function _type_of$l(obj) {
1448
1592
  *
1449
1593
  * NaN has undefined behavior.
1450
1594
  *
1595
+ * @dbxUtil
1596
+ * @dbxUtilCategory value
1597
+ * @dbxUtilTags maybe, empty, type-guard, non-empty, value, has-value
1598
+ * @dbxUtilRelated has-value-or-not-empty-object, has-non-null-value, is-not-null-or-empty-string
1599
+ *
1451
1600
  * @param value - the value to check
1452
1601
  * @returns `true` if the value is non-nullish and not empty
1453
1602
  */ function hasValueOrNotEmpty(value) {
@@ -1461,6 +1610,11 @@ function _type_of$l(obj) {
1461
1610
  *
1462
1611
  * NaN has undefined behavior.
1463
1612
  *
1613
+ * @dbxUtil
1614
+ * @dbxUtilCategory value
1615
+ * @dbxUtilTags maybe, empty, type-guard, object, non-empty, strict
1616
+ * @dbxUtilRelated has-value-or-not-empty, has-non-null-value, object-has-no-keys
1617
+ *
1464
1618
  * @param value - the value to check
1465
1619
  * @returns `true` if the value is non-nullish, non-empty, and not an empty object
1466
1620
  */ function hasValueOrNotEmptyObject(value) {
@@ -1487,6 +1641,11 @@ function _type_of$l(obj) {
1487
1641
  *
1488
1642
  * Useful for filtering out both nullish values and empty strings in a single check.
1489
1643
  *
1644
+ * @dbxUtil
1645
+ * @dbxUtilCategory value
1646
+ * @dbxUtilTags maybe, string, empty, type-guard, nullish, non-empty
1647
+ * @dbxUtilRelated has-value-or-not-empty, has-non-null-value
1648
+ *
1490
1649
  * @param value - the value to check
1491
1650
  * @returns `true` if the value is not nullish and not an empty string
1492
1651
  */ function isNotNullOrEmptyString(value) {
@@ -1495,6 +1654,11 @@ function _type_of$l(obj) {
1495
1654
  /**
1496
1655
  * Type guard that returns `true` if the input is `null` or `undefined`.
1497
1656
  *
1657
+ * @dbxUtil
1658
+ * @dbxUtilCategory value
1659
+ * @dbxUtilTags maybe, nullish, type-guard, null, undefined, missing
1660
+ * @dbxUtilRelated is-maybe-so, has-non-null-value
1661
+ *
1498
1662
  * @param value - the value to check
1499
1663
  * @returns `true` if the value is `null` or `undefined`
1500
1664
  */ function isMaybeNot(value) {
@@ -1505,6 +1669,11 @@ function _type_of$l(obj) {
1505
1669
  *
1506
1670
  * Equivalent to {@link hasNonNullValue} but with the `MaybeSo` narrowing type.
1507
1671
  *
1672
+ * @dbxUtil
1673
+ * @dbxUtilCategory value
1674
+ * @dbxUtilTags maybe, nullish, type-guard, defined, present, non-null
1675
+ * @dbxUtilRelated is-maybe-not, has-non-null-value
1676
+ *
1508
1677
  * @param value - the value to check
1509
1678
  * @returns `true` if the value is neither `null` nor `undefined`
1510
1679
  */ function isMaybeSo(value) {
@@ -1523,6 +1692,11 @@ function _type_of$l(obj) {
1523
1692
  /**
1524
1693
  * Returns `true` if the input is not `null`, `undefined`, or `false`.
1525
1694
  *
1695
+ * @dbxUtil
1696
+ * @dbxUtilCategory value
1697
+ * @dbxUtilTags maybe, boolean, defined, truthy, type-guard
1698
+ * @dbxUtilRelated is-not-false, has-non-null-value
1699
+ *
1526
1700
  * @param value - the value to check
1527
1701
  * @returns `true` if the value is not `null`, `undefined`, or `false`
1528
1702
  */ function isDefinedAndNotFalse(value) {
@@ -1539,6 +1713,11 @@ function _type_of$l(obj) {
1539
1713
  /**
1540
1714
  * Returns `true` if both inputs are non-nullish and strictly equal (`===`).
1541
1715
  *
1716
+ * @dbxUtil
1717
+ * @dbxUtilCategory value
1718
+ * @dbxUtilTags maybe, equal, equality, compare, non-null
1719
+ * @dbxUtilRelated values-are-both-nullish-or-equivalent, has-non-null-value
1720
+ *
1542
1721
  * @param a - first value
1543
1722
  * @param b - second value
1544
1723
  * @returns `true` if both values are non-nullish and strictly equal
@@ -1550,6 +1729,11 @@ function _type_of$l(obj) {
1550
1729
  *
1551
1730
  * This means `null` and `undefined` are considered equivalent to each other, but `false` and `null` are not.
1552
1731
  *
1732
+ * @dbxUtil
1733
+ * @dbxUtilCategory value
1734
+ * @dbxUtilTags maybe, equal, equality, nullish, compare
1735
+ * @dbxUtilRelated is-same-non-null-value
1736
+ *
1553
1737
  * @param a - first value
1554
1738
  * @param b - second value
1555
1739
  * @returns `true` if both are nullish or both are the same value
@@ -1563,6 +1747,10 @@ function _type_of$l(obj) {
1563
1747
  * - If `b` is `null`, returns `null` (explicit clear).
1564
1748
  * - If `b` is defined, returns `b` (new value).
1565
1749
  *
1750
+ * @dbxUtil
1751
+ * @dbxUtilCategory value
1752
+ * @dbxUtilTags maybe, update, merge, sentinel, patch, optional
1753
+ *
1566
1754
  * @param a - the current value
1567
1755
  * @param b - the update value
1568
1756
  * @returns `a` if `b` is undefined, otherwise `b`
@@ -1591,12 +1779,22 @@ function _type_of$l(obj) {
1591
1779
  /**
1592
1780
  * Filters all maybe values from the input array. If a maybe value is input, returns an empty array.
1593
1781
  *
1782
+ * @dbxUtil
1783
+ * @dbxUtilCategory array
1784
+ * @dbxUtilTags array, filter, maybe, nullish, non-null, defined, compact
1785
+ * @dbxUtilRelated filter-empty-array-values, filter-maybe-array-function
1786
+ *
1594
1787
  * @param values - Optional array of optional values to filter.
1595
1788
  * @returns An array containing only non-null and non-undefined values.
1596
1789
  */ var filterMaybeArrayValues = filterMaybeArrayFunction(hasNonNullValue);
1597
1790
  /**
1598
1791
  * Filters all empty and maybe values from the input array. If a maybe value is input, returns an empty array.
1599
1792
  *
1793
+ * @dbxUtil
1794
+ * @dbxUtilCategory array
1795
+ * @dbxUtilTags array, filter, empty, maybe, nullish, non-empty, compact
1796
+ * @dbxUtilRelated filter-maybe-array-values, filter-maybe-array-function
1797
+ *
1600
1798
  * @param values - Optional array of optional values to filter.
1601
1799
  * @returns An array containing only non-null, non-undefined, and non-empty values.
1602
1800
  */ var filterEmptyArrayValues = filterMaybeArrayFunction(hasValueOrNotEmpty);
@@ -1631,6 +1829,10 @@ function _type_of$l(obj) {
1631
1829
  * @param config.build - function that mutates the base object to populate it with desired values
1632
1830
  * @returns the fully constructed object of type T
1633
1831
  *
1832
+ * @dbxUtil
1833
+ * @dbxUtilCategory value
1834
+ * @dbxUtilTags build, builder, construct, mutate, configure, factory
1835
+ *
1634
1836
  * @example
1635
1837
  * ```ts
1636
1838
  * interface User { name: string; age: number; }
@@ -1655,6 +1857,12 @@ function _type_of$l(obj) {
1655
1857
  * @param mapFunction - function to apply only when the input is defined
1656
1858
  * @returns a new function that short-circuits on null/undefined inputs
1657
1859
  *
1860
+ * @dbxUtil
1861
+ * @dbxUtilCategory value
1862
+ * @dbxUtilKind factory
1863
+ * @dbxUtilTags map, transform, maybe, nullish, factory, optional
1864
+ * @dbxUtilRelated map-array-function, map-identity-function
1865
+ *
1658
1866
  * @example
1659
1867
  * ```ts
1660
1868
  * const double = (x: number) => x * 2;
@@ -1673,6 +1881,12 @@ function _type_of$l(obj) {
1673
1881
  /**
1674
1882
  * Lifts a per-element MapFunction into one that operates on arrays, applying the mapping to each element.
1675
1883
  *
1884
+ * @dbxUtil
1885
+ * @dbxUtilCategory value
1886
+ * @dbxUtilKind factory
1887
+ * @dbxUtilTags map, transform, array, lift, factory
1888
+ * @dbxUtilRelated map-maybe-function, chain-map-functions
1889
+ *
1676
1890
  * @param mapFunction - per-element transformation
1677
1891
  * @returns a function that maps entire arrays
1678
1892
  */ function mapArrayFunction(mapFunction) {
@@ -1686,6 +1900,12 @@ function _type_of$l(obj) {
1686
1900
  * Used as a sentinel value so that {@link chainMapSameFunctions} and other combinators can detect
1687
1901
  * and skip no-op mappings for efficiency.
1688
1902
  *
1903
+ * @dbxUtil
1904
+ * @dbxUtilCategory value
1905
+ * @dbxUtilKind const
1906
+ * @dbxUtilTags map, identity, no-op, sentinel, pass-through, constant
1907
+ * @dbxUtilRelated map-identity-function, is-map-identity-function
1908
+ *
1689
1909
  * @param input - the value to pass through unchanged
1690
1910
  * @returns the same input value, unmodified
1691
1911
  */ var MAP_IDENTITY = function MAP_IDENTITY(input) {
@@ -1755,6 +1975,11 @@ function _type_of$l(obj) {
1755
1975
  * @param input - one or more optional same-type map functions to chain
1756
1976
  * @returns a single composed function that runs all provided functions in order
1757
1977
  *
1978
+ * @dbxUtil
1979
+ * @dbxUtilCategory value
1980
+ * @dbxUtilTags map, chain, compose, pipeline, identity, transform
1981
+ * @dbxUtilRelated chain-map-function, map-identity-function
1982
+ *
1758
1983
  * @example
1759
1984
  * ```ts
1760
1985
  * const fnChain = chainMapSameFunctions([
@@ -1821,6 +2046,11 @@ function _unsupported_iterable_to_array$x(o, minLen) {
1821
2046
  /**
1822
2047
  * Concatenates multiple arrays and returns only unique values.
1823
2048
  *
2049
+ * @dbxUtil
2050
+ * @dbxUtilCategory array
2051
+ * @dbxUtilTags array, unique, concat, distinct, dedupe, deduplicate
2052
+ * @dbxUtilRelated unique, flatten-array-unique, concat-arrays
2053
+ *
1824
2054
  * @param arrays - Arrays to concatenate. Null/undefined arrays are ignored.
1825
2055
  * @returns Array containing only unique values from all input arrays.
1826
2056
  */ function concatArraysUnique() {
@@ -1832,6 +2062,11 @@ function _unsupported_iterable_to_array$x(o, minLen) {
1832
2062
  /**
1833
2063
  * Flattens a 2D array and returns only unique values.
1834
2064
  *
2065
+ * @dbxUtil
2066
+ * @dbxUtilCategory array
2067
+ * @dbxUtilTags array, flatten, unique, distinct, dedupe, nested
2068
+ * @dbxUtilRelated unique, concat-arrays-unique, flatten-array
2069
+ *
1835
2070
  * @param array - Two-dimensional array to flatten and deduplicate.
1836
2071
  * @returns Array containing only unique values from the flattened input.
1837
2072
  */ function flattenArrayUnique(array) {
@@ -1840,6 +2075,11 @@ function _unsupported_iterable_to_array$x(o, minLen) {
1840
2075
  /**
1841
2076
  * Filters the input values and only returns unique values.
1842
2077
  *
2078
+ * @dbxUtil
2079
+ * @dbxUtilCategory array
2080
+ * @dbxUtilTags array, unique, distinct, dedupe, deduplicate, set
2081
+ * @dbxUtilRelated filter-unique-values, filter-unique-function, concat-arrays-unique
2082
+ *
1843
2083
  * @param values - Array of primitive-key values to deduplicate.
1844
2084
  * @param excludeInput - Optional keys or values to exclude from the result.
1845
2085
  * @returns Array containing only unique values with exclusions removed.
@@ -1878,6 +2118,12 @@ function _unsupported_iterable_to_array$x(o, minLen) {
1878
2118
  /**
1879
2119
  * Creates a {@link FilterUniqueFunction} that deduplicates items by their computed key.
1880
2120
  *
2121
+ * @dbxUtil
2122
+ * @dbxUtilCategory array
2123
+ * @dbxUtilKind factory
2124
+ * @dbxUtilTags array, unique, distinct, dedupe, factory, key, filter
2125
+ * @dbxUtilRelated filter-unique-values, unique, allow-value-once-filter
2126
+ *
1881
2127
  * @param readKey - Function to extract a unique key from each item.
1882
2128
  * @param additionalKeysInput - Optional keys or values to pre-seed as already seen, causing them to be excluded.
1883
2129
  * @returns A reusable filter function that removes duplicate items from arrays.
@@ -1907,6 +2153,11 @@ function _unsupported_iterable_to_array$x(o, minLen) {
1907
2153
  /**
1908
2154
  * Filters an array to contain only items with unique keys.
1909
2155
  *
2156
+ * @dbxUtil
2157
+ * @dbxUtilCategory array
2158
+ * @dbxUtilTags array, unique, filter, dedupe, key, distinct
2159
+ * @dbxUtilRelated filter-unique-function, unique, is-unique-keyed-function
2160
+ *
1910
2161
  * @param values - Array of items to deduplicate.
1911
2162
  * @param readKey - Function to extract a unique key from each item.
1912
2163
  * @param additionalKeys - Optional keys to pre-seed as already seen, excluding matching items.
@@ -1918,6 +2169,12 @@ function _unsupported_iterable_to_array$x(o, minLen) {
1918
2169
  /**
1919
2170
  * Creates an {@link IsUniqueKeyedFunction} that checks whether all items in an array have unique keys.
1920
2171
  *
2172
+ * @dbxUtil
2173
+ * @dbxUtilCategory array
2174
+ * @dbxUtilKind factory
2175
+ * @dbxUtilTags array, unique, validation, distinct, key, decision, factory
2176
+ * @dbxUtilRelated filter-unique-function, unique
2177
+ *
1921
2178
  * @param readKey - Function to extract a unique key from each item.
1922
2179
  * @returns A decision function that returns true if all items have distinct keys.
1923
2180
  */ function isUniqueKeyedFunction(readKey) {
@@ -1959,7 +2216,7 @@ function _class_call_check$b(instance, Constructor) {
1959
2216
  throw new TypeError("Cannot call a class as a function");
1960
2217
  }
1961
2218
  }
1962
- function _define_property$l(obj, key, value) {
2219
+ function _define_property$m(obj, key, value) {
1963
2220
  if (key in obj) {
1964
2221
  Object.defineProperty(obj, key, {
1965
2222
  value: value,
@@ -2222,7 +2479,7 @@ function readModelKey(input) {
2222
2479
  * @deprecated Use {@link UniqueModel} instead.
2223
2480
  */ var AbstractUniqueModel = function AbstractUniqueModel(template) {
2224
2481
  _class_call_check$b(this, AbstractUniqueModel);
2225
- _define_property$l(this, "id", void 0);
2482
+ _define_property$m(this, "id", void 0);
2226
2483
  this.id = template.id;
2227
2484
  }
2228
2485
  ;
@@ -2383,7 +2640,7 @@ function _create_class$7(Constructor, protoProps, staticProps) {
2383
2640
  if (protoProps) _defineProperties$7(Constructor.prototype, protoProps);
2384
2641
  return Constructor;
2385
2642
  }
2386
- function _define_property$k(obj, key, value) {
2643
+ function _define_property$l(obj, key, value) {
2387
2644
  if (key in obj) {
2388
2645
  Object.defineProperty(obj, key, {
2389
2646
  value: value,
@@ -2421,8 +2678,8 @@ function _unsupported_iterable_to_array$v(o, minLen) {
2421
2678
  function HashSet(config, values) {
2422
2679
  var _this = this;
2423
2680
  _class_call_check$a(this, HashSet);
2424
- _define_property$k(this, "_map", new Map());
2425
- _define_property$k(this, "_config", void 0);
2681
+ _define_property$l(this, "_map", new Map());
2682
+ _define_property$l(this, "_config", void 0);
2426
2683
  this._config = config;
2427
2684
  if (values) {
2428
2685
  values.forEach(function(x) {
@@ -2645,6 +2902,11 @@ function reverseCompareFn(compareFn) {
2645
2902
  *
2646
2903
  * The input comparison function must be in ascending order.
2647
2904
  *
2905
+ * @dbxUtil
2906
+ * @dbxUtilCategory sort
2907
+ * @dbxUtilTags sort, order, ascending, descending, compare, direction
2908
+ * @dbxUtilRelated reverse-compare-fn, compare-with-mapped-values-function
2909
+ *
2648
2910
  * @param ascendingCompareFn - a comparison function that sorts in ascending order
2649
2911
  * @param order - the desired sort direction; defaults to 'asc'
2650
2912
  * @returns the original function if ascending, or a reversed version if descending
@@ -2660,6 +2922,12 @@ function reverseCompareFn(compareFn) {
2660
2922
  * @param comparesFunction - Compares the mapped values.
2661
2923
  * @returns A sort comparison function for the original type.
2662
2924
  *
2925
+ * @dbxUtil
2926
+ * @dbxUtilCategory sort
2927
+ * @dbxUtilKind factory
2928
+ * @dbxUtilTags sort, compare, map, derive, factory, by, key
2929
+ * @dbxUtilRelated reverse-compare-fn, compare-fn-order
2930
+ *
2663
2931
  * @example
2664
2932
  * ```ts
2665
2933
  * const byName = compareWithMappedValuesFunction(
@@ -2830,6 +3098,11 @@ function _unsupported_iterable_to_array$t(o, minLen) {
2830
3098
  * @param batchSize - Maximum number of items per batch.
2831
3099
  * @returns An array of {@link IndexedBatch} arrays.
2832
3100
  *
3101
+ * @dbxUtil
3102
+ * @dbxUtilCategory grouping
3103
+ * @dbxUtilTags array, batch, chunk, split, group, partition, indexed
3104
+ * @dbxUtilRelated batch-calc, item-count-for-batch-index
3105
+ *
2833
3106
  * @example
2834
3107
  * ```ts
2835
3108
  * const result = batch(['a', 'b', 'c', 'd'], 2);
@@ -2851,6 +3124,11 @@ function _unsupported_iterable_to_array$t(o, minLen) {
2851
3124
  /**
2852
3125
  * Calculates batch metrics (count, full batches, remainder) from a {@link BatchCount} configuration.
2853
3126
  *
3127
+ * @dbxUtil
3128
+ * @dbxUtilCategory grouping
3129
+ * @dbxUtilTags batch, calculate, count, remainder, math
3130
+ * @dbxUtilRelated batch, item-count-for-batch-index
3131
+ *
2854
3132
  * @param input - The total items and items-per-batch configuration.
2855
3133
  * @returns A {@link BatchCalc} with computed batch counts and remainder.
2856
3134
  */ function batchCalc(input) {
@@ -2909,6 +3187,11 @@ function _unsupported_iterable_to_array$t(o, minLen) {
2909
3187
  * @param params.excludeNewItems - when true, values whose keys are not in `orderKeys` are omitted from the result; defaults to false
2910
3188
  * @returns The reordered values array.
2911
3189
  *
3190
+ * @dbxUtil
3191
+ * @dbxUtilCategory grouping
3192
+ * @dbxUtilTags array, order, restore, sort, key, reorder, dedupe
3193
+ * @dbxUtilRelated restore-order-with-values, group-values
3194
+ *
2912
3195
  * @example
2913
3196
  * ```ts
2914
3197
  * const items = [{ key: 'a' }, { key: 'b' }, { key: 'c' }];
@@ -3032,6 +3315,11 @@ function _unsupported_iterable_to_array$t(o, minLen) {
3032
3315
  /**
3033
3316
  * Separates values into included and excluded groups based on a decision function.
3034
3317
  *
3318
+ * @dbxUtil
3319
+ * @dbxUtilCategory grouping
3320
+ * @dbxUtilTags array, separate, partition, split, filter, group
3321
+ * @dbxUtilRelated group-values, pair-group-values
3322
+ *
3035
3323
  * @param values - Values to separate.
3036
3324
  * @param checkInclusion - Returns `true` for values that should be included.
3037
3325
  * @returns A {@link SeparateResult} with included and excluded arrays.
@@ -3433,6 +3721,11 @@ function _unsupported_iterable_to_array$s(o, minLen) {
3433
3721
  * Returns true if the input is a function-like value with a prototype and constructor (i.e., a class or named function declaration).
3434
3722
  * Returns false for arrow functions, class instances, plain objects, and primitives.
3435
3723
  *
3724
+ * @dbxUtil
3725
+ * @dbxUtilCategory type
3726
+ * @dbxUtilTags type, type-guard, function, class, constructor, reflection
3727
+ * @dbxUtilRelated is-class-like-type, get-function-type, is-non-class-function
3728
+ *
3436
3729
  * @param obj - The value to check.
3437
3730
  * @returns Whether the value is a function with a constructor.
3438
3731
  */ function isObjectWithConstructor(obj) {
@@ -3442,6 +3735,11 @@ function _unsupported_iterable_to_array$s(o, minLen) {
3442
3735
  * Returns true if the input is a class (requires `new` to instantiate). Distinguishes classes from regular functions
3443
3736
  * by checking that the prototype is non-writable.
3444
3737
  *
3738
+ * @dbxUtil
3739
+ * @dbxUtilCategory type
3740
+ * @dbxUtilTags type, type-guard, class, reflection, instance
3741
+ * @dbxUtilRelated is-object-with-constructor, get-function-type
3742
+ *
3445
3743
  * @param obj - The value to check.
3446
3744
  * @returns Whether the value is a class type.
3447
3745
  */ function isClassLikeType(obj) {
@@ -3452,6 +3750,11 @@ function _unsupported_iterable_to_array$s(o, minLen) {
3452
3750
  * Determines the function type of the input value: `'class'`, `'function'`, or `'arrow'`.
3453
3751
  * Returns `null` if the input is not a function.
3454
3752
  *
3753
+ * @dbxUtil
3754
+ * @dbxUtilCategory type
3755
+ * @dbxUtilTags type, function, class, arrow, reflection, kind, detect
3756
+ * @dbxUtilRelated is-class-like-type, is-non-class-function, is-object-with-constructor
3757
+ *
3455
3758
  * @param x - The value to inspect.
3456
3759
  * @returns The {@link FunctionType}, or `null` for non-functions.
3457
3760
  */ function getFunctionType(x) {
@@ -3462,6 +3765,11 @@ function _unsupported_iterable_to_array$s(o, minLen) {
3462
3765
  /**
3463
3766
  * Returns true if the input is a function but not a class (i.e., a regular function or arrow function).
3464
3767
  *
3768
+ * @dbxUtil
3769
+ * @dbxUtilCategory type
3770
+ * @dbxUtilTags type, type-guard, function, arrow, reflection, callable
3771
+ * @dbxUtilRelated is-class-like-type, get-function-type
3772
+ *
3465
3773
  * @param x - The value to check.
3466
3774
  * @returns Whether the value is a non-class function.
3467
3775
  */ // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
@@ -3477,6 +3785,11 @@ function _type_of$j(obj) {
3477
3785
  /**
3478
3786
  * Returns true if the input value is a non-class function (i.e., likely a Getter).
3479
3787
  *
3788
+ * @dbxUtil
3789
+ * @dbxUtilCategory getter
3790
+ * @dbxUtilTags getter, type-guard, function, callable, check
3791
+ * @dbxUtilRelated as-getter, get-value-from-getter
3792
+ *
3480
3793
  * @param value - The value to check
3481
3794
  * @returns True if the value is a non-class function
3482
3795
  */ function isGetter(value) {
@@ -3488,6 +3801,11 @@ function getValueFromGetter(input, args) {
3488
3801
  /**
3489
3802
  * Wraps the input as a Getter function. If it's already a function, returns it directly.
3490
3803
  *
3804
+ * @dbxUtil
3805
+ * @dbxUtilCategory getter
3806
+ * @dbxUtilTags getter, factory, wrap, ensure, normalize
3807
+ * @dbxUtilRelated get-value-from-getter, is-getter
3808
+ *
3491
3809
  * @param input - A value or getter function
3492
3810
  * @returns A Getter function that returns the value
3493
3811
  */ function asGetter(input) {
@@ -3498,6 +3816,12 @@ function getValueFromGetter(input, args) {
3498
3816
  /**
3499
3817
  * Creates a factory that returns a shallow copy of the input value on each call.
3500
3818
  *
3819
+ * @dbxUtil
3820
+ * @dbxUtilCategory getter
3821
+ * @dbxUtilKind factory
3822
+ * @dbxUtilTags getter, factory, copy, clone, object
3823
+ * @dbxUtilRelated as-object-copy-factory, copy-object
3824
+ *
3501
3825
  * @param value - The object to copy
3502
3826
  * @param copyFunction - Optional custom copy function (defaults to copyObject)
3503
3827
  * @returns A factory that produces copies of the value
@@ -3594,6 +3918,12 @@ function makeWithFactoryInput(factory, input) {
3594
3918
  /**
3595
3919
  * Creates a function that checks whether a number falls within the specified inclusive bounds.
3596
3920
  *
3921
+ * @dbxUtil
3922
+ * @dbxUtilCategory number
3923
+ * @dbxUtilKind factory
3924
+ * @dbxUtilTags number, bound, range, between, check, inclusive, factory
3925
+ * @dbxUtilRelated bound-number-function, bound-number, is-valid-number-bound
3926
+ *
3597
3927
  * @param bounds - The min/max bounds to test against
3598
3928
  * @returns A function that returns `true` if the input number is within bounds
3599
3929
  * @throws Error if the bounds are invalid (min > max)
@@ -3611,6 +3941,12 @@ function makeWithFactoryInput(factory, input) {
3611
3941
  *
3612
3942
  * When `fencePosts` is true, wraps to the nearest "fence post" value, extending the wrap range by one in each direction.
3613
3943
  *
3944
+ * @dbxUtil
3945
+ * @dbxUtilCategory number
3946
+ * @dbxUtilKind factory
3947
+ * @dbxUtilTags number, wrap, modulo, modular, range, factory, circular
3948
+ * @dbxUtilRelated bound-number-function, bound-number, is-in-number-bound-function
3949
+ *
3614
3950
  * @param wrapNumberFunctionConfig - Configuration with min, max, and optional fence post behavior
3615
3951
  * @returns A function that wraps input numbers into the bounded range
3616
3952
  */ function wrapNumberFunction(wrapNumberFunctionConfig) {
@@ -3636,6 +3972,12 @@ function makeWithFactoryInput(factory, input) {
3636
3972
  *
3637
3973
  * When `wrap` is true, uses modular wrapping. Otherwise, clamps values to the min/max range.
3638
3974
  *
3975
+ * @dbxUtil
3976
+ * @dbxUtilCategory number
3977
+ * @dbxUtilKind factory
3978
+ * @dbxUtilTags number, bound, clamp, wrap, range, factory, constrain
3979
+ * @dbxUtilRelated bound-number, wrap-number-function, is-in-number-bound-function
3980
+ *
3639
3981
  * @param boundNumberFunctionConfig - Configuration with min, max, and optional wrap behavior
3640
3982
  * @returns A function that bounds input numbers into the configured range
3641
3983
  */ function boundNumberFunction(boundNumberFunctionConfig) {
@@ -3647,6 +3989,11 @@ function makeWithFactoryInput(factory, input) {
3647
3989
  /**
3648
3990
  * Clamps the input number between the min and max values (inclusive).
3649
3991
  *
3992
+ * @dbxUtil
3993
+ * @dbxUtilCategory number
3994
+ * @dbxUtilTags number, clamp, bound, min, max, range, constrain
3995
+ * @dbxUtilRelated bound-number-function, wrap-number-function, is-in-number-bound-function
3996
+ *
3650
3997
  * @param input - Number to clamp
3651
3998
  * @param min - Minimum allowed value
3652
3999
  * @param max - Maximum allowed value
@@ -3664,6 +4011,11 @@ function _type_of$i(obj) {
3664
4011
  *
3665
4012
  * Returns 0 for null/undefined input.
3666
4013
  *
4014
+ * @dbxUtil
4015
+ * @dbxUtilCategory number
4016
+ * @dbxUtilTags number, percent, decimal, convert, ratio
4017
+ * @dbxUtilRelated percent-number-from-decimal
4018
+ *
3667
4019
  * @param input - A percent number value (e.g., 5 means 5%)
3668
4020
  * @returns The decimal equivalent
3669
4021
  */ function percentNumberToDecimal(input) {
@@ -3674,6 +4026,11 @@ function _type_of$i(obj) {
3674
4026
  *
3675
4027
  * Returns 0 for null/undefined input.
3676
4028
  *
4029
+ * @dbxUtil
4030
+ * @dbxUtilCategory number
4031
+ * @dbxUtilTags number, percent, decimal, convert, ratio
4032
+ * @dbxUtilRelated percent-number-to-decimal
4033
+ *
3677
4034
  * @param input - A decimal percent value (e.g., 0.05 means 5%)
3678
4035
  * @returns The percent number equivalent
3679
4036
  */ function percentNumberFromDecimal(input) {
@@ -3684,6 +4041,10 @@ function _type_of$i(obj) {
3684
4041
  *
3685
4042
  * Strings are parsed via `Number()`. Null/undefined returns 0.
3686
4043
  *
4044
+ * @dbxUtil
4045
+ * @dbxUtilCategory number
4046
+ * @dbxUtilTags number, parse, convert, coerce, string, normalize
4047
+ *
3687
4048
  * @param input - A number, number string, or null/undefined
3688
4049
  * @returns The numeric value, or 0 for null/undefined
3689
4050
  */ function asNumber(input) {
@@ -3706,6 +4067,11 @@ function _type_of$i(obj) {
3706
4067
  *
3707
4068
  * Treats null/undefined as 0.
3708
4069
  *
4070
+ * @dbxUtil
4071
+ * @dbxUtilCategory number
4072
+ * @dbxUtilTags number, divisible, modulo, division, math, check
4073
+ * @dbxUtilRelated nearest-divisible-values, is-even-number, is-odd-number
4074
+ *
3709
4075
  * @param value - The number to check
3710
4076
  * @param divisor - The divisor to test against
3711
4077
  * @returns `true` if the remainder is zero
@@ -3716,6 +4082,11 @@ function _type_of$i(obj) {
3716
4082
  /**
3717
4083
  * Finds the nearest values that are evenly divisible by the divisor, both above (ceil) and below (floor) the input value.
3718
4084
  *
4085
+ * @dbxUtil
4086
+ * @dbxUtilCategory number
4087
+ * @dbxUtilTags number, divisible, nearest, ceil, floor, round, snap, math
4088
+ * @dbxUtilRelated is-number-divisible-by
4089
+ *
3719
4090
  * @param value - The value to find divisible neighbors for
3720
4091
  * @param divisor - The divisor to align to
3721
4092
  * @returns Object with the input value, divisor, and the nearest ceil/floor divisible values
@@ -3733,6 +4104,11 @@ function _type_of$i(obj) {
3733
4104
  /**
3734
4105
  * Checks whether the input is an even number.
3735
4106
  *
4107
+ * @dbxUtil
4108
+ * @dbxUtilCategory number
4109
+ * @dbxUtilTags number, even, parity, math, check
4110
+ * @dbxUtilRelated is-odd-number, is-number-divisible-by
4111
+ *
3736
4112
  * @param value - Number to test
3737
4113
  * @returns `true` if even
3738
4114
  */ function isEvenNumber(value) {
@@ -3741,6 +4117,11 @@ function _type_of$i(obj) {
3741
4117
  /**
3742
4118
  * Checks whether the input is an odd number.
3743
4119
  *
4120
+ * @dbxUtil
4121
+ * @dbxUtilCategory number
4122
+ * @dbxUtilTags number, odd, parity, math, check
4123
+ * @dbxUtilRelated is-even-number, is-number-divisible-by
4124
+ *
3744
4125
  * @param value - Number to test
3745
4126
  * @returns `true` if odd
3746
4127
  */ function isOddNumber(value) {
@@ -3751,6 +4132,10 @@ function _type_of$i(obj) {
3751
4132
  *
3752
4133
  * The `from` value is floored and the `to` value is ceiled before computation.
3753
4134
  *
4135
+ * @dbxUtil
4136
+ * @dbxUtilCategory number
4137
+ * @dbxUtilTags number, sum, range, integers, math, gauss, total
4138
+ *
3754
4139
  * @param from - The starting value (floored to nearest integer)
3755
4140
  * @param to - The ending value (ceiled to nearest integer)
3756
4141
  * @returns Sum of all integers in the range
@@ -3773,6 +4158,11 @@ function _type_of$i(obj) {
3773
4158
  /**
3774
4159
  * Finds the minimum and maximum values from an iterable of numbers.
3775
4160
  *
4161
+ * @dbxUtil
4162
+ * @dbxUtilCategory number
4163
+ * @dbxUtilTags number, min, max, range, sort, bounds, extremes
4164
+ * @dbxUtilRelated sort-compare-number-function
4165
+ *
3776
4166
  * @param values - Iterable of numbers to examine
3777
4167
  * @returns Object with `min` and `max` values
3778
4168
  */ function minAndMaxNumber(values) {
@@ -3781,6 +4171,10 @@ function _type_of$i(obj) {
3781
4171
  /**
3782
4172
  * Computes the logarithm of `y` with base `x`.
3783
4173
  *
4174
+ * @dbxUtil
4175
+ * @dbxUtilCategory number
4176
+ * @dbxUtilTags number, log, logarithm, math, base
4177
+ *
3784
4178
  * @param x - The base of the logarithm
3785
4179
  * @param y - The value to compute the logarithm of
3786
4180
  * @returns The base-x logarithm of y
@@ -3801,6 +4195,12 @@ function _type_of$h(obj) {
3801
4195
  /**
3802
4196
  * Returns a rounding function for the specified rounding type.
3803
4197
  *
4198
+ * @dbxUtil
4199
+ * @dbxUtilCategory number
4200
+ * @dbxUtilKind factory
4201
+ * @dbxUtilTags number, round, floor, ceil, math, factory, rounding
4202
+ * @dbxUtilRelated cut-value-to-precision-function, round-to-precision-function
4203
+ *
3804
4204
  * @param type - The rounding strategy: 'floor', 'ceil', 'round', or 'none'
3805
4205
  * @returns The corresponding Math function, or an identity function for 'none'
3806
4206
  */ function roundingFunction(type) {
@@ -3829,6 +4229,11 @@ function _type_of$h(obj) {
3829
4229
  *
3830
4230
  * Accepts strings and null/undefined via {@link asNumber}.
3831
4231
  *
4232
+ * @dbxUtil
4233
+ * @dbxUtilCategory number
4234
+ * @dbxUtilTags number, precision, decimal, truncate, cut, round
4235
+ * @dbxUtilRelated cut-value-to-precision-function, cut-value-to-integer, round-to-precision
4236
+ *
3832
4237
  * @param input - Number, number string, or null/undefined
3833
4238
  * @param precision - Number of decimal places to retain
3834
4239
  * @returns The truncated number value
@@ -3841,6 +4246,11 @@ function _type_of$h(obj) {
3841
4246
  /**
3842
4247
  * Truncates a value to an integer by cutting to zero decimal precision.
3843
4248
  *
4249
+ * @dbxUtil
4250
+ * @dbxUtilCategory number
4251
+ * @dbxUtilTags number, integer, truncate, floor, cut, parse
4252
+ * @dbxUtilRelated cut-value-to-precision, as-number
4253
+ *
3844
4254
  * @param input - Number, number string, or null/undefined
3845
4255
  * @returns The truncated integer value
3846
4256
  */ function cutValueToInteger(input) {
@@ -3989,6 +4399,12 @@ var DOLLAR_AMOUNT_STRING_REGEX = /^\$?(\d+)\.?(\d\d)$/;
3989
4399
  *
3990
4400
  * Accepts either a simple max number or a full config object with min, max, and rounding options.
3991
4401
  *
4402
+ * @dbxUtil
4403
+ * @dbxUtilCategory number
4404
+ * @dbxUtilKind factory
4405
+ * @dbxUtilTags number, random, factory, range, min, max, generate
4406
+ * @dbxUtilRelated random-number, rounding-function
4407
+ *
3992
4408
  * @param maxOrArgs - Maximum value (exclusive) or full configuration object
3993
4409
  * @param roundingInput - Optional rounding mode override
3994
4410
  * @returns A factory function that produces random numbers within the range
@@ -4022,6 +4438,11 @@ var DOLLAR_AMOUNT_STRING_REGEX = /^\$?(\d+)\.?(\d\d)$/;
4022
4438
  /**
4023
4439
  * Generates a single random number using {@link randomNumberFactory}. Convenience function for one-off usage.
4024
4440
  *
4441
+ * @dbxUtil
4442
+ * @dbxUtilCategory number
4443
+ * @dbxUtilTags number, random, range, generate
4444
+ * @dbxUtilRelated random-number-factory
4445
+ *
4025
4446
  * @param maxOrArgs - Maximum value (exclusive) or full configuration object
4026
4447
  * @param roundingInput - Optional rounding mode
4027
4448
  * @returns A single random number
@@ -5035,6 +5456,12 @@ function applyBestFit(input, filter, compare, updateNonBestFit) {
5035
5456
  /**
5036
5457
  * Creates a new ArrayFactory that generates multiple values.
5037
5458
  *
5459
+ * @dbxUtil
5460
+ * @dbxUtilCategory array
5461
+ * @dbxUtilKind factory
5462
+ * @dbxUtilTags array, factory, generate, make, build, create
5463
+ * @dbxUtilRelated array-input-factory, terminating-factory-from-array
5464
+ *
5038
5465
  * @param factory - The factory function used to generate each item
5039
5466
  * @returns A function that takes a count parameter and returns an array of generated items
5040
5467
  */ function arrayFactory(factory) {
@@ -5045,6 +5472,12 @@ function applyBestFit(input, filter, compare, updateNonBestFit) {
5045
5472
  /**
5046
5473
  * Creates an ArrayInputFactory that transforms input values into output values.
5047
5474
  *
5475
+ * @dbxUtil
5476
+ * @dbxUtilCategory array
5477
+ * @dbxUtilKind factory
5478
+ * @dbxUtilTags array, factory, transform, map, generate, build
5479
+ * @dbxUtilRelated array-factory
5480
+ *
5048
5481
  * @param factory - The factory function used to transform each input value
5049
5482
  * @returns A function that takes an array of input values and returns an array of output values
5050
5483
  */ function arrayInputFactory(factory) {
@@ -5303,6 +5736,12 @@ function generateIfDoesNotExist(keys, existing, readKey, generateFn) {
5303
5736
  /**
5304
5737
  * Creates a {@link RandomPickFactory} from the input values.
5305
5738
  *
5739
+ * @dbxUtil
5740
+ * @dbxUtilCategory array
5741
+ * @dbxUtilKind factory
5742
+ * @dbxUtilTags array, random, pick, sample, choose, factory
5743
+ * @dbxUtilRelated pick-one-randomly, random-array-index
5744
+ *
5306
5745
  * @param values - array of values to randomly pick from
5307
5746
  * @returns a callable factory that returns a random value from the array on each invocation
5308
5747
  * @throws Error if the input array is empty
@@ -5320,6 +5759,11 @@ function generateIfDoesNotExist(keys, existing, readKey, generateFn) {
5320
5759
  /**
5321
5760
  * Returns a random index from the input array. Returns 0 if the array is empty.
5322
5761
  *
5762
+ * @dbxUtil
5763
+ * @dbxUtilCategory array
5764
+ * @dbxUtilTags array, random, index, position
5765
+ * @dbxUtilRelated pick-one-randomly, random-pick-factory
5766
+ *
5323
5767
  * @param values - array to generate a random index for
5324
5768
  * @returns a random valid index within the array, or 0 if the array is empty
5325
5769
  */ function randomArrayIndex(values) {
@@ -5328,6 +5772,11 @@ function generateIfDoesNotExist(keys, existing, readKey, generateFn) {
5328
5772
  /**
5329
5773
  * Picks a single item randomly from the input array.
5330
5774
  *
5775
+ * @dbxUtil
5776
+ * @dbxUtilCategory array
5777
+ * @dbxUtilTags array, random, pick, sample, choose
5778
+ * @dbxUtilRelated random-pick-factory, random-array-index
5779
+ *
5331
5780
  * @param values - array to pick a random item from
5332
5781
  * @returns a randomly selected item from the array
5333
5782
  * @throws Error if the input array is empty
@@ -5339,6 +5788,11 @@ function generateIfDoesNotExist(keys, existing, readKey, generateFn) {
5339
5788
  /**
5340
5789
  * Returns items that exist in both arrays (intersection).
5341
5790
  *
5791
+ * @dbxUtil
5792
+ * @dbxUtilCategory array
5793
+ * @dbxUtilTags array, set, intersection, intersect, keep, common, both
5794
+ * @dbxUtilRelated exclude-values-from-array
5795
+ *
5342
5796
  * @param values - The source array to filter.
5343
5797
  * @param secondArray - The array of values to keep.
5344
5798
  * @returns A new array containing only the values from `values` that also exist in `secondArray`.
@@ -5348,6 +5802,11 @@ function generateIfDoesNotExist(keys, existing, readKey, generateFn) {
5348
5802
  /**
5349
5803
  * Returns items from the first array that do not exist in the second array (difference).
5350
5804
  *
5805
+ * @dbxUtil
5806
+ * @dbxUtilCategory array
5807
+ * @dbxUtilTags array, set, difference, exclude, subtract, diff
5808
+ * @dbxUtilRelated keep-values-from-array
5809
+ *
5351
5810
  * @param values - The source array to filter.
5352
5811
  * @param secondArray - The array of values to exclude.
5353
5812
  * @returns A new array containing only the values from `values` that do not exist in `secondArray`.
@@ -5357,6 +5816,11 @@ function generateIfDoesNotExist(keys, existing, readKey, generateFn) {
5357
5816
  /**
5358
5817
  * Checks whether the given array contains any duplicate values.
5359
5818
  *
5819
+ * @dbxUtil
5820
+ * @dbxUtilCategory array
5821
+ * @dbxUtilTags array, duplicate, check, validation, set
5822
+ * @dbxUtilRelated find-index-of-first-duplicate-value, unique
5823
+ *
5360
5824
  * @param values - The array to check for duplicates.
5361
5825
  * @returns `true` if the array contains at least one duplicate value, `false` otherwise.
5362
5826
  */ function arrayContainsDuplicateValue(values) {
@@ -5365,6 +5829,11 @@ function generateIfDoesNotExist(keys, existing, readKey, generateFn) {
5365
5829
  /**
5366
5830
  * Finds the index of the first duplicate value in the given array.
5367
5831
  *
5832
+ * @dbxUtil
5833
+ * @dbxUtilCategory array
5834
+ * @dbxUtilTags array, duplicate, find, index, search
5835
+ * @dbxUtilRelated array-contains-duplicate-value, unique
5836
+ *
5368
5837
  * @param values - The array to search for duplicates.
5369
5838
  * @returns The index of the first value that is a duplicate of an earlier value, or `-1` if no duplicates exist.
5370
5839
  */ function findIndexOfFirstDuplicateValue(values) {
@@ -5401,6 +5870,11 @@ function joinStrings(input) {
5401
5870
  * Splits a string like {@link String.prototype.split}, but joins overflow segments back together
5402
5871
  * instead of discarding them. Useful when you only want to split on the first N-1 occurrences.
5403
5872
  *
5873
+ * @dbxUtil
5874
+ * @dbxUtilCategory string
5875
+ * @dbxUtilTags string, split, limit, separator, parts, segments
5876
+ * @dbxUtilRelated join-strings, string-split-join-instance
5877
+ *
5404
5878
  * @param input - string to split
5405
5879
  * @param separator - delimiter to split on
5406
5880
  * @param limit - maximum number of resulting segments; overflow segments are rejoined with the separator
@@ -5513,6 +5987,11 @@ function caseInsensitiveString(input) {
5513
5987
  /**
5514
5988
  * Capitalizes the first letter of the input string.
5515
5989
  *
5990
+ * @dbxUtil
5991
+ * @dbxUtilCategory string
5992
+ * @dbxUtilTags string, capitalize, case, uppercase, first
5993
+ * @dbxUtilRelated lowercase-first-letter, case-insensitive-string
5994
+ *
5516
5995
  * @param value - string to capitalize
5517
5996
  * @returns the input string with its first character uppercased
5518
5997
  */ function capitalizeFirstLetter(value) {
@@ -5521,6 +6000,11 @@ function caseInsensitiveString(input) {
5521
6000
  /**
5522
6001
  * Lowercases the first letter of the input string.
5523
6002
  *
6003
+ * @dbxUtil
6004
+ * @dbxUtilCategory string
6005
+ * @dbxUtilTags string, lowercase, case, first, decapitalize
6006
+ * @dbxUtilRelated capitalize-first-letter, case-insensitive-string
6007
+ *
5524
6008
  * @param value - string to modify
5525
6009
  * @returns the input string with its first character lowercased
5526
6010
  */ function lowercaseFirstLetter(value) {
@@ -5530,6 +6014,11 @@ function caseInsensitiveString(input) {
5530
6014
  * Splits the input string into a first name and last name tuple using a space as the delimiter.
5531
6015
  * If the name contains more than one space, the remainder is treated as the last name.
5532
6016
  *
6017
+ * @dbxUtil
6018
+ * @dbxUtilCategory string
6019
+ * @dbxUtilTags string, name, split, first, last, person, parse
6020
+ * @dbxUtilRelated split-join-remainder
6021
+ *
5533
6022
  * @param input - full name string to split
5534
6023
  * @returns a tuple of [firstName, lastName], where lastName includes all text after the first space
5535
6024
  */ function splitJoinNameString(input) {
@@ -5538,6 +6027,10 @@ function caseInsensitiveString(input) {
5538
6027
  /**
5539
6028
  * Creates a string that repeats the given string a specified number of times.
5540
6029
  *
6030
+ * @dbxUtil
6031
+ * @dbxUtilCategory string
6032
+ * @dbxUtilTags string, repeat, build, generate, fill
6033
+ *
5541
6034
  * @param string - the string to repeat
5542
6035
  * @param reapeat - number of times to repeat the string
5543
6036
  * @returns the repeated string concatenation
@@ -5554,6 +6047,11 @@ function caseInsensitiveString(input) {
5554
6047
  /**
5555
6048
  * Creates a {@link CutStringFunction} that truncates strings exceeding the configured maximum length.
5556
6049
  *
6050
+ * @dbxUtil
6051
+ * @dbxUtilCategory string
6052
+ * @dbxUtilKind factory
6053
+ * @dbxUtilTags string, cut, truncate, ellipsis, max-length, factory, abbreviate
6054
+ *
5557
6055
  * @param config - configuration controlling max length and end text behavior
5558
6056
  * @returns a reusable function that truncates input strings
5559
6057
  */ function cutStringFunction(config) {
@@ -5576,6 +6074,11 @@ function caseInsensitiveString(input) {
5576
6074
  /**
5577
6075
  * Truncates a string to the given maximum length, appending end text (defaults to "...") if truncated.
5578
6076
  *
6077
+ * @dbxUtil
6078
+ * @dbxUtilCategory string
6079
+ * @dbxUtilTags string, cut, truncate, ellipsis, max-length, abbreviate, shorten
6080
+ * @dbxUtilRelated cut-string-function
6081
+ *
5579
6082
  * @param input - the string to truncate, or null/undefined
5580
6083
  * @param maxLength - maximum allowed length for the output string
5581
6084
  * @param endText - text to append when truncated; defaults to "..."
@@ -5591,6 +6094,11 @@ function caseInsensitiveString(input) {
5591
6094
  *
5592
6095
  * Newlines are preserved.
5593
6096
  *
6097
+ * @dbxUtil
6098
+ * @dbxUtilCategory string
6099
+ * @dbxUtilTags string, whitespace, flatten, collapse, normalize, trim
6100
+ * @dbxUtilRelated simplify-whitespace
6101
+ *
5594
6102
  * @param input - string to flatten
5595
6103
  * @returns the string with collapsed whitespace
5596
6104
  */ function flattenWhitespace(input) {
@@ -5599,6 +6107,11 @@ function caseInsensitiveString(input) {
5599
6107
  /**
5600
6108
  * Reduces multiple consecutive newlines to a single newline and collapses multiple whitespace characters to a single space.
5601
6109
  *
6110
+ * @dbxUtil
6111
+ * @dbxUtilCategory string
6112
+ * @dbxUtilTags string, whitespace, simplify, normalize, newline, trim
6113
+ * @dbxUtilRelated flatten-whitespace
6114
+ *
5602
6115
  * @param input - string to simplify
5603
6116
  * @returns the string with simplified whitespace and newlines
5604
6117
  */ function simplifyWhitespace(input) {
@@ -5990,7 +6503,7 @@ function _create_class$6(Constructor, protoProps, staticProps) {
5990
6503
  if (protoProps) _defineProperties$6(Constructor.prototype, protoProps);
5991
6504
  return Constructor;
5992
6505
  }
5993
- function _define_property$j(obj, key, value) {
6506
+ function _define_property$k(obj, key, value) {
5994
6507
  if (key in obj) {
5995
6508
  Object.defineProperty(obj, key, {
5996
6509
  value: value,
@@ -6060,7 +6573,7 @@ function _is_native_reflect_construct$4() {
6060
6573
  var _this;
6061
6574
  _this = _call_super$4(this, AssertionError, [
6062
6575
  message
6063
- ]), _define_property$j(_this, "code", ASSERTION_ERROR_CODE), _define_property$j(_this, "_target", void 0), _define_property$j(_this, "_property", void 0);
6576
+ ]), _define_property$k(_this, "code", ASSERTION_ERROR_CODE), _define_property$k(_this, "_target", void 0), _define_property$k(_this, "_property", void 0);
6064
6577
  _this.name = 'AssertionError';
6065
6578
  _this._target = error.target;
6066
6579
  _this._property = error.propertyKey;
@@ -6165,7 +6678,7 @@ function _create_class$5(Constructor, protoProps, staticProps) {
6165
6678
  if (staticProps) _defineProperties$5(Constructor, staticProps);
6166
6679
  return Constructor;
6167
6680
  }
6168
- function _define_property$i(obj, key, value) {
6681
+ function _define_property$j(obj, key, value) {
6169
6682
  if (key in obj) {
6170
6683
  Object.defineProperty(obj, key, {
6171
6684
  value: value,
@@ -6178,7 +6691,7 @@ function _define_property$i(obj, key, value) {
6178
6691
  }
6179
6692
  return obj;
6180
6693
  }
6181
- function _object_spread$e(target) {
6694
+ function _object_spread$f(target) {
6182
6695
  for(var i = 1; i < arguments.length; i++){
6183
6696
  var source = arguments[i] != null ? arguments[i] : {};
6184
6697
  var ownKeys = Object.keys(source);
@@ -6188,7 +6701,7 @@ function _object_spread$e(target) {
6188
6701
  }));
6189
6702
  }
6190
6703
  ownKeys.forEach(function(key) {
6191
- _define_property$i(target, key, source[key]);
6704
+ _define_property$j(target, key, source[key]);
6192
6705
  });
6193
6706
  }
6194
6707
  return target;
@@ -6215,7 +6728,7 @@ function _object_spread$e(target) {
6215
6728
  * @returns A property descriptor interceptor function
6216
6729
  */ function makePropertyDescriptorAssertion(assertValueFn, options, defaultOptions) {
6217
6730
  // Build options
6218
- options = _object_spread$e({}, defaultOptions, options);
6731
+ options = _object_spread$f({}, defaultOptions, options);
6219
6732
  return this.makeSetPropertyDescriptorInterceptor(function(param) {
6220
6733
  var target = param.target, propertyKey = param.propertyKey, setValue = param.setValue;
6221
6734
  var _options_map;
@@ -6701,7 +7214,7 @@ function _array_like_to_array$q(arr, len) {
6701
7214
  function _array_with_holes$i(arr) {
6702
7215
  if (Array.isArray(arr)) return arr;
6703
7216
  }
6704
- function _define_property$h(obj, key, value) {
7217
+ function _define_property$i(obj, key, value) {
6705
7218
  if (key in obj) {
6706
7219
  Object.defineProperty(obj, key, {
6707
7220
  value: value,
@@ -6741,7 +7254,7 @@ function _iterable_to_array_limit$i(arr, i) {
6741
7254
  function _non_iterable_rest$i() {
6742
7255
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
6743
7256
  }
6744
- function _object_spread$d(target) {
7257
+ function _object_spread$e(target) {
6745
7258
  for(var i = 1; i < arguments.length; i++){
6746
7259
  var source = arguments[i] != null ? arguments[i] : {};
6747
7260
  var ownKeys = Object.keys(source);
@@ -6751,7 +7264,7 @@ function _object_spread$d(target) {
6751
7264
  }));
6752
7265
  }
6753
7266
  ownKeys.forEach(function(key) {
6754
- _define_property$h(target, key, source[key]);
7267
+ _define_property$i(target, key, source[key]);
6755
7268
  });
6756
7269
  }
6757
7270
  return target;
@@ -6772,8 +7285,22 @@ function _unsupported_iterable_to_array$q(o, minLen) {
6772
7285
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$q(o, minLen);
6773
7286
  }
6774
7287
  /**
7288
+ * Creates a reusable {@link StripObjectFunction} that filters values from an object and returns
7289
+ * `undefined` when no keys remain after filtering.
6775
7290
  *
6776
- * @param input
7291
+ * Useful when an upstream consumer treats an "empty" object as a missing value (e.g. for skipping
7292
+ * persistence or omitting a field from a request body).
7293
+ *
7294
+ * @param filter - Filter controlling which key/value pairs are removed from the input object.
7295
+ * @param copy - When true (default), the returned function shallow-copies the input before filtering instead of mutating it.
7296
+ * @returns A function that returns the stripped object, or `undefined` when filtering removed every key.
7297
+ *
7298
+ * @example
7299
+ * ```ts
7300
+ * const stripUndef = stripObjectFunction(KeyValueTypleValueFilter.UNDEFINED);
7301
+ * stripUndef({ a: 1, b: undefined }); // { a: 1 }
7302
+ * stripUndef({ a: undefined }); // undefined
7303
+ * ```
6777
7304
  */ function stripObjectFunction(filter) {
6778
7305
  var copy = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
6779
7306
  var filterFn = filterFromPOJOFunction({
@@ -6789,7 +7316,22 @@ function _unsupported_iterable_to_array$q(o, minLen) {
6789
7316
  return result;
6790
7317
  };
6791
7318
  }
6792
- function stripObject(input, copy) {
7319
+ /**
7320
+ * Removes `undefined` values from the input object and returns `undefined` when no keys remain.
7321
+ *
7322
+ * Convenience wrapper around {@link stripObjectFunction} pre-configured to filter out `undefined`.
7323
+ *
7324
+ * @param input - The object to strip; null/undefined inputs short-circuit and return `undefined`.
7325
+ * @param copy - When true (default), shallow-copies the input before filtering instead of mutating it.
7326
+ * @returns The stripped object, or `undefined` when input was missing or filtering removed every key.
7327
+ *
7328
+ * @example
7329
+ * ```ts
7330
+ * stripObject({ a: 1, b: undefined }); // { a: 1 }
7331
+ * stripObject({ a: undefined }); // undefined
7332
+ * stripObject(null); // undefined
7333
+ * ```
7334
+ */ function stripObject(input, copy) {
6793
7335
  return stripObjectFunction(KeyValueTypleValueFilter.UNDEFINED, copy)(input);
6794
7336
  }
6795
7337
  // MARK: Object Merging/Overriding
@@ -6857,7 +7399,7 @@ function stripObject(input, copy) {
6857
7399
  var rebuildTemplate = function rebuildTemplate() {
6858
7400
  var template = {};
6859
7401
  from.forEach(function(x) {
6860
- var relevantValues = filterToRelevantValuesObject(_object_spread$d({}, x));
7402
+ var relevantValues = filterToRelevantValuesObject(_object_spread$e({}, x));
6861
7403
  Object.assign(template, relevantValues);
6862
7404
  });
6863
7405
  return template;
@@ -7215,7 +7757,7 @@ function stripObject(input, copy) {
7215
7757
  return function(obj, copyOverride) {
7216
7758
  var copyObj = typeof copyOverride === 'boolean' ? copyOverride : copy;
7217
7759
  if (copyObj) {
7218
- obj = _object_spread$d({}, obj);
7760
+ obj = _object_spread$e({}, obj);
7219
7761
  }
7220
7762
  forEachFn(obj);
7221
7763
  return obj;
@@ -7291,7 +7833,7 @@ function stripObject(input, copy) {
7291
7833
  });
7292
7834
  var fn = function fn(inputTarget, obj) {
7293
7835
  var returnCopy = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : copy;
7294
- var target = returnCopy ? _object_spread$d({}, inputTarget) : inputTarget;
7836
+ var target = returnCopy ? _object_spread$e({}, inputTarget) : inputTarget;
7295
7837
  assignEachValueToTarget(obj, target);
7296
7838
  return target;
7297
7839
  };
@@ -7743,33 +8285,1495 @@ var AUTH_ROLE_CLAIMS_DEFAULT_EMPTY_VALUE = null;
7743
8285
  addToSet(roles, decodedRoles);
7744
8286
  }
7745
8287
  }
7746
- });
7747
- var toRoles = function toRoles(claims) {
7748
- var roles = new Set();
7749
- forEachKeyValueAddToSet(claims, roles);
7750
- return roles;
7751
- };
7752
- return {
7753
- toClaims: toClaims,
7754
- toRoles: toRoles,
7755
- defaultClaimValue: defaultClaimValue,
7756
- defaultEmptyValue: defaultEmptyValue
8288
+ });
8289
+ var toRoles = function toRoles(claims) {
8290
+ var roles = new Set();
8291
+ forEachKeyValueAddToSet(claims, roles);
8292
+ return roles;
8293
+ };
8294
+ return {
8295
+ toClaims: toClaims,
8296
+ toRoles: toRoles,
8297
+ defaultClaimValue: defaultClaimValue,
8298
+ defaultEmptyValue: defaultEmptyValue
8299
+ };
8300
+ }
8301
+ /**
8302
+ * Converts an {@link AuthClaimsUpdate} to {@link AuthClaims} by stripping all null-valued keys.
8303
+ *
8304
+ * Useful for cleaning up a claims update before persisting or comparing, since update objects
8305
+ * use `null` to indicate claim removal.
8306
+ *
8307
+ * @param authClaimsUpdate - The claims update object potentially containing null values
8308
+ * @returns A clean claims object with all null entries removed
8309
+ */ function authClaims(authClaimsUpdate) {
8310
+ return filterFromPOJO(authClaimsUpdate, {
8311
+ filter: {
8312
+ valueFilter: KeyValueTypleValueFilter.NULL
8313
+ }
8314
+ });
8315
+ }
8316
+
8317
+ /**
8318
+ * Standard "out-of-band" OAuth 2.0 redirect URI URN.
8319
+ *
8320
+ * Defined by RFC 6749 §1.3 / draft-ietf-oauth-native-apps. Used by native and CLI clients that
8321
+ * have no HTTP server to receive the redirect — the authorization server displays the
8322
+ * authorization code on a final page and the user pastes it back into the application.
8323
+ *
8324
+ * Many providers have deprecated this in favor of loopback redirects (e.g.
8325
+ * `http://127.0.0.1:<port>/callback`), but it remains in use as a fallback for tools that cannot
8326
+ * bind a local port.
8327
+ */ var OAUTH_OOB_REDIRECT_URI = 'urn:ietf:wg:oauth:2.0:oob';
8328
+
8329
+ function asyncGeneratorStep$d(gen, resolve, reject, _next, _throw, key, arg) {
8330
+ try {
8331
+ var info = gen[key](arg);
8332
+ var value = info.value;
8333
+ } catch (error) {
8334
+ reject(error);
8335
+ return;
8336
+ }
8337
+ if (info.done) {
8338
+ resolve(value);
8339
+ } else {
8340
+ Promise.resolve(value).then(_next, _throw);
8341
+ }
8342
+ }
8343
+ function _async_to_generator$d(fn) {
8344
+ return function() {
8345
+ var self = this, args = arguments;
8346
+ return new Promise(function(resolve, reject) {
8347
+ var gen = fn.apply(self, args);
8348
+ function _next(value) {
8349
+ asyncGeneratorStep$d(gen, resolve, reject, _next, _throw, "next", value);
8350
+ }
8351
+ function _throw(err) {
8352
+ asyncGeneratorStep$d(gen, resolve, reject, _next, _throw, "throw", err);
8353
+ }
8354
+ _next(undefined);
8355
+ });
8356
+ };
8357
+ }
8358
+ function _ts_generator$d(thisArg, body) {
8359
+ var f, y, t, _ = {
8360
+ label: 0,
8361
+ sent: function() {
8362
+ if (t[0] & 1) throw t[1];
8363
+ return t[1];
8364
+ },
8365
+ trys: [],
8366
+ ops: []
8367
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
8368
+ return d(g, "next", {
8369
+ value: verb(0)
8370
+ }), d(g, "throw", {
8371
+ value: verb(1)
8372
+ }), d(g, "return", {
8373
+ value: verb(2)
8374
+ }), typeof Symbol === "function" && d(g, Symbol.iterator, {
8375
+ value: function() {
8376
+ return this;
8377
+ }
8378
+ }), g;
8379
+ function verb(n) {
8380
+ return function(v) {
8381
+ return step([
8382
+ n,
8383
+ v
8384
+ ]);
8385
+ };
8386
+ }
8387
+ function step(op) {
8388
+ if (f) throw new TypeError("Generator is already executing.");
8389
+ while(g && (g = 0, op[0] && (_ = 0)), _)try {
8390
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
8391
+ if (y = 0, t) op = [
8392
+ op[0] & 2,
8393
+ t.value
8394
+ ];
8395
+ switch(op[0]){
8396
+ case 0:
8397
+ case 1:
8398
+ t = op;
8399
+ break;
8400
+ case 4:
8401
+ _.label++;
8402
+ return {
8403
+ value: op[1],
8404
+ done: false
8405
+ };
8406
+ case 5:
8407
+ _.label++;
8408
+ y = op[1];
8409
+ op = [
8410
+ 0
8411
+ ];
8412
+ continue;
8413
+ case 7:
8414
+ op = _.ops.pop();
8415
+ _.trys.pop();
8416
+ continue;
8417
+ default:
8418
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
8419
+ _ = 0;
8420
+ continue;
8421
+ }
8422
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
8423
+ _.label = op[1];
8424
+ break;
8425
+ }
8426
+ if (op[0] === 6 && _.label < t[1]) {
8427
+ _.label = t[1];
8428
+ t = op;
8429
+ break;
8430
+ }
8431
+ if (t && _.label < t[2]) {
8432
+ _.label = t[2];
8433
+ _.ops.push(op);
8434
+ break;
8435
+ }
8436
+ if (t[2]) _.ops.pop();
8437
+ _.trys.pop();
8438
+ continue;
8439
+ }
8440
+ op = body.call(thisArg, _);
8441
+ } catch (e) {
8442
+ op = [
8443
+ 6,
8444
+ e
8445
+ ];
8446
+ y = 0;
8447
+ } finally{
8448
+ f = t = 0;
8449
+ }
8450
+ if (op[0] & 5) throw op[1];
8451
+ return {
8452
+ value: op[0] ? op[1] : void 0,
8453
+ done: true
8454
+ };
8455
+ }
8456
+ }
8457
+ /**
8458
+ * Generates a random PKCE code verifier string (43 characters, base64url-encoded).
8459
+ *
8460
+ * @returns A cryptographically random base64url string suitable for use as a PKCE code_verifier.
8461
+ */ function generatePkceCodeVerifier() {
8462
+ var bytes = new Uint8Array(32);
8463
+ crypto.getRandomValues(bytes);
8464
+ return base64UrlEncode(bytes);
8465
+ }
8466
+ /**
8467
+ * Generates a PKCE code challenge from a code verifier using SHA-256.
8468
+ *
8469
+ * @param verifier - The code verifier string to hash
8470
+ * @returns A base64url-encoded SHA-256 hash of the verifier
8471
+ */ function generatePkceCodeChallenge(verifier) {
8472
+ return _async_to_generator$d(function() {
8473
+ var encoder, data, digest;
8474
+ return _ts_generator$d(this, function(_state) {
8475
+ switch(_state.label){
8476
+ case 0:
8477
+ encoder = new TextEncoder();
8478
+ data = encoder.encode(verifier);
8479
+ return [
8480
+ 4,
8481
+ crypto.subtle.digest('SHA-256', data)
8482
+ ];
8483
+ case 1:
8484
+ digest = _state.sent();
8485
+ return [
8486
+ 2,
8487
+ base64UrlEncode(new Uint8Array(digest))
8488
+ ];
8489
+ }
8490
+ });
8491
+ })();
8492
+ }
8493
+ function base64UrlEncode(bytes) {
8494
+ var binString = Array.from(bytes, function(byte) {
8495
+ return String.fromCharCode(byte);
8496
+ }).join('');
8497
+ return btoa(binString).replaceAll('+', '-').replaceAll('/', '_').replace(/=+$/, '');
8498
+ }
8499
+
8500
+ function asyncGeneratorStep$c(gen, resolve, reject, _next, _throw, key, arg) {
8501
+ try {
8502
+ var info = gen[key](arg);
8503
+ var value = info.value;
8504
+ } catch (error) {
8505
+ reject(error);
8506
+ return;
8507
+ }
8508
+ if (info.done) {
8509
+ resolve(value);
8510
+ } else {
8511
+ Promise.resolve(value).then(_next, _throw);
8512
+ }
8513
+ }
8514
+ function _async_to_generator$c(fn) {
8515
+ return function() {
8516
+ var self = this, args = arguments;
8517
+ return new Promise(function(resolve, reject) {
8518
+ var gen = fn.apply(self, args);
8519
+ function _next(value) {
8520
+ asyncGeneratorStep$c(gen, resolve, reject, _next, _throw, "next", value);
8521
+ }
8522
+ function _throw(err) {
8523
+ asyncGeneratorStep$c(gen, resolve, reject, _next, _throw, "throw", err);
8524
+ }
8525
+ _next(undefined);
8526
+ });
8527
+ };
8528
+ }
8529
+ function _ts_generator$c(thisArg, body) {
8530
+ var f, y, t, _ = {
8531
+ label: 0,
8532
+ sent: function() {
8533
+ if (t[0] & 1) throw t[1];
8534
+ return t[1];
8535
+ },
8536
+ trys: [],
8537
+ ops: []
8538
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
8539
+ return d(g, "next", {
8540
+ value: verb(0)
8541
+ }), d(g, "throw", {
8542
+ value: verb(1)
8543
+ }), d(g, "return", {
8544
+ value: verb(2)
8545
+ }), typeof Symbol === "function" && d(g, Symbol.iterator, {
8546
+ value: function() {
8547
+ return this;
8548
+ }
8549
+ }), g;
8550
+ function verb(n) {
8551
+ return function(v) {
8552
+ return step([
8553
+ n,
8554
+ v
8555
+ ]);
8556
+ };
8557
+ }
8558
+ function step(op) {
8559
+ if (f) throw new TypeError("Generator is already executing.");
8560
+ while(g && (g = 0, op[0] && (_ = 0)), _)try {
8561
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
8562
+ if (y = 0, t) op = [
8563
+ op[0] & 2,
8564
+ t.value
8565
+ ];
8566
+ switch(op[0]){
8567
+ case 0:
8568
+ case 1:
8569
+ t = op;
8570
+ break;
8571
+ case 4:
8572
+ _.label++;
8573
+ return {
8574
+ value: op[1],
8575
+ done: false
8576
+ };
8577
+ case 5:
8578
+ _.label++;
8579
+ y = op[1];
8580
+ op = [
8581
+ 0
8582
+ ];
8583
+ continue;
8584
+ case 7:
8585
+ op = _.ops.pop();
8586
+ _.trys.pop();
8587
+ continue;
8588
+ default:
8589
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
8590
+ _ = 0;
8591
+ continue;
8592
+ }
8593
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
8594
+ _.label = op[1];
8595
+ break;
8596
+ }
8597
+ if (op[0] === 6 && _.label < t[1]) {
8598
+ _.label = t[1];
8599
+ t = op;
8600
+ break;
8601
+ }
8602
+ if (t && _.label < t[2]) {
8603
+ _.label = t[2];
8604
+ _.ops.push(op);
8605
+ break;
8606
+ }
8607
+ if (t[2]) _.ops.pop();
8608
+ _.trys.pop();
8609
+ continue;
8610
+ }
8611
+ op = body.call(thisArg, _);
8612
+ } catch (e) {
8613
+ op = [
8614
+ 6,
8615
+ e
8616
+ ];
8617
+ y = 0;
8618
+ } finally{
8619
+ f = t = 0;
8620
+ }
8621
+ if (op[0] & 5) throw op[1];
8622
+ return {
8623
+ value: op[0] ? op[1] : void 0,
8624
+ done: true
8625
+ };
8626
+ }
8627
+ }
8628
+ /**
8629
+ * Creates an in-memory {@link AsyncValueCache} backed by a single closure-scoped variable.
8630
+ *
8631
+ * Useful as the inner of {@link memoizeAsyncValueCache} and as a stand-in for tests.
8632
+ *
8633
+ * @param initialValue - Optional starting value for the cache. When omitted (or null), the cache starts empty and {@link AsyncValueCache.load} resolves to undefined.
8634
+ * @returns An {@link AsyncValueCache} that stores the latest written value in process memory.
8635
+ *
8636
+ * @example
8637
+ * ```ts
8638
+ * const cache = inMemoryAsyncValueCache<string>('hello');
8639
+ * await cache.load(); // 'hello'
8640
+ * await cache.update('world');
8641
+ * await cache.load(); // 'world'
8642
+ * ```
8643
+ */ function inMemoryAsyncValueCache(initialValue) {
8644
+ var value = initialValue !== null && initialValue !== void 0 ? initialValue : undefined;
8645
+ return {
8646
+ load: function load() {
8647
+ return _async_to_generator$c(function() {
8648
+ return _ts_generator$c(this, function(_state) {
8649
+ return [
8650
+ 2,
8651
+ value
8652
+ ];
8653
+ });
8654
+ })();
8655
+ },
8656
+ update: function update(next) {
8657
+ return _async_to_generator$c(function() {
8658
+ return _ts_generator$c(this, function(_state) {
8659
+ value = next;
8660
+ return [
8661
+ 2
8662
+ ];
8663
+ });
8664
+ })();
8665
+ },
8666
+ clear: function clear() {
8667
+ return _async_to_generator$c(function() {
8668
+ return _ts_generator$c(this, function(_state) {
8669
+ value = undefined;
8670
+ return [
8671
+ 2
8672
+ ];
8673
+ });
8674
+ })();
8675
+ }
8676
+ };
8677
+ }
8678
+ /**
8679
+ * Creates an in-memory {@link AsyncKeyedValueCache} backed by a closure-scoped record.
8680
+ *
8681
+ * Useful as the inner of {@link memoizeAsyncKeyedValueCache} and as a stand-in for tests.
8682
+ *
8683
+ * Backed by a null-prototype object so inherited properties (`toString`, `hasOwnProperty`, etc.)
8684
+ * are never returned from `get` and `__proto__` keys cannot mutate the prototype chain.
8685
+ *
8686
+ * @param initialEntries - Optional starting entries for the cache. When omitted (or null), the cache starts empty.
8687
+ * @returns An {@link AsyncKeyedValueCache} that stores entries in process memory.
8688
+ *
8689
+ * @example
8690
+ * ```ts
8691
+ * const cache = inMemoryAsyncKeyedValueCache<number>({ a: 1 });
8692
+ * await cache.get('a'); // 1
8693
+ * await cache.set('b', 2);
8694
+ * await cache.load(); // { a: 1, b: 2 }
8695
+ * ```
8696
+ */ function inMemoryAsyncKeyedValueCache(initialEntries) {
8697
+ var entries = Object.assign(Object.create(null), initialEntries !== null && initialEntries !== void 0 ? initialEntries : {});
8698
+ return {
8699
+ load: function load() {
8700
+ return _async_to_generator$c(function() {
8701
+ return _ts_generator$c(this, function(_state) {
8702
+ return [
8703
+ 2,
8704
+ Object.assign(Object.create(null), entries)
8705
+ ];
8706
+ });
8707
+ })();
8708
+ },
8709
+ get: function get(key) {
8710
+ return _async_to_generator$c(function() {
8711
+ return _ts_generator$c(this, function(_state) {
8712
+ return [
8713
+ 2,
8714
+ Object.hasOwn(entries, key) ? entries[key] : undefined
8715
+ ];
8716
+ });
8717
+ })();
8718
+ },
8719
+ set: function set(key, value) {
8720
+ return _async_to_generator$c(function() {
8721
+ var next;
8722
+ return _ts_generator$c(this, function(_state) {
8723
+ next = Object.assign(Object.create(null), entries);
8724
+ next[key] = value;
8725
+ entries = next;
8726
+ return [
8727
+ 2
8728
+ ];
8729
+ });
8730
+ })();
8731
+ },
8732
+ remove: function remove(key) {
8733
+ return _async_to_generator$c(function() {
8734
+ var next;
8735
+ return _ts_generator$c(this, function(_state) {
8736
+ next = Object.assign(Object.create(null), entries);
8737
+ delete next[key];
8738
+ entries = next;
8739
+ return [
8740
+ 2
8741
+ ];
8742
+ });
8743
+ })();
8744
+ },
8745
+ clear: function clear() {
8746
+ return _async_to_generator$c(function() {
8747
+ return _ts_generator$c(this, function(_state) {
8748
+ entries = Object.create(null);
8749
+ return [
8750
+ 2
8751
+ ];
8752
+ });
8753
+ })();
8754
+ }
8755
+ };
8756
+ }
8757
+
8758
+ function asyncGeneratorStep$b(gen, resolve, reject, _next, _throw, key, arg) {
8759
+ try {
8760
+ var info = gen[key](arg);
8761
+ var value = info.value;
8762
+ } catch (error) {
8763
+ reject(error);
8764
+ return;
8765
+ }
8766
+ if (info.done) {
8767
+ resolve(value);
8768
+ } else {
8769
+ Promise.resolve(value).then(_next, _throw);
8770
+ }
8771
+ }
8772
+ function _async_to_generator$b(fn) {
8773
+ return function() {
8774
+ var self = this, args = arguments;
8775
+ return new Promise(function(resolve, reject) {
8776
+ var gen = fn.apply(self, args);
8777
+ function _next(value) {
8778
+ asyncGeneratorStep$b(gen, resolve, reject, _next, _throw, "next", value);
8779
+ }
8780
+ function _throw(err) {
8781
+ asyncGeneratorStep$b(gen, resolve, reject, _next, _throw, "throw", err);
8782
+ }
8783
+ _next(undefined);
8784
+ });
8785
+ };
8786
+ }
8787
+ function _define_property$h(obj, key, value) {
8788
+ if (key in obj) {
8789
+ Object.defineProperty(obj, key, {
8790
+ value: value,
8791
+ enumerable: true,
8792
+ configurable: true,
8793
+ writable: true
8794
+ });
8795
+ } else {
8796
+ obj[key] = value;
8797
+ }
8798
+ return obj;
8799
+ }
8800
+ function _object_spread$d(target) {
8801
+ for(var i = 1; i < arguments.length; i++){
8802
+ var source = arguments[i] != null ? arguments[i] : {};
8803
+ var ownKeys = Object.keys(source);
8804
+ if (typeof Object.getOwnPropertySymbols === "function") {
8805
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
8806
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
8807
+ }));
8808
+ }
8809
+ ownKeys.forEach(function(key) {
8810
+ _define_property$h(target, key, source[key]);
8811
+ });
8812
+ }
8813
+ return target;
8814
+ }
8815
+ function ownKeys$7(object, enumerableOnly) {
8816
+ var keys = Object.keys(object);
8817
+ if (Object.getOwnPropertySymbols) {
8818
+ var symbols = Object.getOwnPropertySymbols(object);
8819
+ keys.push.apply(keys, symbols);
8820
+ }
8821
+ return keys;
8822
+ }
8823
+ function _object_spread_props$7(target, source) {
8824
+ source = source != null ? source : {};
8825
+ if (Object.getOwnPropertyDescriptors) {
8826
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
8827
+ } else {
8828
+ ownKeys$7(Object(source)).forEach(function(key) {
8829
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
8830
+ });
8831
+ }
8832
+ return target;
8833
+ }
8834
+ function _ts_generator$b(thisArg, body) {
8835
+ var f, y, t, _ = {
8836
+ label: 0,
8837
+ sent: function() {
8838
+ if (t[0] & 1) throw t[1];
8839
+ return t[1];
8840
+ },
8841
+ trys: [],
8842
+ ops: []
8843
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
8844
+ return d(g, "next", {
8845
+ value: verb(0)
8846
+ }), d(g, "throw", {
8847
+ value: verb(1)
8848
+ }), d(g, "return", {
8849
+ value: verb(2)
8850
+ }), typeof Symbol === "function" && d(g, Symbol.iterator, {
8851
+ value: function() {
8852
+ return this;
8853
+ }
8854
+ }), g;
8855
+ function verb(n) {
8856
+ return function(v) {
8857
+ return step([
8858
+ n,
8859
+ v
8860
+ ]);
8861
+ };
8862
+ }
8863
+ function step(op) {
8864
+ if (f) throw new TypeError("Generator is already executing.");
8865
+ while(g && (g = 0, op[0] && (_ = 0)), _)try {
8866
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
8867
+ if (y = 0, t) op = [
8868
+ op[0] & 2,
8869
+ t.value
8870
+ ];
8871
+ switch(op[0]){
8872
+ case 0:
8873
+ case 1:
8874
+ t = op;
8875
+ break;
8876
+ case 4:
8877
+ _.label++;
8878
+ return {
8879
+ value: op[1],
8880
+ done: false
8881
+ };
8882
+ case 5:
8883
+ _.label++;
8884
+ y = op[1];
8885
+ op = [
8886
+ 0
8887
+ ];
8888
+ continue;
8889
+ case 7:
8890
+ op = _.ops.pop();
8891
+ _.trys.pop();
8892
+ continue;
8893
+ default:
8894
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
8895
+ _ = 0;
8896
+ continue;
8897
+ }
8898
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
8899
+ _.label = op[1];
8900
+ break;
8901
+ }
8902
+ if (op[0] === 6 && _.label < t[1]) {
8903
+ _.label = t[1];
8904
+ t = op;
8905
+ break;
8906
+ }
8907
+ if (t && _.label < t[2]) {
8908
+ _.label = t[2];
8909
+ _.ops.push(op);
8910
+ break;
8911
+ }
8912
+ if (t[2]) _.ops.pop();
8913
+ _.trys.pop();
8914
+ continue;
8915
+ }
8916
+ op = body.call(thisArg, _);
8917
+ } catch (e) {
8918
+ op = [
8919
+ 6,
8920
+ e
8921
+ ];
8922
+ y = 0;
8923
+ } finally{
8924
+ f = t = 0;
8925
+ }
8926
+ if (op[0] & 5) throw op[1];
8927
+ return {
8928
+ value: op[0] ? op[1] : void 0,
8929
+ done: true
8930
+ };
8931
+ }
8932
+ }
8933
+ /**
8934
+ * Wraps an inner {@link AsyncValueCache} with a single-load in-memory memoization layer.
8935
+ *
8936
+ * The first {@link AsyncValueCache.load} call delegates to the inner cache and stores the
8937
+ * result; subsequent calls return the memoized value without touching the inner cache again.
8938
+ * {@link AsyncValueCache.update} writes through to the inner cache and refreshes the memo.
8939
+ * {@link AsyncValueCache.clear} clears both layers.
8940
+ *
8941
+ * Note: the memoized value is per-process. Long-running processes will not observe writes
8942
+ * made by other processes to the inner backing once the memo is populated.
8943
+ *
8944
+ * @dbxUtil
8945
+ * @dbxUtilCategory cache
8946
+ * @dbxUtilTags memoize, memo, cache, async, single-load, async-value
8947
+ * @dbxUtilRelated memoize-async-keyed-value-cache
8948
+ *
8949
+ * @param inner - The backing cache to memoize. Reads are delegated once and cached; writes are forwarded through and refresh the memo.
8950
+ * @returns An {@link AsyncValueCache} that proxies the inner cache with a single-load memoization layer.
8951
+ *
8952
+ * @example
8953
+ * ```ts
8954
+ * const memo = memoizeAsyncValueCache(inMemoryAsyncValueCache<string>('initial'));
8955
+ * await memo.load(); // delegates to inner.load() once
8956
+ * await memo.load(); // returns memoized value without hitting inner
8957
+ * await memo.update('next'); // writes through to inner and refreshes memo
8958
+ * ```
8959
+ */ function memoizeAsyncValueCache(inner) {
8960
+ var loaded;
8961
+ var inFlight;
8962
+ // Bumped on every write/clear so a slow inner.load() resolved after a concurrent
8963
+ // update()/clear() can detect that its result is stale and skip clobbering newer state.
8964
+ var generation = 0;
8965
+ return {
8966
+ load: function load() {
8967
+ if (loaded != null) {
8968
+ return Promise.resolve(loaded.value);
8969
+ }
8970
+ if (inFlight == null) {
8971
+ // Cache the in-flight promise so concurrent callers share the same load instead
8972
+ // of each firing an independent inner.load(). Cleared on settle so a failed load
8973
+ // doesn't permanently poison the memo. The captured generation lets a slow
8974
+ // resolve detect a concurrent update()/clear() and skip clobbering newer state.
8975
+ var startGen = generation;
8976
+ inFlight = inner.load().then(function(value) {
8977
+ if (generation === startGen) {
8978
+ loaded = {
8979
+ value: value
8980
+ };
8981
+ inFlight = undefined;
8982
+ }
8983
+ return value;
8984
+ }, function(error) {
8985
+ if (generation === startGen) {
8986
+ inFlight = undefined;
8987
+ }
8988
+ throw error;
8989
+ });
8990
+ }
8991
+ return inFlight;
8992
+ },
8993
+ update: function update(next) {
8994
+ return _async_to_generator$b(function() {
8995
+ return _ts_generator$b(this, function(_state) {
8996
+ switch(_state.label){
8997
+ case 0:
8998
+ generation += 1;
8999
+ inFlight = undefined;
9000
+ // Write through to the inner first; only mutate the memoized snapshot once the inner
9001
+ // call succeeds, so a thrown inner.update doesn't leave the memo with a value that
9002
+ // never made it to the backing store.
9003
+ return [
9004
+ 4,
9005
+ inner.update(next)
9006
+ ];
9007
+ case 1:
9008
+ _state.sent();
9009
+ loaded = {
9010
+ value: next
9011
+ };
9012
+ return [
9013
+ 2
9014
+ ];
9015
+ }
9016
+ });
9017
+ })();
9018
+ },
9019
+ clear: function clear() {
9020
+ return _async_to_generator$b(function() {
9021
+ return _ts_generator$b(this, function(_state) {
9022
+ switch(_state.label){
9023
+ case 0:
9024
+ generation += 1;
9025
+ inFlight = undefined;
9026
+ return [
9027
+ 4,
9028
+ inner.clear()
9029
+ ];
9030
+ case 1:
9031
+ _state.sent();
9032
+ loaded = {
9033
+ value: undefined
9034
+ };
9035
+ return [
9036
+ 2
9037
+ ];
9038
+ }
9039
+ });
9040
+ })();
9041
+ }
9042
+ };
9043
+ }
9044
+ /**
9045
+ * Wraps an inner {@link AsyncKeyedValueCache} with a single-load in-memory memoization layer
9046
+ * over the full record.
9047
+ *
9048
+ * The first call to any read method ({@link AsyncKeyedValueCache.load} or {@link AsyncKeyedValueCache.get})
9049
+ * delegates to the inner cache and stores the loaded record; subsequent reads return entries
9050
+ * from the memoized record without re-hitting the inner cache. Writes ({@link AsyncKeyedValueCache.set} /
9051
+ * {@link AsyncKeyedValueCache.remove}) update the memoized record and write through to the inner cache.
9052
+ * {@link AsyncKeyedValueCache.clear} clears both layers.
9053
+ *
9054
+ * Note: the memoized record is per-process. Long-running processes will not observe writes
9055
+ * made by other processes to the inner backing once the memo is populated.
9056
+ *
9057
+ * @dbxUtil
9058
+ * @dbxUtilCategory cache
9059
+ * @dbxUtilTags memoize, memo, cache, async, keyed, record
9060
+ * @dbxUtilRelated memoize-async-value-cache
9061
+ *
9062
+ * @param inner - The backing keyed cache to memoize. The full record is loaded once and cached; writes are forwarded through and applied to the memo.
9063
+ * @returns An {@link AsyncKeyedValueCache} that proxies the inner cache with a record-level memoization layer.
9064
+ *
9065
+ * @example
9066
+ * ```ts
9067
+ * const memo = memoizeAsyncKeyedValueCache(inMemoryAsyncKeyedValueCache<number>({ a: 1 }));
9068
+ * await memo.get('a'); // delegates to inner.load() once
9069
+ * await memo.get('a'); // returns memoized entry without hitting inner
9070
+ * await memo.set('b', 2); // writes through to inner and updates memo
9071
+ * ```
9072
+ */ function memoizeAsyncKeyedValueCache(inner) {
9073
+ var loaded;
9074
+ var inFlight;
9075
+ // Bumped on every write/clear so a slow inner.load() resolved after a concurrent
9076
+ // set()/remove()/clear() can detect that its result is stale and skip clobbering newer state.
9077
+ var generation = 0;
9078
+ function ensureLoaded() {
9079
+ if (loaded != null) {
9080
+ return Promise.resolve(loaded.entries);
9081
+ }
9082
+ if (inFlight == null) {
9083
+ var startGen = generation;
9084
+ inFlight = inner.load().then(function(entries) {
9085
+ if (generation === startGen) {
9086
+ loaded = {
9087
+ entries: entries
9088
+ };
9089
+ inFlight = undefined;
9090
+ }
9091
+ return entries;
9092
+ }, function(error) {
9093
+ if (generation === startGen) {
9094
+ inFlight = undefined;
9095
+ }
9096
+ throw error;
9097
+ });
9098
+ }
9099
+ return inFlight;
9100
+ }
9101
+ return {
9102
+ load: function load() {
9103
+ return _async_to_generator$b(function() {
9104
+ var _tmp;
9105
+ return _ts_generator$b(this, function(_state) {
9106
+ switch(_state.label){
9107
+ case 0:
9108
+ _tmp = [
9109
+ {}
9110
+ ];
9111
+ return [
9112
+ 4,
9113
+ ensureLoaded()
9114
+ ];
9115
+ case 1:
9116
+ return [
9117
+ 2,
9118
+ _object_spread$d.apply(void 0, _tmp.concat([
9119
+ _state.sent()
9120
+ ]))
9121
+ ];
9122
+ }
9123
+ });
9124
+ })();
9125
+ },
9126
+ get: function get(key) {
9127
+ return _async_to_generator$b(function() {
9128
+ return _ts_generator$b(this, function(_state) {
9129
+ switch(_state.label){
9130
+ case 0:
9131
+ return [
9132
+ 4,
9133
+ ensureLoaded()
9134
+ ];
9135
+ case 1:
9136
+ return [
9137
+ 2,
9138
+ _state.sent()[key]
9139
+ ];
9140
+ }
9141
+ });
9142
+ })();
9143
+ },
9144
+ set: function set(key, value) {
9145
+ return _async_to_generator$b(function() {
9146
+ var current;
9147
+ return _ts_generator$b(this, function(_state) {
9148
+ switch(_state.label){
9149
+ case 0:
9150
+ return [
9151
+ 4,
9152
+ ensureLoaded()
9153
+ ];
9154
+ case 1:
9155
+ current = _state.sent();
9156
+ generation += 1;
9157
+ inFlight = undefined;
9158
+ // Write through to the inner first so a failed inner.set doesn't leave the memo with
9159
+ // an entry that never made it to the backing store.
9160
+ return [
9161
+ 4,
9162
+ inner.set(key, value)
9163
+ ];
9164
+ case 2:
9165
+ _state.sent();
9166
+ loaded = {
9167
+ entries: _object_spread_props$7(_object_spread$d({}, current), _define_property$h({}, key, value))
9168
+ };
9169
+ return [
9170
+ 2
9171
+ ];
9172
+ }
9173
+ });
9174
+ })();
9175
+ },
9176
+ remove: function remove(key) {
9177
+ return _async_to_generator$b(function() {
9178
+ var current, next;
9179
+ return _ts_generator$b(this, function(_state) {
9180
+ switch(_state.label){
9181
+ case 0:
9182
+ return [
9183
+ 4,
9184
+ ensureLoaded()
9185
+ ];
9186
+ case 1:
9187
+ current = _state.sent();
9188
+ generation += 1;
9189
+ inFlight = undefined;
9190
+ return [
9191
+ 4,
9192
+ inner.remove(key)
9193
+ ];
9194
+ case 2:
9195
+ _state.sent();
9196
+ next = _object_spread$d({}, current);
9197
+ delete next[key];
9198
+ loaded = {
9199
+ entries: next
9200
+ };
9201
+ return [
9202
+ 2
9203
+ ];
9204
+ }
9205
+ });
9206
+ })();
9207
+ },
9208
+ clear: function clear() {
9209
+ return _async_to_generator$b(function() {
9210
+ return _ts_generator$b(this, function(_state) {
9211
+ switch(_state.label){
9212
+ case 0:
9213
+ generation += 1;
9214
+ inFlight = undefined;
9215
+ return [
9216
+ 4,
9217
+ inner.clear()
9218
+ ];
9219
+ case 1:
9220
+ _state.sent();
9221
+ loaded = {
9222
+ entries: {}
9223
+ };
9224
+ return [
9225
+ 2
9226
+ ];
9227
+ }
9228
+ });
9229
+ })();
9230
+ }
9231
+ };
9232
+ }
9233
+
9234
+ function asyncGeneratorStep$a(gen, resolve, reject, _next, _throw, key, arg) {
9235
+ try {
9236
+ var info = gen[key](arg);
9237
+ var value = info.value;
9238
+ } catch (error) {
9239
+ reject(error);
9240
+ return;
9241
+ }
9242
+ if (info.done) {
9243
+ resolve(value);
9244
+ } else {
9245
+ Promise.resolve(value).then(_next, _throw);
9246
+ }
9247
+ }
9248
+ function _async_to_generator$a(fn) {
9249
+ return function() {
9250
+ var self = this, args = arguments;
9251
+ return new Promise(function(resolve, reject) {
9252
+ var gen = fn.apply(self, args);
9253
+ function _next(value) {
9254
+ asyncGeneratorStep$a(gen, resolve, reject, _next, _throw, "next", value);
9255
+ }
9256
+ function _throw(err) {
9257
+ asyncGeneratorStep$a(gen, resolve, reject, _next, _throw, "throw", err);
9258
+ }
9259
+ _next(undefined);
9260
+ });
9261
+ };
9262
+ }
9263
+ function _ts_generator$a(thisArg, body) {
9264
+ var f, y, t, _ = {
9265
+ label: 0,
9266
+ sent: function() {
9267
+ if (t[0] & 1) throw t[1];
9268
+ return t[1];
9269
+ },
9270
+ trys: [],
9271
+ ops: []
9272
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
9273
+ return d(g, "next", {
9274
+ value: verb(0)
9275
+ }), d(g, "throw", {
9276
+ value: verb(1)
9277
+ }), d(g, "return", {
9278
+ value: verb(2)
9279
+ }), typeof Symbol === "function" && d(g, Symbol.iterator, {
9280
+ value: function() {
9281
+ return this;
9282
+ }
9283
+ }), g;
9284
+ function verb(n) {
9285
+ return function(v) {
9286
+ return step([
9287
+ n,
9288
+ v
9289
+ ]);
9290
+ };
9291
+ }
9292
+ function step(op) {
9293
+ if (f) throw new TypeError("Generator is already executing.");
9294
+ while(g && (g = 0, op[0] && (_ = 0)), _)try {
9295
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
9296
+ if (y = 0, t) op = [
9297
+ op[0] & 2,
9298
+ t.value
9299
+ ];
9300
+ switch(op[0]){
9301
+ case 0:
9302
+ case 1:
9303
+ t = op;
9304
+ break;
9305
+ case 4:
9306
+ _.label++;
9307
+ return {
9308
+ value: op[1],
9309
+ done: false
9310
+ };
9311
+ case 5:
9312
+ _.label++;
9313
+ y = op[1];
9314
+ op = [
9315
+ 0
9316
+ ];
9317
+ continue;
9318
+ case 7:
9319
+ op = _.ops.pop();
9320
+ _.trys.pop();
9321
+ continue;
9322
+ default:
9323
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
9324
+ _ = 0;
9325
+ continue;
9326
+ }
9327
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
9328
+ _.label = op[1];
9329
+ break;
9330
+ }
9331
+ if (op[0] === 6 && _.label < t[1]) {
9332
+ _.label = t[1];
9333
+ t = op;
9334
+ break;
9335
+ }
9336
+ if (t && _.label < t[2]) {
9337
+ _.label = t[2];
9338
+ _.ops.push(op);
9339
+ break;
9340
+ }
9341
+ if (t[2]) _.ops.pop();
9342
+ _.trys.pop();
9343
+ continue;
9344
+ }
9345
+ op = body.call(thisArg, _);
9346
+ } catch (e) {
9347
+ op = [
9348
+ 6,
9349
+ e
9350
+ ];
9351
+ y = 0;
9352
+ } finally{
9353
+ f = t = 0;
9354
+ }
9355
+ if (op[0] & 5) throw op[1];
9356
+ return {
9357
+ value: op[0] ? op[1] : void 0,
9358
+ done: true
9359
+ };
9360
+ }
9361
+ }
9362
+ /**
9363
+ * Composes multiple {@link AsyncValueCache} instances into a single read-from-first-write-to-all cache.
9364
+ *
9365
+ * - {@link AsyncValueCache.load} returns the first non-null/undefined value from the input caches in order.
9366
+ * - {@link AsyncValueCache.update} writes the value to every input cache, propagating from the
9367
+ * lowest-precedence (slowest, source-of-truth) tier up to the highest-precedence (fastest) tier
9368
+ * so a failed write to the backing store is not masked by a successful write to memory.
9369
+ * - {@link AsyncValueCache.clear} clears every input cache in the same lower-to-higher order.
9370
+ *
9371
+ * Useful for memory-then-disk layering or for combining a fast tier with a slow source-of-truth tier.
9372
+ *
9373
+ * @param caches - Ordered tiers from highest-precedence (fastest, e.g. memory) to lowest-precedence (source-of-truth, e.g. disk). Reads honor this order; writes propagate in reverse.
9374
+ * @returns A single {@link AsyncValueCache} layered across the provided tiers.
9375
+ *
9376
+ * @example
9377
+ * ```ts
9378
+ * const layered = mergeAsyncValueCaches<string>([
9379
+ * inMemoryAsyncValueCache(),
9380
+ * diskBackedAsyncValueCache()
9381
+ * ]);
9382
+ * await layered.update('hello'); // writes to disk first, then memory
9383
+ * await layered.load(); // returns from memory if present
9384
+ * ```
9385
+ */ function mergeAsyncValueCaches(caches) {
9386
+ return {
9387
+ load: function load() {
9388
+ return _async_to_generator$a(function() {
9389
+ var result, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, cache, value, err;
9390
+ return _ts_generator$a(this, function(_state) {
9391
+ switch(_state.label){
9392
+ case 0:
9393
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
9394
+ _state.label = 1;
9395
+ case 1:
9396
+ _state.trys.push([
9397
+ 1,
9398
+ 6,
9399
+ 7,
9400
+ 8
9401
+ ]);
9402
+ _iterator = caches[Symbol.iterator]();
9403
+ _state.label = 2;
9404
+ case 2:
9405
+ if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
9406
+ 3,
9407
+ 5
9408
+ ];
9409
+ cache = _step.value;
9410
+ return [
9411
+ 4,
9412
+ cache.load()
9413
+ ];
9414
+ case 3:
9415
+ value = _state.sent();
9416
+ if (value != null) {
9417
+ result = value;
9418
+ return [
9419
+ 3,
9420
+ 5
9421
+ ];
9422
+ }
9423
+ _state.label = 4;
9424
+ case 4:
9425
+ _iteratorNormalCompletion = true;
9426
+ return [
9427
+ 3,
9428
+ 2
9429
+ ];
9430
+ case 5:
9431
+ return [
9432
+ 3,
9433
+ 8
9434
+ ];
9435
+ case 6:
9436
+ err = _state.sent();
9437
+ _didIteratorError = true;
9438
+ _iteratorError = err;
9439
+ return [
9440
+ 3,
9441
+ 8
9442
+ ];
9443
+ case 7:
9444
+ try {
9445
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
9446
+ _iterator.return();
9447
+ }
9448
+ } finally{
9449
+ if (_didIteratorError) {
9450
+ throw _iteratorError;
9451
+ }
9452
+ }
9453
+ return [
9454
+ 7
9455
+ ];
9456
+ case 8:
9457
+ return [
9458
+ 2,
9459
+ result
9460
+ ];
9461
+ }
9462
+ });
9463
+ })();
9464
+ },
9465
+ update: function update(value) {
9466
+ return _async_to_generator$a(function() {
9467
+ var i;
9468
+ return _ts_generator$a(this, function(_state) {
9469
+ switch(_state.label){
9470
+ case 0:
9471
+ i = caches.length - 1;
9472
+ _state.label = 1;
9473
+ case 1:
9474
+ if (!(i >= 0)) return [
9475
+ 3,
9476
+ 4
9477
+ ];
9478
+ return [
9479
+ 4,
9480
+ caches[i].update(value)
9481
+ ];
9482
+ case 2:
9483
+ _state.sent();
9484
+ _state.label = 3;
9485
+ case 3:
9486
+ i -= 1;
9487
+ return [
9488
+ 3,
9489
+ 1
9490
+ ];
9491
+ case 4:
9492
+ return [
9493
+ 2
9494
+ ];
9495
+ }
9496
+ });
9497
+ })();
9498
+ },
9499
+ clear: function clear() {
9500
+ return _async_to_generator$a(function() {
9501
+ var i;
9502
+ return _ts_generator$a(this, function(_state) {
9503
+ switch(_state.label){
9504
+ case 0:
9505
+ i = caches.length - 1;
9506
+ _state.label = 1;
9507
+ case 1:
9508
+ if (!(i >= 0)) return [
9509
+ 3,
9510
+ 4
9511
+ ];
9512
+ return [
9513
+ 4,
9514
+ caches[i].clear()
9515
+ ];
9516
+ case 2:
9517
+ _state.sent();
9518
+ _state.label = 3;
9519
+ case 3:
9520
+ i -= 1;
9521
+ return [
9522
+ 3,
9523
+ 1
9524
+ ];
9525
+ case 4:
9526
+ return [
9527
+ 2
9528
+ ];
9529
+ }
9530
+ });
9531
+ })();
9532
+ }
7757
9533
  };
7758
9534
  }
7759
9535
  /**
7760
- * Converts an {@link AuthClaimsUpdate} to {@link AuthClaims} by stripping all null-valued keys.
9536
+ * Composes multiple {@link AsyncKeyedValueCache} instances into a single read-from-first-write-to-all cache.
7761
9537
  *
7762
- * Useful for cleaning up a claims update before persisting or comparing, since update objects
7763
- * use `null` to indicate claim removal.
9538
+ * - {@link AsyncKeyedValueCache.get} returns the first non-null/undefined value from the input caches in order for a given key.
9539
+ * - {@link AsyncKeyedValueCache.load} returns a merged record where earlier caches' entries take precedence over later caches'.
9540
+ * - Writes ({@link AsyncKeyedValueCache.set} / {@link AsyncKeyedValueCache.remove}) propagate to every input cache.
9541
+ * - {@link AsyncKeyedValueCache.clear} clears every input cache.
7764
9542
  *
7765
- * @param authClaimsUpdate - The claims update object potentially containing null values
7766
- * @returns A clean claims object with all null entries removed
7767
- */ function authClaims(authClaimsUpdate) {
7768
- return filterFromPOJO(authClaimsUpdate, {
7769
- filter: {
7770
- valueFilter: KeyValueTypleValueFilter.NULL
9543
+ * @param caches - Ordered tiers from highest-precedence (fastest, e.g. memory) to lowest-precedence (source-of-truth, e.g. disk). Reads honor this order; writes propagate in reverse.
9544
+ * @returns A single {@link AsyncKeyedValueCache} layered across the provided tiers.
9545
+ *
9546
+ * @example
9547
+ * ```ts
9548
+ * const layered = mergeAsyncKeyedValueCaches<number>([
9549
+ * inMemoryAsyncKeyedValueCache(),
9550
+ * diskBackedAsyncKeyedValueCache()
9551
+ * ]);
9552
+ * await layered.set('a', 1); // writes to disk first, then memory
9553
+ * await layered.get('a'); // returns from memory if present
9554
+ * ```
9555
+ */ function mergeAsyncKeyedValueCaches(caches) {
9556
+ return {
9557
+ load: function load() {
9558
+ return _async_to_generator$a(function() {
9559
+ var merged, i, entries;
9560
+ return _ts_generator$a(this, function(_state) {
9561
+ switch(_state.label){
9562
+ case 0:
9563
+ // Use a null-prototype object so a key like "__proto__" loaded from any cache cannot
9564
+ // mutate the prototype chain via Object.assign.
9565
+ merged = Object.create(null);
9566
+ i = caches.length - 1;
9567
+ _state.label = 1;
9568
+ case 1:
9569
+ if (!(i >= 0)) return [
9570
+ 3,
9571
+ 4
9572
+ ];
9573
+ return [
9574
+ 4,
9575
+ caches[i].load()
9576
+ ];
9577
+ case 2:
9578
+ entries = _state.sent();
9579
+ Object.assign(merged, entries);
9580
+ _state.label = 3;
9581
+ case 3:
9582
+ i -= 1;
9583
+ return [
9584
+ 3,
9585
+ 1
9586
+ ];
9587
+ case 4:
9588
+ return [
9589
+ 2,
9590
+ merged
9591
+ ];
9592
+ }
9593
+ });
9594
+ })();
9595
+ },
9596
+ get: function get(key) {
9597
+ return _async_to_generator$a(function() {
9598
+ var result, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, cache, value, err;
9599
+ return _ts_generator$a(this, function(_state) {
9600
+ switch(_state.label){
9601
+ case 0:
9602
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
9603
+ _state.label = 1;
9604
+ case 1:
9605
+ _state.trys.push([
9606
+ 1,
9607
+ 6,
9608
+ 7,
9609
+ 8
9610
+ ]);
9611
+ _iterator = caches[Symbol.iterator]();
9612
+ _state.label = 2;
9613
+ case 2:
9614
+ if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
9615
+ 3,
9616
+ 5
9617
+ ];
9618
+ cache = _step.value;
9619
+ return [
9620
+ 4,
9621
+ cache.get(key)
9622
+ ];
9623
+ case 3:
9624
+ value = _state.sent();
9625
+ if (value != null) {
9626
+ result = value;
9627
+ return [
9628
+ 3,
9629
+ 5
9630
+ ];
9631
+ }
9632
+ _state.label = 4;
9633
+ case 4:
9634
+ _iteratorNormalCompletion = true;
9635
+ return [
9636
+ 3,
9637
+ 2
9638
+ ];
9639
+ case 5:
9640
+ return [
9641
+ 3,
9642
+ 8
9643
+ ];
9644
+ case 6:
9645
+ err = _state.sent();
9646
+ _didIteratorError = true;
9647
+ _iteratorError = err;
9648
+ return [
9649
+ 3,
9650
+ 8
9651
+ ];
9652
+ case 7:
9653
+ try {
9654
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
9655
+ _iterator.return();
9656
+ }
9657
+ } finally{
9658
+ if (_didIteratorError) {
9659
+ throw _iteratorError;
9660
+ }
9661
+ }
9662
+ return [
9663
+ 7
9664
+ ];
9665
+ case 8:
9666
+ return [
9667
+ 2,
9668
+ result
9669
+ ];
9670
+ }
9671
+ });
9672
+ })();
9673
+ },
9674
+ set: function set(key, value) {
9675
+ return _async_to_generator$a(function() {
9676
+ var i;
9677
+ return _ts_generator$a(this, function(_state) {
9678
+ switch(_state.label){
9679
+ case 0:
9680
+ i = caches.length - 1;
9681
+ _state.label = 1;
9682
+ case 1:
9683
+ if (!(i >= 0)) return [
9684
+ 3,
9685
+ 4
9686
+ ];
9687
+ return [
9688
+ 4,
9689
+ caches[i].set(key, value)
9690
+ ];
9691
+ case 2:
9692
+ _state.sent();
9693
+ _state.label = 3;
9694
+ case 3:
9695
+ i -= 1;
9696
+ return [
9697
+ 3,
9698
+ 1
9699
+ ];
9700
+ case 4:
9701
+ return [
9702
+ 2
9703
+ ];
9704
+ }
9705
+ });
9706
+ })();
9707
+ },
9708
+ remove: function remove(key) {
9709
+ return _async_to_generator$a(function() {
9710
+ var i;
9711
+ return _ts_generator$a(this, function(_state) {
9712
+ switch(_state.label){
9713
+ case 0:
9714
+ i = caches.length - 1;
9715
+ _state.label = 1;
9716
+ case 1:
9717
+ if (!(i >= 0)) return [
9718
+ 3,
9719
+ 4
9720
+ ];
9721
+ return [
9722
+ 4,
9723
+ caches[i].remove(key)
9724
+ ];
9725
+ case 2:
9726
+ _state.sent();
9727
+ _state.label = 3;
9728
+ case 3:
9729
+ i -= 1;
9730
+ return [
9731
+ 3,
9732
+ 1
9733
+ ];
9734
+ case 4:
9735
+ return [
9736
+ 2
9737
+ ];
9738
+ }
9739
+ });
9740
+ })();
9741
+ },
9742
+ clear: function clear() {
9743
+ return _async_to_generator$a(function() {
9744
+ var i;
9745
+ return _ts_generator$a(this, function(_state) {
9746
+ switch(_state.label){
9747
+ case 0:
9748
+ i = caches.length - 1;
9749
+ _state.label = 1;
9750
+ case 1:
9751
+ if (!(i >= 0)) return [
9752
+ 3,
9753
+ 4
9754
+ ];
9755
+ return [
9756
+ 4,
9757
+ caches[i].clear()
9758
+ ];
9759
+ case 2:
9760
+ _state.sent();
9761
+ _state.label = 3;
9762
+ case 3:
9763
+ i -= 1;
9764
+ return [
9765
+ 3,
9766
+ 1
9767
+ ];
9768
+ case 4:
9769
+ return [
9770
+ 2
9771
+ ];
9772
+ }
9773
+ });
9774
+ })();
7771
9775
  }
7772
- });
9776
+ };
7773
9777
  }
7774
9778
 
7775
9779
  function _array_like_to_array$o(arr, len) {
@@ -8428,6 +10432,12 @@ function _unsupported_iterable_to_array$n(o, minLen) {
8428
10432
  * @param decision - the constant boolean value to return
8429
10433
  * @returns a decision function that always returns the given boolean
8430
10434
  *
10435
+ * @dbxUtil
10436
+ * @dbxUtilCategory value
10437
+ * @dbxUtilKind factory
10438
+ * @dbxUtilTags decision, boolean, predicate, factory, constant
10439
+ * @dbxUtilRelated as-decision-function, invert-decision
10440
+ *
8431
10441
  * @example
8432
10442
  * ```ts
8433
10443
  * const alwaysTrue = decisionFunction(true);
@@ -8462,6 +10472,11 @@ function _unsupported_iterable_to_array$n(o, minLen) {
8462
10472
  * @param defaultIfUndefined - fallback boolean when the input is nullish (defaults to true)
8463
10473
  * @returns a {@link DecisionFunction} derived from the input
8464
10474
  *
10475
+ * @dbxUtil
10476
+ * @dbxUtilCategory value
10477
+ * @dbxUtilTags decision, normalize, boolean, default, coerce, predicate
10478
+ * @dbxUtilRelated decision-function, invert-decision
10479
+ *
8465
10480
  * @example
8466
10481
  * ```ts
8467
10482
  * const fn = asDecisionFunction(true);
@@ -8565,9 +10580,33 @@ function _unsupported_iterable_to_array$m(o, minLen) {
8565
10580
  if (n === "Map" || n === "Set") return Array.from(n);
8566
10581
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$m(o, minLen);
8567
10582
  }
8568
- var SLASH_PATH_SEPARATOR = '/';
8569
- var SLASH_PATH_FILE_TYPE_SEPARATOR = '.';
8570
- var DEFAULT_SLASH_PATH_ILLEGAL_CHARACTERS = [
10583
+ /**
10584
+ * The forward-slash character used to separate parts of a slash path.
10585
+ *
10586
+ * @dbxUtil
10587
+ * @dbxUtilCategory path
10588
+ * @dbxUtilKind const
10589
+ * @dbxUtilTags path, slash, separator, constant, delimiter
10590
+ * @dbxUtilRelated slash-path-file-type-separator, slash-path-parts
10591
+ */ var SLASH_PATH_SEPARATOR = '/';
10592
+ /**
10593
+ * The dot character used to separate the file extension from the file name within a slash path.
10594
+ *
10595
+ * @dbxUtil
10596
+ * @dbxUtilCategory path
10597
+ * @dbxUtilKind const
10598
+ * @dbxUtilTags path, slash, separator, dot, file-type, extension, constant
10599
+ * @dbxUtilRelated slash-path-separator, slash-path-type, slash-path-details
10600
+ */ var SLASH_PATH_FILE_TYPE_SEPARATOR = '.';
10601
+ /**
10602
+ * The default set of characters that are considered illegal in a slash path.
10603
+ *
10604
+ * @dbxUtil
10605
+ * @dbxUtilCategory path
10606
+ * @dbxUtilKind const
10607
+ * @dbxUtilTags path, slash, illegal, characters, default, sanitize, validate
10608
+ * @dbxUtilRelated default-slash-path-illegal-character-replacement, slash-path-validation-factory
10609
+ */ var DEFAULT_SLASH_PATH_ILLEGAL_CHARACTERS = [
8571
10610
  '#',
8572
10611
  '[',
8573
10612
  ']',
@@ -8576,10 +10615,21 @@ var DEFAULT_SLASH_PATH_ILLEGAL_CHARACTERS = [
8576
10615
  ];
8577
10616
  /**
8578
10617
  * Default replacement character for illegal characters.
10618
+ *
10619
+ * @dbxUtil
10620
+ * @dbxUtilCategory path
10621
+ * @dbxUtilKind const
10622
+ * @dbxUtilTags path, slash, illegal, replacement, default, sanitize
10623
+ * @dbxUtilRelated default-slash-path-illegal-characters, slash-path-validation-factory
8579
10624
  */ var DEFAULT_SLASH_PATH_ILLEGAL_CHARACTER_REPLACEMENT = '_';
8580
10625
  /**
8581
10626
  * Determines the type of a slash path string.
8582
10627
  *
10628
+ * @dbxUtil
10629
+ * @dbxUtilCategory path
10630
+ * @dbxUtilTags path, slash, type, classify, file, folder, typed, detect
10631
+ * @dbxUtilRelated is-slash-path-file, is-slash-path-folder, is-slash-path-typed-file, is-valid-slash-path
10632
+ *
8583
10633
  * @param input - The slash path to classify.
8584
10634
  * @returns The path type classification.
8585
10635
  */ function slashPathType(input) {
@@ -8610,6 +10660,11 @@ var DEFAULT_SLASH_PATH_ILLEGAL_CHARACTERS = [
8610
10660
  /**
8611
10661
  * Type guard that checks if the input is a file path (typed or untyped).
8612
10662
  *
10663
+ * @dbxUtil
10664
+ * @dbxUtilCategory path
10665
+ * @dbxUtilTags path, slash, file, type-guard, predicate, check, is
10666
+ * @dbxUtilRelated is-slash-path-typed-file, is-slash-path-folder, slash-path-type
10667
+ *
8613
10668
  * @param input - The string to check.
8614
10669
  * @returns Whether the input is a file path.
8615
10670
  */ function isSlashPathFile(input) {
@@ -8619,6 +10674,11 @@ var DEFAULT_SLASH_PATH_ILLEGAL_CHARACTERS = [
8619
10674
  /**
8620
10675
  * Type guard that checks if the input is a typed file path (contains a file extension).
8621
10676
  *
10677
+ * @dbxUtil
10678
+ * @dbxUtilCategory path
10679
+ * @dbxUtilTags path, slash, file, extension, type-guard, predicate, typed
10680
+ * @dbxUtilRelated is-slash-path-file, is-slash-path-folder, slash-path-type
10681
+ *
8622
10682
  * @param input - The string to check.
8623
10683
  * @returns Whether the input is a typed file path.
8624
10684
  */ function isSlashPathTypedFile(input) {
@@ -8628,6 +10688,11 @@ var DEFAULT_SLASH_PATH_ILLEGAL_CHARACTERS = [
8628
10688
  /**
8629
10689
  * Type guard that checks if the input is a folder path (ends with a slash).
8630
10690
  *
10691
+ * @dbxUtil
10692
+ * @dbxUtilCategory path
10693
+ * @dbxUtilTags path, slash, folder, directory, type-guard, predicate, trailing
10694
+ * @dbxUtilRelated is-slash-path-file, is-valid-slash-path, slash-path-type
10695
+ *
8631
10696
  * @param input - The string to check.
8632
10697
  * @returns Whether the input is a folder path.
8633
10698
  */ function isSlashPathFolder(input) {
@@ -8636,6 +10701,11 @@ var DEFAULT_SLASH_PATH_ILLEGAL_CHARACTERS = [
8636
10701
  /**
8637
10702
  * Type guard that checks if the input is a valid slash path (not 'invalid' type).
8638
10703
  *
10704
+ * @dbxUtil
10705
+ * @dbxUtilCategory path
10706
+ * @dbxUtilTags path, slash, valid, type-guard, predicate, check, validate
10707
+ * @dbxUtilRelated slash-path-type, slash-path-validation-factory, slash-path-invalid-error
10708
+ *
8639
10709
  * @param input - The string to check.
8640
10710
  * @returns Whether the input is a valid slash path.
8641
10711
  */ function isValidSlashPath(input) {
@@ -8644,6 +10714,11 @@ var DEFAULT_SLASH_PATH_ILLEGAL_CHARACTERS = [
8644
10714
  /**
8645
10715
  * Returns the last part of the slash path.
8646
10716
  *
10717
+ * @dbxUtil
10718
+ * @dbxUtilCategory path
10719
+ * @dbxUtilTags path, slash, name, last, basename, leaf, file, folder
10720
+ * @dbxUtilRelated slash-path-parts, slash-path-details, isolate-slash-path
10721
+ *
8647
10722
  * @param slashPath - The path to extract the name from.
8648
10723
  * @returns The last part of the path (file name or folder name).
8649
10724
  */ function slashPathName(slashPath) {
@@ -8653,6 +10728,11 @@ var DEFAULT_SLASH_PATH_ILLEGAL_CHARACTERS = [
8653
10728
  /**
8654
10729
  * Returns each section of a SlashPath.
8655
10730
  *
10731
+ * @dbxUtil
10732
+ * @dbxUtilCategory path
10733
+ * @dbxUtilTags path, slash, split, parts, segments, sections, components
10734
+ * @dbxUtilRelated slash-path-name, slash-path-details, isolate-slash-path
10735
+ *
8656
10736
  * @param slashPath - The path to split.
8657
10737
  * @returns Array of non-empty path segments.
8658
10738
  */ function slashPathParts(slashPath) {
@@ -8661,6 +10741,12 @@ var DEFAULT_SLASH_PATH_ILLEGAL_CHARACTERS = [
8661
10741
  /**
8662
10742
  * Creates a function that enforces the specified start type on a slash path.
8663
10743
  *
10744
+ * @dbxUtil
10745
+ * @dbxUtilCategory path
10746
+ * @dbxUtilKind factory
10747
+ * @dbxUtilTags path, slash, factory, start-type, relative, absolute, normalize
10748
+ * @dbxUtilRelated to-relative-slash-path-start-type, to-absolute-slash-path-start-type, slash-path-factory
10749
+ *
8664
10750
  * @param type - The start type to enforce.
8665
10751
  * @returns A function that transforms paths to the specified start type.
8666
10752
  */ function slashPathStartTypeFactory(type) {
@@ -8687,6 +10773,11 @@ var ALL_SLASH_PATH_FILE_TYPE_SEPARATORS_REGEX = /\.+/g;
8687
10773
  /**
8688
10774
  * Converts a slash path to a relative path by removing all leading slashes.
8689
10775
  *
10776
+ * @dbxUtil
10777
+ * @dbxUtilCategory path
10778
+ * @dbxUtilTags path, slash, relative, leading, strip, normalize, convert
10779
+ * @dbxUtilRelated to-absolute-slash-path-start-type, slash-path-start-type-factory
10780
+ *
8690
10781
  * @param input - The slash path to convert.
8691
10782
  * @returns A relative path without leading slashes.
8692
10783
  */ function toRelativeSlashPathStartType(input) {
@@ -8696,6 +10787,12 @@ var ALL_SLASH_PATH_FILE_TYPE_SEPARATORS_REGEX = /\.+/g;
8696
10787
  /**
8697
10788
  * Creates a SlashPathFolderFactory.
8698
10789
  *
10790
+ * @dbxUtil
10791
+ * @dbxUtilCategory path
10792
+ * @dbxUtilKind factory
10793
+ * @dbxUtilTags path, slash, folder, factory, validate, normalize, trailing-slash
10794
+ * @dbxUtilRelated slash-path-folder, slash-path-validation-factory, add-trailing-slash
10795
+ *
8699
10796
  * @param config Configuration options for the factory.
8700
10797
  * @returns A SlashPathFolderFactory.
8701
10798
  */ function slashPathFolderFactory() {
@@ -8751,6 +10848,11 @@ var ALL_SLASH_PATH_FILE_TYPE_SEPARATORS_REGEX = /\.+/g;
8751
10848
  *
8752
10849
  * If the input is a file, the folder of the file is returned instead.
8753
10850
  *
10851
+ * @dbxUtil
10852
+ * @dbxUtilCategory path
10853
+ * @dbxUtilTags path, slash, folder, convert, normalize, validate, directory
10854
+ * @dbxUtilRelated slash-path-folder-factory, slash-path-details, add-trailing-slash
10855
+ *
8754
10856
  * @param input - the string path to convert to a folder path
8755
10857
  * @param config - optional configuration controlling path type inference and invalid-path handling
8756
10858
  * @returns a valid slash path folder string with a trailing slash, or an empty string for relative root
@@ -8760,6 +10862,11 @@ var ALL_SLASH_PATH_FILE_TYPE_SEPARATORS_REGEX = /\.+/g;
8760
10862
  /**
8761
10863
  * Converts a slash path to an absolute path by ensuring exactly one leading slash.
8762
10864
  *
10865
+ * @dbxUtil
10866
+ * @dbxUtilCategory path
10867
+ * @dbxUtilTags path, slash, absolute, leading, prefix, normalize, convert
10868
+ * @dbxUtilRelated to-relative-slash-path-start-type, slash-path-start-type-factory, fix-multi-slashes-in-slash-path
10869
+ *
8763
10870
  * @param input - The slash path to convert.
8764
10871
  * @returns An absolute path starting with a single slash.
8765
10872
  */ function toAbsoluteSlashPathStartType(input) {
@@ -8769,6 +10876,11 @@ var ALL_SLASH_PATH_FILE_TYPE_SEPARATORS_REGEX = /\.+/g;
8769
10876
  /**
8770
10877
  * Replaces consecutive double slashes with single slashes.
8771
10878
  *
10879
+ * @dbxUtil
10880
+ * @dbxUtilCategory path
10881
+ * @dbxUtilTags path, slash, fix, collapse, double, normalize, dedupe
10882
+ * @dbxUtilRelated merge-slash-paths, replace-multiple-file-paths-in-slash-path
10883
+ *
8772
10884
  * @param input - The slash path to fix.
8773
10885
  * @returns The path with double slashes collapsed.
8774
10886
  */ function fixMultiSlashesInSlashPath(input) {
@@ -8777,6 +10889,11 @@ var ALL_SLASH_PATH_FILE_TYPE_SEPARATORS_REGEX = /\.+/g;
8777
10889
  /**
8778
10890
  * Replaces consecutive double slashes with single slashes. Alias for {@link fixMultiSlashesInSlashPath}.
8779
10891
  *
10892
+ * @dbxUtil
10893
+ * @dbxUtilCategory path
10894
+ * @dbxUtilTags path, slash, alias, collapse, double, normalize
10895
+ * @dbxUtilRelated fix-multi-slashes-in-slash-path, merge-slash-paths
10896
+ *
8780
10897
  * @param input - The slash path to fix.
8781
10898
  * @returns The path with double slashes collapsed.
8782
10899
  */ function replaceMultipleFilePathsInSlashPath(input) {
@@ -8785,6 +10902,11 @@ var ALL_SLASH_PATH_FILE_TYPE_SEPARATORS_REGEX = /\.+/g;
8785
10902
  /**
8786
10903
  * Removes all trailing slashes from a slash path.
8787
10904
  *
10905
+ * @dbxUtil
10906
+ * @dbxUtilCategory path
10907
+ * @dbxUtilTags path, slash, trim, trailing, strip, remove, normalize
10908
+ * @dbxUtilRelated add-trailing-slash, remove-trailing-file-type-separators
10909
+ *
8788
10910
  * @param input - The slash path to trim.
8789
10911
  * @returns The path without trailing slashes.
8790
10912
  */ function removeTrailingSlashes(input) {
@@ -8793,6 +10915,11 @@ var ALL_SLASH_PATH_FILE_TYPE_SEPARATORS_REGEX = /\.+/g;
8793
10915
  /**
8794
10916
  * Removes all trailing dots from a slash path.
8795
10917
  *
10918
+ * @dbxUtil
10919
+ * @dbxUtilCategory path
10920
+ * @dbxUtilTags path, slash, trim, trailing, dot, file-type, strip, normalize
10921
+ * @dbxUtilRelated remove-trailing-slashes, replace-invalid-file-path-type-separators-in-slash-path
10922
+ *
8796
10923
  * @param input - The slash path to trim.
8797
10924
  * @returns The path without trailing dots.
8798
10925
  */ function removeTrailingFileTypeSeparators(input) {
@@ -8801,6 +10928,11 @@ var ALL_SLASH_PATH_FILE_TYPE_SEPARATORS_REGEX = /\.+/g;
8801
10928
  /**
8802
10929
  * Adds a trailing slash to the input if it does not already have one.
8803
10930
  *
10931
+ * @dbxUtil
10932
+ * @dbxUtilCategory path
10933
+ * @dbxUtilTags path, slash, trailing, append, folder, ensure, normalize
10934
+ * @dbxUtilRelated remove-trailing-slashes, slash-path-folder, slash-path-folder-factory
10935
+ *
8804
10936
  * @param input A slash path.
8805
10937
  * @returns A slash path folder.
8806
10938
  */ function addTrailingSlash(input) {
@@ -8809,6 +10941,11 @@ var ALL_SLASH_PATH_FILE_TYPE_SEPARATORS_REGEX = /\.+/g;
8809
10941
  /**
8810
10942
  * Replaces all extra and invalidate FilePathTypeSeparator values from the SlashPath, returning a valid SlashPath.
8811
10943
  *
10944
+ * @dbxUtil
10945
+ * @dbxUtilCategory path
10946
+ * @dbxUtilTags path, slash, dot, file-type, replace, sanitize, fix, validate
10947
+ * @dbxUtilRelated replace-invalid-file-path-type-separators-in-slash-path-function, slash-path-validation-factory
10948
+ *
8812
10949
  * @param input
8813
10950
  * @param replaceWith
8814
10951
  * @returns
@@ -8818,6 +10955,12 @@ var ALL_SLASH_PATH_FILE_TYPE_SEPARATORS_REGEX = /\.+/g;
8818
10955
  /**
8819
10956
  * Creates a function that replaces all extra and invalidate FilePathTypeSeparator values from the SlashPath, returning a valid SlashPath.
8820
10957
  *
10958
+ * @dbxUtil
10959
+ * @dbxUtilCategory path
10960
+ * @dbxUtilKind factory
10961
+ * @dbxUtilTags path, slash, dot, file-type, factory, replace, sanitize, validate
10962
+ * @dbxUtilRelated replace-invalid-file-path-type-separators-in-slash-path, slash-path-validation-factory
10963
+ *
8821
10964
  * @param input
8822
10965
  * @param replaceWith
8823
10966
  * @returns
@@ -8858,6 +11001,12 @@ var ALL_SLASH_PATH_FILE_TYPE_SEPARATORS_REGEX = /\.+/g;
8858
11001
  /**
8859
11002
  * Creates a validation/fixup function for slash paths that replaces illegal characters and extra dots.
8860
11003
  *
11004
+ * @dbxUtil
11005
+ * @dbxUtilCategory path
11006
+ * @dbxUtilKind factory
11007
+ * @dbxUtilTags path, slash, validate, factory, sanitize, illegal, replace, fix
11008
+ * @dbxUtilRelated is-valid-slash-path, replace-invalid-file-path-type-separators-in-slash-path-function, slash-path-factory, slash-path-invalid-error
11009
+ *
8861
11010
  * @param config - Configuration for validation behavior.
8862
11011
  * @returns A function that validates and fixes a slash path.
8863
11012
  */ function slashPathValidationFactory(config) {
@@ -8883,6 +11032,12 @@ var ALL_SLASH_PATH_FILE_TYPE_SEPARATORS_REGEX = /\.+/g;
8883
11032
  /**
8884
11033
  * Creates a factory function that merges path segments together with optional base path, start type enforcement, and validation.
8885
11034
  *
11035
+ * @dbxUtil
11036
+ * @dbxUtilCategory path
11037
+ * @dbxUtilKind factory
11038
+ * @dbxUtilTags path, slash, factory, merge, base, start-type, validate, normalize
11039
+ * @dbxUtilRelated merge-slash-paths, slash-path-validation-factory, slash-path-start-type-factory
11040
+ *
8886
11041
  * @param config - Configuration for path generation.
8887
11042
  * @returns A factory function that merges input paths into a single validated slash path.
8888
11043
  */ function slashPathFactory(config) {
@@ -8901,6 +11056,11 @@ var ALL_SLASH_PATH_FILE_TYPE_SEPARATORS_REGEX = /\.+/g;
8901
11056
  /**
8902
11057
  * Merges an array of path segments into a single slash path, filtering nullish values and collapsing double slashes.
8903
11058
  *
11059
+ * @dbxUtil
11060
+ * @dbxUtilCategory path
11061
+ * @dbxUtilTags path, slash, merge, join, concat, segments, normalize, dedupe
11062
+ * @dbxUtilRelated slash-path-factory, fix-multi-slashes-in-slash-path, slash-path-parts
11063
+ *
8904
11064
  * @param paths - Array of path segments to merge.
8905
11065
  * @returns The merged slash path.
8906
11066
  */ function mergeSlashPaths(paths) {
@@ -8910,6 +11070,11 @@ var ALL_SLASH_PATH_FILE_TYPE_SEPARATORS_REGEX = /\.+/g;
8910
11070
  /**
8911
11071
  * Creates an Error indicating that a slash path is invalid.
8912
11072
  *
11073
+ * @dbxUtil
11074
+ * @dbxUtilCategory path
11075
+ * @dbxUtilTags path, slash, error, invalid, throw, validate
11076
+ * @dbxUtilRelated is-valid-slash-path, slash-path-validation-factory
11077
+ *
8913
11078
  * @returns A new Error with a descriptive message.
8914
11079
  */ function slashPathInvalidError() {
8915
11080
  return new Error('The slashPath is invalid.');
@@ -8917,6 +11082,11 @@ var ALL_SLASH_PATH_FILE_TYPE_SEPARATORS_REGEX = /\.+/g;
8917
11082
  /**
8918
11083
  * Splits the path and returns the items at the given ranges.
8919
11084
  *
11085
+ * @dbxUtil
11086
+ * @dbxUtilCategory path
11087
+ * @dbxUtilTags path, slash, isolate, slice, range, segments, extract, sub-path
11088
+ * @dbxUtilRelated isolate-slash-path-function, slash-path-parts, slash-path-details
11089
+ *
8920
11090
  * @param path - The path to isolate parts from.
8921
11091
  * @param range - Index range defining which path segments to extract.
8922
11092
  * @returns A new slash path containing only the segments within the range.
@@ -8928,6 +11098,12 @@ var ALL_SLASH_PATH_FILE_TYPE_SEPARATORS_REGEX = /\.+/g;
8928
11098
  /**
8929
11099
  * Creates an IsolateSlashPathFunction.
8930
11100
  *
11101
+ * @dbxUtil
11102
+ * @dbxUtilCategory path
11103
+ * @dbxUtilKind factory
11104
+ * @dbxUtilTags path, slash, isolate, factory, slice, range, segments, sub-path
11105
+ * @dbxUtilRelated isolate-slash-path, slash-path-parts, slash-path-details
11106
+ *
8931
11107
  * @param config - Configuration with range, optional start type, and file mode.
8932
11108
  * @returns A function that isolates path segments within the configured range.
8933
11109
  */ function isolateSlashPathFunction(config) {
@@ -8948,6 +11124,11 @@ var ALL_SLASH_PATH_FILE_TYPE_SEPARATORS_REGEX = /\.+/g;
8948
11124
  /**
8949
11125
  * Returns the details of a path.
8950
11126
  *
11127
+ * @dbxUtil
11128
+ * @dbxUtilCategory path
11129
+ * @dbxUtilTags path, slash, details, parse, decompose, file, folder, extension, parts
11130
+ * @dbxUtilRelated slash-path-type, slash-path-parts, slash-path-folder, slash-path-name
11131
+ *
8951
11132
  * @param path The path to get details for.
8952
11133
  * @returns The details of the path.
8953
11134
  */ function slashPathDetails(path) {
@@ -9020,6 +11201,11 @@ var ALL_SLASH_PATH_FILE_TYPE_SEPARATORS_REGEX = /\.+/g;
9020
11201
  /**
9021
11202
  * Expands the input matcher path into decision functions.
9022
11203
  *
11204
+ * @dbxUtil
11205
+ * @dbxUtilCategory path
11206
+ * @dbxUtilTags path, slash, matcher, expand, decision, predicate, wildcard, build
11207
+ * @dbxUtilRelated slash-path-path-matcher, slash-path-sub-path-matcher, slash-path-path-matcher-config
11208
+ *
9023
11209
  * @param path - Matcher path parts to expand into decision functions.
9024
11210
  * @returns Array of decision functions for each path part.
9025
11211
  */ function expandSlashPathPathMatcherPartToDecisionFunctions(path) {
@@ -9062,6 +11248,11 @@ var ALL_SLASH_PATH_FILE_TYPE_SEPARATORS_REGEX = /\.+/g;
9062
11248
  /**
9063
11249
  * Creates a SlashPathPathMatcherConfig from the input.
9064
11250
  *
11251
+ * @dbxUtil
11252
+ * @dbxUtilCategory path
11253
+ * @dbxUtilTags path, slash, matcher, config, normalize, coerce
11254
+ * @dbxUtilRelated slash-path-path-matcher, slash-path-sub-path-matcher
11255
+ *
9065
11256
  * @param input The configuration input.
9066
11257
  * @returns The configuration.
9067
11258
  */ function slashPathPathMatcherConfig(input) {
@@ -9091,6 +11282,12 @@ var ALL_SLASH_PATH_FILE_TYPE_SEPARATORS_REGEX = /\.+/g;
9091
11282
  /**
9092
11283
  * Creates a SlashPathPathMatcher.
9093
11284
  *
11285
+ * @dbxUtil
11286
+ * @dbxUtilCategory path
11287
+ * @dbxUtilKind factory
11288
+ * @dbxUtilTags path, slash, matcher, factory, predicate, wildcard, target, compare
11289
+ * @dbxUtilRelated slash-path-sub-path-matcher, expand-slash-path-path-matcher-part-to-decision-functions, slash-path-path-matcher-config
11290
+ *
9094
11291
  * @param input - the matcher configuration, which may be a target path string, an array of path parts, or a full config object
9095
11292
  * @returns The matcher.
9096
11293
  */ function slashPathPathMatcher(input) {
@@ -9146,6 +11343,12 @@ var ALL_SLASH_PATH_FILE_TYPE_SEPARATORS_REGEX = /\.+/g;
9146
11343
  /**
9147
11344
  * Creates a SlashPathSubPathMatcher.
9148
11345
  *
11346
+ * @dbxUtil
11347
+ * @dbxUtilCategory path
11348
+ * @dbxUtilKind factory
11349
+ * @dbxUtilTags path, slash, matcher, sub-path, factory, base-path, prefix, predicate
11350
+ * @dbxUtilRelated slash-path-path-matcher, expand-slash-path-path-matcher-part-to-decision-functions
11351
+ *
9149
11352
  * @param config The configuration for the matcher.
9150
11353
  * @returns The matcher.
9151
11354
  */ function slashPathSubPathMatcher(config) {
@@ -9619,6 +11822,11 @@ function _unsupported_iterable_to_array$l(o, minLen) {
9619
11822
  /**
9620
11823
  * Extracts unique domain names from a list of email addresses (case-insensitive).
9621
11824
  *
11825
+ * @dbxUtil
11826
+ * @dbxUtilCategory contact
11827
+ * @dbxUtilTags email, domain, extract, unique, dedupe, case-insensitive
11828
+ * @dbxUtilRelated read-domain-from-email-address, read-email-domain-from-url-or-email-address
11829
+ *
9622
11830
  * @param addresses - Array of email addresses to extract domains from
9623
11831
  * @returns Array of unique lowercase domain strings
9624
11832
  */ function readDomainsFromEmailAddresses(addresses) {
@@ -9627,6 +11835,11 @@ function _unsupported_iterable_to_array$l(o, minLen) {
9627
11835
  /**
9628
11836
  * Extracts the domain portion from a single email address.
9629
11837
  *
11838
+ * @dbxUtil
11839
+ * @dbxUtilCategory contact
11840
+ * @dbxUtilTags email, domain, extract, parse, lowercase
11841
+ * @dbxUtilRelated read-domains-from-email-addresses, read-email-domain-from-url-or-email-address
11842
+ *
9630
11843
  * @param address - The email address to extract the domain from
9631
11844
  * @returns The lowercase domain string
9632
11845
  */ function readDomainFromEmailAddress(address) {
@@ -9645,6 +11858,11 @@ function _unsupported_iterable_to_array$l(o, minLen) {
9645
11858
  *
9646
11859
  * The "www." prefix is stripped from URL-style inputs since emails typically don't use it.
9647
11860
  *
11861
+ * @dbxUtil
11862
+ * @dbxUtilCategory contact
11863
+ * @dbxUtilTags email, domain, url, extract, normalize, parse, www
11864
+ * @dbxUtilRelated read-domain-from-email-address, read-domains-from-email-addresses
11865
+ *
9648
11866
  * @param urlLikeInput - A URL, email address, or domain string
9649
11867
  * @returns The extracted domain
9650
11868
  */ function readEmailDomainFromUrlOrEmailAddress(urlLikeInput) {
@@ -9693,6 +11911,11 @@ function _unsupported_iterable_to_array$k(o, minLen) {
9693
11911
  * Converts an EmailParticipant object to a formatted string representation.
9694
11912
  * The format is: "name<email>" or "<email>" if no name is provided.
9695
11913
  *
11914
+ * @dbxUtil
11915
+ * @dbxUtilCategory contact
11916
+ * @dbxUtilTags email, participant, convert, format, serialize, name
11917
+ * @dbxUtilRelated convert-email-participant-string-to-participant, coerce-to-email-participants
11918
+ *
9696
11919
  * @param participant - The email participant to convert
9697
11920
  * @returns A formatted string representation of the participant
9698
11921
  */ function convertParticipantToEmailParticipantString(participant) {
@@ -9704,6 +11927,11 @@ function _unsupported_iterable_to_array$k(o, minLen) {
9704
11927
  * Converts a formatted participant string into an EmailParticipant object.
9705
11928
  * Parses strings in the format "name<email>" or "<email>".
9706
11929
  *
11930
+ * @dbxUtil
11931
+ * @dbxUtilCategory contact
11932
+ * @dbxUtilTags email, participant, parse, deserialize, name, address
11933
+ * @dbxUtilRelated convert-participant-to-email-participant-string, coerce-to-email-participants
11934
+ *
9707
11935
  * @param participantString - The string to parse
9708
11936
  * @returns An EmailParticipant object with the extracted name and email
9709
11937
  */ function convertEmailParticipantStringToParticipant(participantString) {
@@ -9719,6 +11947,11 @@ function _unsupported_iterable_to_array$k(o, minLen) {
9719
11947
  * Combines an array of EmailParticipants with an array of email addresses.
9720
11948
  * Email addresses that don't already exist in the participants array are converted to EmailParticipant objects.
9721
11949
  *
11950
+ * @dbxUtil
11951
+ * @dbxUtilCategory contact
11952
+ * @dbxUtilTags email, participant, merge, combine, dedupe, coerce, normalize
11953
+ * @dbxUtilRelated convert-participant-to-email-participant-string, convert-email-participant-string-to-participant
11954
+ *
9722
11955
  * @param options - Object containing participants and/or emails arrays
9723
11956
  * @param options.participants - Array of existing EmailParticipant objects
9724
11957
  * @param options.emails - Array of email addresses to include
@@ -10141,6 +12374,9 @@ function toReadableError(inputError) {
10141
12374
  * Like {@link bufferHasValidPdfMarkings}, this is a lightweight heuristic — it detects
10142
12375
  * the vast majority of encrypted PDFs but does not fully parse the PDF structure.
10143
12376
  *
12377
+ * Note: this returns true for both fully-encrypted PDFs and write-protected-only PDFs.
12378
+ * Use `detectPdfEncryption` from `@dereekb/nestjs` when that distinction matters.
12379
+ *
10144
12380
  * @example
10145
12381
  * ```ts
10146
12382
  * const pdfBytes = await readFile('protected.pdf');
@@ -10214,6 +12450,12 @@ function _unsupported_iterable_to_array$j(o, minLen) {
10214
12450
  };
10215
12451
  }
10216
12452
 
12453
+ /**
12454
+ * No-op function. Useful as a default callback or as a yargs command's `handler` for parent
12455
+ * commands that only register subcommands.
12456
+ */ // eslint-disable-next-line @typescript-eslint/no-empty-function
12457
+ function noop() {}
12458
+
10217
12459
  function _array_like_to_array$i(arr, len) {
10218
12460
  if (len == null || len > arr.length) len = arr.length;
10219
12461
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
@@ -12517,6 +14759,12 @@ function _unsupported_iterable_to_array$e(o, minLen) {
12517
14759
  * @param compare - the comparator to wrap
12518
14760
  * @returns a new comparator that handles nullish values safely before delegating to the wrapped comparator
12519
14761
  *
14762
+ * @dbxUtil
14763
+ * @dbxUtilCategory value
14764
+ * @dbxUtilKind factory
14765
+ * @dbxUtilTags equal, equality, compare, comparator, maybe, safe, factory
14766
+ * @dbxUtilRelated safe-compare-equality
14767
+ *
12520
14768
  * @example
12521
14769
  * ```ts
12522
14770
  * const safeCompare = safeEqualityComparatorFunction((a: number, b: number) => a === b);
@@ -12540,6 +14788,11 @@ function _unsupported_iterable_to_array$e(o, minLen) {
12540
14788
  * @param compare - the equality comparator for non-nullish values
12541
14789
  * @returns `true` if the values are considered equal
12542
14790
  *
14791
+ * @dbxUtil
14792
+ * @dbxUtilCategory value
14793
+ * @dbxUtilTags equal, equality, compare, maybe, safe
14794
+ * @dbxUtilRelated safe-equality-comparator-function
14795
+ *
12543
14796
  * @example
12544
14797
  * ```ts
12545
14798
  * safeCompareEquality(0, 1, (a, b) => a === b);
@@ -13097,6 +15350,12 @@ var MINUTE_OF_DAY_MAXMIMUM = MINUTES_IN_DAY - 1;
13097
15350
  * @param fn - the equality comparator
13098
15351
  * @returns a function that checks whether a given value equals the captured reference
13099
15352
  *
15353
+ * @dbxUtil
15354
+ * @dbxUtilCategory value
15355
+ * @dbxUtilKind factory
15356
+ * @dbxUtilTags equal, equality, compare, context, factory
15357
+ * @dbxUtilRelated are-equal-context, all-objects-are-equal
15358
+ *
13100
15359
  * @example
13101
15360
  * ```ts
13102
15361
  * const isEqual = (a: number, b: number) => a === b;
@@ -13120,6 +15379,12 @@ var MINUTE_OF_DAY_MAXMIMUM = MINUTES_IN_DAY - 1;
13120
15379
  * @param fn - the equality comparator
13121
15380
  * @returns a function that checks whether all input values equal the captured reference
13122
15381
  *
15382
+ * @dbxUtil
15383
+ * @dbxUtilCategory value
15384
+ * @dbxUtilKind factory
15385
+ * @dbxUtilTags equal, equality, compare, context, iterable, all, factory
15386
+ * @dbxUtilRelated is-equal-context, all-objects-are-equal
15387
+ *
13123
15388
  * @example
13124
15389
  * ```ts
13125
15390
  * const isEqual = (a: number, b: number) => a === b;
@@ -13152,6 +15417,11 @@ var MINUTE_OF_DAY_MAXMIMUM = MINUTES_IN_DAY - 1;
13152
15417
  * @param fn - the equality comparator
13153
15418
  * @returns `true` if all values are equal to each other, or if fewer than two values are provided
13154
15419
  *
15420
+ * @dbxUtil
15421
+ * @dbxUtilCategory value
15422
+ * @dbxUtilTags equal, equality, compare, all, iterable, every
15423
+ * @dbxUtilRelated is-equal-context, are-equal-context
15424
+ *
13155
15425
  * @example
13156
15426
  * ```ts
13157
15427
  * const isEqual = (a: unknown, b: unknown) => a === b;
@@ -13203,6 +15473,11 @@ var MINUTE_OF_DAY_MAXMIMUM = MINUTES_IN_DAY - 1;
13203
15473
  * @param modify - function that mutates the target value
13204
15474
  * @returns a new {@link Modifier} pairing the key with the modify function
13205
15475
  *
15476
+ * @dbxUtil
15477
+ * @dbxUtilCategory value
15478
+ * @dbxUtilTags modifier, mutate, transform, key, factory
15479
+ * @dbxUtilRelated apply-modifiers, modifier-function
15480
+ *
13206
15481
  * @example
13207
15482
  * ```ts
13208
15483
  * const uppercaseName = modifier<{ name: string }>('uppercase', (x) => { x.name = x.name.toUpperCase(); });
@@ -13934,6 +16209,11 @@ function _type_of$6(obj) {
13934
16209
  * Recursively checks whether an object is "empty" — meaning it is null/undefined, has no keys,
13935
16210
  * or all of its values are themselves empty (recursively for nested objects, or falsy for primitives).
13936
16211
  *
16212
+ * @dbxUtil
16213
+ * @dbxUtilCategory object
16214
+ * @dbxUtilTags object, empty, recursive, deep, check, has-value
16215
+ * @dbxUtilRelated object-has-no-keys, has-value-or-not-empty-object
16216
+ *
13937
16217
  * @param obj - Object to check
13938
16218
  * @returns `true` if the object is considered empty
13939
16219
  */ function objectIsEmpty(obj) {
@@ -13972,6 +16252,11 @@ function _type_of$6(obj) {
13972
16252
  /**
13973
16253
  * Converts a Date object or unix timestamp number to a unix timestamp number.
13974
16254
  *
16255
+ * @dbxUtil
16256
+ * @dbxUtilCategory date
16257
+ * @dbxUtilTags date, unix, seconds, timestamp, convert, normalize
16258
+ * @dbxUtilRelated unix-date-time-seconds-number-from-date, date-from-date-or-time-seconds-number
16259
+ *
13975
16260
  * @param input - Date object or unix timestamp number to convert
13976
16261
  * @returns Unix timestamp number if input is valid, null/undefined if input is null/undefined
13977
16262
  */ function unixDateTimeSecondsNumberFromDateOrTimeNumber(input) {
@@ -13988,6 +16273,11 @@ function _type_of$6(obj) {
13988
16273
  /**
13989
16274
  * Gets the current time as a unix timestamp number.
13990
16275
  *
16276
+ * @dbxUtil
16277
+ * @dbxUtilCategory date
16278
+ * @dbxUtilTags date, unix, seconds, timestamp, now, current, time
16279
+ * @dbxUtilRelated unix-date-time-seconds-number-from-date
16280
+ *
13991
16281
  * @returns Current time as unix timestamp number
13992
16282
  */ function unixDateTimeSecondsNumberForNow() {
13993
16283
  return unixDateTimeSecondsNumberFromDate(new Date());
@@ -14009,6 +16299,11 @@ function dateFromDateOrTimeSecondsNumber(input) {
14009
16299
  /**
14010
16300
  * Converts a unix timestamp number to a Date object.
14011
16301
  *
16302
+ * @dbxUtil
16303
+ * @dbxUtilCategory date
16304
+ * @dbxUtilTags date, unix, seconds, timestamp, convert, parse
16305
+ * @dbxUtilRelated unix-date-time-seconds-number-from-date, date-from-date-or-time-seconds-number
16306
+ *
14012
16307
  * @param dateTimeNumber - Unix timestamp number to convert
14013
16308
  * @returns Date object if timestamp is valid, null/undefined if timestamp is null/undefined
14014
16309
  */ function unixDateTimeSecondsNumberToDate(dateTimeNumber) {
@@ -14016,8 +16311,20 @@ function dateFromDateOrTimeSecondsNumber(input) {
14016
16311
  }
14017
16312
 
14018
16313
  /**
14019
- * Returns expiration details for the input configuration.
14020
- * Creates an object that can determine when something expires based on various inputs.
16314
+ * Returns an {@link ExpirationDetails} for the given input configuration.
16315
+ *
16316
+ * Use this when you need to ask whether something has expired or what its expiration date is. See {@link ExpirationDetailsInput} for how the expiration date is resolved (`expires` → `expiresAt` → `expiresFromDate + expiresIn`).
16317
+ *
16318
+ * Common patterns:
16319
+ * - **Direct expiration**: `expirationDetails({ expiresAt }).hasExpired()`
16320
+ * - **Wrap an existing object**: `expirationDetails({ expires: token }).hasExpired()`
16321
+ * - **TTL / throttle**: `expirationDetails({ expiresFromDate: lastRunAt, expiresIn: throttleMs })` — see {@link isThrottled}
16322
+ * - **Pre-emptive refresh**: `expirationDetails({ expiresFromDate: expiresAt, expiresIn: -bufferMs })` — treat as expired `bufferMs` before the real expiration, e.g. to refresh a token before it actually dies
16323
+ *
16324
+ * @dbxUtil
16325
+ * @dbxUtilCategory date
16326
+ * @dbxUtilTags expiration, expires, expiry, ttl, throttle, refresh, time-to-live
16327
+ * @dbxUtilRelated is-expired, is-throttled, calculate-expiration-date, is-under-threshold, check-atleast-one-not-expired, check-any-have-expired
14021
16328
  *
14022
16329
  * @template T - The type of Expires object
14023
16330
  * @param input - Configuration for calculating expiration
@@ -14047,8 +16354,13 @@ function dateFromDateOrTimeSecondsNumber(input) {
14047
16354
  }
14048
16355
  function getExpirationDateForNow(now) {
14049
16356
  var expirationDate = null;
14050
- if ((expires === null || expires === void 0 ? void 0 : expires.expiresAt) != null) {
14051
- expirationDate = expires.expiresAt;
16357
+ // `expires` (when supplied) wins exclusively over the top-level fields per the documented
16358
+ // contract. If the supplied object has no `expiresAt`, the result is "no expiration" — we do
16359
+ // NOT fall through to top-level expiresAt/expiresIn, otherwise an Expires-typed value with a
16360
+ // null expiresAt would silently inherit unrelated top-level overrides.
16361
+ if (expires != null) {
16362
+ var _expires_expiresAt;
16363
+ expirationDate = (_expires_expiresAt = expires.expiresAt) !== null && _expires_expiresAt !== void 0 ? _expires_expiresAt : null;
14052
16364
  } else if (expiresAt != null) {
14053
16365
  expirationDate = expiresAt;
14054
16366
  } else if (expiresIn != null) {
@@ -14068,11 +16380,41 @@ function dateFromDateOrTimeSecondsNumber(input) {
14068
16380
  * Convenience function for calculating and returning the expiration date given the input.
14069
16381
  * This is a shorthand for expirationDetails(input).getExpirationDate().
14070
16382
  *
16383
+ * @dbxUtil
16384
+ * @dbxUtilCategory date
16385
+ * @dbxUtilTags expiration, expires, expiry, ttl, calculate, date
16386
+ * @dbxUtilRelated expiration-details, is-expired
16387
+ *
14071
16388
  * @param input - Input configuration used to calculate the expiration date
14072
16389
  * @returns The calculated expiration date, or null if no expiration is defined
14073
16390
  */ function calculateExpirationDate(input) {
14074
16391
  return expirationDetails(input).getExpirationDate();
14075
16392
  }
16393
+ // MARK: isExpired
16394
+ /**
16395
+ * Convenience wrapper around {@link expirationDetails}().hasExpired() that treats null/undefined input or no expiration date as expired.
16396
+ *
16397
+ * @dbxUtil
16398
+ * @dbxUtilCategory date
16399
+ * @dbxUtilTags expiration, expires, expiry, expired, has-expired, is-expired, ttl
16400
+ * @dbxUtilRelated expiration-details, is-throttled, calculate-expiration-date
16401
+ *
16402
+ * @param input - Expiration configuration. Null/undefined is treated as expired.
16403
+ * @param now - Optional override for the current time. Defaults to the current time. Apply any buffer (e.g. for clock skew or pre-emptive refresh) by shifting this value forward.
16404
+ * @returns True when the input is null/undefined or its expiration date has passed; otherwise false.
16405
+ *
16406
+ * @example
16407
+ * isExpired(null); // true
16408
+ * isExpired({ expiresAt: pastDate }); // true
16409
+ * isExpired({ expiresAt: futureDate }); // false
16410
+ * isExpired({ expiresAt: futureDate }, addMilliseconds(new Date(), 60_000)); // true (when within buffer)
16411
+ */ function isExpired(input, now) {
16412
+ var result = true;
16413
+ if (input != null) {
16414
+ result = expirationDetails(input).hasExpired(now, true);
16415
+ }
16416
+ return result;
16417
+ }
14076
16418
  /**
14077
16419
  * Returns true if the threshold has not passed since the next run time, compared to now.
14078
16420
  *
@@ -14081,6 +16423,11 @@ function dateFromDateOrTimeSecondsNumber(input) {
14081
16423
  * Example:
14082
16424
  * - Should send a notification at max every 2 days. The threshold is 2 days in milliseconds, and "nextRunAt" is the previously calculated date that was originally "now" + "threshold".
14083
16425
  *
16426
+ * @dbxUtil
16427
+ * @dbxUtilCategory date
16428
+ * @dbxUtilTags threshold, throttle, ttl, time-window, rate-limit
16429
+ * @dbxUtilRelated is-throttled, expiration-details
16430
+ *
14084
16431
  * @param threshold The threshold time. Typically this is amount of time that was used to calculate the original "nextRunAt" time.
14085
16432
  * @param nextRunAt Time the next run will occur. If null/undefined, then this function will return false.
14086
16433
  * @param now Optional override for the current time. Defaults to the current time.
@@ -14097,6 +16444,11 @@ function dateFromDateOrTimeSecondsNumber(input) {
14097
16444
  * Returns true if the throttle time has not passed since the last run time, compared to now.
14098
16445
  * This is useful for rate limiting operations (e.g., "only allow this action once every X milliseconds").
14099
16446
  *
16447
+ * @dbxUtil
16448
+ * @dbxUtilCategory date
16449
+ * @dbxUtilTags throttle, throttled, rate-limit, debounce, ttl, expiration
16450
+ * @dbxUtilRelated expiration-details, is-under-threshold, is-expired
16451
+ *
14100
16452
  * @param throttleTime - Minimum time in milliseconds that must pass between operations
14101
16453
  * @param lastRunAt - Timestamp when the operation was last performed
14102
16454
  * @param now - Optional override for the current time (defaults to the current time)
@@ -14114,6 +16466,11 @@ function dateFromDateOrTimeSecondsNumber(input) {
14114
16466
  *
14115
16467
  * If the list is empty, returns false.
14116
16468
  *
16469
+ * @dbxUtil
16470
+ * @dbxUtilCategory date
16471
+ * @dbxUtilTags expiration, valid, collection, any
16472
+ * @dbxUtilRelated expiration-details, check-any-have-expired
16473
+ *
14117
16474
  * @param details - Collection of ExpirationDetails to check
14118
16475
  * @returns True if at least one item has not expired, false otherwise
14119
16476
  */ function checkAtleastOneNotExpired(details) {
@@ -14128,6 +16485,11 @@ function dateFromDateOrTimeSecondsNumber(input) {
14128
16485
  *
14129
16486
  * If the list is empty, returns the value specified by defaultIfEmpty.
14130
16487
  *
16488
+ * @dbxUtil
16489
+ * @dbxUtilCategory date
16490
+ * @dbxUtilTags expiration, refresh, collection, any
16491
+ * @dbxUtilRelated expiration-details, check-atleast-one-not-expired
16492
+ *
14131
16493
  * @param details - Collection of ExpirationDetails to check
14132
16494
  * @param defaultIfEmpty - Default value to return if the list is empty (defaults to true)
14133
16495
  * @returns True if any item has expired, or the defaultIfEmpty value for an empty list
@@ -14598,6 +16960,11 @@ function _type_of$5(obj) {
14598
16960
  /**
14599
16961
  * Checks whether the input value is a native Promise by testing for a `.then` method.
14600
16962
  *
16963
+ * @dbxUtil
16964
+ * @dbxUtilCategory promise
16965
+ * @dbxUtilTags promise, type-guard, async, then, check
16966
+ * @dbxUtilRelated is-promise-like, as-promise
16967
+ *
14601
16968
  * @param obj - The value to test.
14602
16969
  * @returns `true` if the value is a Promise, `false` otherwise.
14603
16970
  */ function isPromise(obj) {
@@ -14608,6 +16975,11 @@ function _type_of$5(obj) {
14608
16975
  * Checks whether the input value is PromiseLike (i.e., has a `.then` method), which
14609
16976
  * includes both native Promises and custom thenables.
14610
16977
  *
16978
+ * @dbxUtil
16979
+ * @dbxUtilCategory promise
16980
+ * @dbxUtilTags promise, type-guard, async, then, thenable, check
16981
+ * @dbxUtilRelated is-promise, as-promise
16982
+ *
14611
16983
  * @param obj - The value to test.
14612
16984
  * @returns `true` if the value is PromiseLike, `false` otherwise.
14613
16985
  */ function isPromiseLike(obj) {
@@ -14761,6 +17133,11 @@ function waitForMs(ms, value) {
14761
17133
  /**
14762
17134
  * Polls at a regular interval until a condition is met or the maximum number of attempts is reached.
14763
17135
  *
17136
+ * @dbxUtil
17137
+ * @dbxUtilCategory promise
17138
+ * @dbxUtilTags promise, poll, wait, retry, condition, async, interval
17139
+ * @dbxUtilRelated wait-for-ms, perform-task-loop
17140
+ *
14764
17141
  * @param config - Polling configuration including check function, wait interval, and max attempts.
14765
17142
  * @param config.check - predicate function that returns true when the polling condition has been satisfied
14766
17143
  * @param config.wait - milliseconds to wait between polling iterations; defaults to 250
@@ -14877,6 +17254,10 @@ function _object_spread_props$3(target, source) {
14877
17254
  /**
14878
17255
  * Wraps the input in a resolved Promise if it is not already a Promise.
14879
17256
  *
17257
+ * @dbxUtil
17258
+ * @dbxUtilCategory promise
17259
+ * @dbxUtilTags promise, async, normalize, resolve, ensure
17260
+ *
14880
17261
  * @param input - A value or Promise to normalize into a Promise.
14881
17262
  * @returns A Promise that resolves to the input value.
14882
17263
  */ function asPromise(input) {
@@ -15138,6 +17519,11 @@ function _ts_generator$4(thisArg, body) {
15138
17519
  /**
15139
17520
  * Runs a single async task and returns the resulting value. Always configured to throw on failure.
15140
17521
  *
17522
+ * @dbxUtil
17523
+ * @dbxUtilCategory promise
17524
+ * @dbxUtilTags promise, async, task, retry, run, value
17525
+ * @dbxUtilRelated perform-async-task, run-async-tasks-for-values, perform-async-tasks
17526
+ *
15141
17527
  * @param taskFn - The async task to execute.
15142
17528
  * @param config - Optional configuration for retries and retry behavior.
15143
17529
  * @returns The value produced by the task, or undefined if the task produced no value.
@@ -15168,6 +17554,11 @@ function _ts_generator$4(thisArg, body) {
15168
17554
  * Runs an async task for each input value and returns an array of the resulting values.
15169
17555
  * Always configured to throw on failure.
15170
17556
  *
17557
+ * @dbxUtil
17558
+ * @dbxUtilCategory promise
17559
+ * @dbxUtilTags promise, async, tasks, parallel, batch, retry, run, values
17560
+ * @dbxUtilRelated perform-async-tasks, run-async-task-for-value
17561
+ *
15171
17562
  * @param input - The array of input values to process.
15172
17563
  * @param taskFn - The async task function to run for each input value.
15173
17564
  * @param config - Optional configuration for parallelism and retries.
@@ -15201,6 +17592,11 @@ function _ts_generator$4(thisArg, body) {
15201
17592
  * Performs async tasks for each input value with configurable retry and parallelism behavior.
15202
17593
  * Useful for operations that may experience optimistic concurrency collisions.
15203
17594
  *
17595
+ * @dbxUtil
17596
+ * @dbxUtilCategory promise
17597
+ * @dbxUtilTags async, promise, parallel, retry, task, batch, concurrency, throttle
17598
+ * @dbxUtilRelated perform-tasks-in-parallel, perform-async-task
17599
+ *
15204
17600
  * @param input - The array of input values to process.
15205
17601
  * @param taskFn - The async function to execute for each input.
15206
17602
  * @param config - Configuration for retries, parallelism, and error handling.
@@ -15270,6 +17666,11 @@ function _ts_generator$4(thisArg, body) {
15270
17666
  /**
15271
17667
  * Performs a single async task with configurable retry behavior and returns the result with success status.
15272
17668
  *
17669
+ * @dbxUtil
17670
+ * @dbxUtilCategory promise
17671
+ * @dbxUtilTags promise, async, task, retry, run, success
17672
+ * @dbxUtilRelated perform-async-tasks, run-async-task-for-value
17673
+ *
15273
17674
  * @param taskFn - The async task to execute.
15274
17675
  * @param config - Optional configuration for retries and error handling.
15275
17676
  * @returns A result object containing the value (if successful) and a success flag.
@@ -17055,6 +19456,11 @@ function _unsupported_iterable_to_array$8(o, minLen) {
17055
19456
  *
17056
19457
  * Recursively compares arrays, objects, Maps, Sets, primitives, and Dates.
17057
19458
  *
19459
+ * @dbxUtil
19460
+ * @dbxUtilCategory object
19461
+ * @dbxUtilTags object, equal, equality, deep, compare, recursive, pojo
19462
+ * @dbxUtilRelated are-equal-pojo-values-using-pojo-filter, all-objects-are-equal
19463
+ *
17058
19464
  * @param a - First value to compare
17059
19465
  * @param b - Second value to compare
17060
19466
  * @returns `true` if the values are deeply equal
@@ -17376,6 +19782,10 @@ function _type_of$2(obj) {
17376
19782
  * Empty nested objects are omitted from the result (they produce no keys).
17377
19783
  * Circular references are detected and treated as leaf values to avoid infinite recursion.
17378
19784
  *
19785
+ * @dbxUtil
19786
+ * @dbxUtilCategory object
19787
+ * @dbxUtilTags object, flatten, flat, nested, dot-notation, deep, traverse
19788
+ *
17379
19789
  * @example
17380
19790
  * ```ts
17381
19791
  * flattenObject({ a: 1, b: { c: 2, d: { e: 3 } } });
@@ -18945,6 +21355,11 @@ function _unsupported_iterable_to_array$3(o, minLen) {
18945
21355
  *
18946
21356
  * Empty segments (e.g. leading underscores in `_USER_ID`) are skipped.
18947
21357
  *
21358
+ * @dbxUtil
21359
+ * @dbxUtilCategory string
21360
+ * @dbxUtilTags string, case, camelcase, snakecase, screaming, convert, transform
21361
+ * @dbxUtilRelated camel-or-pascal-to-screaming-snake
21362
+ *
18948
21363
  * @param input The SCREAMING_SNAKE_CASE input.
18949
21364
  * @returns The camelCase form.
18950
21365
  */ function screamingSnakeToCamelCase(input) {
@@ -18985,6 +21400,11 @@ function _unsupported_iterable_to_array$3(o, minLen) {
18985
21400
  * Each upper-case character (other than the first) is preceded by an
18986
21401
  * underscore, then the whole result is upper-cased.
18987
21402
  *
21403
+ * @dbxUtil
21404
+ * @dbxUtilCategory string
21405
+ * @dbxUtilTags string, case, camelcase, pascalcase, snakecase, screaming, convert, transform
21406
+ * @dbxUtilRelated screaming-snake-to-camel-case
21407
+ *
18988
21408
  * @param input The camelCase / PascalCase input.
18989
21409
  * @returns The SCREAMING_SNAKE_CASE form.
18990
21410
  */ function camelOrPascalToScreamingSnake(input) {
@@ -19671,6 +22091,12 @@ function _unsupported_iterable_to_array(o, minLen) {
19671
22091
  * and optionally, how to construct the nodes themselves (`makeNode`). If `makeNode` is not provided, a default node structure is used.
19672
22092
  * The returned function recursively builds a tree from a root value.
19673
22093
  *
22094
+ * @dbxUtil
22095
+ * @dbxUtilCategory tree
22096
+ * @dbxUtilKind factory
22097
+ * @dbxUtilTags tree, expand, build, recursive, factory, hierarchy, traverse, children
22098
+ * @dbxUtilRelated expand-trees, expand-flatten-tree-function, explore-tree-function
22099
+ *
19674
22100
  * @template T The type of the value being processed at each node.
19675
22101
  * @template N The type of the TreeNode to be created. Defaults to TreeNode<T, any> if not specified by ExpandTreeWithNodeBuilder.
19676
22102
  * @param config An ExpandTree<T> or ExpandTreeWithNodeBuilder<T, N> configuration object.
@@ -19704,6 +22130,11 @@ function _unsupported_iterable_to_array(o, minLen) {
19704
22130
  * Convenience function for expanding multiple root values into an array of trees.
19705
22131
  * Each value in the input array is treated as a root for a new tree.
19706
22132
  *
22133
+ * @dbxUtil
22134
+ * @dbxUtilCategory tree
22135
+ * @dbxUtilTags tree, expand, multiple, roots, hierarchy, build, batch
22136
+ * @dbxUtilRelated expand-tree-function, expand-flatten-tree-function
22137
+ *
19707
22138
  * @template T The type of the input values.
19708
22139
  * @template N The type of the TreeNode in the resulting trees. Must extend TreeNode<T, N>.
19709
22140
  * @param values An array of root values of type T to expand.
@@ -19715,6 +22146,12 @@ function _unsupported_iterable_to_array(o, minLen) {
19715
22146
 
19716
22147
  /**
19717
22148
  * Decides how to visit a node during tree exploration.
22149
+ *
22150
+ * @dbxUtil
22151
+ * @dbxUtilCategory tree
22152
+ * @dbxUtilKind const
22153
+ * @dbxUtilTags tree, explore, visit, decision, enum, traversal, control
22154
+ * @dbxUtilRelated explore-tree-function, flatten-tree-add-node-decision
19718
22155
  */ var ExploreTreeVisitNodeDecision = {
19719
22156
  /**
19720
22157
  * Visits all nodes and children
@@ -19736,6 +22173,12 @@ function _unsupported_iterable_to_array(o, minLen) {
19736
22173
  * By default uses depth-first traversal, identity mapping, and visits all nodes. All options
19737
22174
  * can be overridden per-call.
19738
22175
  *
22176
+ * @dbxUtil
22177
+ * @dbxUtilCategory tree
22178
+ * @dbxUtilKind factory
22179
+ * @dbxUtilTags tree, explore, traverse, visit, factory, depth-first, breadth-first, walk
22180
+ * @dbxUtilRelated depth-first-explore-tree-traversal-factory-function, breadth-first-explore-tree-traversal-factory-function, flatten-tree-to-array-function
22181
+ *
19739
22182
  * @param config - Optional default configuration for mapping, filtering, and traversal strategy.
19740
22183
  * @returns A reusable function that explores trees with the configured behavior.
19741
22184
  *
@@ -19785,6 +22228,12 @@ function _unsupported_iterable_to_array(o, minLen) {
19785
22228
  * Visits each node before its children (pre-order). This is the default traversal
19786
22229
  * strategy used by {@link exploreTreeFunction}.
19787
22230
  *
22231
+ * @dbxUtil
22232
+ * @dbxUtilCategory tree
22233
+ * @dbxUtilKind factory
22234
+ * @dbxUtilTags tree, traverse, depth-first, dfs, pre-order, factory, strategy
22235
+ * @dbxUtilRelated breadth-first-explore-tree-traversal-factory-function, explore-tree-function
22236
+ *
19788
22237
  * @returns A traversal factory that processes nodes in depth-first order.
19789
22238
  *
19790
22239
  * @example
@@ -19817,6 +22266,12 @@ function _unsupported_iterable_to_array(o, minLen) {
19817
22266
  * Visits nodes level by level, processing all nodes at depth N before moving to depth N+1.
19818
22267
  * Uses an internal queue to defer child processing until the current level is complete.
19819
22268
  *
22269
+ * @dbxUtil
22270
+ * @dbxUtilCategory tree
22271
+ * @dbxUtilKind factory
22272
+ * @dbxUtilTags tree, traverse, breadth-first, bfs, level-order, factory, strategy, queue
22273
+ * @dbxUtilRelated depth-first-explore-tree-traversal-factory-function, explore-tree-function
22274
+ *
19820
22275
  * @returns A traversal factory that processes nodes in breadth-first order.
19821
22276
  *
19822
22277
  * @example
@@ -19910,6 +22365,12 @@ function _object_spread_props(target, source) {
19910
22365
  }
19911
22366
  /**
19912
22367
  * Decides how to add a node to the flattened array during flattening.
22368
+ *
22369
+ * @dbxUtil
22370
+ * @dbxUtilCategory tree
22371
+ * @dbxUtilKind const
22372
+ * @dbxUtilTags tree, flatten, decision, enum, traversal, control
22373
+ * @dbxUtilRelated explore-tree-visit-node-decision, flatten-tree
19913
22374
  */ var FlattenTreeAddNodeDecision = {
19914
22375
  /**
19915
22376
  * Add all nodes and children
@@ -19927,6 +22388,11 @@ function _object_spread_props(target, source) {
19927
22388
  /**
19928
22389
  * Flattens a tree into an array containing all its nodes using depth-first traversal.
19929
22390
  *
22391
+ * @dbxUtil
22392
+ * @dbxUtilCategory tree
22393
+ * @dbxUtilTags tree, flatten, traverse, depth-first, collect, nodes, array
22394
+ * @dbxUtilRelated flatten-tree-to-array, flatten-tree-to-array-function, explore-tree-function
22395
+ *
19930
22396
  * @param tree - The root node to flatten.
19931
22397
  * @param addNodeFn - Optional filter controlling which nodes and subtrees are included.
19932
22398
  * @returns An array of all nodes in the tree that pass the filter.
@@ -19944,6 +22410,11 @@ function _object_spread_props(target, source) {
19944
22410
  *
19945
22411
  * Useful for accumulating nodes from multiple trees into a single collection.
19946
22412
  *
22413
+ * @dbxUtil
22414
+ * @dbxUtilCategory tree
22415
+ * @dbxUtilTags tree, flatten, append, accumulate, collect, mutate, array
22416
+ * @dbxUtilRelated flatten-tree, flatten-tree-to-array-function
22417
+ *
19947
22418
  * @param tree - The root node to flatten.
19948
22419
  * @param array - The target array to push flattened nodes into.
19949
22420
  * @param addNodeFn - Optional filter controlling which nodes and subtrees are included.
@@ -19964,6 +22435,12 @@ function _object_spread_props(target, source) {
19964
22435
  * Creates a reusable function that traverses trees and collects either the nodes themselves
19965
22436
  * or mapped values into an array. Supports both a simple function signature and a config object.
19966
22437
  *
22438
+ * @dbxUtil
22439
+ * @dbxUtilCategory tree
22440
+ * @dbxUtilKind factory
22441
+ * @dbxUtilTags tree, flatten, factory, collect, map, traverse, reusable
22442
+ * @dbxUtilRelated flatten-tree, flatten-tree-to-array, expand-flatten-tree-function
22443
+ *
19967
22444
  * @param mapNodeFnOrConfig - Optional mapping function or config object.
19968
22445
  * @param defaultAddNodeFn - Optional default filter for node inclusion.
19969
22446
  * @returns A reusable flattening function.
@@ -20002,6 +22479,12 @@ function _object_spread_props(target, source) {
20002
22479
  * This higher-order function takes a function to expand an array of values `T` into a list of trees (`N[]` where `N` is a TreeNode)
20003
22480
  * and another function to flatten these trees into a single array of values `V`.
20004
22481
  *
22482
+ * @dbxUtil
22483
+ * @dbxUtilCategory tree
22484
+ * @dbxUtilKind factory
22485
+ * @dbxUtilTags tree, expand, flatten, compose, factory, transform
22486
+ * @dbxUtilRelated expand-tree-function, flatten-tree-to-array-function, expand-trees
22487
+ *
20005
22488
  * @template T The type of the initial input values.
20006
22489
  * @template V The type of the values in the final flattened output array.
20007
22490
  * @template N The type of the intermediate tree nodes. Must extend TreeNode with value T and children of type N.
@@ -20026,6 +22509,11 @@ function invertMaybeBoolean(x) {
20026
22509
  * @returns The result of ANDing all boolean values in the array.
20027
22510
  * @throws {TypeError} If the array is empty and no emptyArrayValue is provided.
20028
22511
  *
22512
+ * @dbxUtil
22513
+ * @dbxUtilCategory boolean
22514
+ * @dbxUtilTags boolean, reduce, and, every, all, conjunction, aggregate
22515
+ * @dbxUtilRelated reduce-booleans-with-or, reduce-booleans-with-and-fn
22516
+ *
20029
22517
  * @example
20030
22518
  * ```ts
20031
22519
  * reduceBooleansWithAnd([true, true, true]); // true
@@ -20038,6 +22526,11 @@ function invertMaybeBoolean(x) {
20038
22526
  /**
20039
22527
  * Reduces an array of booleans with the logical OR operation.
20040
22528
  *
22529
+ * @dbxUtil
22530
+ * @dbxUtilCategory boolean
22531
+ * @dbxUtilTags boolean, reduce, or, some, any, disjunction, aggregate
22532
+ * @dbxUtilRelated reduce-booleans-with-and, reduce-booleans-with-or-fn
22533
+ *
20041
22534
  * @param array - Array of boolean values to reduce.
20042
22535
  * @param emptyArrayValue - Value to return if the array is empty. If not provided and the array is empty, a TypeError will be thrown.
20043
22536
  * @returns The result of ORing all boolean values in the array.
@@ -20110,6 +22603,12 @@ function invertMaybeBoolean(x) {
20110
22603
  * @param config - Configuration for the boolean factory, including the chance of returning true.
20111
22604
  * @returns A factory function (`BooleanFactory`) that generates random boolean values based on the configured chance.
20112
22605
  *
22606
+ * @dbxUtil
22607
+ * @dbxUtilCategory boolean
22608
+ * @dbxUtilKind factory
22609
+ * @dbxUtilTags boolean, factory, random, chance, probability, generate
22610
+ * @dbxUtilRelated random-boolean
22611
+ *
20113
22612
  * @example
20114
22613
  * ```ts
20115
22614
  * const alwaysTrue = booleanFactory({ chance: 100 });
@@ -20129,6 +22628,11 @@ function invertMaybeBoolean(x) {
20129
22628
  /**
20130
22629
  * Returns a random boolean based on the specified chance.
20131
22630
  *
22631
+ * @dbxUtil
22632
+ * @dbxUtilCategory boolean
22633
+ * @dbxUtilTags boolean, random, chance, probability, coin-flip
22634
+ * @dbxUtilRelated boolean-factory
22635
+ *
20132
22636
  * @param chance - Number between 0.0 and 100.0 representing the percentage chance of returning true (default: 50, i.e., 50%).
20133
22637
  * @returns A random boolean value with the specified probability of being true.
20134
22638
  */ function randomBoolean() {
@@ -20263,6 +22767,11 @@ function _define_property$1(obj, key, value) {
20263
22767
  * @param hashFn - A function that takes a string and returns its hashed representation.
20264
22768
  * @returns An array of decoded strings. Values that cannot be decoded are filtered out.
20265
22769
  *
22770
+ * @dbxUtil
22771
+ * @dbxUtilCategory hash
22772
+ * @dbxUtilTags hash, decode, lookup, reverse, salt
22773
+ * @dbxUtilRelated make-hash-decode-map, decode-hashed-values-with-decode-map
22774
+ *
20266
22775
  * @example
20267
22776
  * ```ts
20268
22777
  * const hashed = [hashFn('apple'), hashFn('banana')];
@@ -20277,6 +22786,11 @@ function _define_property$1(obj, key, value) {
20277
22786
  * Creates a `HashDecodeMap` from a list of potential original string values and a hash function.
20278
22787
  * The map's keys are the hashed versions of the `decodeValues`, and the values are the original `decodeValues`.
20279
22788
  *
22789
+ * @dbxUtil
22790
+ * @dbxUtilCategory hash
22791
+ * @dbxUtilTags hash, decode, map, lookup, reverse, factory
22792
+ * @dbxUtilRelated decode-hashed-values, decode-hashed-values-with-decode-map
22793
+ *
20280
22794
  * @param decodeValues - An array of potential original string values.
20281
22795
  * @param hashFn - A function that takes a string and returns its hashed representation.
20282
22796
  * @returns A {@link HashDecodeMap} for decoding hashed values.
@@ -20437,6 +22951,11 @@ function _ts_generator$1(thisArg, body) {
20437
22951
  * @param values - Array of values to iterate over.
20438
22952
  * @param useFn - Callback invoked for each value.
20439
22953
  *
22954
+ * @dbxUtil
22955
+ * @dbxUtilCategory iterate
22956
+ * @dbxUtilTags iterate, async, sequential, each, await, for-each
22957
+ * @dbxUtilRelated perform-async-tasks
22958
+ *
20440
22959
  * @example
20441
22960
  * ```ts
20442
22961
  * await iterate([1, 2, 3], async (value) => {
@@ -20938,4 +23457,4 @@ function _ts_generator(thisArg, body) {
20938
23457
  return result;
20939
23458
  }
20940
23459
 
20941
- export { ALL_DOUBLE_SLASHES_REGEX, ALL_SLASHES_REGEX, ALL_SLASH_PATH_FILE_TYPE_SEPARATORS_REGEX, ALL_TIME_UNITS, APPLICATION_FILE_EXTENSION_TO_MIME_TYPES_RECORD, APPLICATION_MIME_TYPES_TO_FILE_EXTENSIONS_RECORD, ASSERTION_ERROR_CODE, ASSERTION_HANDLER, AUTH_ADMIN_ROLE, AUTH_ONBOARDED_ROLE, AUTH_ROLE_CLAIMS_DEFAULT_CLAIM_VALUE, AUTH_ROLE_CLAIMS_DEFAULT_EMPTY_VALUE, AUTH_TOS_SIGNED_ROLE, AUTH_USER_ROLE, AbstractUniqueModel, Assert, AssertMax, AssertMin, AssertionError, AssertionIssueHandler, BooleanStringKeyArrayUtility, CATCH_ALL_HANDLE_RESULT_KEY, COMMA_JOINER, COMMA_STRING_SPLIT_JOIN, CSV_MIME_TYPE, CUT_VALUE_TO_ZERO_PRECISION, DASH_CHARACTER_PREFIX_INSTANCE, DATE_NOW_VALUE, DAYS_IN_WEEK, DAYS_IN_YEAR, DEFAULT_CUT_STRING_END_TEXT, DEFAULT_ENCRYPTED_FIELD_PREFIX, DEFAULT_LAT_LNG_STRING_VALUE, DEFAULT_RANDOM_EMAIL_FACTORY_CONFIG, DEFAULT_RANDOM_PHONE_NUMBER_FACTORY_CONFIG, DEFAULT_READABLE_ERROR_CODE, DEFAULT_SLASH_PATH_ILLEGAL_CHARACTERS, DEFAULT_SLASH_PATH_ILLEGAL_CHARACTER_REPLACEMENT, DEFAULT_SLASH_PATH_PATH_MATCHER_NON_MATCHING_FILL_VALUE, DEFAULT_UNKNOWN_MODEL_TYPE_STRING, DOCUMENT_FILE_EXTENSION_TO_MIME_TYPES_RECORD, DOCUMENT_MIME_TYPES_TO_FILE_EXTENSIONS_RECORD, DOCX_MIME_TYPE, DOLLAR_AMOUNT_PRECISION, DOLLAR_AMOUNT_STRING_REGEX, DataDoesNotExistError, DataIsExpiredError, Day, DestroyFunctionObject, E164PHONE_NUMBER_REGEX, E164PHONE_NUMBER_WITH_EXTENSION_REGEX, E164PHONE_NUMBER_WITH_OPTIONAL_EXTENSION_REGEX, ExploreTreeVisitNodeDecision, FINAL_PAGE, FIRST_PAGE, FRACTIONAL_HOURS_PRECISION_FUNCTION, FlattenTreeAddNodeDecision, FullStorageObject, GIF_MIME_TYPE, HAS_PORT_NUMBER_REGEX, HAS_WEBSITE_DOMAIN_NAME_REGEX, HEIF_MIME_TYPE, HEX_PATTERN, HOURS_IN_DAY, HTML_MIME_TYPE, HTTP_OR_HTTPS_REGEX, HashSet, IMAGE_FILE_EXTENSION_TO_MIME_TYPES_RECORD, IMAGE_MIME_TYPES_TO_FILE_EXTENSIONS_RECORD, ISO8601_DAY_STRING_REGEX, ISO8601_DAY_STRING_START_REGEX, ISO_8601_DATE_STRING_REGEX, JPEG_MIME_TYPE, JPEG_MIME_TYPES, JPG_MIME_TYPE, JSON_MIME_TYPE, KeyValueTypleValueFilter, LAT_LNG_PATTERN, LAT_LNG_PATTERN_MAX_PRECISION, LAT_LONG_100KM_PRECISION, LAT_LONG_100M_PRECISION, LAT_LONG_10CM_PRECISION, LAT_LONG_10KM_PRECISION, LAT_LONG_10M_PRECISION, LAT_LONG_1CM_PRECISION, LAT_LONG_1KM_PRECISION, LAT_LONG_1MM_PRECISION, LAT_LONG_1M_PRECISION, LAT_LONG_GRAINS_OF_SAND_PRECISION, LEADING_SLASHES_REGEX, MAP_IDENTITY, MARKDOWN_MIME_TYPE, MAX_BITWISE_SET_SIZE, MAX_LATITUDE_VALUE, MAX_LONGITUDE_VALUE, MINUTES_IN_DAY, MINUTES_IN_HOUR, MINUTE_OF_DAY_MAXMIMUM, MINUTE_OF_DAY_MINIUMUM, MIN_LATITUDE_VALUE, MIN_LONGITUDE_VALUE, MONTH_DAY_SLASH_DATE_STRING_REGEX, MS_IN_DAY, MS_IN_HOUR, MS_IN_MINUTE, MS_IN_SECOND, MS_IN_WEEK, MemoryStorageInstance, ModelRelationUtility, NOOP_MODIFIER, NUMBER_STRING_DENCODER_64, NUMBER_STRING_DENCODER_64_DEFAULT_NEGATIVE_PREFIX, NUMBER_STRING_DENCODER_64_DIGITS, PDF_ENCRYPT_MARKER, PDF_EOF_MARKER, PDF_HEADER, PDF_MIME_TYPE, PHONE_EXTENSION_NUMBER_REGEX, PJPEG_MIME_TYPE, PNG_MIME_TYPE, PRIMATIVE_KEY_DENCODER_VALUE, PropertyDescriptorUtility, RAW_MIME_TYPE, REGEX_SPECIAL_CHARACTERS, REGEX_SPECIAL_CHARACTERS_SET, RelationChange, SECONDS_IN_HOUR, SECONDS_IN_MINUTE, SHARED_MEMORY_STORAGE, SLASH_PATH_FILE_TYPE_SEPARATOR, SLASH_PATH_SEPARATOR, SORT_VALUE_EQUAL, SORT_VALUE_GREATER_THAN, SORT_VALUE_LESS_THAN, SPACE_JOINER, SPACE_STRING_SPLIT_JOIN, SPLIT_STRING_TREE_NODE_ROOT_VALUE, SVG_MIME_TYPE, ServerErrorResponse, SetDeltaChange, SimpleStorageObject, SlashPathPathMatcherPartCode, StorageObject, StorageObjectUtility, StoredDataError, SyncState, TIFF_MIME_TYPE, TIME_UNIT_LABEL_MAP, TIME_UNIT_SHORT_LABEL_MAP, TOTAL_LATITUDE_RANGE, TOTAL_LONGITUDE_RANGE, TOTAL_SPAN_OF_LONGITUDE, TRAILING_FILE_TYPE_SEPARATORS_REGEX, TRAILING_SLASHES_REGEX, TXT_MIME_TYPE, TimeAM, TimerCancelledError, TypedServiceRegistryInstance, UNLOADED_PAGE, UNSET_INDEX_NUMBER, US_STATE_CODE_STRING_REGEX, UTC_DATE_STRING_REGEX, UTC_TIMEZONE_STRING, UTF_8_START_CHARACTER, UTF_PRIVATE_USAGE_AREA_START, UnauthorizedServerErrorResponse, WEBP_MIME_TYPE, WEBSITE_TLD_DETECTION_REGEX, WEB_PROTOCOL_PREFIX_REGEX, XLSX_MIME_TYPE, XML_MIME_TYPE, YAML_MIME_TYPE, ZIP_CODE_STRING_REGEX, ZIP_FILE_MIME_TYPE, addHttpToUrl, addLatLngPoints, addMilliseconds, addModifiers, addPlusPrefixToNumber, addPrefix, addPrefixFunction, addSuffix, addSuffixFunction, addToSet, addToSetCopy, addToSplitStringTree, addTrailingSlash, allFalsyOrEmptyKeys, allIndexesInIndexRange, allKeyValueTuples, allMaybeSoKeys, allNonUndefinedKeys, allObjectsAreEqual, allValuesAreMaybeNot, allValuesAreNotMaybe, allowValueOnceFilter, applicationFileExtensionForMimeType, applyBestFit, applySplitStringTreeWithMultipleValues, applyToMultipleFields, approximateTimerEndDate, areEqualContext, areEqualPOJOValues, areEqualPOJOValuesUsingPojoFilter, arrayContainsDuplicateValue, arrayContentsDiffer, arrayDecision, arrayDecisionFunction, arrayFactory, arrayInputFactory, arrayToLowercase, arrayToMap, arrayToObject, arrayToUppercase, asArray, asDecisionFunction, asGetter, asIndexRangeCheckFunctionConfig, asIterable, asMinuteOfDay, asNonEmptyArray, asNumber, asObjectCopyFactory, asPromise, asSet, assignValuesToPOJO, assignValuesToPOJOFunction, authClaims, authRoleClaimsService, authRolesSetHasRoles, baseWebsiteUrl, batch, batchCalc, bitwiseObjectDencoder, bitwiseObjectEncoder, bitwiseObjectdecoder, bitwiseSetDecoder, bitwiseSetDencoder, booleanFactory, booleanKeyArrayUtility, boundNumber, boundNumberFunction, boundToRectangle, breadthFirstExploreTreeTraversalFactoryFunction, bufferHasValidPdfMarkings, build, cachedGetter, calculateExpirationDate, camelOrPascalToScreamingSnake, capLatValue, capitalizeFirstLetter, caseInsensitiveFilterByIndexOfDecisionFactory, caseInsensitiveString, catchAllHandlerKey, chainMapFunction, chainMapSameFunctions, characterPrefixSuffixInstance, checkAnyHaveExpired, checkAtleastOneNotExpired, coerceToEmailParticipants, combineMaps, compareEqualityWithValueFromItemsFunction, compareEqualityWithValueFromItemsFunctionFactory, compareFnOrder, compareWithMappedValuesFunction, computeNextFractionalHour, computeNextFreeIndexFunction, computeNextFreeIndexOnSortedValuesFunction, concatArrays, concatArraysUnique, containsAllStringsAnyCase, containsAllValues, containsAnyStringAnyCase, containsAnyValue, containsAnyValueFromSet, containsNoValueFromSet, containsNoneOfValue, containsStringAnyCase, convertEmailParticipantStringToParticipant, convertMaybeToArray, convertMaybeToNonEmptyArray, convertParticipantToEmailParticipantString, convertTimeDuration, convertToArray, copyArray, copyField, copyLatLngBound, copyLatLngPoint, copyObject, copySetAndDo, countAllInNestedArray, countPOJOKeys, countPOJOKeysFunction, cronExpressionRepeatingEveryNMinutes, cssClassesSet, cssTokenVar, cssVariableVar, cutString, cutStringFunction, cutToPrecision, cutValueToInteger, cutValueToPrecision, cutValueToPrecisionFunction, dateFromDateOrTimeMillisecondsNumber, dateFromDateOrTimeSecondsNumber, dateFromLogicalDate, dateFromMinuteOfDay, dateOrMillisecondsToDate, dateToHoursAndMinutes, dateToMinuteOfDay, dayOfWeek, daysOfWeekArray, daysOfWeekFromEnabledDays, daysOfWeekNameFunction, daysOfWeekNameMap, decisionFunction, decodeHashedValues, decodeHashedValuesWithDecodeMap, decodeModelKeyTypePair, decodeRadix36Number, defaultFilterFromPOJOFunctionNoCopy, defaultForwardFunctionFactory, defaultLatLngPoint, defaultLatLngString, dencodeBitwiseSet, depthFirstExploreTreeTraversalFactoryFunction, diffLatLngBoundPoints, diffLatLngPoints, documentFileExtensionForMimeType, dollarAmountString, dollarAmountStringWithUnitFunction, e164PhoneNumberExtensionPair, e164PhoneNumberFromE164PhoneNumberExtensionPair, enabledDaysFromDaysOfWeek, encodeBitwiseSet, encodeModelKeyTypePair, encodeRadix36Number, errorMessageContainsString, errorMessageContainsStringFunction, escapeStringCharactersFunction, escapeStringForRegex, excludeValues, excludeValuesFromArray, excludeValuesFromSet, existsInIterable, expandArrayMapTuples, expandArrayValueTuples, expandFlattenTreeFunction, expandIndexSet, expandSlashPathPathMatcherPartToDecisionFunctions, expandTreeFunction, expandTrees, expirationDetails, exploreTreeFunction, exponentialPromiseRateLimiter, extendLatLngBound, fileExtensionForMimeType, filterAndMapFunction, filterEmptyArrayValues, filterEmptyPojoValues, filterFalsyAndEmptyValues, filterFromIterable, filterFromPOJO, filterFromPOJOFunction, filterKeyValueTupleFunction, filterKeyValueTuples, filterKeyValueTuplesFunction, filterKeyValueTuplesInputToFilter, filterKeysOnPOJOFunction, filterMaybeArrayFunction, filterMaybeArrayValues, filterNullAndUndefinedValues, filterOnlyUndefinedValues, filterTuplesOnPOJOFunction, filterUndefinedValues, filterUniqueByIndex, filterUniqueCaseInsensitiveStrings, filterUniqueFunction, filterUniqueTransform, filterUniqueValues, filterValuesByDistance, filterValuesByDistanceNoOrder, filterValuesToSet, filterValuesUsingSet, filteredPage, findAllCharacterOccurences, findAllCharacterOccurencesFunction, findBest, findBestIndexMatch, findBestIndexMatchFunction, findBestIndexSetPair, findBestSplitStringTreeChildMatch, findBestSplitStringTreeChildMatchPath, findBestSplitStringTreeMatch, findBestSplitStringTreeMatchPath, findFirstCharacterOccurence, findInIterable, findIndexOfFirstDuplicateValue, findItemsByIndex, findNext, findPOJOKeys, findPOJOKeysFunction, findStringsRegexString, findToIndexSet, findValuesFrom, firstAndLastCharacterOccurrence, firstAndLastValue, firstValue, firstValueFromIterable, fitToIndexRangeFunction, fixExtraQueryParameters, fixMultiSlashesInSlashPath, flattenArray, flattenArrayOrValueArray, flattenArrayToSet, flattenArrayUnique, flattenArrayUniqueCaseInsensitiveStrings, flattenObject, flattenTree, flattenTreeToArray, flattenTreeToArrayFunction, flattenWhitespace, forEachInIterable, forEachKeyValue, forEachKeyValueOnPOJOFunction, forEachWithArray, forwardFunction, fractionalHoursToMinutes, generateIfDoesNotExist, getArrayNextIndex, getBaseLog, getDayOffset, getDayTomorrow, getDayYesterday, getDaysOfWeekNames, getFunctionType, getNextDay, getNextPageNumber, getOverlappingRectangle, getPageNumber, getPreviousDay, getValueFromGetter, groupValues, handlerBindAccessor, handlerConfigurerFactory, handlerFactory, handlerMappedSetFunction, handlerMappedSetFunctionFactory, handlerSetFunction, hasDifferentStringsNoCase, hasDifferentValues, hasHttpPrefix, hasNonNullValue, hasPortNumber, hasSameTimezone, hasSameValues, hasValueFunction, hasValueOrNotEmpty, hasValueOrNotEmptyObject, hasWebsiteDomain, hasWebsiteTopLevelDomain, hashSetForIndexed, hourToFractionalHour, hoursAndMinutesToString, hoursAndMinutesToTimeUnit, idBatchFactory, imageFileExtensionForMimeType, incrementingNumberFactory, indexDeltaGroup, indexDeltaGroupFunction, indexRange, indexRangeCheckFunction, indexRangeCheckReaderFunction, indexRangeForArray, indexRangeOverlapsIndexRange, indexRangeOverlapsIndexRangeFunction, indexRangeReaderPairFactory, indexRefMap, indexedValuesArrayAccessorFactory, insertIntoBooleanKeyArray, invertBooleanReturnFunction, invertDecision, invertFilter, invertMaybeBoolean, invertStringRecord, isAllowed, isClassLikeType, isCompleteUnitedStatesAddress, isConsideredUtcTimezoneString, isDate, isDefaultLatLngPoint, isDefaultLatLngPointValue, isDefaultReadableError, isDefinedAndNotFalse, isDollarAmountString, isE164PhoneNumber, isE164PhoneNumberWithExtension, isEmptyIterable, isEqualContext, isEqualDate, isEqualToValueDecisionFunction, isEvenNumber, isFalseBooleanKeyArray, isFinalPage, isGetter, isHex, isHexWithByteLength, isISO8601DateString, isISO8601DayString, isISO8601DayStringStart, isInAllowedDaysOfWeekSet, isInNumberBoundFunction, isInSetDecisionFunction, isIndexNumberInIndexRange, isIndexNumberInIndexRangeFunction, isIndexRangeInIndexRange, isIndexRangeInIndexRangeFunction, isIterable, isKnownHttpWebsiteProtocol, isLatLngBound, isLatLngBoundWithinLatLngBound, isLatLngPoint, isLatLngPointWithinLatLngBound, isLatLngString, isLogicalDateStringCode, isMapIdentityFunction, isMaybeNot, isMaybeNotOrTrue, isMaybeSo, isMinuteOfDay, isModelKey, isMonthDaySlashDate, isNonClassFunction, isNotFalse, isNotNullOrEmptyString, isNumberDivisibleBy, isObjectWithConstructor, isOddNumber, isPast, isPdfPasswordProtected, isPromise, isPromiseLike, isSameLatLngBound, isSameLatLngPoint, isSameNonNullValue, isSameVector, isSelectedDecisionFunctionFactory, isSelectedIndexDecisionFunction, isServerError, isSlashPathFile, isSlashPathFolder, isSlashPathTypedFile, isStandardInternetAccessibleWebsiteUrl, isStringOrTrue, isThrottled, isTrueBooleanKeyArray, isUTCDateString, isUnderThreshold, isUniqueKeyedFunction, isUsStateCodeString, isValidLatLngPoint, isValidLatitude, isValidLongitude, isValidNumberBound, isValidPhoneExtensionNumber, isValidSlashPath, isWebsiteUrl, isWebsiteUrlWithPrefix, isWithinLatLngBoundFunction, isolateSlashPath, isolateSlashPathFunction, isolateWebsitePathFunction, itemCountForBatchIndex, iterableToArray, iterableToMap, iterableToSet, iterablesAreSetEquivalent, iterate, iterateFilteredPages, joinHostAndPort, joinStrings, joinStringsInstance, joinStringsWithCommas, joinStringsWithSpaces, keepCharactersAfterFirstCharacterOccurence, keepCharactersAfterFirstCharacterOccurenceFunction, keepFromSetCopy, keepValuesFromArray, keepValuesFromSet, keyValueMapFactory, labeledValueMap, lastValue, latLngBound, latLngBoundCenterPoint, latLngBoundEastBound, latLngBoundFromInput, latLngBoundFullyWrapsMap, latLngBoundFunction, latLngBoundNorthBound, latLngBoundNorthEastPoint, latLngBoundNorthWestPoint, latLngBoundOverlapsLatLngBound, latLngBoundSouthBound, latLngBoundSouthEastPoint, latLngBoundSouthWestPoint, latLngBoundStrictlyWrapsMap, latLngBoundTuple, latLngBoundTupleFunction, latLngBoundWestBound, latLngBoundWrapsMap, latLngDataPointFunction, latLngPoint, latLngPointFromString, latLngPointFunction, latLngPointPrecisionFunction, latLngString, latLngStringFunction, latLngTuple, latLngTupleFunction, limitArray, lonLatTuple, lowercaseFirstLetter, mailToUrlString, makeBestFit, makeCopyModelFieldFunction, makeDateMonthForMonthOfYear, makeDefaultNonConcurrentTaskKeyFactory, makeGetter, makeHandler, makeHashDecodeMap, makeKeyPairs, makeModelConversionFieldValuesFunction, makeModelMap, makeModelMapFunctions, makeMultiModelKeyMap, makeTimer, makeValuesGroupMap, makeWithFactory, makeWithFactoryInput, mapArrayFunction, mapFunctionOutput, mapFunctionOutputPair, mapGetter, mapGetterFactory, mapIdentityFunction, mapIterable, mapKeysIntersectionObjectToArray, mapMaybeFunction, mapObjectKeysFunction, mapObjectKeysToLowercase, mapObjectMap, mapObjectMapFunction, mapObjectToTargetObject, mapPromiseOrValue, mapToObject, mapToTuples, mapValuesToSet, mappedUseAsyncFunction, mappedUseFunction, mapsHaveSameKeys, maybeMergeModelModifiers, maybeMergeModifiers, maybeModifierMapToFunction, maybeSet, mergeArrays, mergeArraysIntoArray, mergeFilterFunctions, mergeModifiers, mergeObjects, mergeObjectsFunction, mergeSlashPaths, messageFromError, millisecondsToMinutes, millisecondsToMinutesAndSeconds, millisecondsToTimeUnit, mimeTypeForApplicationFileExtension, mimeTypeForDocumentFileExtension, mimeTypeForFileExtension, mimeTypeForImageFileExtension, minAndMaxFunction, minAndMaxIndex, minAndMaxIndexFunction, minAndMaxIndexItemsFunction, minAndMaxNumber, minutesToFractionalHours, minutesToHoursAndMinutes, modelFieldConversions, modelFieldMapFunction, modelFieldMapFunctions, modelTypeDataPairFactory, modifier, modifierMapToFunction, modifyModelMapFunction, modifyModelMapFunctions, monthDaySlashDateToDateString, monthOfYearFromDate, monthOfYearFromDateMonth, monthOfYearFromUTCDate, multiKeyValueMapFactory, multiValueMapBuilder, neMostLatLngPoint, nearestDivisibleValues, numberStringDencoder, numberStringDencoderDecodedNumberValueFunction, numberStringDencoderEncodedStringValueFunction, numberStringDencoderFunction, objectCopyFactory, objectDeltaArrayCompressor, objectFieldEqualityChecker, objectFlatMergeMatrix, objectHasKey, objectHasKeys, objectHasNoKeys, objectIsEmpty, objectKeyEqualityComparatorFunction, objectKeysEqualityComparatorFunction, objectMergeMatrix, objectToMap, overlapsLatLngBoundFunction, overrideInObject, overrideInObjectFunctionFactory, padStartFunction, pairGroupValues, parseISO8601DayStringToUTCDate, partialServerError, MAP_IDENTITY as passThrough, percentNumberFromDecimal, percentNumberToDecimal, performAsyncTask, performAsyncTasks, performBatchLoop, performMakeLoop, performTaskCountLoop, performTaskLoop, performTasksFromFactoryInParallelFunction, performTasksInParallel, performTasksInParallelFunction, pickOneRandomly, poll, primativeKeyDencoder, primativeKeyDencoderMap, primativeKeyStringDencoder, primativeValuesDelta, promiseReference, protectedFactory, pushArrayItemsIntoArray, pushElementOntoArray, pushItemOrArrayItemsIntoArray, randomArrayFactory, randomArrayIndex, randomBoolean, randomEmailFactory, randomFromArrayFactory, randomLatLngFactory, randomLatLngFromCenterFactory, randomNumber, randomNumberFactory, randomPhoneNumberFactory, randomPickFactory, range, rangedIndexedValuesArrayAccessorFactory, rangedIndexedValuesArrayAccessorInfoFactory, readBooleanKeySafetyWrap, readDomainFromEmailAddress, readDomainsFromEmailAddresses, readEmailDomainFromUrlOrEmailAddress, readIndexNumber, readKeysFrom, readKeysFromFilterUniqueFunctionAdditionalKeys, readKeysFromFilterUniqueFunctionAdditionalKeysInput, readKeysFunction, readKeysSetFrom, readKeysSetFunction, readKeysToMap, readModelKey, readModelKeyFromObject, readModelKeys, readModelKeysFromObjects, readMultipleKeysToMap, readPortNumber, readUniqueModelKey, readWebsiteProtocol, readableError, readableStreamToBase64, readableStreamToBuffer, readableStreamToStringFunction, rectangleOverlapsRectangle, reduceBooleansFn, reduceBooleansWithAnd, reduceBooleansWithAndFn, reduceBooleansWithOr, reduceBooleansWithOrFn, reduceNumbers, reduceNumbersFn, reduceNumbersWithAdd, reduceNumbersWithAddFn, reduceNumbersWithMax, reduceNumbersWithMaxFn, reduceNumbersWithMin, reduceNumbersWithMinFn, removeByKeyFromBooleanKeyArray, removeCharactersAfterFirstCharacterOccurence, removeCharactersAfterFirstCharacterOccurenceFunction, removeExtensionFromPhoneNumber, removeFirstMatchingSuffix, removeFromBooleanKeyArray, removeFromSet, removeFromSetCopy, removeHttpFromUrl, removeModelsWithKey, removeModelsWithSameKey, removeModifiers, removeSuffix, removeTrailingFileTypeSeparators, removeTrailingSlashes, removeValuesAtIndexesFromArrayCopy, removeWebProtocolPrefix, repeatString, replaceCharacterAtIndexIf, replaceCharacterAtIndexWith, replaceInvalidFilePathTypeSeparatorsInSlashPath, replaceInvalidFilePathTypeSeparatorsInSlashPathFunction, replaceLastCharacterIf, replaceLastCharacterIfIsFunction, replaceMultipleFilePathsInSlashPath, replaceStringsFunction, requireModelKey, resetPeriodPromiseRateLimiter, restoreOrder, restoreOrderWithValues, reverseCompareFn, roundNumberToStepFunction, roundNumberUpToStep, roundToPrecision, roundToPrecisionFunction, roundingFunction, runAsyncTaskForValue, runAsyncTasksForValues, runNamedAsyncTasks, runNamedAsyncTasksFunction, safeCompareEquality, safeEqualityComparatorFunction, safeFindBestIndexMatch, screamingSnakeToCamelCase, searchStringFilterFunction, secondsToMinutesAndSeconds, selectiveFieldEncryptor, separateValues, separateValuesToSets, sequentialIncrementingNumberStringModelIdFactory, serverError, setContainsAllValues, setContainsAnyValue, setContainsNoneOfValue, setDeltaChangeKeys, setDeltaFunction, setHasValueFunction, setIncludes, setIncludesFunction, setKeysOnMap, setWebProtocolPrefix, setsAreEquivalent, simpleSortValuesFunctionWithSortRef, simplifyWhitespace, slashPathDetails, slashPathDirectoryTree, slashPathFactory, slashPathFolder, slashPathFolderFactory, slashPathInvalidError, slashPathName, slashPathParts, slashPathPathMatcher, slashPathPathMatcherConfig, slashPathStartTypeFactory, slashPathSubPathMatcher, slashPathType, slashPathValidationFactory, sliceIndexRangeFunction, sliceStringFunction, sortAscendingIndexNumberRefFunction, sortByIndexAscendingCompareFunction, sortByIndexRangeAscendingCompareFunction, sortByLabelFunction, sortByNumberFunction, sortByStringFunction, sortCompareNumberFunction, sortNumbersAscendingFunction, sortValues, sortValuesFunctionOrMapIdentityWithSortRef, sortValuesFunctionWithSortRef, spaceSeparatedCssClasses, splitCommaSeparatedString, splitCommaSeparatedStringToSet, splitFront, splitJoinNameString, splitJoinRemainder, splitStringAtFirstCharacterOccurence, splitStringAtFirstCharacterOccurenceFunction, splitStringAtIndex, splitStringTreeFactory, startOfDayForSystemDateInUTC, startOfDayForUTCDateInUTC, stepsFromIndex, stepsFromIndexFunction, stringCharactersToIndexRecord, stringContains, stringFactoryFromFactory, stringFromDateFactory, stringFromTimeFactory, stringSplitJoinInstance, stringToBoolean, stringToLowercaseFunction, stringToUppercaseFunction, stringTrimFunction, stripObject, stripObjectFunction, sumOfIntegersBetween, swMostLatLngPoint, symmetricDifferenceArray, symmetricDifferenceArrayBetweenSets, symmetricDifferenceWithModels, takeFront, takeLast, takeValuesFromIterable, telUrlString, telUrlStringForE164PhoneNumberPair, terminatingFactoryFromArray, throwKeyIsRequired, timeDurationToHoursAndMinutes, timeDurationToMilliseconds, timePeriodCounter, timeUnitToMilliseconds, toAbsoluteSlashPathStartType, toCaseInsensitiveStringArray, toMinuteOfDay, toModelFieldConversions, toModelMapFunctions, toReadableError, toRelativeSlashPathStartType, toggleInSet, toggleInSetCopy, toggleTimerRunning, transformNumberFunction, transformNumberFunctionConfig, transformStringFunction, transformStringFunctionConfig, transformStrings, trimArray, trueOrFalseString, tryConvertToE164PhoneNumber, tryWithPromiseFactoriesFunction, typedServiceRegistry, unique, uniqueCaseInsensitiveStrings, uniqueCaseInsensitiveStringsSet, uniqueKeys, uniqueModels, unitedStatesAddressString, unixDateTimeSecondsNumberForNow, unixDateTimeSecondsNumberFromDate, unixDateTimeSecondsNumberFromDateOrTimeNumber, unixDateTimeSecondsNumberToDate, unixMillisecondsNumberToDate, updateMaybeValue, urlWithoutParameters, useAsync, useCallback, useContextFunction, useIterableOrValue, useModelOrKey, usePromise, useValue, validLatLngPoint, validLatLngPointFunction, valueAtIndex, valuesAreBothNullishOrEquivalent, valuesFromPOJO, valuesFromPOJOFunction, vectorMinimumSizeResizeFunction, vectorsAreEqual, waitForMs, websiteDomainAndPathPair, websiteDomainAndPathPairFromWebsiteUrl, websitePathAndQueryPair, websitePathFromWebsiteDomainAndPath, websitePathFromWebsiteUrl, websiteUrlDetails, websiteUrlFromPaths, wrapIndexRangeFunction, wrapLatLngPoint, wrapLngValue, wrapMapFunctionOutput, wrapNumberFunction, wrapTuples, wrapUseAsyncFunction, wrapUseFunction };
23460
+ export { ALL_DOUBLE_SLASHES_REGEX, ALL_SLASHES_REGEX, ALL_SLASH_PATH_FILE_TYPE_SEPARATORS_REGEX, ALL_TIME_UNITS, APPLICATION_FILE_EXTENSION_TO_MIME_TYPES_RECORD, APPLICATION_MIME_TYPES_TO_FILE_EXTENSIONS_RECORD, ASSERTION_ERROR_CODE, ASSERTION_HANDLER, AUTH_ADMIN_ROLE, AUTH_ONBOARDED_ROLE, AUTH_ROLE_CLAIMS_DEFAULT_CLAIM_VALUE, AUTH_ROLE_CLAIMS_DEFAULT_EMPTY_VALUE, AUTH_TOS_SIGNED_ROLE, AUTH_USER_ROLE, AbstractUniqueModel, Assert, AssertMax, AssertMin, AssertionError, AssertionIssueHandler, BooleanStringKeyArrayUtility, CATCH_ALL_HANDLE_RESULT_KEY, COMMA_JOINER, COMMA_STRING_SPLIT_JOIN, CSV_MIME_TYPE, CUT_VALUE_TO_ZERO_PRECISION, DASH_CHARACTER_PREFIX_INSTANCE, DATE_NOW_VALUE, DAYS_IN_WEEK, DAYS_IN_YEAR, DEFAULT_CUT_STRING_END_TEXT, DEFAULT_ENCRYPTED_FIELD_PREFIX, DEFAULT_LAT_LNG_STRING_VALUE, DEFAULT_RANDOM_EMAIL_FACTORY_CONFIG, DEFAULT_RANDOM_PHONE_NUMBER_FACTORY_CONFIG, DEFAULT_READABLE_ERROR_CODE, DEFAULT_SLASH_PATH_ILLEGAL_CHARACTERS, DEFAULT_SLASH_PATH_ILLEGAL_CHARACTER_REPLACEMENT, DEFAULT_SLASH_PATH_PATH_MATCHER_NON_MATCHING_FILL_VALUE, DEFAULT_UNKNOWN_MODEL_TYPE_STRING, DOCUMENT_FILE_EXTENSION_TO_MIME_TYPES_RECORD, DOCUMENT_MIME_TYPES_TO_FILE_EXTENSIONS_RECORD, DOCX_MIME_TYPE, DOLLAR_AMOUNT_PRECISION, DOLLAR_AMOUNT_STRING_REGEX, DataDoesNotExistError, DataIsExpiredError, Day, DestroyFunctionObject, E164PHONE_NUMBER_REGEX, E164PHONE_NUMBER_WITH_EXTENSION_REGEX, E164PHONE_NUMBER_WITH_OPTIONAL_EXTENSION_REGEX, ExploreTreeVisitNodeDecision, FINAL_PAGE, FIRST_PAGE, FRACTIONAL_HOURS_PRECISION_FUNCTION, FlattenTreeAddNodeDecision, FullStorageObject, GIF_MIME_TYPE, HAS_PORT_NUMBER_REGEX, HAS_WEBSITE_DOMAIN_NAME_REGEX, HEIF_MIME_TYPE, HEX_PATTERN, HOURS_IN_DAY, HTML_MIME_TYPE, HTTP_OR_HTTPS_REGEX, HashSet, IMAGE_FILE_EXTENSION_TO_MIME_TYPES_RECORD, IMAGE_MIME_TYPES_TO_FILE_EXTENSIONS_RECORD, ISO8601_DAY_STRING_REGEX, ISO8601_DAY_STRING_START_REGEX, ISO_8601_DATE_STRING_REGEX, JPEG_MIME_TYPE, JPEG_MIME_TYPES, JPG_MIME_TYPE, JSON_MIME_TYPE, KeyValueTypleValueFilter, LAT_LNG_PATTERN, LAT_LNG_PATTERN_MAX_PRECISION, LAT_LONG_100KM_PRECISION, LAT_LONG_100M_PRECISION, LAT_LONG_10CM_PRECISION, LAT_LONG_10KM_PRECISION, LAT_LONG_10M_PRECISION, LAT_LONG_1CM_PRECISION, LAT_LONG_1KM_PRECISION, LAT_LONG_1MM_PRECISION, LAT_LONG_1M_PRECISION, LAT_LONG_GRAINS_OF_SAND_PRECISION, LEADING_SLASHES_REGEX, MAP_IDENTITY, MARKDOWN_MIME_TYPE, MAX_BITWISE_SET_SIZE, MAX_LATITUDE_VALUE, MAX_LONGITUDE_VALUE, MINUTES_IN_DAY, MINUTES_IN_HOUR, MINUTE_OF_DAY_MAXMIMUM, MINUTE_OF_DAY_MINIUMUM, MIN_LATITUDE_VALUE, MIN_LONGITUDE_VALUE, MONTH_DAY_SLASH_DATE_STRING_REGEX, MS_IN_DAY, MS_IN_HOUR, MS_IN_MINUTE, MS_IN_SECOND, MS_IN_WEEK, MemoryStorageInstance, ModelRelationUtility, NOOP_MODIFIER, NUMBER_STRING_DENCODER_64, NUMBER_STRING_DENCODER_64_DEFAULT_NEGATIVE_PREFIX, NUMBER_STRING_DENCODER_64_DIGITS, OAUTH_OOB_REDIRECT_URI, PDF_ENCRYPT_MARKER, PDF_EOF_MARKER, PDF_HEADER, PDF_MIME_TYPE, PHONE_EXTENSION_NUMBER_REGEX, PJPEG_MIME_TYPE, PNG_MIME_TYPE, PRIMATIVE_KEY_DENCODER_VALUE, PropertyDescriptorUtility, RAW_MIME_TYPE, REGEX_SPECIAL_CHARACTERS, REGEX_SPECIAL_CHARACTERS_SET, RelationChange, SECONDS_IN_HOUR, SECONDS_IN_MINUTE, SHARED_MEMORY_STORAGE, SLASH_PATH_FILE_TYPE_SEPARATOR, SLASH_PATH_SEPARATOR, SORT_VALUE_EQUAL, SORT_VALUE_GREATER_THAN, SORT_VALUE_LESS_THAN, SPACE_JOINER, SPACE_STRING_SPLIT_JOIN, SPLIT_STRING_TREE_NODE_ROOT_VALUE, SVG_MIME_TYPE, ServerErrorResponse, SetDeltaChange, SimpleStorageObject, SlashPathPathMatcherPartCode, StorageObject, StorageObjectUtility, StoredDataError, SyncState, TIFF_MIME_TYPE, TIME_UNIT_LABEL_MAP, TIME_UNIT_SHORT_LABEL_MAP, TOTAL_LATITUDE_RANGE, TOTAL_LONGITUDE_RANGE, TOTAL_SPAN_OF_LONGITUDE, TRAILING_FILE_TYPE_SEPARATORS_REGEX, TRAILING_SLASHES_REGEX, TXT_MIME_TYPE, TimeAM, TimerCancelledError, TypedServiceRegistryInstance, UNLOADED_PAGE, UNSET_INDEX_NUMBER, US_STATE_CODE_STRING_REGEX, UTC_DATE_STRING_REGEX, UTC_TIMEZONE_STRING, UTF_8_START_CHARACTER, UTF_PRIVATE_USAGE_AREA_START, UnauthorizedServerErrorResponse, WEBP_MIME_TYPE, WEBSITE_TLD_DETECTION_REGEX, WEB_PROTOCOL_PREFIX_REGEX, XLSX_MIME_TYPE, XML_MIME_TYPE, YAML_MIME_TYPE, ZIP_CODE_STRING_REGEX, ZIP_FILE_MIME_TYPE, addHttpToUrl, addLatLngPoints, addMilliseconds, addModifiers, addPlusPrefixToNumber, addPrefix, addPrefixFunction, addSuffix, addSuffixFunction, addToSet, addToSetCopy, addToSplitStringTree, addTrailingSlash, allFalsyOrEmptyKeys, allIndexesInIndexRange, allKeyValueTuples, allMaybeSoKeys, allNonUndefinedKeys, allObjectsAreEqual, allValuesAreMaybeNot, allValuesAreNotMaybe, allowValueOnceFilter, applicationFileExtensionForMimeType, applyBestFit, applySplitStringTreeWithMultipleValues, applyToMultipleFields, approximateTimerEndDate, areEqualContext, areEqualPOJOValues, areEqualPOJOValuesUsingPojoFilter, arrayContainsDuplicateValue, arrayContentsDiffer, arrayDecision, arrayDecisionFunction, arrayFactory, arrayInputFactory, arrayToLowercase, arrayToMap, arrayToObject, arrayToUppercase, asArray, asDecisionFunction, asGetter, asIndexRangeCheckFunctionConfig, asIterable, asMinuteOfDay, asNonEmptyArray, asNumber, asObjectCopyFactory, asPromise, asSet, assignValuesToPOJO, assignValuesToPOJOFunction, authClaims, authRoleClaimsService, authRolesSetHasRoles, baseWebsiteUrl, batch, batchCalc, bitwiseObjectDencoder, bitwiseObjectEncoder, bitwiseObjectdecoder, bitwiseSetDecoder, bitwiseSetDencoder, booleanFactory, booleanKeyArrayUtility, boundNumber, boundNumberFunction, boundToRectangle, breadthFirstExploreTreeTraversalFactoryFunction, bufferHasValidPdfMarkings, build, cachedGetter, calculateExpirationDate, camelOrPascalToScreamingSnake, capLatValue, capitalizeFirstLetter, caseInsensitiveFilterByIndexOfDecisionFactory, caseInsensitiveString, catchAllHandlerKey, chainMapFunction, chainMapSameFunctions, characterPrefixSuffixInstance, checkAnyHaveExpired, checkAtleastOneNotExpired, coerceToEmailParticipants, combineMaps, compareEqualityWithValueFromItemsFunction, compareEqualityWithValueFromItemsFunctionFactory, compareFnOrder, compareWithMappedValuesFunction, computeNextFractionalHour, computeNextFreeIndexFunction, computeNextFreeIndexOnSortedValuesFunction, concatArrays, concatArraysUnique, containsAllStringsAnyCase, containsAllValues, containsAnyStringAnyCase, containsAnyValue, containsAnyValueFromSet, containsNoValueFromSet, containsNoneOfValue, containsStringAnyCase, convertEmailParticipantStringToParticipant, convertMaybeToArray, convertMaybeToNonEmptyArray, convertParticipantToEmailParticipantString, convertTimeDuration, convertToArray, copyArray, copyField, copyLatLngBound, copyLatLngPoint, copyObject, copySetAndDo, countAllInNestedArray, countPOJOKeys, countPOJOKeysFunction, cronExpressionRepeatingEveryNMinutes, cssClassesSet, cssTokenVar, cssVariableVar, cutString, cutStringFunction, cutToPrecision, cutValueToInteger, cutValueToPrecision, cutValueToPrecisionFunction, dateFromDateOrTimeMillisecondsNumber, dateFromDateOrTimeSecondsNumber, dateFromLogicalDate, dateFromMinuteOfDay, dateOrMillisecondsToDate, dateToHoursAndMinutes, dateToMinuteOfDay, dayOfWeek, daysOfWeekArray, daysOfWeekFromEnabledDays, daysOfWeekNameFunction, daysOfWeekNameMap, decisionFunction, decodeHashedValues, decodeHashedValuesWithDecodeMap, decodeModelKeyTypePair, decodeRadix36Number, defaultFilterFromPOJOFunctionNoCopy, defaultForwardFunctionFactory, defaultLatLngPoint, defaultLatLngString, dencodeBitwiseSet, depthFirstExploreTreeTraversalFactoryFunction, diffLatLngBoundPoints, diffLatLngPoints, documentFileExtensionForMimeType, dollarAmountString, dollarAmountStringWithUnitFunction, e164PhoneNumberExtensionPair, e164PhoneNumberFromE164PhoneNumberExtensionPair, enabledDaysFromDaysOfWeek, encodeBitwiseSet, encodeModelKeyTypePair, encodeRadix36Number, errorMessageContainsString, errorMessageContainsStringFunction, escapeStringCharactersFunction, escapeStringForRegex, excludeValues, excludeValuesFromArray, excludeValuesFromSet, existsInIterable, expandArrayMapTuples, expandArrayValueTuples, expandFlattenTreeFunction, expandIndexSet, expandSlashPathPathMatcherPartToDecisionFunctions, expandTreeFunction, expandTrees, expirationDetails, exploreTreeFunction, exponentialPromiseRateLimiter, extendLatLngBound, fileExtensionForMimeType, filterAndMapFunction, filterEmptyArrayValues, filterEmptyPojoValues, filterFalsyAndEmptyValues, filterFromIterable, filterFromPOJO, filterFromPOJOFunction, filterKeyValueTupleFunction, filterKeyValueTuples, filterKeyValueTuplesFunction, filterKeyValueTuplesInputToFilter, filterKeysOnPOJOFunction, filterMaybeArrayFunction, filterMaybeArrayValues, filterNullAndUndefinedValues, filterOnlyUndefinedValues, filterTuplesOnPOJOFunction, filterUndefinedValues, filterUniqueByIndex, filterUniqueCaseInsensitiveStrings, filterUniqueFunction, filterUniqueTransform, filterUniqueValues, filterValuesByDistance, filterValuesByDistanceNoOrder, filterValuesToSet, filterValuesUsingSet, filteredPage, findAllCharacterOccurences, findAllCharacterOccurencesFunction, findBest, findBestIndexMatch, findBestIndexMatchFunction, findBestIndexSetPair, findBestSplitStringTreeChildMatch, findBestSplitStringTreeChildMatchPath, findBestSplitStringTreeMatch, findBestSplitStringTreeMatchPath, findFirstCharacterOccurence, findInIterable, findIndexOfFirstDuplicateValue, findItemsByIndex, findNext, findPOJOKeys, findPOJOKeysFunction, findStringsRegexString, findToIndexSet, findValuesFrom, firstAndLastCharacterOccurrence, firstAndLastValue, firstValue, firstValueFromIterable, fitToIndexRangeFunction, fixExtraQueryParameters, fixMultiSlashesInSlashPath, flattenArray, flattenArrayOrValueArray, flattenArrayToSet, flattenArrayUnique, flattenArrayUniqueCaseInsensitiveStrings, flattenObject, flattenTree, flattenTreeToArray, flattenTreeToArrayFunction, flattenWhitespace, forEachInIterable, forEachKeyValue, forEachKeyValueOnPOJOFunction, forEachWithArray, forwardFunction, fractionalHoursToMinutes, generateIfDoesNotExist, generatePkceCodeChallenge, generatePkceCodeVerifier, getArrayNextIndex, getBaseLog, getDayOffset, getDayTomorrow, getDayYesterday, getDaysOfWeekNames, getFunctionType, getNextDay, getNextPageNumber, getOverlappingRectangle, getPageNumber, getPreviousDay, getValueFromGetter, groupValues, handlerBindAccessor, handlerConfigurerFactory, handlerFactory, handlerMappedSetFunction, handlerMappedSetFunctionFactory, handlerSetFunction, hasDifferentStringsNoCase, hasDifferentValues, hasHttpPrefix, hasNonNullValue, hasPortNumber, hasSameTimezone, hasSameValues, hasValueFunction, hasValueOrNotEmpty, hasValueOrNotEmptyObject, hasWebsiteDomain, hasWebsiteTopLevelDomain, hashSetForIndexed, hourToFractionalHour, hoursAndMinutesToString, hoursAndMinutesToTimeUnit, idBatchFactory, imageFileExtensionForMimeType, inMemoryAsyncKeyedValueCache, inMemoryAsyncValueCache, incrementingNumberFactory, indexDeltaGroup, indexDeltaGroupFunction, indexRange, indexRangeCheckFunction, indexRangeCheckReaderFunction, indexRangeForArray, indexRangeOverlapsIndexRange, indexRangeOverlapsIndexRangeFunction, indexRangeReaderPairFactory, indexRefMap, indexedValuesArrayAccessorFactory, insertIntoBooleanKeyArray, invertBooleanReturnFunction, invertDecision, invertFilter, invertMaybeBoolean, invertStringRecord, isAllowed, isClassLikeType, isCompleteUnitedStatesAddress, isConsideredUtcTimezoneString, isDate, isDefaultLatLngPoint, isDefaultLatLngPointValue, isDefaultReadableError, isDefinedAndNotFalse, isDollarAmountString, isE164PhoneNumber, isE164PhoneNumberWithExtension, isEmptyIterable, isEqualContext, isEqualDate, isEqualToValueDecisionFunction, isEvenNumber, isExpired, isFalseBooleanKeyArray, isFinalPage, isGetter, isHex, isHexWithByteLength, isISO8601DateString, isISO8601DayString, isISO8601DayStringStart, isInAllowedDaysOfWeekSet, isInNumberBoundFunction, isInSetDecisionFunction, isIndexNumberInIndexRange, isIndexNumberInIndexRangeFunction, isIndexRangeInIndexRange, isIndexRangeInIndexRangeFunction, isIterable, isKnownHttpWebsiteProtocol, isLatLngBound, isLatLngBoundWithinLatLngBound, isLatLngPoint, isLatLngPointWithinLatLngBound, isLatLngString, isLogicalDateStringCode, isMapIdentityFunction, isMaybeNot, isMaybeNotOrTrue, isMaybeSo, isMinuteOfDay, isModelKey, isMonthDaySlashDate, isNonClassFunction, isNotFalse, isNotNullOrEmptyString, isNumberDivisibleBy, isObjectWithConstructor, isOddNumber, isPast, isPdfPasswordProtected, isPromise, isPromiseLike, isSameLatLngBound, isSameLatLngPoint, isSameNonNullValue, isSameVector, isSelectedDecisionFunctionFactory, isSelectedIndexDecisionFunction, isServerError, isSlashPathFile, isSlashPathFolder, isSlashPathTypedFile, isStandardInternetAccessibleWebsiteUrl, isStringOrTrue, isThrottled, isTrueBooleanKeyArray, isUTCDateString, isUnderThreshold, isUniqueKeyedFunction, isUsStateCodeString, isValidLatLngPoint, isValidLatitude, isValidLongitude, isValidNumberBound, isValidPhoneExtensionNumber, isValidSlashPath, isWebsiteUrl, isWebsiteUrlWithPrefix, isWithinLatLngBoundFunction, isolateSlashPath, isolateSlashPathFunction, isolateWebsitePathFunction, itemCountForBatchIndex, iterableToArray, iterableToMap, iterableToSet, iterablesAreSetEquivalent, iterate, iterateFilteredPages, joinHostAndPort, joinStrings, joinStringsInstance, joinStringsWithCommas, joinStringsWithSpaces, keepCharactersAfterFirstCharacterOccurence, keepCharactersAfterFirstCharacterOccurenceFunction, keepFromSetCopy, keepValuesFromArray, keepValuesFromSet, keyValueMapFactory, labeledValueMap, lastValue, latLngBound, latLngBoundCenterPoint, latLngBoundEastBound, latLngBoundFromInput, latLngBoundFullyWrapsMap, latLngBoundFunction, latLngBoundNorthBound, latLngBoundNorthEastPoint, latLngBoundNorthWestPoint, latLngBoundOverlapsLatLngBound, latLngBoundSouthBound, latLngBoundSouthEastPoint, latLngBoundSouthWestPoint, latLngBoundStrictlyWrapsMap, latLngBoundTuple, latLngBoundTupleFunction, latLngBoundWestBound, latLngBoundWrapsMap, latLngDataPointFunction, latLngPoint, latLngPointFromString, latLngPointFunction, latLngPointPrecisionFunction, latLngString, latLngStringFunction, latLngTuple, latLngTupleFunction, limitArray, lonLatTuple, lowercaseFirstLetter, mailToUrlString, makeBestFit, makeCopyModelFieldFunction, makeDateMonthForMonthOfYear, makeDefaultNonConcurrentTaskKeyFactory, makeGetter, makeHandler, makeHashDecodeMap, makeKeyPairs, makeModelConversionFieldValuesFunction, makeModelMap, makeModelMapFunctions, makeMultiModelKeyMap, makeTimer, makeValuesGroupMap, makeWithFactory, makeWithFactoryInput, mapArrayFunction, mapFunctionOutput, mapFunctionOutputPair, mapGetter, mapGetterFactory, mapIdentityFunction, mapIterable, mapKeysIntersectionObjectToArray, mapMaybeFunction, mapObjectKeysFunction, mapObjectKeysToLowercase, mapObjectMap, mapObjectMapFunction, mapObjectToTargetObject, mapPromiseOrValue, mapToObject, mapToTuples, mapValuesToSet, mappedUseAsyncFunction, mappedUseFunction, mapsHaveSameKeys, maybeMergeModelModifiers, maybeMergeModifiers, maybeModifierMapToFunction, maybeSet, memoizeAsyncKeyedValueCache, memoizeAsyncValueCache, mergeArrays, mergeArraysIntoArray, mergeAsyncKeyedValueCaches, mergeAsyncValueCaches, mergeFilterFunctions, mergeModifiers, mergeObjects, mergeObjectsFunction, mergeSlashPaths, messageFromError, millisecondsToMinutes, millisecondsToMinutesAndSeconds, millisecondsToTimeUnit, mimeTypeForApplicationFileExtension, mimeTypeForDocumentFileExtension, mimeTypeForFileExtension, mimeTypeForImageFileExtension, minAndMaxFunction, minAndMaxIndex, minAndMaxIndexFunction, minAndMaxIndexItemsFunction, minAndMaxNumber, minutesToFractionalHours, minutesToHoursAndMinutes, modelFieldConversions, modelFieldMapFunction, modelFieldMapFunctions, modelTypeDataPairFactory, modifier, modifierMapToFunction, modifyModelMapFunction, modifyModelMapFunctions, monthDaySlashDateToDateString, monthOfYearFromDate, monthOfYearFromDateMonth, monthOfYearFromUTCDate, multiKeyValueMapFactory, multiValueMapBuilder, neMostLatLngPoint, nearestDivisibleValues, noop, numberStringDencoder, numberStringDencoderDecodedNumberValueFunction, numberStringDencoderEncodedStringValueFunction, numberStringDencoderFunction, objectCopyFactory, objectDeltaArrayCompressor, objectFieldEqualityChecker, objectFlatMergeMatrix, objectHasKey, objectHasKeys, objectHasNoKeys, objectIsEmpty, objectKeyEqualityComparatorFunction, objectKeysEqualityComparatorFunction, objectMergeMatrix, objectToMap, overlapsLatLngBoundFunction, overrideInObject, overrideInObjectFunctionFactory, padStartFunction, pairGroupValues, parseISO8601DayStringToUTCDate, partialServerError, MAP_IDENTITY as passThrough, percentNumberFromDecimal, percentNumberToDecimal, performAsyncTask, performAsyncTasks, performBatchLoop, performMakeLoop, performTaskCountLoop, performTaskLoop, performTasksFromFactoryInParallelFunction, performTasksInParallel, performTasksInParallelFunction, pickOneRandomly, poll, primativeKeyDencoder, primativeKeyDencoderMap, primativeKeyStringDencoder, primativeValuesDelta, promiseReference, protectedFactory, pushArrayItemsIntoArray, pushElementOntoArray, pushItemOrArrayItemsIntoArray, randomArrayFactory, randomArrayIndex, randomBoolean, randomEmailFactory, randomFromArrayFactory, randomLatLngFactory, randomLatLngFromCenterFactory, randomNumber, randomNumberFactory, randomPhoneNumberFactory, randomPickFactory, range, rangedIndexedValuesArrayAccessorFactory, rangedIndexedValuesArrayAccessorInfoFactory, readBooleanKeySafetyWrap, readDomainFromEmailAddress, readDomainsFromEmailAddresses, readEmailDomainFromUrlOrEmailAddress, readIndexNumber, readKeysFrom, readKeysFromFilterUniqueFunctionAdditionalKeys, readKeysFromFilterUniqueFunctionAdditionalKeysInput, readKeysFunction, readKeysSetFrom, readKeysSetFunction, readKeysToMap, readModelKey, readModelKeyFromObject, readModelKeys, readModelKeysFromObjects, readMultipleKeysToMap, readPortNumber, readUniqueModelKey, readWebsiteProtocol, readableError, readableStreamToBase64, readableStreamToBuffer, readableStreamToStringFunction, rectangleOverlapsRectangle, reduceBooleansFn, reduceBooleansWithAnd, reduceBooleansWithAndFn, reduceBooleansWithOr, reduceBooleansWithOrFn, reduceNumbers, reduceNumbersFn, reduceNumbersWithAdd, reduceNumbersWithAddFn, reduceNumbersWithMax, reduceNumbersWithMaxFn, reduceNumbersWithMin, reduceNumbersWithMinFn, removeByKeyFromBooleanKeyArray, removeCharactersAfterFirstCharacterOccurence, removeCharactersAfterFirstCharacterOccurenceFunction, removeExtensionFromPhoneNumber, removeFirstMatchingSuffix, removeFromBooleanKeyArray, removeFromSet, removeFromSetCopy, removeHttpFromUrl, removeModelsWithKey, removeModelsWithSameKey, removeModifiers, removeSuffix, removeTrailingFileTypeSeparators, removeTrailingSlashes, removeValuesAtIndexesFromArrayCopy, removeWebProtocolPrefix, repeatString, replaceCharacterAtIndexIf, replaceCharacterAtIndexWith, replaceInvalidFilePathTypeSeparatorsInSlashPath, replaceInvalidFilePathTypeSeparatorsInSlashPathFunction, replaceLastCharacterIf, replaceLastCharacterIfIsFunction, replaceMultipleFilePathsInSlashPath, replaceStringsFunction, requireModelKey, resetPeriodPromiseRateLimiter, restoreOrder, restoreOrderWithValues, reverseCompareFn, roundNumberToStepFunction, roundNumberUpToStep, roundToPrecision, roundToPrecisionFunction, roundingFunction, runAsyncTaskForValue, runAsyncTasksForValues, runNamedAsyncTasks, runNamedAsyncTasksFunction, safeCompareEquality, safeEqualityComparatorFunction, safeFindBestIndexMatch, screamingSnakeToCamelCase, searchStringFilterFunction, secondsToMinutesAndSeconds, selectiveFieldEncryptor, separateValues, separateValuesToSets, sequentialIncrementingNumberStringModelIdFactory, serverError, setContainsAllValues, setContainsAnyValue, setContainsNoneOfValue, setDeltaChangeKeys, setDeltaFunction, setHasValueFunction, setIncludes, setIncludesFunction, setKeysOnMap, setWebProtocolPrefix, setsAreEquivalent, simpleSortValuesFunctionWithSortRef, simplifyWhitespace, slashPathDetails, slashPathDirectoryTree, slashPathFactory, slashPathFolder, slashPathFolderFactory, slashPathInvalidError, slashPathName, slashPathParts, slashPathPathMatcher, slashPathPathMatcherConfig, slashPathStartTypeFactory, slashPathSubPathMatcher, slashPathType, slashPathValidationFactory, sliceIndexRangeFunction, sliceStringFunction, sortAscendingIndexNumberRefFunction, sortByIndexAscendingCompareFunction, sortByIndexRangeAscendingCompareFunction, sortByLabelFunction, sortByNumberFunction, sortByStringFunction, sortCompareNumberFunction, sortNumbersAscendingFunction, sortValues, sortValuesFunctionOrMapIdentityWithSortRef, sortValuesFunctionWithSortRef, spaceSeparatedCssClasses, splitCommaSeparatedString, splitCommaSeparatedStringToSet, splitFront, splitJoinNameString, splitJoinRemainder, splitStringAtFirstCharacterOccurence, splitStringAtFirstCharacterOccurenceFunction, splitStringAtIndex, splitStringTreeFactory, startOfDayForSystemDateInUTC, startOfDayForUTCDateInUTC, stepsFromIndex, stepsFromIndexFunction, stringCharactersToIndexRecord, stringContains, stringFactoryFromFactory, stringFromDateFactory, stringFromTimeFactory, stringSplitJoinInstance, stringToBoolean, stringToLowercaseFunction, stringToUppercaseFunction, stringTrimFunction, stripObject, stripObjectFunction, sumOfIntegersBetween, swMostLatLngPoint, symmetricDifferenceArray, symmetricDifferenceArrayBetweenSets, symmetricDifferenceWithModels, takeFront, takeLast, takeValuesFromIterable, telUrlString, telUrlStringForE164PhoneNumberPair, terminatingFactoryFromArray, throwKeyIsRequired, timeDurationToHoursAndMinutes, timeDurationToMilliseconds, timePeriodCounter, timeUnitToMilliseconds, toAbsoluteSlashPathStartType, toCaseInsensitiveStringArray, toMinuteOfDay, toModelFieldConversions, toModelMapFunctions, toReadableError, toRelativeSlashPathStartType, toggleInSet, toggleInSetCopy, toggleTimerRunning, transformNumberFunction, transformNumberFunctionConfig, transformStringFunction, transformStringFunctionConfig, transformStrings, trimArray, trueOrFalseString, tryConvertToE164PhoneNumber, tryWithPromiseFactoriesFunction, typedServiceRegistry, unique, uniqueCaseInsensitiveStrings, uniqueCaseInsensitiveStringsSet, uniqueKeys, uniqueModels, unitedStatesAddressString, unixDateTimeSecondsNumberForNow, unixDateTimeSecondsNumberFromDate, unixDateTimeSecondsNumberFromDateOrTimeNumber, unixDateTimeSecondsNumberToDate, unixMillisecondsNumberToDate, updateMaybeValue, urlWithoutParameters, useAsync, useCallback, useContextFunction, useIterableOrValue, useModelOrKey, usePromise, useValue, validLatLngPoint, validLatLngPointFunction, valueAtIndex, valuesAreBothNullishOrEquivalent, valuesFromPOJO, valuesFromPOJOFunction, vectorMinimumSizeResizeFunction, vectorsAreEqual, waitForMs, websiteDomainAndPathPair, websiteDomainAndPathPairFromWebsiteUrl, websitePathAndQueryPair, websitePathFromWebsiteDomainAndPath, websitePathFromWebsiteUrl, websiteUrlDetails, websiteUrlFromPaths, wrapIndexRangeFunction, wrapLatLngPoint, wrapLngValue, wrapMapFunctionOutput, wrapNumberFunction, wrapTuples, wrapUseAsyncFunction, wrapUseFunction };