@dereekb/util 13.4.0 → 13.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/fetch/index.cjs.js +191 -109
  2. package/fetch/index.esm.js +191 -109
  3. package/fetch/package.json +2 -2
  4. package/fetch/src/lib/error.d.ts +6 -0
  5. package/fetch/src/lib/fetch.d.ts +37 -0
  6. package/fetch/src/lib/fetch.file.d.ts +7 -5
  7. package/fetch/src/lib/fetch.limit.d.ts +7 -0
  8. package/fetch/src/lib/fetch.url.d.ts +6 -3
  9. package/fetch/src/lib/json.d.ts +12 -1
  10. package/fetch/src/lib/timeout.d.ts +8 -0
  11. package/fetch/src/lib/url.d.ts +33 -0
  12. package/index.cjs.js +1419 -778
  13. package/index.esm.js +1419 -779
  14. package/package.json +1 -1
  15. package/src/lib/array/array.boolean.d.ts +7 -0
  16. package/src/lib/array/array.filter.d.ts +4 -4
  17. package/src/lib/array/array.index.d.ts +3 -1
  18. package/src/lib/array/array.indexed.d.ts +9 -3
  19. package/src/lib/array/array.limit.d.ts +2 -0
  20. package/src/lib/assertion/assert.d.ts +3 -0
  21. package/src/lib/assertion/assert.error.d.ts +6 -0
  22. package/src/lib/boolean.d.ts +3 -0
  23. package/src/lib/date/expires.d.ts +3 -3
  24. package/src/lib/date/minute.d.ts +14 -8
  25. package/src/lib/date/time.d.ts +3 -0
  26. package/src/lib/error/error.server.d.ts +1 -0
  27. package/src/lib/file/pdf.d.ts +1 -1
  28. package/src/lib/getter/getter.cache.d.ts +1 -1
  29. package/src/lib/grouping.d.ts +11 -2
  30. package/src/lib/map/map.key.d.ts +1 -1
  31. package/src/lib/model/model.d.ts +14 -9
  32. package/src/lib/number/dollar.d.ts +8 -0
  33. package/src/lib/number/number.d.ts +4 -0
  34. package/src/lib/object/object.d.ts +3 -0
  35. package/src/lib/object/object.equal.d.ts +2 -2
  36. package/src/lib/object/object.filter.pojo.d.ts +7 -0
  37. package/src/lib/object/object.filter.tuple.d.ts +2 -0
  38. package/src/lib/object/object.map.d.ts +1 -1
  39. package/src/lib/path/path.d.ts +4 -2
  40. package/src/lib/promise/poll.d.ts +3 -0
  41. package/src/lib/promise/promise.d.ts +19 -7
  42. package/src/lib/promise/promise.loop.d.ts +27 -9
  43. package/src/lib/relation/relation.d.ts +12 -0
  44. package/src/lib/service/handler.config.d.ts +3 -1
  45. package/src/lib/service/handler.d.ts +6 -2
  46. package/src/lib/service/typed.service.d.ts +3 -1
  47. package/src/lib/set/set.d.ts +32 -19
  48. package/src/lib/set/set.hashset.d.ts +3 -1
  49. package/src/lib/sort.d.ts +11 -0
  50. package/src/lib/storage/storage.error.d.ts +3 -0
  51. package/src/lib/storage/storage.memory.d.ts +7 -0
  52. package/src/lib/storage/storage.object.d.ts +5 -0
  53. package/src/lib/string/dencoder.d.ts +4 -1
  54. package/src/lib/string/mimetype.d.ts +57 -19
  55. package/src/lib/string/transform.d.ts +10 -1
  56. package/src/lib/string/tree.d.ts +18 -6
  57. package/src/lib/string/url.d.ts +57 -19
  58. package/src/lib/tree/tree.d.ts +12 -4
  59. package/src/lib/tree/tree.flatten.d.ts +3 -1
  60. package/src/lib/value/address.d.ts +24 -7
  61. package/src/lib/value/bound.d.ts +3 -0
  62. package/src/lib/value/build.d.ts +3 -0
  63. package/src/lib/value/comparator.d.ts +4 -0
  64. package/src/lib/value/cron.d.ts +1 -0
  65. package/src/lib/value/decision.d.ts +3 -0
  66. package/src/lib/value/equal.d.ts +3 -0
  67. package/src/lib/value/indexed.d.ts +4 -0
  68. package/src/lib/value/label.d.ts +1 -0
  69. package/src/lib/value/map.d.ts +9 -0
  70. package/src/lib/value/maybe.d.ts +13 -0
  71. package/src/lib/value/modifier.d.ts +9 -0
  72. package/src/lib/value/point.d.ts +3 -0
  73. package/src/lib/value/url.d.ts +1 -0
  74. package/src/lib/value/vector.d.ts +5 -0
  75. package/test/index.cjs.js +29 -6
  76. package/test/index.esm.js +29 -6
  77. package/test/package.json +2 -2
  78. package/test/src/lib/jest/jest.fail.d.ts +3 -3
  79. package/test/src/lib/shared/shared.d.ts +7 -1
  80. package/test/src/lib/shared/shared.fail.d.ts +8 -2
  81. package/test/src/lib/shared/shared.wrap.d.ts +1 -0
package/index.esm.js CHANGED
@@ -1,6 +1,35 @@
1
1
  import { symmetricDifference } from 'extra-set';
2
2
  import { BaseError } from 'make-error';
3
3
 
4
+ function _array_like_to_array$C(arr, len) {
5
+ if (len == null || len > arr.length) len = arr.length;
6
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
7
+ return arr2;
8
+ }
9
+ function _array_without_holes$r(arr) {
10
+ if (Array.isArray(arr)) return _array_like_to_array$C(arr);
11
+ }
12
+ function _iterable_to_array$r(iter) {
13
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
14
+ }
15
+ function _non_iterable_spread$r() {
16
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
17
+ }
18
+ function _to_consumable_array$r(arr) {
19
+ return _array_without_holes$r(arr) || _iterable_to_array$r(arr) || _unsupported_iterable_to_array$C(arr) || _non_iterable_spread$r();
20
+ }
21
+ function _type_of$m(obj) {
22
+ "@swc/helpers - typeof";
23
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
24
+ }
25
+ function _unsupported_iterable_to_array$C(o, minLen) {
26
+ if (!o) return;
27
+ if (typeof o === "string") return _array_like_to_array$C(o, minLen);
28
+ var n = Object.prototype.toString.call(o).slice(8, -1);
29
+ if (n === "Object" && o.constructor) n = o.constructor.name;
30
+ if (n === "Map" || n === "Set") return Array.from(n);
31
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$C(o, minLen);
32
+ }
4
33
  // MARK: Functions
5
34
  /**
6
35
  * Converts an IterableOrValue to an Iterable. Non-iterable values are wrapped in an array.
@@ -34,7 +63,7 @@ import { BaseError } from 'make-error';
34
63
  values
35
64
  ];
36
65
  } else if (isIterable(values)) {
37
- iterable = Array.from(values); // copy the array
66
+ iterable = _to_consumable_array$r(values); // copy the array
38
67
  } else {
39
68
  iterable = [
40
69
  values
@@ -61,13 +90,12 @@ import { BaseError } from 'make-error';
61
90
  * @param readKey - Function to extract the key from each value
62
91
  * @returns A Map with the extracted keys and their corresponding values
63
92
  */ function iterableToMap(values, readKey) {
64
- var map = new Map(iterableToArray(values).map(function(value) {
93
+ return new Map(iterableToArray(values).map(function(value) {
65
94
  return [
66
95
  readKey(value),
67
96
  value
68
97
  ];
69
98
  }));
70
- return map;
71
99
  }
72
100
  /**
73
101
  * Type guard that returns true if the input is an Iterable.
@@ -78,11 +106,13 @@ import { BaseError } from 'make-error';
78
106
  * @returns True if the value is iterable
79
107
  */ function isIterable(values) {
80
108
  var treatStringAsIterable = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
81
- if (values && values[Symbol.iterator] && (treatStringAsIterable || typeof values !== 'string')) {
109
+ if (typeof values === 'string') {
110
+ return treatStringAsIterable;
111
+ }
112
+ if (values != null && (typeof values === "undefined" ? "undefined" : _type_of$m(values)) === 'object' && Symbol.iterator in values) {
82
113
  return true;
83
- } else {
84
- return false;
85
114
  }
115
+ return false;
86
116
  }
87
117
  /**
88
118
  * Returns true if the iterable has no values.
@@ -361,30 +391,30 @@ import { BaseError } from 'make-error';
361
391
  }
362
392
  }
363
393
 
364
- function _array_like_to_array$r(arr, len) {
394
+ function _array_like_to_array$B(arr, len) {
365
395
  if (len == null || len > arr.length) len = arr.length;
366
396
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
367
397
  return arr2;
368
398
  }
369
- function _array_without_holes$c(arr) {
370
- if (Array.isArray(arr)) return _array_like_to_array$r(arr);
399
+ function _array_without_holes$q(arr) {
400
+ if (Array.isArray(arr)) return _array_like_to_array$B(arr);
371
401
  }
372
- function _iterable_to_array$c(iter) {
402
+ function _iterable_to_array$q(iter) {
373
403
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
374
404
  }
375
- function _non_iterable_spread$c() {
405
+ function _non_iterable_spread$q() {
376
406
  throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
377
407
  }
378
- function _to_consumable_array$c(arr) {
379
- return _array_without_holes$c(arr) || _iterable_to_array$c(arr) || _unsupported_iterable_to_array$r(arr) || _non_iterable_spread$c();
408
+ function _to_consumable_array$q(arr) {
409
+ return _array_without_holes$q(arr) || _iterable_to_array$q(arr) || _unsupported_iterable_to_array$B(arr) || _non_iterable_spread$q();
380
410
  }
381
- function _unsupported_iterable_to_array$r(o, minLen) {
411
+ function _unsupported_iterable_to_array$B(o, minLen) {
382
412
  if (!o) return;
383
- if (typeof o === "string") return _array_like_to_array$r(o, minLen);
413
+ if (typeof o === "string") return _array_like_to_array$B(o, minLen);
384
414
  var n = Object.prototype.toString.call(o).slice(8, -1);
385
415
  if (n === "Object" && o.constructor) n = o.constructor.name;
386
416
  if (n === "Map" || n === "Set") return Array.from(n);
387
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$r(o, minLen);
417
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$B(o, minLen);
388
418
  }
389
419
  // MARK: Functions
390
420
  /**
@@ -497,12 +527,10 @@ function _unsupported_iterable_to_array$r(o, minLen) {
497
527
  * @param array - two-dimensional array to flatten, may contain nullish entries
498
528
  * @returns a single-dimensional array with all elements from the non-nullish inner arrays
499
529
  */ function flattenArray(array) {
500
- var _instance;
501
530
  var filteredValues = array.filter(function(x) {
502
531
  return Boolean(x);
503
532
  });
504
- // concat with spread is faster than a depth-one flat
505
- return (_instance = []).concat.apply(_instance, _to_consumable_array$c(filteredValues));
533
+ return filteredValues.flat();
506
534
  }
507
535
  /**
508
536
  * Flattens an array of {@link ArrayOrValue} entries into a single array. Nullish entries are filtered out.
@@ -520,7 +548,7 @@ function _unsupported_iterable_to_array$r(o, minLen) {
520
548
  * @param input - array to copy, or nullish
521
549
  * @returns a new array with the same elements, or an empty array if input is nullish
522
550
  */ function copyArray(input) {
523
- return input != null ? Array.from(input) : [];
551
+ return input != null ? _to_consumable_array$q(input) : [];
524
552
  }
525
553
  /**
526
554
  * Pushes the same element onto the target array a specified number of times.
@@ -543,7 +571,7 @@ function _unsupported_iterable_to_array$r(o, minLen) {
543
571
  */ function mergeArrays(arrays) {
544
572
  return mergeArraysIntoArray.apply(void 0, [
545
573
  []
546
- ].concat(_to_consumable_array$c(arrays)));
574
+ ].concat(_to_consumable_array$q(arrays)));
547
575
  }
548
576
  /**
549
577
  * Merges the input arrays into the target array by pushing each item from each array. Creates an empty array if the target is nullish.
@@ -555,9 +583,7 @@ function _unsupported_iterable_to_array$r(o, minLen) {
555
583
  for(var _len = arguments.length, arrays = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
556
584
  arrays[_key - 1] = arguments[_key];
557
585
  }
558
- if (target == null) {
559
- target = [];
560
- }
586
+ target !== null && target !== void 0 ? target : target = [];
561
587
  arrays.forEach(function(array) {
562
588
  if (array != null) {
563
589
  pushArrayItemsIntoArray(target, array);
@@ -631,7 +657,7 @@ function _unsupported_iterable_to_array$r(o, minLen) {
631
657
  var length = values.length;
632
658
  var secondHalfStartIndex = Math.max(keepFromFront, length - (maxToTake - keepFromFront));
633
659
  var secondHalfEndIndex = length;
634
- results = _to_consumable_array$c(values.slice(0, keepFromFront)).concat(_to_consumable_array$c(values.slice(secondHalfStartIndex, secondHalfEndIndex)));
660
+ results = _to_consumable_array$q(values.slice(0, keepFromFront)).concat(_to_consumable_array$q(values.slice(secondHalfStartIndex, secondHalfEndIndex)));
635
661
  }
636
662
  return results;
637
663
  }
@@ -757,6 +783,31 @@ function _unsupported_iterable_to_array$r(o, minLen) {
757
783
  return readKeysSetFunction(readKey)(values);
758
784
  }
759
785
 
786
+ function _array_like_to_array$A(arr, len) {
787
+ if (len == null || len > arr.length) len = arr.length;
788
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
789
+ return arr2;
790
+ }
791
+ function _array_without_holes$p(arr) {
792
+ if (Array.isArray(arr)) return _array_like_to_array$A(arr);
793
+ }
794
+ function _iterable_to_array$p(iter) {
795
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
796
+ }
797
+ function _non_iterable_spread$p() {
798
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
799
+ }
800
+ function _to_consumable_array$p(arr) {
801
+ return _array_without_holes$p(arr) || _iterable_to_array$p(arr) || _unsupported_iterable_to_array$A(arr) || _non_iterable_spread$p();
802
+ }
803
+ function _unsupported_iterable_to_array$A(o, minLen) {
804
+ if (!o) return;
805
+ if (typeof o === "string") return _array_like_to_array$A(o, minLen);
806
+ var n = Object.prototype.toString.call(o).slice(8, -1);
807
+ if (n === "Object" && o.constructor) n = o.constructor.name;
808
+ if (n === "Map" || n === "Set") return Array.from(n);
809
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$A(o, minLen);
810
+ }
760
811
  /**
761
812
  * Converts an {@link IterableOrValue} into a Set. Strings are treated as single values rather than character iterables.
762
813
  *
@@ -887,7 +938,7 @@ function _unsupported_iterable_to_array$r(o, minLen) {
887
938
  * @param b - Second set.
888
939
  * @returns An array of values present in only one of the sets.
889
940
  */ function symmetricDifferenceArrayBetweenSets(a, b) {
890
- return Array.from(symmetricDifference(a, b));
941
+ return _to_consumable_array$p(symmetricDifference(a, b));
891
942
  }
892
943
  /**
893
944
  * Flattens a two-dimensional array into a Set of unique values.
@@ -1131,6 +1182,11 @@ function _unsupported_iterable_to_array$r(o, minLen) {
1131
1182
  }
1132
1183
  /**
1133
1184
  * Returns false if the input array contains any value from the second array.
1185
+ *
1186
+ * @param values - the values to check against
1187
+ * @param valuesToFind - the values to look for
1188
+ * @param emptyValuesToFindArrayResult - result when valuesToFind is empty
1189
+ * @returns `true` if none of the valuesToFind are present in values
1134
1190
  */ function containsNoneOfValue(values, valuesToFind, emptyValuesToFindArrayResult) {
1135
1191
  var set = new Set(asIterable(valuesToFind, false));
1136
1192
  return containsNoValueFromSet(values, set, emptyValuesToFindArrayResult);
@@ -1160,6 +1216,11 @@ function _unsupported_iterable_to_array$r(o, minLen) {
1160
1216
  * Returns true if the input array contains any value from the second array.
1161
1217
  *
1162
1218
  * If valuesToFind is empty, returns the emptyValuesToFindArrayResult value. Defaults to false.
1219
+ *
1220
+ * @param values - the values to build a set from and check against
1221
+ * @param valuesToFind - the values to search for within the set
1222
+ * @param emptyValuesToFindArrayResult - result when valuesToFind is empty; defaults to false
1223
+ * @returns `true` if any of the valuesToFind exist in values
1163
1224
  */ function containsAnyValue(values, valuesToFind, emptyValuesToFindArrayResult) {
1164
1225
  var set = new Set(asIterable(values, false));
1165
1226
  return setContainsAnyValue(set, valuesToFind, emptyValuesToFindArrayResult);
@@ -1169,9 +1230,10 @@ function _unsupported_iterable_to_array$r(o, minLen) {
1169
1230
  *
1170
1231
  * If values is empty, returns the emptyValuesToFindArrayResult value. Defaults to false.
1171
1232
  *
1172
- * @param values
1173
- * @param valuesToFind
1174
- * @returns
1233
+ * @param values - the values to check for membership in the set
1234
+ * @param valuesToFind - the set to check against
1235
+ * @param emptyValuesArrayResult - result when values is empty; defaults to false
1236
+ * @returns `true` if any of the values are present in the set
1175
1237
  */ function containsAnyValueFromSet(values, valuesToFind, emptyValuesArrayResult) {
1176
1238
  return setContainsAnyValue(valuesToFind, values, emptyValuesArrayResult);
1177
1239
  }
@@ -1180,35 +1242,30 @@ function _unsupported_iterable_to_array$r(o, minLen) {
1180
1242
  *
1181
1243
  * If valuesToFind is empty, returns the emptyValuesToFindArrayResult value. Defaults to false.
1182
1244
  *
1183
- * @param valuesSet
1184
- * @param valuesToFind
1185
- * @param emptyValuesToFindArrayResult
1186
- * @returns
1245
+ * @param valuesSet - the set to check for membership
1246
+ * @param valuesToFind - the values to search for in the set
1247
+ * @param emptyValuesToFindArrayResult - result when valuesToFind is empty; defaults to false
1248
+ * @returns `true` if any of the valuesToFind are present in the set
1187
1249
  */ function setContainsAnyValue(valuesSet, valuesToFind) {
1188
1250
  var emptyValuesToFindArrayResult = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
1189
- var result;
1190
- if (valuesSet) {
1191
- var valuesToFindArray = iterableToArray(valuesToFind);
1192
- if (valuesToFindArray.length > 0) {
1193
- result = valuesToFindArray.findIndex(function(x) {
1194
- return valuesSet.has(x);
1195
- }) !== -1;
1196
- } else {
1197
- result = emptyValuesToFindArrayResult;
1198
- }
1251
+ var valuesToFindArray = iterableToArray(valuesToFind);
1252
+ if (valuesToFindArray.length > 0) {
1253
+ return valuesToFindArray.some(function(x) {
1254
+ return valuesSet.has(x);
1255
+ });
1199
1256
  } else {
1200
- result = false;
1257
+ return emptyValuesToFindArrayResult;
1201
1258
  }
1202
- return result;
1203
1259
  }
1204
1260
  /**
1205
1261
  * Returns true if values contains all values in valuesToFind.
1206
1262
  *
1207
1263
  * If valuesToFind is empty, returns the emptyValuesToFindArrayResult value. Defaults to true.
1208
1264
  *
1209
- * @param values
1210
- * @param valuesToFind
1211
- * @returns
1265
+ * @param values - the iterable of values to build a set from
1266
+ * @param valuesToFind - the values that must all be present
1267
+ * @param emptyValuesArrayResult - result when valuesToFind is empty; defaults to true
1268
+ * @returns `true` if all valuesToFind are present in the values set
1212
1269
  */ function containsAllValues(values, valuesToFind, emptyValuesArrayResult) {
1213
1270
  var set = new Set(values);
1214
1271
  return setContainsAllValues(set, valuesToFind, emptyValuesArrayResult);
@@ -1218,69 +1275,64 @@ function _unsupported_iterable_to_array$r(o, minLen) {
1218
1275
  *
1219
1276
  * If valuesToFind is empty, returns the emptyValuesToFindArrayResult value. Defaults to true.
1220
1277
  *
1221
- * @param valuesSet
1222
- * @param valuesToFind
1223
- * @param emptyValuesToFindArrayResult
1224
- * @returns
1278
+ * @param valuesSet - the set to check for full containment
1279
+ * @param valuesToFind - the values that must all be present in the set
1280
+ * @param emptyValuesToFindArrayResult - result when valuesToFind is empty; defaults to true
1281
+ * @returns `true` if every value in valuesToFind is present in the set
1225
1282
  */ function setContainsAllValues(valuesSet, valuesToFind) {
1226
1283
  var emptyValuesToFindArrayResult = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true;
1227
- var result;
1228
- if (valuesSet) {
1229
- var valuesToFindArray = iterableToArray(valuesToFind);
1230
- if (valuesToFindArray.length > 0) {
1231
- result = valuesToFindArray.findIndex(function(x) {
1232
- return !valuesSet.has(x);
1233
- }) == -1;
1234
- } else {
1235
- result = emptyValuesToFindArrayResult;
1236
- }
1284
+ var valuesToFindArray = iterableToArray(valuesToFind);
1285
+ if (valuesToFindArray.length > 0) {
1286
+ return !valuesToFindArray.some(function(x) {
1287
+ return !valuesSet.has(x);
1288
+ });
1237
1289
  } else {
1238
- result = false;
1290
+ return emptyValuesToFindArrayResult;
1239
1291
  }
1240
- return result;
1241
1292
  }
1242
1293
  /**
1243
1294
  * Returns true if both iterables are defined (or are both null/undefined) and have the same values exactly.
1244
1295
  *
1245
- * @param a
1246
- * @param b
1247
- * @returns
1296
+ * @param a - first iterable to compare
1297
+ * @param b - second iterable to compare
1298
+ * @returns `true` if both iterables contain the same unique values, or both are nullish
1248
1299
  */ function iterablesAreSetEquivalent(a, b) {
1249
1300
  return a && b ? setsAreEquivalent(new Set(a), new Set(b)) : a == b;
1250
1301
  }
1251
1302
  /**
1252
1303
  * Returns true if both sets are defined (or are both null/undefined) and have the same values exactly.
1253
1304
  *
1254
- * @param a
1255
- * @param b
1305
+ * @param a - first set to compare
1306
+ * @param b - second set to compare
1307
+ * @returns `true` if both sets contain the same values, or both are nullish
1256
1308
  */ function setsAreEquivalent(a, b) {
1257
1309
  return a && b ? a.size === b.size && setContainsAllValues(a, b, true) : a == b;
1258
1310
  }
1259
1311
 
1260
- function _array_like_to_array$q(arr, len) {
1312
+ function _array_like_to_array$z(arr, len) {
1261
1313
  if (len == null || len > arr.length) len = arr.length;
1262
1314
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
1263
1315
  return arr2;
1264
1316
  }
1265
- function _array_without_holes$b(arr) {
1266
- if (Array.isArray(arr)) return _array_like_to_array$q(arr);
1317
+ function _array_without_holes$o(arr) {
1318
+ if (Array.isArray(arr)) return _array_like_to_array$z(arr);
1267
1319
  }
1268
- function _iterable_to_array$b(iter) {
1320
+ function _iterable_to_array$o(iter) {
1269
1321
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
1270
1322
  }
1271
- function _non_iterable_spread$b() {
1323
+ function _non_iterable_spread$o() {
1272
1324
  throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
1273
1325
  }
1274
- function _to_consumable_array$b(arr) {
1275
- return _array_without_holes$b(arr) || _iterable_to_array$b(arr) || _unsupported_iterable_to_array$q(arr) || _non_iterable_spread$b();
1326
+ function _to_consumable_array$o(arr) {
1327
+ return _array_without_holes$o(arr) || _iterable_to_array$o(arr) || _unsupported_iterable_to_array$z(arr) || _non_iterable_spread$o();
1276
1328
  }
1277
- function _unsupported_iterable_to_array$q(o, minLen) {
1329
+ function _unsupported_iterable_to_array$z(o, minLen) {
1278
1330
  if (!o) return;
1279
- if (typeof o === "string") return _array_like_to_array$q(o, minLen);
1331
+ if (typeof o === "string") return _array_like_to_array$z(o, minLen);
1280
1332
  var n = Object.prototype.toString.call(o).slice(8, -1);
1281
1333
  if (n === "Object" && o.constructor) n = o.constructor.name;
1282
1334
  if (n === "Map" || n === "Set") return Array.from(n);
1283
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$q(o, minLen);
1335
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$z(o, minLen);
1284
1336
  }
1285
1337
  /**
1286
1338
  * Inverts the output of an arbitrary boolean-returning function.
@@ -1298,7 +1350,7 @@ function _unsupported_iterable_to_array$q(o, minLen) {
1298
1350
  var _decisionFn;
1299
1351
  var result = (_decisionFn = decisionFn).call.apply(_decisionFn, [
1300
1352
  undefined
1301
- ].concat(_to_consumable_array$b(args)));
1353
+ ].concat(_to_consumable_array$o(args)));
1302
1354
  return !result;
1303
1355
  };
1304
1356
  } else {
@@ -1318,7 +1370,7 @@ function _unsupported_iterable_to_array$q(o, minLen) {
1318
1370
  */ function arrayDecisionFunction(decision, mode) {
1319
1371
  var findFn = mode === 'all' ? invertBooleanReturnFunction(decision) : decision;
1320
1372
  return invertBooleanReturnFunction(function(values) {
1321
- return values.findIndex(findFn) !== -1;
1373
+ return values.some(findFn);
1322
1374
  }, mode === 'all');
1323
1375
  }
1324
1376
  /**
@@ -1418,6 +1470,7 @@ function _type_of$l(obj) {
1418
1470
  * Type guard that returns `true` if the value is not `null` or `undefined`.
1419
1471
  *
1420
1472
  * @param value - the value to check
1473
+ * @returns `true` if the value is not `null` or `undefined`
1421
1474
  */ function hasNonNullValue(value) {
1422
1475
  return value != null;
1423
1476
  }
@@ -1431,6 +1484,7 @@ function _type_of$l(obj) {
1431
1484
  * NaN has undefined behavior.
1432
1485
  *
1433
1486
  * @param value - the value to check
1487
+ * @returns `true` if the value is non-nullish and not empty
1434
1488
  */ function hasValueOrNotEmpty(value) {
1435
1489
  if (isIterable(value, false)) {
1436
1490
  return !isEmptyIterable(value);
@@ -1447,6 +1501,7 @@ function _type_of$l(obj) {
1447
1501
  * NaN has undefined behavior.
1448
1502
  *
1449
1503
  * @param value - the value to check
1504
+ * @returns `true` if the value is non-nullish, non-empty, and not an empty object
1450
1505
  */ function hasValueOrNotEmptyObject(value) {
1451
1506
  if (isIterable(value, true)) {
1452
1507
  return !isEmptyIterable(value);
@@ -1460,6 +1515,7 @@ function _type_of$l(obj) {
1460
1515
  * Returns `true` if the input value is a non-empty string or is `true`.
1461
1516
  *
1462
1517
  * @param value - the value to check
1518
+ * @returns `true` if the value is a non-empty string or is `true`
1463
1519
  */ function isStringOrTrue(value) {
1464
1520
  return Boolean(value || value !== '');
1465
1521
  }
@@ -1469,6 +1525,7 @@ function _type_of$l(obj) {
1469
1525
  * Useful for filtering out both nullish values and empty strings in a single check.
1470
1526
  *
1471
1527
  * @param value - the value to check
1528
+ * @returns `true` if the value is not nullish and not an empty string
1472
1529
  */ function isNotNullOrEmptyString(value) {
1473
1530
  return value != null && value !== '';
1474
1531
  }
@@ -1476,6 +1533,7 @@ function _type_of$l(obj) {
1476
1533
  * Type guard that returns `true` if the input is `null` or `undefined`.
1477
1534
  *
1478
1535
  * @param value - the value to check
1536
+ * @returns `true` if the value is `null` or `undefined`
1479
1537
  */ function isMaybeNot(value) {
1480
1538
  return value == null;
1481
1539
  }
@@ -1485,6 +1543,7 @@ function _type_of$l(obj) {
1485
1543
  * Equivalent to {@link hasNonNullValue} but with the `MaybeSo` narrowing type.
1486
1544
  *
1487
1545
  * @param value - the value to check
1546
+ * @returns `true` if the value is neither `null` nor `undefined`
1488
1547
  */ function isMaybeSo(value) {
1489
1548
  return value != null;
1490
1549
  }
@@ -1494,6 +1553,7 @@ function _type_of$l(obj) {
1494
1553
  * Useful for optional boolean flags where both absence and `true` indicate the same behavior.
1495
1554
  *
1496
1555
  * @param value - the value to check
1556
+ * @returns `true` if the value is nullish or strictly `true`
1497
1557
  */ function isMaybeNotOrTrue(value) {
1498
1558
  return value == null || value === true;
1499
1559
  }
@@ -1501,6 +1561,7 @@ function _type_of$l(obj) {
1501
1561
  * Returns `true` if the input is not `null`, `undefined`, or `false`.
1502
1562
  *
1503
1563
  * @param value - the value to check
1564
+ * @returns `true` if the value is not `null`, `undefined`, or `false`
1504
1565
  */ function isDefinedAndNotFalse(value) {
1505
1566
  return value != null && value !== false;
1506
1567
  }
@@ -1508,6 +1569,7 @@ function _type_of$l(obj) {
1508
1569
  * Returns `true` if the input is not strictly `false`. Nullish values return `true`.
1509
1570
  *
1510
1571
  * @param value - the value to check
1572
+ * @returns `true` if the value is not strictly `false`
1511
1573
  */ function isNotFalse(value) {
1512
1574
  return value !== false;
1513
1575
  }
@@ -1516,6 +1578,7 @@ function _type_of$l(obj) {
1516
1578
  *
1517
1579
  * @param a - first value
1518
1580
  * @param b - second value
1581
+ * @returns `true` if both values are non-nullish and strictly equal
1519
1582
  */ function isSameNonNullValue(a, b) {
1520
1583
  return a === b && a != null;
1521
1584
  }
@@ -1526,6 +1589,7 @@ function _type_of$l(obj) {
1526
1589
  *
1527
1590
  * @param a - first value
1528
1591
  * @param b - second value
1592
+ * @returns `true` if both are nullish or both are the same value
1529
1593
  */ function valuesAreBothNullishOrEquivalent(a, b) {
1530
1594
  return a != null && b != null ? a === b : a == b;
1531
1595
  }
@@ -1538,6 +1602,7 @@ function _type_of$l(obj) {
1538
1602
  *
1539
1603
  * @param a - the current value
1540
1604
  * @param b - the update value
1605
+ * @returns `a` if `b` is undefined, otherwise `b`
1541
1606
  */ function updateMaybeValue(a, b) {
1542
1607
  return b === undefined ? a : b;
1543
1608
  }
@@ -1549,11 +1614,13 @@ function _type_of$l(obj) {
1549
1614
  * @returns A function that filters maybe values from an optional input array.
1550
1615
  */ function filterMaybeArrayFunction(filterFn) {
1551
1616
  return function(values) {
1617
+ var result;
1552
1618
  if (values != null) {
1553
- return values.filter(filterFn);
1619
+ result = values.filter(filterFn);
1554
1620
  } else {
1555
- return [];
1621
+ result = [];
1556
1622
  }
1623
+ return result;
1557
1624
  };
1558
1625
  }
1559
1626
  /**
@@ -1574,9 +1641,9 @@ function _type_of$l(obj) {
1574
1641
  * @param values - Array of optional values to check.
1575
1642
  * @returns `true` if every value in the array is null or undefined.
1576
1643
  */ function allValuesAreMaybeNot(values) {
1577
- return values.findIndex(function(x) {
1644
+ return !values.some(function(x) {
1578
1645
  return x != null;
1579
- }) === -1;
1646
+ });
1580
1647
  }
1581
1648
  /**
1582
1649
  * Checks whether or not all values in the array are defined (non-null and non-undefined).
@@ -1584,9 +1651,9 @@ function _type_of$l(obj) {
1584
1651
  * @param values - Array of optional values to check.
1585
1652
  * @returns `true` if every value in the array is non-null and non-undefined.
1586
1653
  */ function allValuesAreNotMaybe(values) {
1587
- return values.findIndex(function(x) {
1654
+ return !values.some(function(x) {
1588
1655
  return x == null;
1589
- }) === -1;
1656
+ });
1590
1657
  }
1591
1658
 
1592
1659
  /**
@@ -1595,6 +1662,9 @@ function _type_of$l(obj) {
1595
1662
  * This is useful when building objects whose type is normally read-only, allowing incremental property assignment during construction.
1596
1663
  *
1597
1664
  * @param config - the build configuration containing the base object and build function
1665
+ * @param config.base - optional pre-existing partial object to build upon; defaults to an empty object
1666
+ * @param config.build - function that mutates the base object to populate it with desired values
1667
+ * @returns the fully constructed object of type T
1598
1668
  *
1599
1669
  * @example
1600
1670
  * ```ts
@@ -1650,16 +1720,24 @@ function _type_of$l(obj) {
1650
1720
  *
1651
1721
  * Used as a sentinel value so that {@link chainMapSameFunctions} and other combinators can detect
1652
1722
  * and skip no-op mappings for efficiency.
1723
+ *
1724
+ * @param input - the value to pass through unchanged
1725
+ * @returns the same input value, unmodified
1653
1726
  */ var MAP_IDENTITY = function MAP_IDENTITY(input) {
1654
1727
  return input;
1655
1728
  };
1656
1729
  /**
1657
1730
  * Returns the shared {@link MAP_IDENTITY} function cast to the requested type, useful for providing a typed no-op transformation.
1731
+ *
1732
+ * @returns the singleton identity function typed as `MapFunction<T, T>`
1658
1733
  */ function mapIdentityFunction() {
1659
1734
  return MAP_IDENTITY;
1660
1735
  }
1661
1736
  /**
1662
1737
  * Checks whether the given function is the singleton {@link MAP_IDENTITY} reference.
1738
+ *
1739
+ * @param fn - the function to check
1740
+ * @returns `true` if the function is the identity singleton
1663
1741
  */ function isMapIdentityFunction(fn) {
1664
1742
  return fn === MAP_IDENTITY;
1665
1743
  }
@@ -1754,30 +1832,30 @@ function chainMapFunction(a, b) {
1754
1832
  }
1755
1833
  }
1756
1834
 
1757
- function _array_like_to_array$p(arr, len) {
1835
+ function _array_like_to_array$y(arr, len) {
1758
1836
  if (len == null || len > arr.length) len = arr.length;
1759
1837
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
1760
1838
  return arr2;
1761
1839
  }
1762
- function _array_without_holes$a(arr) {
1763
- if (Array.isArray(arr)) return _array_like_to_array$p(arr);
1840
+ function _array_without_holes$n(arr) {
1841
+ if (Array.isArray(arr)) return _array_like_to_array$y(arr);
1764
1842
  }
1765
- function _iterable_to_array$a(iter) {
1843
+ function _iterable_to_array$n(iter) {
1766
1844
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
1767
1845
  }
1768
- function _non_iterable_spread$a() {
1846
+ function _non_iterable_spread$n() {
1769
1847
  throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
1770
1848
  }
1771
- function _to_consumable_array$a(arr) {
1772
- return _array_without_holes$a(arr) || _iterable_to_array$a(arr) || _unsupported_iterable_to_array$p(arr) || _non_iterable_spread$a();
1849
+ function _to_consumable_array$n(arr) {
1850
+ return _array_without_holes$n(arr) || _iterable_to_array$n(arr) || _unsupported_iterable_to_array$y(arr) || _non_iterable_spread$n();
1773
1851
  }
1774
- function _unsupported_iterable_to_array$p(o, minLen) {
1852
+ function _unsupported_iterable_to_array$y(o, minLen) {
1775
1853
  if (!o) return;
1776
- if (typeof o === "string") return _array_like_to_array$p(o, minLen);
1854
+ if (typeof o === "string") return _array_like_to_array$y(o, minLen);
1777
1855
  var n = Object.prototype.toString.call(o).slice(8, -1);
1778
1856
  if (n === "Object" && o.constructor) n = o.constructor.name;
1779
1857
  if (n === "Map" || n === "Set") return Array.from(n);
1780
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$p(o, minLen);
1858
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$y(o, minLen);
1781
1859
  }
1782
1860
  /**
1783
1861
  * Concatenates multiple arrays and returns only unique values.
@@ -1788,7 +1866,7 @@ function _unsupported_iterable_to_array$p(o, minLen) {
1788
1866
  for(var _len = arguments.length, arrays = new Array(_len), _key = 0; _key < _len; _key++){
1789
1867
  arrays[_key] = arguments[_key];
1790
1868
  }
1791
- return unique(concatArrays.apply(void 0, _to_consumable_array$a(arrays)));
1869
+ return unique(concatArrays.apply(void 0, _to_consumable_array$n(arrays)));
1792
1870
  }
1793
1871
  /**
1794
1872
  * Flattens a 2D array and returns only unique values.
@@ -1809,10 +1887,10 @@ function _unsupported_iterable_to_array$p(o, minLen) {
1809
1887
  var exclude = readKeysFromFilterUniqueFunctionAdditionalKeysInput(excludeInput, function(x) {
1810
1888
  return x;
1811
1889
  });
1812
- if (exclude != null && exclude.length) {
1890
+ if (exclude.length) {
1813
1891
  removeFromSet(unique, exclude);
1814
1892
  }
1815
- return Array.from(unique);
1893
+ return _to_consumable_array$n(unique);
1816
1894
  }
1817
1895
  /**
1818
1896
  * Reads and resolves keys from a {@link FilterUniqueFunctionAdditionalKeysInput}, handling both raw key arrays and structured input objects.
@@ -1834,7 +1912,7 @@ function _unsupported_iterable_to_array$p(o, minLen) {
1834
1912
  if (input.values) {
1835
1913
  addToSet(keys, input.values.map(readKey));
1836
1914
  }
1837
- return Array.from(keys);
1915
+ return _to_consumable_array$n(keys);
1838
1916
  }
1839
1917
  /**
1840
1918
  * Creates a {@link FilterUniqueFunction} that deduplicates items by their computed key.
@@ -1846,7 +1924,7 @@ function _unsupported_iterable_to_array$p(o, minLen) {
1846
1924
  var baseKeys = readKeysFromFilterUniqueFunctionAdditionalKeysInput(additionalKeysInput, readKey);
1847
1925
  function calculateExclude(excludeInput) {
1848
1926
  var newExcludeKeys = excludeInput ? Array.isArray(excludeInput) ? excludeInput.map(readKey) : readKeysFromFilterUniqueFunctionAdditionalKeys(excludeInput, readKey) : [];
1849
- return (newExcludeKeys === null || newExcludeKeys === void 0 ? void 0 : newExcludeKeys.length) ? mergeArrays([
1927
+ return newExcludeKeys.length ? mergeArrays([
1850
1928
  filterMaybeArrayValues(newExcludeKeys),
1851
1929
  baseKeys
1852
1930
  ]) : baseKeys;
@@ -1901,7 +1979,7 @@ function _unsupported_iterable_to_array$p(o, minLen) {
1901
1979
  }
1902
1980
  function allowValueOnceFilter(inputReadKey) {
1903
1981
  var visitedKeys = new Set();
1904
- var readKey = inputReadKey || MAP_IDENTITY;
1982
+ var readKey = inputReadKey !== null && inputReadKey !== void 0 ? inputReadKey : MAP_IDENTITY;
1905
1983
  var fn = function fn(x) {
1906
1984
  var key = readKey(x);
1907
1985
  if (!visitedKeys.has(key)) {
@@ -1915,6 +1993,14 @@ function allowValueOnceFilter(inputReadKey) {
1915
1993
  return fn;
1916
1994
  }
1917
1995
 
1996
+ function _array_like_to_array$x(arr, len) {
1997
+ if (len == null || len > arr.length) len = arr.length;
1998
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
1999
+ return arr2;
2000
+ }
2001
+ function _array_without_holes$m(arr) {
2002
+ if (Array.isArray(arr)) return _array_like_to_array$x(arr);
2003
+ }
1918
2004
  function _class_call_check$b(instance, Constructor) {
1919
2005
  if (!(instance instanceof Constructor)) {
1920
2006
  throw new TypeError("Cannot call a class as a function");
@@ -1933,10 +2019,27 @@ function _define_property$l(obj, key, value) {
1933
2019
  }
1934
2020
  return obj;
1935
2021
  }
2022
+ function _iterable_to_array$m(iter) {
2023
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
2024
+ }
2025
+ function _non_iterable_spread$m() {
2026
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
2027
+ }
2028
+ function _to_consumable_array$m(arr) {
2029
+ return _array_without_holes$m(arr) || _iterable_to_array$m(arr) || _unsupported_iterable_to_array$x(arr) || _non_iterable_spread$m();
2030
+ }
1936
2031
  function _type_of$k(obj) {
1937
2032
  "@swc/helpers - typeof";
1938
2033
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
1939
2034
  }
2035
+ function _unsupported_iterable_to_array$x(o, minLen) {
2036
+ if (!o) return;
2037
+ if (typeof o === "string") return _array_like_to_array$x(o, minLen);
2038
+ var n = Object.prototype.toString.call(o).slice(8, -1);
2039
+ if (n === "Object" && o.constructor) n = o.constructor.name;
2040
+ if (n === "Map" || n === "Set") return Array.from(n);
2041
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$x(o, minLen);
2042
+ }
1940
2043
  var DEFAULT_UNKNOWN_MODEL_TYPE_STRING = 'unknown';
1941
2044
  /**
1942
2045
  * Reads the `id` property from a {@link UniqueModel}.
@@ -1946,17 +2049,6 @@ var DEFAULT_UNKNOWN_MODEL_TYPE_STRING = 'unknown';
1946
2049
  */ var readUniqueModelKey = function readUniqueModelKey(model) {
1947
2050
  return model.id;
1948
2051
  };
1949
- /**
1950
- * Abstract base class for models identified by a unique {@link ModelKey}.
1951
- *
1952
- * Copies the `id` from the provided template during construction.
1953
- */ var AbstractUniqueModel = function AbstractUniqueModel(template) {
1954
- _class_call_check$b(this, AbstractUniqueModel);
1955
- _define_property$l(this, "id", void 0);
1956
- if (template) {
1957
- this.id = template.id;
1958
- }
1959
- };
1960
2052
  /**
1961
2053
  * Deduplicates an array of model keys using a Set.
1962
2054
  *
@@ -1969,7 +2061,7 @@ var DEFAULT_UNKNOWN_MODEL_TYPE_STRING = 'unknown';
1969
2061
  * // result: ['a', 'b', 'c']
1970
2062
  * ```
1971
2063
  */ function uniqueKeys(keys) {
1972
- return Array.from(new Set(keys));
2064
+ return _to_consumable_array$m(new Set(keys));
1973
2065
  }
1974
2066
  function uniqueModels(models) {
1975
2067
  var readKey = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : readUniqueModelKey;
@@ -1988,7 +2080,8 @@ function readModelKeysFromObjects(input, required, read) {
1988
2080
  * @param required - Whether keys are required
1989
2081
  * @param read - Function to extract keys from models
1990
2082
  * @returns Keys that appear in one array but not the other
1991
- */ function symmetricDifferenceWithModels(a, b, required, read) {
2083
+ */ // eslint-disable-next-line @typescript-eslint/max-params
2084
+ function symmetricDifferenceWithModels(a, b, required, read) {
1992
2085
  return symmetricDifferenceArray(readModelKeys(a, required, read), readModelKeys(b, required, read));
1993
2086
  }
1994
2087
  function removeModelsWithSameKey(input, model, read) {
@@ -2003,14 +2096,12 @@ function removeModelsWithKey(input, key) {
2003
2096
  }
2004
2097
  function makeModelMap(input, read) {
2005
2098
  var map = new Map();
2006
- if (input) {
2007
- input.forEach(function(x) {
2008
- return map.set(readModelKey(x, {
2009
- required: false,
2010
- read: read
2011
- }), x);
2012
- });
2013
- }
2099
+ input.forEach(function(x) {
2100
+ return map.set(readModelKey(x, {
2101
+ required: false,
2102
+ read: read
2103
+ }), x);
2104
+ });
2014
2105
  return map;
2015
2106
  }
2016
2107
  /**
@@ -2039,6 +2130,9 @@ function makeModelMap(input, read) {
2039
2130
  *
2040
2131
  * @param input - A model object or a model key string
2041
2132
  * @param config - Handlers for model and key cases, plus whether input is required
2133
+ * @param config.useModel - handler invoked when the input is a model object; if omitted, the model's key is passed to `useKey` instead
2134
+ * @param config.useKey - handler invoked when the input is a model key string
2135
+ * @param config.required - when true, throws an error if the input is nullish; defaults to false
2042
2136
  * @returns The result of the matched handler, or undefined if input is nullish and not required
2043
2137
  * @throws Error if `required` is true and input is nullish
2044
2138
  */ function useModelOrKey(input, param) {
@@ -2051,7 +2145,7 @@ function makeModelMap(input, read) {
2051
2145
  result = useModel ? useModel(input) : useKey(readModelKey(input));
2052
2146
  }
2053
2147
  } else if (required) {
2054
- throwKeyIsRequired();
2148
+ throw new Error('input is required');
2055
2149
  }
2056
2150
  return result;
2057
2151
  }
@@ -2183,34 +2277,48 @@ function readModelKey(input) {
2183
2277
  };
2184
2278
  };
2185
2279
  }
2280
+ // MARK: COMPAT
2281
+ /**
2282
+ * Abstract base class for models identified by a unique {@link ModelKey}.
2283
+ *
2284
+ * Copies the `id` from the provided template during construction.
2285
+ *
2286
+ * @deprecated Use {@link UniqueModel} instead.
2287
+ */ var AbstractUniqueModel = function AbstractUniqueModel(template) {
2288
+ _class_call_check$b(this, AbstractUniqueModel);
2289
+ _define_property$l(this, "id", void 0);
2290
+ this.id = template.id;
2291
+ }
2292
+ ;
2186
2293
 
2187
- function _array_like_to_array$o(arr, len) {
2294
+ function _array_like_to_array$w(arr, len) {
2188
2295
  if (len == null || len > arr.length) len = arr.length;
2189
2296
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
2190
2297
  return arr2;
2191
2298
  }
2192
- function _array_without_holes$9(arr) {
2193
- if (Array.isArray(arr)) return _array_like_to_array$o(arr);
2299
+ function _array_without_holes$l(arr) {
2300
+ if (Array.isArray(arr)) return _array_like_to_array$w(arr);
2194
2301
  }
2195
- function _iterable_to_array$9(iter) {
2302
+ function _iterable_to_array$l(iter) {
2196
2303
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
2197
2304
  }
2198
- function _non_iterable_spread$9() {
2305
+ function _non_iterable_spread$l() {
2199
2306
  throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
2200
2307
  }
2201
- function _to_consumable_array$9(arr) {
2202
- return _array_without_holes$9(arr) || _iterable_to_array$9(arr) || _unsupported_iterable_to_array$o(arr) || _non_iterable_spread$9();
2308
+ function _to_consumable_array$l(arr) {
2309
+ return _array_without_holes$l(arr) || _iterable_to_array$l(arr) || _unsupported_iterable_to_array$w(arr) || _non_iterable_spread$l();
2203
2310
  }
2204
- function _unsupported_iterable_to_array$o(o, minLen) {
2311
+ function _unsupported_iterable_to_array$w(o, minLen) {
2205
2312
  if (!o) return;
2206
- if (typeof o === "string") return _array_like_to_array$o(o, minLen);
2313
+ if (typeof o === "string") return _array_like_to_array$w(o, minLen);
2207
2314
  var n = Object.prototype.toString.call(o).slice(8, -1);
2208
2315
  if (n === "Object" && o.constructor) n = o.constructor.name;
2209
2316
  if (n === "Map" || n === "Set") return Array.from(n);
2210
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$o(o, minLen);
2317
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$w(o, minLen);
2211
2318
  }
2212
2319
  /**
2213
2320
  * Wraps a key reading function to ensure that empty string keys are not used in boolean key arrays.
2321
+ *
2214
2322
  * @param readKey - The key reading function to wrap
2215
2323
  * @returns A wrapped key reading function that throws an error if an empty string is used as a key
2216
2324
  */ function readBooleanKeySafetyWrap(readKey) {
@@ -2225,6 +2333,7 @@ function _unsupported_iterable_to_array$o(o, minLen) {
2225
2333
  }
2226
2334
  /**
2227
2335
  * Checks if a boolean key array evaluates to false (empty or undefined).
2336
+ *
2228
2337
  * @param value - The boolean key array to check
2229
2338
  * @returns True if the array is empty or undefined, false otherwise
2230
2339
  */ function isFalseBooleanKeyArray(value) {
@@ -2232,6 +2341,7 @@ function _unsupported_iterable_to_array$o(o, minLen) {
2232
2341
  }
2233
2342
  /**
2234
2343
  * Checks if a boolean key array evaluates to true (has at least one value).
2344
+ *
2235
2345
  * @param value - The boolean key array to check
2236
2346
  * @returns True if the array has at least one value, false otherwise
2237
2347
  */ function isTrueBooleanKeyArray(value) {
@@ -2239,12 +2349,13 @@ function _unsupported_iterable_to_array$o(o, minLen) {
2239
2349
  }
2240
2350
  /**
2241
2351
  * Inserts a value into a boolean key array, removing any existing values with the same key.
2352
+ *
2242
2353
  * @param array - The boolean key array to insert into
2243
2354
  * @param value - The value to insert
2244
2355
  * @param readKey - Function to extract the key from a value
2245
2356
  * @returns A new boolean key array with the value inserted
2246
2357
  */ function insertIntoBooleanKeyArray(array, value, readKey) {
2247
- return array ? _to_consumable_array$9(removeModelsWithSameKey(array, value, readBooleanKeySafetyWrap(readKey))).concat([
2358
+ return array ? _to_consumable_array$l(removeModelsWithSameKey(array, value, readBooleanKeySafetyWrap(readKey))).concat([
2248
2359
  value
2249
2360
  ]) : [
2250
2361
  value
@@ -2252,6 +2363,7 @@ function _unsupported_iterable_to_array$o(o, minLen) {
2252
2363
  }
2253
2364
  /**
2254
2365
  * Removes a value from a boolean key array based on its key.
2366
+ *
2255
2367
  * @param array - The boolean key array to remove from
2256
2368
  * @param value - The value to remove
2257
2369
  * @param readKey - Function to extract the key from a value
@@ -2261,6 +2373,7 @@ function _unsupported_iterable_to_array$o(o, minLen) {
2261
2373
  }
2262
2374
  /**
2263
2375
  * Removes values from a boolean key array that match the specified key.
2376
+ *
2264
2377
  * @param array - The boolean key array to remove from
2265
2378
  * @param key - The key to match for removal
2266
2379
  * @param readKey - Function to extract the key from a value
@@ -2270,6 +2383,7 @@ function _unsupported_iterable_to_array$o(o, minLen) {
2270
2383
  }
2271
2384
  /**
2272
2385
  * Creates a utility object with functions for working with boolean key arrays.
2386
+ *
2273
2387
  * @param readKey - Function to extract the key from a value
2274
2388
  * @returns An object with utility functions for boolean key arrays
2275
2389
  */ function booleanKeyArrayUtility(readKey) {
@@ -2307,6 +2421,14 @@ function _unsupported_iterable_to_array$o(o, minLen) {
2307
2421
  return x ? x : undefined;
2308
2422
  });
2309
2423
 
2424
+ function _array_like_to_array$v(arr, len) {
2425
+ if (len == null || len > arr.length) len = arr.length;
2426
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
2427
+ return arr2;
2428
+ }
2429
+ function _array_without_holes$k(arr) {
2430
+ if (Array.isArray(arr)) return _array_like_to_array$v(arr);
2431
+ }
2310
2432
  function _class_call_check$a(instance, Constructor) {
2311
2433
  if (!(instance instanceof Constructor)) {
2312
2434
  throw new TypeError("Cannot call a class as a function");
@@ -2338,6 +2460,23 @@ function _define_property$k(obj, key, value) {
2338
2460
  }
2339
2461
  return obj;
2340
2462
  }
2463
+ function _iterable_to_array$k(iter) {
2464
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
2465
+ }
2466
+ function _non_iterable_spread$k() {
2467
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
2468
+ }
2469
+ function _to_consumable_array$k(arr) {
2470
+ return _array_without_holes$k(arr) || _iterable_to_array$k(arr) || _unsupported_iterable_to_array$v(arr) || _non_iterable_spread$k();
2471
+ }
2472
+ function _unsupported_iterable_to_array$v(o, minLen) {
2473
+ if (!o) return;
2474
+ if (typeof o === "string") return _array_like_to_array$v(o, minLen);
2475
+ var n = Object.prototype.toString.call(o).slice(8, -1);
2476
+ if (n === "Object" && o.constructor) n = o.constructor.name;
2477
+ if (n === "Map" || n === "Set") return Array.from(n);
2478
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$v(o, minLen);
2479
+ }
2341
2480
  /**
2342
2481
  * Set that is implemented internally using a Map, and input values have their keys read.
2343
2482
  *
@@ -2518,7 +2657,7 @@ function _define_property$k(obj, key, value) {
2518
2657
  * @returns An array of all stored values.
2519
2658
  */ key: "valuesArray",
2520
2659
  value: function valuesArray() {
2521
- return Array.from(this._map.values());
2660
+ return _to_consumable_array$k(this._map.values());
2522
2661
  }
2523
2662
  },
2524
2663
  {
@@ -2532,30 +2671,30 @@ function _define_property$k(obj, key, value) {
2532
2671
  }
2533
2672
  ();
2534
2673
 
2535
- function _array_like_to_array$n(arr, len) {
2674
+ function _array_like_to_array$u(arr, len) {
2536
2675
  if (len == null || len > arr.length) len = arr.length;
2537
2676
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
2538
2677
  return arr2;
2539
2678
  }
2540
- function _array_without_holes$8(arr) {
2541
- if (Array.isArray(arr)) return _array_like_to_array$n(arr);
2679
+ function _array_without_holes$j(arr) {
2680
+ if (Array.isArray(arr)) return _array_like_to_array$u(arr);
2542
2681
  }
2543
- function _iterable_to_array$8(iter) {
2682
+ function _iterable_to_array$j(iter) {
2544
2683
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
2545
2684
  }
2546
- function _non_iterable_spread$8() {
2685
+ function _non_iterable_spread$j() {
2547
2686
  throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
2548
2687
  }
2549
- function _to_consumable_array$8(arr) {
2550
- return _array_without_holes$8(arr) || _iterable_to_array$8(arr) || _unsupported_iterable_to_array$n(arr) || _non_iterable_spread$8();
2688
+ function _to_consumable_array$j(arr) {
2689
+ return _array_without_holes$j(arr) || _iterable_to_array$j(arr) || _unsupported_iterable_to_array$u(arr) || _non_iterable_spread$j();
2551
2690
  }
2552
- function _unsupported_iterable_to_array$n(o, minLen) {
2691
+ function _unsupported_iterable_to_array$u(o, minLen) {
2553
2692
  if (!o) return;
2554
- if (typeof o === "string") return _array_like_to_array$n(o, minLen);
2693
+ if (typeof o === "string") return _array_like_to_array$u(o, minLen);
2555
2694
  var n = Object.prototype.toString.call(o).slice(8, -1);
2556
2695
  if (n === "Object" && o.constructor) n = o.constructor.name;
2557
2696
  if (n === "Map" || n === "Set") return Array.from(n);
2558
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$n(o, minLen);
2697
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$u(o, minLen);
2559
2698
  }
2560
2699
  var SORT_VALUE_LESS_THAN = -1;
2561
2700
  var SORT_VALUE_GREATER_THAN = 1;
@@ -2569,6 +2708,10 @@ function reverseCompareFn(compareFn) {
2569
2708
  * Convenience function that reverses the order of the sorted values if the order is specified descending.
2570
2709
  *
2571
2710
  * The input comparison function must be in ascending order.
2711
+ *
2712
+ * @param ascendingCompareFn - a comparison function that sorts in ascending order
2713
+ * @param order - the desired sort direction; defaults to 'asc'
2714
+ * @returns the original function if ascending, or a reversed version if descending
2572
2715
  */ function compareFnOrder(ascendingCompareFn) {
2573
2716
  var order = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 'asc';
2574
2717
  return order === 'asc' ? ascendingCompareFn : reverseCompareFn(ascendingCompareFn);
@@ -2607,7 +2750,7 @@ function reverseCompareFn(compareFn) {
2607
2750
  var doSort = sortWith != null;
2608
2751
  var result = values;
2609
2752
  if (alwaysReturnCopy || sortOnCopy && doSort) {
2610
- result = _to_consumable_array$8(values);
2753
+ result = _to_consumable_array$j(values);
2611
2754
  }
2612
2755
  if (doSort) {
2613
2756
  result = result.sort(sortWith);
@@ -2634,6 +2777,10 @@ function reverseCompareFn(compareFn) {
2634
2777
  }
2635
2778
  /**
2636
2779
  * Creates a SortValuesFunction using the input. If the input is not defined, or it's sort function is not defined, then returns mapIdentityFunction().
2780
+ *
2781
+ * @param sortRef - optional reference containing the sort comparison function
2782
+ * @param sortOnCopyDefault - whether to sort on a copy by default
2783
+ * @returns a sort function that sorts arrays, or the identity function if no sort comparison is configured
2637
2784
  */ function sortValuesFunctionOrMapIdentityWithSortRef(sortRef, sortOnCopyDefault) {
2638
2785
  var sortWith = sortRef === null || sortRef === void 0 ? void 0 : sortRef.sortWith;
2639
2786
  return sortWith ? sortValuesFunctionWithSortRef(sortRef, sortOnCopyDefault) : mapIdentityFunction();
@@ -2683,21 +2830,21 @@ function reverseCompareFn(compareFn) {
2683
2830
  };
2684
2831
  }
2685
2832
 
2686
- function _array_like_to_array$m(arr, len) {
2833
+ function _array_like_to_array$t(arr, len) {
2687
2834
  if (len == null || len > arr.length) len = arr.length;
2688
2835
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
2689
2836
  return arr2;
2690
2837
  }
2691
- function _array_with_holes$j(arr) {
2838
+ function _array_with_holes$k(arr) {
2692
2839
  if (Array.isArray(arr)) return arr;
2693
2840
  }
2694
- function _array_without_holes$7(arr) {
2695
- if (Array.isArray(arr)) return _array_like_to_array$m(arr);
2841
+ function _array_without_holes$i(arr) {
2842
+ if (Array.isArray(arr)) return _array_like_to_array$t(arr);
2696
2843
  }
2697
- function _iterable_to_array$7(iter) {
2844
+ function _iterable_to_array$i(iter) {
2698
2845
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
2699
2846
  }
2700
- function _iterable_to_array_limit$j(arr, i) {
2847
+ function _iterable_to_array_limit$k(arr, i) {
2701
2848
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
2702
2849
  if (_i == null) return;
2703
2850
  var _arr = [];
@@ -2721,25 +2868,25 @@ function _iterable_to_array_limit$j(arr, i) {
2721
2868
  }
2722
2869
  return _arr;
2723
2870
  }
2724
- function _non_iterable_rest$j() {
2871
+ function _non_iterable_rest$k() {
2725
2872
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
2726
2873
  }
2727
- function _non_iterable_spread$7() {
2874
+ function _non_iterable_spread$i() {
2728
2875
  throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
2729
2876
  }
2730
- function _sliced_to_array$j(arr, i) {
2731
- return _array_with_holes$j(arr) || _iterable_to_array_limit$j(arr, i) || _unsupported_iterable_to_array$m(arr, i) || _non_iterable_rest$j();
2877
+ function _sliced_to_array$k(arr, i) {
2878
+ return _array_with_holes$k(arr) || _iterable_to_array_limit$k(arr, i) || _unsupported_iterable_to_array$t(arr, i) || _non_iterable_rest$k();
2732
2879
  }
2733
- function _to_consumable_array$7(arr) {
2734
- return _array_without_holes$7(arr) || _iterable_to_array$7(arr) || _unsupported_iterable_to_array$m(arr) || _non_iterable_spread$7();
2880
+ function _to_consumable_array$i(arr) {
2881
+ return _array_without_holes$i(arr) || _iterable_to_array$i(arr) || _unsupported_iterable_to_array$t(arr) || _non_iterable_spread$i();
2735
2882
  }
2736
- function _unsupported_iterable_to_array$m(o, minLen) {
2883
+ function _unsupported_iterable_to_array$t(o, minLen) {
2737
2884
  if (!o) return;
2738
- if (typeof o === "string") return _array_like_to_array$m(o, minLen);
2885
+ if (typeof o === "string") return _array_like_to_array$t(o, minLen);
2739
2886
  var n = Object.prototype.toString.call(o).slice(8, -1);
2740
2887
  if (n === "Object" && o.constructor) n = o.constructor.name;
2741
2888
  if (n === "Map" || n === "Set") return Array.from(n);
2742
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$m(o, minLen);
2889
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$t(o, minLen);
2743
2890
  }
2744
2891
  /**
2745
2892
  * Splits the input array into batches of a maximum size. Each batch carries its zero-based index as `.i`.
@@ -2755,7 +2902,7 @@ function _unsupported_iterable_to_array$m(o, minLen) {
2755
2902
  * // result[1] => ['c', 'd'], result[1].i => 1
2756
2903
  * ```
2757
2904
  */ function batch(input, batchSize) {
2758
- var array = _to_consumable_array$7(input); // Copy array before splicing it.
2905
+ var array = _to_consumable_array$i(input); // Copy array before splicing it.
2759
2906
  var batches = [];
2760
2907
  var i = 0;
2761
2908
  while(array.length > 0){
@@ -2822,6 +2969,9 @@ function _unsupported_iterable_to_array$m(o, minLen) {
2822
2969
  * @param orderKeys - Keys defining the desired order.
2823
2970
  * @param values - Values to reorder.
2824
2971
  * @param params - Configuration including key reader, duplicate handling, and new-item behavior.
2972
+ * @param params.readKey - function that extracts the grouping key from each value
2973
+ * @param params.chooseRetainedValue - function that selects which value to keep when duplicates share the same key; defaults to keeping the first
2974
+ * @param params.excludeNewItems - when true, values whose keys are not in `orderKeys` are omitted from the result; defaults to false
2825
2975
  * @returns The reordered values array.
2826
2976
  *
2827
2977
  * @example
@@ -2855,10 +3005,9 @@ function _unsupported_iterable_to_array$m(o, minLen) {
2855
3005
  newItems.push(getValue());
2856
3006
  }
2857
3007
  });
2858
- var result = _to_consumable_array$7(restoredOrder).concat(_to_consumable_array$7(newItems)).filter(function(x) {
3008
+ return _to_consumable_array$i(restoredOrder).concat(_to_consumable_array$i(newItems)).filter(function(x) {
2859
3009
  return x !== undefined;
2860
3010
  }); // Allow null to be passed.
2861
- return result;
2862
3011
  }
2863
3012
  /**
2864
3013
  * Compares two arrays by pairing items with matching keys and checking equality.
@@ -2867,20 +3016,22 @@ function _unsupported_iterable_to_array$m(o, minLen) {
2867
3016
  * @param a - First array to compare.
2868
3017
  * @param b - Second array to compare.
2869
3018
  * @param params - Key extraction and equality functions.
3019
+ * @param params.groupKeyFn - function that extracts a grouping key from each element for pairing
3020
+ * @param params.isEqual - predicate that returns true when two paired elements are considered equal
2870
3021
  * @returns `true` if the array contents differ.
2871
3022
  */ function arrayContentsDiffer() {
2872
3023
  var a = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [], b = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [], _ref = arguments.length > 2 ? arguments[2] : void 0, groupKeyFn = _ref.groupKeyFn, isEqual = _ref.isEqual;
2873
3024
  var areDifferent = false;
2874
3025
  if (a.length === b.length) {
2875
- var pairs = pairGroupValues(_to_consumable_array$7(a).concat(_to_consumable_array$7(b)), groupKeyFn);
2876
- if (pairs.unpaired) {
3026
+ var pairs = pairGroupValues(_to_consumable_array$i(a).concat(_to_consumable_array$i(b)), groupKeyFn);
3027
+ if (pairs.unpaired.length > 0) {
2877
3028
  // Any unpaired items means there is a difference.
2878
3029
  areDifferent = true;
2879
3030
  } else {
2880
3031
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
2881
3032
  try {
2882
3033
  for(var _iterator = pairs.pairs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
2883
- var _step_value = _sliced_to_array$j(_step.value, 2), aa = _step_value[0], bb = _step_value[1];
3034
+ var _step_value = _sliced_to_array$k(_step.value, 2), aa = _step_value[0], bb = _step_value[1];
2884
3035
  // If any item is not the same, break.
2885
3036
  if (!isEqual(aa, bb)) {
2886
3037
  areDifferent = true;
@@ -2950,12 +3101,13 @@ function _unsupported_iterable_to_array$m(o, minLen) {
2950
3101
  * @param checkInclusion - Returns `true` for values that should be included.
2951
3102
  * @returns A {@link SeparateResult} with included and excluded arrays.
2952
3103
  */ function separateValues(values, checkInclusion) {
3104
+ var _result_in, _result_out;
2953
3105
  var result = groupValues(values, function(x) {
2954
3106
  return checkInclusion(x) ? 'in' : 'out';
2955
3107
  });
2956
3108
  return {
2957
- included: result.in || [],
2958
- excluded: result.out || []
3109
+ included: (_result_in = result.in) !== null && _result_in !== void 0 ? _result_in : [],
3110
+ excluded: (_result_out = result.out) !== null && _result_out !== void 0 ? _result_out : []
2959
3111
  };
2960
3112
  }
2961
3113
  function groupValues(values, groupKeyFn) {
@@ -2980,15 +3132,21 @@ function makeValuesGroupMap(values, groupKeyFn) {
2980
3132
  return map;
2981
3133
  }
2982
3134
 
2983
- function _array_like_to_array$l(arr, len) {
3135
+ function _array_like_to_array$s(arr, len) {
2984
3136
  if (len == null || len > arr.length) len = arr.length;
2985
3137
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
2986
3138
  return arr2;
2987
3139
  }
2988
- function _array_with_holes$i(arr) {
3140
+ function _array_with_holes$j(arr) {
2989
3141
  if (Array.isArray(arr)) return arr;
2990
3142
  }
2991
- function _iterable_to_array_limit$i(arr, i) {
3143
+ function _array_without_holes$h(arr) {
3144
+ if (Array.isArray(arr)) return _array_like_to_array$s(arr);
3145
+ }
3146
+ function _iterable_to_array$h(iter) {
3147
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
3148
+ }
3149
+ function _iterable_to_array_limit$j(arr, i) {
2992
3150
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
2993
3151
  if (_i == null) return;
2994
3152
  var _arr = [];
@@ -3012,19 +3170,25 @@ function _iterable_to_array_limit$i(arr, i) {
3012
3170
  }
3013
3171
  return _arr;
3014
3172
  }
3015
- function _non_iterable_rest$i() {
3173
+ function _non_iterable_rest$j() {
3016
3174
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
3017
3175
  }
3018
- function _sliced_to_array$i(arr, i) {
3019
- return _array_with_holes$i(arr) || _iterable_to_array_limit$i(arr, i) || _unsupported_iterable_to_array$l(arr, i) || _non_iterable_rest$i();
3176
+ function _non_iterable_spread$h() {
3177
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
3020
3178
  }
3021
- function _unsupported_iterable_to_array$l(o, minLen) {
3179
+ function _sliced_to_array$j(arr, i) {
3180
+ return _array_with_holes$j(arr) || _iterable_to_array_limit$j(arr, i) || _unsupported_iterable_to_array$s(arr, i) || _non_iterable_rest$j();
3181
+ }
3182
+ function _to_consumable_array$h(arr) {
3183
+ return _array_without_holes$h(arr) || _iterable_to_array$h(arr) || _unsupported_iterable_to_array$s(arr) || _non_iterable_spread$h();
3184
+ }
3185
+ function _unsupported_iterable_to_array$s(o, minLen) {
3022
3186
  if (!o) return;
3023
- if (typeof o === "string") return _array_like_to_array$l(o, minLen);
3187
+ if (typeof o === "string") return _array_like_to_array$s(o, minLen);
3024
3188
  var n = Object.prototype.toString.call(o).slice(8, -1);
3025
3189
  if (n === "Object" && o.constructor) n = o.constructor.name;
3026
3190
  if (n === "Map" || n === "Set") return Array.from(n);
3027
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$l(o, minLen);
3191
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$s(o, minLen);
3028
3192
  }
3029
3193
  /**
3030
3194
  * Combines multiple Maps into a single Map. Later maps override earlier values for the same key.
@@ -3062,7 +3226,7 @@ function _unsupported_iterable_to_array$l(o, minLen) {
3062
3226
  * @param map - The map to convert
3063
3227
  * @returns An array of [key, value] tuples
3064
3228
  */ function mapToTuples(map) {
3065
- return Array.from(map.entries());
3229
+ return _to_consumable_array$h(map.entries());
3066
3230
  }
3067
3231
  /**
3068
3232
  * Expands a Map with array values into individual key/value tuples.
@@ -3080,7 +3244,7 @@ function _unsupported_iterable_to_array$l(o, minLen) {
3080
3244
  */ function expandArrayValueTuples(values) {
3081
3245
  var tuples = [];
3082
3246
  values.forEach(function(param) {
3083
- var _param = _sliced_to_array$i(param, 2), key = _param[0], _$values = _param[1];
3247
+ var _param = _sliced_to_array$j(param, 2), key = _param[0], _$values = _param[1];
3084
3248
  useIterableOrValue(_$values, function(value) {
3085
3249
  tuples.push([
3086
3250
  key,
@@ -3300,10 +3464,8 @@ function _unsupported_iterable_to_array$l(o, minLen) {
3300
3464
  return function(input) {
3301
3465
  if (typeof input === 'number') {
3302
3466
  return decoder(input);
3303
- } else if (input != null) {
3304
- return encodeBitwiseSet(input);
3305
3467
  } else {
3306
- return 0;
3468
+ return encodeBitwiseSet(input);
3307
3469
  }
3308
3470
  };
3309
3471
  }
@@ -3346,10 +3508,8 @@ function _unsupported_iterable_to_array$l(o, minLen) {
3346
3508
  return function(input) {
3347
3509
  if (typeof input === 'number') {
3348
3510
  return decoder(input);
3349
- } else if (input != null) {
3350
- return encoder(input);
3351
3511
  } else {
3352
- return 0;
3512
+ return encoder(input);
3353
3513
  }
3354
3514
  };
3355
3515
  }
@@ -3449,7 +3609,6 @@ function getValueFromGetter(input, args) {
3449
3609
  * @returns An ObjectCopyFactory for the input
3450
3610
  */ function asObjectCopyFactory(input, copyFunction) {
3451
3611
  if ((typeof input === "undefined" ? "undefined" : _type_of$j(input)) === 'object') {
3452
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
3453
3612
  return objectCopyFactory(input, copyFunction);
3454
3613
  } else {
3455
3614
  return asGetter(input);
@@ -3561,8 +3720,7 @@ function makeWithFactoryInput(factory, input) {
3561
3720
  } else {
3562
3721
  // when fencePosts is true, we're wrapping to the nearest fence post, meaning wraps are one value longer increased on that side.
3563
3722
  var fencePostOffset = fencePosts ? input < min ? 1 : -1 : 0;
3564
- var wrappedValue = ((input - min) % distance + distance) % distance + min + fencePostOffset;
3565
- return wrappedValue;
3723
+ return ((input - min) % distance + distance) % distance + min + fencePostOffset;
3566
3724
  }
3567
3725
  };
3568
3726
  fn._wrap = wrapNumberFunctionConfig;
@@ -3700,11 +3858,14 @@ function _type_of$i(obj) {
3700
3858
  var y = Math.ceil(to);
3701
3859
  var totalNumbers = y - x + 1;
3702
3860
  var sum = x + y;
3703
- var sumOfIntegers = sum / 2 * totalNumbers;
3704
- return sumOfIntegers;
3861
+ return sum / 2 * totalNumbers;
3705
3862
  }
3706
3863
  /**
3707
3864
  * A {@link SortCompareFunction} for numbers that sorts in ascending order.
3865
+ *
3866
+ * @param a - the first number to compare
3867
+ * @param b - the second number to compare
3868
+ * @returns a negative value if `a` is less than `b`, zero if equal, or a positive value if `a` is greater
3708
3869
  */ var sortCompareNumberFunction = function sortCompareNumberFunction(a, b) {
3709
3870
  return a - b;
3710
3871
  };
@@ -4586,7 +4747,7 @@ function indexRangeCheckFunctionConfigToIndexRange(param) {
4586
4747
  var indexRange = param.indexRange, inclusiveMaxIndex = param.inclusiveMaxIndex;
4587
4748
  if (inclusiveMaxIndex) {
4588
4749
  var minIndex = indexRange.minIndex, maxIndexInput = indexRange.maxIndex;
4589
- var maxIndex = inclusiveMaxIndex ? maxIndexInput + 1 : maxIndexInput;
4750
+ var maxIndex = maxIndexInput + 1;
4590
4751
  return {
4591
4752
  minIndex: minIndex,
4592
4753
  maxIndex: maxIndex
@@ -4747,7 +4908,8 @@ function indexRangeCheckFunctionConfigToIndexRange(param) {
4747
4908
  * @param step - number of steps to take (positive or negative); defaults to 1
4748
4909
  * @param wrapAround - whether to wrap out-of-bound results; defaults to false
4749
4910
  * @returns the resulting index, or undefined if out of bounds without wrapping
4750
- */ function stepsFromIndex(range, startIndex) {
4911
+ */ // eslint-disable-next-line @typescript-eslint/max-params
4912
+ function stepsFromIndex(range, startIndex) {
4751
4913
  var step = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 1, wrapAround = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;
4752
4914
  return stepsFromIndexFunction({
4753
4915
  range: range
@@ -4851,11 +5013,11 @@ function indexRangeCheckFunctionConfigToIndexRange(param) {
4851
5013
  *
4852
5014
  * If order is irrelevant, use filterValuesByDistanceNoOrder() instead.
4853
5015
  *
4854
- * @param input - The array of values to filter
4855
- * @param minDistance - The minimum distance required between values
4856
- * @param getValue - Function that extracts a numeric value from each item for distance comparison
5016
+ * @param _input - The array of values to filter
5017
+ * @param _minDistance - The minimum distance required between values
5018
+ * @param _getValue - Function that extracts a numeric value from each item for distance comparison
4857
5019
  * @returns A filtered array with only values that are at least minDistance apart
4858
- */ function filterValuesByDistance(input, minDistance, getValue) {
5020
+ */ function filterValuesByDistance(_input, _minDistance, _getValue) {
4859
5021
  // TODO(FUTURE): Implement if needed.
4860
5022
  throw new Error('Incomplete implementation!');
4861
5023
  }
@@ -4926,7 +5088,8 @@ function indexRangeCheckFunctionConfigToIndexRange(param) {
4926
5088
  * @param compare - AscendingSortCompareFunction to compare two values to determine which is the best fit
4927
5089
  * @param updateNonBestFit - Function that transforms non-best-fit items
4928
5090
  * @returns A new array with only the best fit item and transformed non-best-fit items
4929
- */ function makeBestFit(input, filter, compare, updateNonBestFit) {
5091
+ */ // eslint-disable-next-line @typescript-eslint/max-params
5092
+ function makeBestFit(input, filter, compare, updateNonBestFit) {
4930
5093
  return applyBestFit(copyArray(input), filter, compare, updateNonBestFit);
4931
5094
  }
4932
5095
  /**
@@ -4940,7 +5103,8 @@ function indexRangeCheckFunctionConfigToIndexRange(param) {
4940
5103
  * @param compare - AscendingSortCompareFunction to compare two values to determine which is the best fit
4941
5104
  * @param updateNonBestFit - Function that transforms non-best-fit items
4942
5105
  * @returns The modified input array with only the best fit item and transformed non-best-fit items
4943
- */ function applyBestFit(input, filter, compare, updateNonBestFit) {
5106
+ */ // eslint-disable-next-line @typescript-eslint/max-params
5107
+ function applyBestFit(input, filter, compare, updateNonBestFit) {
4944
5108
  var matchIndexSet = findToIndexSet(input, filter);
4945
5109
  if (matchIndexSet.length > 1) {
4946
5110
  var expansion = expandIndexSet(input, matchIndexSet);
@@ -5029,7 +5193,8 @@ function terminatingFactoryFromArray(array, terminatingValue) {
5029
5193
  * @param wrapAround - Whether to wrap around to the beginning of the array if the found value is at or near the last index.
5030
5194
  * @param steps - Number of steps forward from the found index. Defaults to 1.
5031
5195
  * @returns The value at the next index, or undefined if no match is found or no next value exists.
5032
- */ function findNext(array, find) {
5196
+ */ // eslint-disable-next-line @typescript-eslint/max-params
5197
+ function findNext(array, find) {
5033
5198
  var wrapAround = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false, steps = arguments.length > 3 ? arguments[3] : void 0;
5034
5199
  var result;
5035
5200
  if (array) {
@@ -5054,7 +5219,8 @@ function terminatingFactoryFromArray(array, terminatingValue) {
5054
5219
  * @param wrapAround - Whether to wrap around when stepping past the end of the array.
5055
5220
  * @param steps - Number of steps forward from the current index.
5056
5221
  * @returns The computed next index, or undefined if the input index is out of bounds.
5057
- */ function getArrayNextIndex(array, index) {
5222
+ */ // eslint-disable-next-line @typescript-eslint/max-params
5223
+ function getArrayNextIndex(array, index) {
5058
5224
  var wrapAround = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false, steps = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : 1;
5059
5225
  var nextIndex;
5060
5226
  var arrayLength = array.length;
@@ -5234,12 +5400,12 @@ function arrayToObject(values, keyFn) {
5234
5400
  * @param readKey - function to extract a key from an existing item
5235
5401
  * @param generateFn - function to create a new item for a key not found in existing items
5236
5402
  * @returns an array of items corresponding to each input key, in the same order
5237
- */ function generateIfDoesNotExist(keys, existing, readKey, generateFn) {
5403
+ */ // eslint-disable-next-line @typescript-eslint/max-params
5404
+ function generateIfDoesNotExist(keys, existing, readKey, generateFn) {
5238
5405
  var map = arrayToMap(existing, readKey);
5239
5406
  return keys.map(function(x) {
5240
5407
  var _map_get;
5241
- var value = (_map_get = map.get(x)) !== null && _map_get !== void 0 ? _map_get : generateFn(x);
5242
- return value;
5408
+ return (_map_get = map.get(x)) !== null && _map_get !== void 0 ? _map_get : generateFn(x);
5243
5409
  });
5244
5410
  }
5245
5411
 
@@ -5270,8 +5436,7 @@ function arrayToObject(values, keyFn) {
5270
5436
  return 0;
5271
5437
  } else {
5272
5438
  var random = Math.random();
5273
- var index = Math.round(random * (values.length - 1));
5274
- return index;
5439
+ return Math.round(random * (values.length - 1));
5275
5440
  }
5276
5441
  }
5277
5442
  /**
@@ -5607,6 +5772,7 @@ function caseInsensitiveString(input) {
5607
5772
 
5608
5773
  /**
5609
5774
  * Trims leading and trailing whitespace from a string.
5775
+ *
5610
5776
  * @param input The string to trim.
5611
5777
  * @returns The trimmed string.
5612
5778
  */ function stringTrimFunction(input) {
@@ -5614,6 +5780,7 @@ function caseInsensitiveString(input) {
5614
5780
  }
5615
5781
  /**
5616
5782
  * Converts a string to uppercase.
5783
+ *
5617
5784
  * @param input The string to convert.
5618
5785
  * @returns The uppercase string.
5619
5786
  */ function stringToUppercaseFunction(input) {
@@ -5621,6 +5788,7 @@ function caseInsensitiveString(input) {
5621
5788
  }
5622
5789
  /**
5623
5790
  * Converts a string to lowercase.
5791
+ *
5624
5792
  * @param input The string to convert.
5625
5793
  * @returns The lowercase string.
5626
5794
  */ function stringToLowercaseFunction(input) {
@@ -5682,9 +5850,7 @@ function caseInsensitiveString(input) {
5682
5850
  transform = stringTrimFunction;
5683
5851
  }
5684
5852
  }
5685
- if (transform == null) {
5686
- transform = MAP_IDENTITY;
5687
- }
5853
+ transform !== null && transform !== void 0 ? transform : transform = MAP_IDENTITY;
5688
5854
  return transform;
5689
5855
  }
5690
5856
  /**
@@ -5698,6 +5864,7 @@ function caseInsensitiveString(input) {
5698
5864
  }
5699
5865
  /**
5700
5866
  * Creates a function that adds a configured prefix to the input string if it does not exist on that string.
5867
+ *
5701
5868
  * @param prefix The prefix to add.
5702
5869
  * @returns A function that adds the prefix to a string.
5703
5870
  */ function addPrefixFunction(prefix) {
@@ -5707,6 +5874,7 @@ function caseInsensitiveString(input) {
5707
5874
  }
5708
5875
  /**
5709
5876
  * Adds a suffix to a string if it does not already end with that suffix.
5877
+ *
5710
5878
  * @param suffix The suffix to add.
5711
5879
  * @param input The string to modify.
5712
5880
  * @returns The modified string.
@@ -5715,6 +5883,7 @@ function caseInsensitiveString(input) {
5715
5883
  }
5716
5884
  /**
5717
5885
  * Creates a function that adds a configured suffix to the input string if it does not exist on that string.
5886
+ *
5718
5887
  * @param suffix The suffix to add.
5719
5888
  * @returns A function that adds the suffix to a string.
5720
5889
  */ function addSuffixFunction(suffix) {
@@ -5724,6 +5893,7 @@ function caseInsensitiveString(input) {
5724
5893
  }
5725
5894
  /**
5726
5895
  * Pads the start of a string to a minimum length.
5896
+ *
5727
5897
  * @param minLength The minimum length of the string.
5728
5898
  * @param padCharacter The character to use for padding.
5729
5899
  * @returns A function that pads the start of a string.
@@ -5767,6 +5937,31 @@ function caseInsensitiveString(input) {
5767
5937
  }
5768
5938
  }
5769
5939
 
5940
+ function _array_like_to_array$r(arr, len) {
5941
+ if (len == null || len > arr.length) len = arr.length;
5942
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
5943
+ return arr2;
5944
+ }
5945
+ function _array_without_holes$g(arr) {
5946
+ if (Array.isArray(arr)) return _array_like_to_array$r(arr);
5947
+ }
5948
+ function _iterable_to_array$g(iter) {
5949
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
5950
+ }
5951
+ function _non_iterable_spread$g() {
5952
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
5953
+ }
5954
+ function _to_consumable_array$g(arr) {
5955
+ return _array_without_holes$g(arr) || _iterable_to_array$g(arr) || _unsupported_iterable_to_array$r(arr) || _non_iterable_spread$g();
5956
+ }
5957
+ function _unsupported_iterable_to_array$r(o, minLen) {
5958
+ if (!o) return;
5959
+ if (typeof o === "string") return _array_like_to_array$r(o, minLen);
5960
+ var n = Object.prototype.toString.call(o).slice(8, -1);
5961
+ if (n === "Object" && o.constructor) n = o.constructor.name;
5962
+ if (n === "Map" || n === "Set") return Array.from(n);
5963
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$r(o, minLen);
5964
+ }
5770
5965
  /**
5771
5966
  * Compares two string arrays and returns whether they contain different values, ignoring case.
5772
5967
  *
@@ -5822,7 +6017,7 @@ function caseInsensitiveString(input) {
5822
6017
  * @param values - iterable of strings to deduplicate
5823
6018
  * @returns an array of unique lowercase strings
5824
6019
  */ function uniqueCaseInsensitiveStrings(values) {
5825
- return Array.from(uniqueCaseInsensitiveStringsSet(values));
6020
+ return _to_consumable_array$g(uniqueCaseInsensitiveStringsSet(values));
5826
6021
  }
5827
6022
  /**
5828
6023
  * Returns a {@link Set} of unique lowercase strings from the input, compared case-insensitively.
@@ -6026,6 +6221,7 @@ function _is_native_reflect_construct$4() {
6026
6221
  key: "target",
6027
6222
  get: /**
6028
6223
  * Gets the target object that failed the assertion.
6224
+ *
6029
6225
  * @returns The target object
6030
6226
  */ function get() {
6031
6227
  return this._target;
@@ -6035,6 +6231,7 @@ function _is_native_reflect_construct$4() {
6035
6231
  key: "propertyKey",
6036
6232
  get: /**
6037
6233
  * Gets the property key that failed the assertion.
6234
+ *
6038
6235
  * @returns The property key as a string
6039
6236
  */ function get() {
6040
6237
  return this._property;
@@ -6053,6 +6250,7 @@ function _is_native_reflect_construct$4() {
6053
6250
  {
6054
6251
  /**
6055
6252
  * Handles an assertion issue by throwing an appropriate exception.
6253
+ *
6056
6254
  * @param error - The assertion issue to handle
6057
6255
  * @throws AssertionError
6058
6256
  */ key: "handle",
@@ -6063,6 +6261,7 @@ function _is_native_reflect_construct$4() {
6063
6261
  {
6064
6262
  /**
6065
6263
  * Builds an AssertionError from an AssertionIssue.
6264
+ *
6066
6265
  * @param error - The assertion issue to build an exception from
6067
6266
  * @returns A new AssertionError instance
6068
6267
  */ key: "buildException",
@@ -6075,12 +6274,14 @@ function _is_native_reflect_construct$4() {
6075
6274
  /**
6076
6275
  * Builds an error message string from an AssertionIssue.
6077
6276
  * Uses the custom message if provided, otherwise creates a default message.
6277
+ *
6078
6278
  * @param error - The assertion issue to build a message for
6079
6279
  * @returns The error message string
6080
6280
  */ key: "buildExceptionString",
6081
6281
  value: function buildExceptionString(error) {
6282
+ var _error_options;
6082
6283
  var message;
6083
- if (error.options && error.options.message) {
6284
+ if ((_error_options = error.options) === null || _error_options === void 0 ? void 0 : _error_options.message) {
6084
6285
  message = error.options.message;
6085
6286
  } else {
6086
6287
  message = "Assertion failed for property '" + error.propertyKey + '".';
@@ -6167,7 +6368,8 @@ function _object_spread$e(target) {
6167
6368
  options = _object_spread$e({}, defaultOptions, options);
6168
6369
  return this.makeSetPropertyDescriptorInterceptor(function(param) {
6169
6370
  var target = param.target, propertyKey = param.propertyKey, setValue = param.setValue;
6170
- var map = (options === null || options === void 0 ? void 0 : options.map) || function(x) {
6371
+ var _options_map;
6372
+ var map = (_options_map = options.map) !== null && _options_map !== void 0 ? _options_map : function(x) {
6171
6373
  return x;
6172
6374
  };
6173
6375
  return function(value) {
@@ -6305,9 +6507,9 @@ function _object_spread$e(target) {
6305
6507
  break;
6306
6508
  default:
6307
6509
  filter = function filter(value, i) {
6308
- return filters.findIndex(function(filter) {
6510
+ return !filters.some(function(filter) {
6309
6511
  return !filter(value, i);
6310
- }) === -1;
6512
+ });
6311
6513
  };
6312
6514
  break;
6313
6515
  }
@@ -6321,15 +6523,15 @@ function _object_spread$e(target) {
6321
6523
  * @returns The inverted filter function, or the original if invert is false
6322
6524
  */ var invertFilter = invertBooleanReturnFunction;
6323
6525
 
6324
- function _array_like_to_array$k(arr, len) {
6526
+ function _array_like_to_array$q(arr, len) {
6325
6527
  if (len == null || len > arr.length) len = arr.length;
6326
6528
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
6327
6529
  return arr2;
6328
6530
  }
6329
- function _array_with_holes$h(arr) {
6531
+ function _array_with_holes$i(arr) {
6330
6532
  if (Array.isArray(arr)) return arr;
6331
6533
  }
6332
- function _iterable_to_array_limit$h(arr, i) {
6534
+ function _iterable_to_array_limit$i(arr, i) {
6333
6535
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
6334
6536
  if (_i == null) return;
6335
6537
  var _arr = [];
@@ -6353,29 +6555,31 @@ function _iterable_to_array_limit$h(arr, i) {
6353
6555
  }
6354
6556
  return _arr;
6355
6557
  }
6356
- function _non_iterable_rest$h() {
6558
+ function _non_iterable_rest$i() {
6357
6559
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
6358
6560
  }
6359
- function _sliced_to_array$h(arr, i) {
6360
- return _array_with_holes$h(arr) || _iterable_to_array_limit$h(arr, i) || _unsupported_iterable_to_array$k(arr, i) || _non_iterable_rest$h();
6561
+ function _sliced_to_array$i(arr, i) {
6562
+ return _array_with_holes$i(arr) || _iterable_to_array_limit$i(arr, i) || _unsupported_iterable_to_array$q(arr, i) || _non_iterable_rest$i();
6361
6563
  }
6362
6564
  function _type_of$f(obj) {
6363
6565
  "@swc/helpers - typeof";
6364
6566
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
6365
6567
  }
6366
- function _unsupported_iterable_to_array$k(o, minLen) {
6568
+ function _unsupported_iterable_to_array$q(o, minLen) {
6367
6569
  if (!o) return;
6368
- if (typeof o === "string") return _array_like_to_array$k(o, minLen);
6570
+ if (typeof o === "string") return _array_like_to_array$q(o, minLen);
6369
6571
  var n = Object.prototype.toString.call(o).slice(8, -1);
6370
6572
  if (n === "Object" && o.constructor) n = o.constructor.name;
6371
6573
  if (n === "Map" || n === "Set") return Array.from(n);
6372
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$k(o, minLen);
6574
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$q(o, minLen);
6373
6575
  }
6374
6576
  /**
6375
6577
  * Iterates over filtered key/value tuples of an object and invokes a callback for each.
6376
6578
  *
6377
6579
  * @param obj - Object to iterate
6378
6580
  * @param config - Configuration with a forEach callback and optional filter
6581
+ * @param config.forEach - callback invoked for each key/value tuple that passes the filter
6582
+ * @param config.filter - optional filter controlling which key/value tuples are iterated; when omitted, all tuples are visited
6379
6583
  *
6380
6584
  * @example
6381
6585
  * ```ts
@@ -6511,43 +6715,43 @@ function _unsupported_iterable_to_array$k(o, minLen) {
6511
6715
  switch(type){
6512
6716
  case KeyValueTypleValueFilter.UNDEFINED:
6513
6717
  filterFn = function filterFn(param) {
6514
- var _param = _sliced_to_array$h(param, 2), x = _param[1];
6718
+ var _param = _sliced_to_array$i(param, 2), x = _param[1];
6515
6719
  return x !== undefined;
6516
6720
  };
6517
6721
  break;
6518
6722
  case KeyValueTypleValueFilter.NULL:
6519
6723
  filterFn = function filterFn(param) {
6520
- var _param = _sliced_to_array$h(param, 2), x = _param[1];
6724
+ var _param = _sliced_to_array$i(param, 2), x = _param[1];
6521
6725
  return x != null;
6522
6726
  };
6523
6727
  break;
6524
6728
  case KeyValueTypleValueFilter.FALSY:
6525
6729
  filterFn = function filterFn(param) {
6526
- var _param = _sliced_to_array$h(param, 2), x = _param[1];
6730
+ var _param = _sliced_to_array$i(param, 2), x = _param[1];
6527
6731
  return Boolean(x);
6528
6732
  };
6529
6733
  break;
6530
6734
  case KeyValueTypleValueFilter.EMPTY:
6531
6735
  filterFn = function filterFn(param) {
6532
- var _param = _sliced_to_array$h(param, 2), x = _param[1];
6736
+ var _param = _sliced_to_array$i(param, 2), x = _param[1];
6533
6737
  return hasValueOrNotEmpty(x);
6534
6738
  };
6535
6739
  break;
6536
6740
  case KeyValueTypleValueFilter.EMPTY_STRICT:
6537
6741
  filterFn = function filterFn(param) {
6538
- var _param = _sliced_to_array$h(param, 2), x = _param[1];
6742
+ var _param = _sliced_to_array$i(param, 2), x = _param[1];
6539
6743
  return hasValueOrNotEmptyObject(x);
6540
6744
  };
6541
6745
  break;
6542
6746
  case KeyValueTypleValueFilter.FALSY_AND_EMPTY:
6543
6747
  filterFn = function filterFn(param) {
6544
- var _param = _sliced_to_array$h(param, 2), x = _param[1];
6748
+ var _param = _sliced_to_array$i(param, 2), x = _param[1];
6545
6749
  return Boolean(x) && hasValueOrNotEmpty(x);
6546
6750
  };
6547
6751
  break;
6548
6752
  case KeyValueTypleValueFilter.FALSY_AND_EMPTY_STRICT:
6549
6753
  filterFn = function filterFn(param) {
6550
- var _param = _sliced_to_array$h(param, 2), x = _param[1];
6754
+ var _param = _sliced_to_array$i(param, 2), x = _param[1];
6551
6755
  return Boolean(x) && hasValueOrNotEmptyObject(x);
6552
6756
  };
6553
6757
  break;
@@ -6634,12 +6838,12 @@ function cachedGetter(factory) {
6634
6838
  };
6635
6839
  }
6636
6840
 
6637
- function _array_like_to_array$j(arr, len) {
6841
+ function _array_like_to_array$p(arr, len) {
6638
6842
  if (len == null || len > arr.length) len = arr.length;
6639
6843
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
6640
6844
  return arr2;
6641
6845
  }
6642
- function _array_with_holes$g(arr) {
6846
+ function _array_with_holes$h(arr) {
6643
6847
  if (Array.isArray(arr)) return arr;
6644
6848
  }
6645
6849
  function _define_property$h(obj, key, value) {
@@ -6655,7 +6859,7 @@ function _define_property$h(obj, key, value) {
6655
6859
  }
6656
6860
  return obj;
6657
6861
  }
6658
- function _iterable_to_array_limit$g(arr, i) {
6862
+ function _iterable_to_array_limit$h(arr, i) {
6659
6863
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
6660
6864
  if (_i == null) return;
6661
6865
  var _arr = [];
@@ -6679,7 +6883,7 @@ function _iterable_to_array_limit$g(arr, i) {
6679
6883
  }
6680
6884
  return _arr;
6681
6885
  }
6682
- function _non_iterable_rest$g() {
6886
+ function _non_iterable_rest$h() {
6683
6887
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
6684
6888
  }
6685
6889
  function _object_spread$d(target) {
@@ -6697,20 +6901,20 @@ function _object_spread$d(target) {
6697
6901
  }
6698
6902
  return target;
6699
6903
  }
6700
- function _sliced_to_array$g(arr, i) {
6701
- return _array_with_holes$g(arr) || _iterable_to_array_limit$g(arr, i) || _unsupported_iterable_to_array$j(arr, i) || _non_iterable_rest$g();
6904
+ function _sliced_to_array$h(arr, i) {
6905
+ return _array_with_holes$h(arr) || _iterable_to_array_limit$h(arr, i) || _unsupported_iterable_to_array$p(arr, i) || _non_iterable_rest$h();
6702
6906
  }
6703
6907
  function _type_of$e(obj) {
6704
6908
  "@swc/helpers - typeof";
6705
6909
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
6706
6910
  }
6707
- function _unsupported_iterable_to_array$j(o, minLen) {
6911
+ function _unsupported_iterable_to_array$p(o, minLen) {
6708
6912
  if (!o) return;
6709
- if (typeof o === "string") return _array_like_to_array$j(o, minLen);
6913
+ if (typeof o === "string") return _array_like_to_array$p(o, minLen);
6710
6914
  var n = Object.prototype.toString.call(o).slice(8, -1);
6711
6915
  if (n === "Object" && o.constructor) n = o.constructor.name;
6712
6916
  if (n === "Map" || n === "Set") return Array.from(n);
6713
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$j(o, minLen);
6917
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$p(o, minLen);
6714
6918
  }
6715
6919
  // MARK: Object Merging/Overriding
6716
6920
  /**
@@ -6755,6 +6959,9 @@ function _unsupported_iterable_to_array$j(o, minLen) {
6755
6959
  * By default, `undefined` values in sources are excluded from the template.
6756
6960
  *
6757
6961
  * @param config - Configuration controlling filtering, copying, and caching behavior.
6962
+ * @param config.filter - filter applied to source object values when building the template; by default, `undefined` values are excluded
6963
+ * @param config.copy - when true, the target object is shallow-copied before applying overrides instead of being mutated in place
6964
+ * @param config.dynamic - when true, the template is recalculated on each call instead of being cached; useful when source objects may change over time
6758
6965
  * @returns A factory function that accepts source objects and returns an override function.
6759
6966
  *
6760
6967
  * @example
@@ -7000,8 +7207,9 @@ function _unsupported_iterable_to_array$j(o, minLen) {
7000
7207
  */ function findPOJOKeysFunction(filter) {
7001
7208
  var findEachMatchingKeyOnTarget = forEachKeyValueOnPOJOFunction({
7002
7209
  filter: filter,
7210
+ // eslint-disable-next-line @typescript-eslint/max-params
7003
7211
  forEach: function forEach(param, i, obj, context) {
7004
- var _param = _sliced_to_array$g(param, 1), key = _param[0];
7212
+ var _param = _sliced_to_array$h(param, 1), key = _param[0];
7005
7213
  context.keys.push(key);
7006
7214
  }
7007
7215
  });
@@ -7053,6 +7261,7 @@ function _unsupported_iterable_to_array$j(o, minLen) {
7053
7261
  var filter = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : KeyValueTypleValueFilter.UNDEFINED;
7054
7262
  var countEachMatchingKeyOnTarget = forEachKeyValueOnPOJOFunction({
7055
7263
  filter: filter,
7264
+ // eslint-disable-next-line @typescript-eslint/max-params
7056
7265
  forEach: function forEach(x, i, obj, context) {
7057
7266
  context.count += 1;
7058
7267
  }
@@ -7098,6 +7307,8 @@ function _unsupported_iterable_to_array$j(o, minLen) {
7098
7307
  * By default, removes `undefined` values (`KeyValueTypleValueFilter.UNDEFINED`) and does not copy (`copy: false`).
7099
7308
  *
7100
7309
  * @param config - Configuration for filtering and copying. Defaults to `{ copy: false, filter: { valueFilter: KeyValueTypleValueFilter.UNDEFINED } }`.
7310
+ * @param config.copy - when true, returns a shallow copy with filtered keys removed instead of mutating the input; defaults to false
7311
+ * @param config.filter - the filter criteria determining which key/value pairs to remove; defaults to removing `undefined` values
7101
7312
  * @returns A reusable filter function. The returned function also accepts a `copyOverride` argument to override the copy behavior per-call.
7102
7313
  *
7103
7314
  * @example
@@ -7121,7 +7332,7 @@ function _unsupported_iterable_to_array$j(o, minLen) {
7121
7332
  var forEachFn = forEachKeyValueOnPOJOFunction({
7122
7333
  filter: filter,
7123
7334
  forEach: function forEach(param, i, object) {
7124
- var _param = _sliced_to_array$g(param, 1), key = _param[0];
7335
+ var _param = _sliced_to_array$h(param, 1), key = _param[0];
7125
7336
  delete object[key];
7126
7337
  }
7127
7338
  });
@@ -7196,8 +7407,9 @@ function _unsupported_iterable_to_array$j(o, minLen) {
7196
7407
  var copy = (_ref = (typeof input === "undefined" ? "undefined" : _type_of$e(input)) === 'object' ? input.copy : true) !== null && _ref !== void 0 ? _ref : true;
7197
7408
  var assignEachValueToTarget = forEachKeyValueOnPOJOFunction({
7198
7409
  filter: filter,
7410
+ // eslint-disable-next-line @typescript-eslint/max-params
7199
7411
  forEach: function forEach(param, i, object, target) {
7200
- var _param = _sliced_to_array$g(param, 2), key = _param[0], value = _param[1];
7412
+ var _param = _sliced_to_array$h(param, 2), key = _param[0], value = _param[1];
7201
7413
  target[key] = value;
7202
7414
  }
7203
7415
  });
@@ -7257,8 +7469,9 @@ function _unsupported_iterable_to_array$j(o, minLen) {
7257
7469
  var filter = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : KeyValueTypleValueFilter.UNDEFINED;
7258
7470
  var addValuesFromObjectToContext = forEachKeyValueOnPOJOFunction({
7259
7471
  filter: filter,
7472
+ // eslint-disable-next-line @typescript-eslint/max-params
7260
7473
  forEach: function forEach(param, i, obj, context) {
7261
- var _param = _sliced_to_array$g(param, 2), value = _param[1];
7474
+ var _param = _sliced_to_array$h(param, 2), value = _param[1];
7262
7475
  context.values.push(value);
7263
7476
  }
7264
7477
  });
@@ -7295,7 +7508,7 @@ function _unsupported_iterable_to_array$j(o, minLen) {
7295
7508
  var invertFilter = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
7296
7509
  var keysSet = new Set(keysToFilter);
7297
7510
  var filterFn = invertBooleanReturnFunction(function(param) {
7298
- var _param = _sliced_to_array$g(param, 1), key = _param[0];
7511
+ var _param = _sliced_to_array$h(param, 1), key = _param[0];
7299
7512
  return keysSet.has(key);
7300
7513
  }, invertFilter);
7301
7514
  return filterTuplesOnPOJOFunction(filterFn);
@@ -7334,6 +7547,8 @@ function _unsupported_iterable_to_array$j(o, minLen) {
7334
7547
  * When no filter is provided, all key/value pairs are iterated.
7335
7548
  *
7336
7549
  * @param config - The filter and forEach callback configuration.
7550
+ * @param config.forEach - callback invoked for each key/value pair that passes the filter
7551
+ * @param config.filter - optional filter controlling which key/value pairs are iterated; when omitted, all pairs are visited
7337
7552
  * @returns A function that iterates matching key/value pairs on any input object.
7338
7553
  *
7339
7554
  * @example
@@ -7498,15 +7713,15 @@ function isInSetDecisionFunction(set, inputReadValue) {
7498
7713
  }
7499
7714
  }
7500
7715
 
7501
- function _array_like_to_array$i(arr, len) {
7716
+ function _array_like_to_array$o(arr, len) {
7502
7717
  if (len == null || len > arr.length) len = arr.length;
7503
7718
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
7504
7719
  return arr2;
7505
7720
  }
7506
- function _array_with_holes$f(arr) {
7721
+ function _array_with_holes$g(arr) {
7507
7722
  if (Array.isArray(arr)) return arr;
7508
7723
  }
7509
- function _iterable_to_array_limit$f(arr, i) {
7724
+ function _iterable_to_array_limit$g(arr, i) {
7510
7725
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
7511
7726
  if (_i == null) return;
7512
7727
  var _arr = [];
@@ -7530,23 +7745,23 @@ function _iterable_to_array_limit$f(arr, i) {
7530
7745
  }
7531
7746
  return _arr;
7532
7747
  }
7533
- function _non_iterable_rest$f() {
7748
+ function _non_iterable_rest$g() {
7534
7749
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
7535
7750
  }
7536
- function _sliced_to_array$f(arr, i) {
7537
- return _array_with_holes$f(arr) || _iterable_to_array_limit$f(arr, i) || _unsupported_iterable_to_array$i(arr, i) || _non_iterable_rest$f();
7751
+ function _sliced_to_array$g(arr, i) {
7752
+ return _array_with_holes$g(arr) || _iterable_to_array_limit$g(arr, i) || _unsupported_iterable_to_array$o(arr, i) || _non_iterable_rest$g();
7538
7753
  }
7539
7754
  function _type_of$d(obj) {
7540
7755
  "@swc/helpers - typeof";
7541
7756
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
7542
7757
  }
7543
- function _unsupported_iterable_to_array$i(o, minLen) {
7758
+ function _unsupported_iterable_to_array$o(o, minLen) {
7544
7759
  if (!o) return;
7545
- if (typeof o === "string") return _array_like_to_array$i(o, minLen);
7760
+ if (typeof o === "string") return _array_like_to_array$o(o, minLen);
7546
7761
  var n = Object.prototype.toString.call(o).slice(8, -1);
7547
7762
  if (n === "Object" && o.constructor) n = o.constructor.name;
7548
7763
  if (n === "Map" || n === "Set") return Array.from(n);
7549
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$i(o, minLen);
7764
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$o(o, minLen);
7550
7765
  }
7551
7766
  var AUTH_ROLE_CLAIMS_DEFAULT_CLAIM_VALUE = 1;
7552
7767
  var AUTH_ROLE_CLAIMS_DEFAULT_EMPTY_VALUE = null;
@@ -7562,16 +7777,13 @@ var AUTH_ROLE_CLAIMS_DEFAULT_EMPTY_VALUE = null;
7562
7777
  */ function authRoleClaimsService(config) {
7563
7778
  var defaults = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
7564
7779
  var _ref, _ref1;
7565
- var defaultClaimValue = (_ref = objectHasKey(defaults, 'claimValue') ? defaults === null || defaults === void 0 ? void 0 : defaults.claimValue : AUTH_ROLE_CLAIMS_DEFAULT_CLAIM_VALUE) !== null && _ref !== void 0 ? _ref : AUTH_ROLE_CLAIMS_DEFAULT_CLAIM_VALUE;
7566
- var defaultEmptyValue = (_ref1 = objectHasKey(defaults, 'emptyValue') ? defaults === null || defaults === void 0 ? void 0 : defaults.emptyValue : AUTH_ROLE_CLAIMS_DEFAULT_EMPTY_VALUE) !== null && _ref1 !== void 0 ? _ref1 : null;
7567
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
7780
+ var defaultClaimValue = (_ref = objectHasKey(defaults, 'claimValue') ? defaults.claimValue : AUTH_ROLE_CLAIMS_DEFAULT_CLAIM_VALUE) !== null && _ref !== void 0 ? _ref : AUTH_ROLE_CLAIMS_DEFAULT_CLAIM_VALUE;
7781
+ var defaultEmptyValue = (_ref1 = objectHasKey(defaults, 'emptyValue') ? defaults.emptyValue : AUTH_ROLE_CLAIMS_DEFAULT_EMPTY_VALUE) !== null && _ref1 !== void 0 ? _ref1 : null;
7568
7782
  function isSimpleOptions(entry) {
7569
- return entry.roles != null;
7783
+ return 'roles' in entry;
7570
7784
  }
7571
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
7572
- var tuples = Object.entries(config).filter(function(param) {
7573
- var _param = _sliced_to_array$f(param, 2), entry = _param[1];
7574
- return entry != null;
7785
+ var tuples = Object.entries(config).filter(function(x) {
7786
+ return x[1] != null;
7575
7787
  }) // skip any ignored/null values
7576
7788
  .map(function(x) {
7577
7789
  var inputEntry = x[1];
@@ -7648,7 +7860,7 @@ var AUTH_ROLE_CLAIMS_DEFAULT_EMPTY_VALUE = null;
7648
7860
  var claims = {};
7649
7861
  // iterate by each claim value to build the claims.
7650
7862
  tuples.forEach(function(param) {
7651
- var _param = _sliced_to_array$f(param, 2), claimsKey = _param[0], entry = _param[1];
7863
+ var _param = _sliced_to_array$g(param, 2), claimsKey = _param[0], entry = _param[1];
7652
7864
  var _entry_encodeValueFromRoles;
7653
7865
  var claimsValue = (_entry_encodeValueFromRoles = entry.encodeValueFromRoles(roles)) !== null && _entry_encodeValueFromRoles !== void 0 ? _entry_encodeValueFromRoles : defaultEmptyValue;
7654
7866
  claims[claimsKey] = claimsValue;
@@ -7656,8 +7868,9 @@ var AUTH_ROLE_CLAIMS_DEFAULT_EMPTY_VALUE = null;
7656
7868
  return claims;
7657
7869
  };
7658
7870
  var forEachKeyValueAddToSet = forEachKeyValueOnPOJOFunction({
7871
+ // eslint-disable-next-line @typescript-eslint/max-params
7659
7872
  forEach: function forEach(param, i, claims, roles) {
7660
- var _param = _sliced_to_array$f(param, 2), claimsKey = _param[0], value = _param[1];
7873
+ var _param = _sliced_to_array$g(param, 2), claimsKey = _param[0], value = _param[1];
7661
7874
  var entry = authRoleMap.get(claimsKey);
7662
7875
  if (entry != null) {
7663
7876
  var decodedRoles = entry.decodeRolesFromValue(value);
@@ -7693,15 +7906,21 @@ var AUTH_ROLE_CLAIMS_DEFAULT_EMPTY_VALUE = null;
7693
7906
  });
7694
7907
  }
7695
7908
 
7696
- function _array_like_to_array$h(arr, len) {
7909
+ function _array_like_to_array$n(arr, len) {
7697
7910
  if (len == null || len > arr.length) len = arr.length;
7698
7911
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
7699
7912
  return arr2;
7700
7913
  }
7701
- function _array_with_holes$e(arr) {
7914
+ function _array_with_holes$f(arr) {
7702
7915
  if (Array.isArray(arr)) return arr;
7703
7916
  }
7704
- function _iterable_to_array_limit$e(arr, i) {
7917
+ function _array_without_holes$f(arr) {
7918
+ if (Array.isArray(arr)) return _array_like_to_array$n(arr);
7919
+ }
7920
+ function _iterable_to_array$f(iter) {
7921
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
7922
+ }
7923
+ function _iterable_to_array_limit$f(arr, i) {
7705
7924
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
7706
7925
  if (_i == null) return;
7707
7926
  var _arr = [];
@@ -7725,19 +7944,25 @@ function _iterable_to_array_limit$e(arr, i) {
7725
7944
  }
7726
7945
  return _arr;
7727
7946
  }
7728
- function _non_iterable_rest$e() {
7947
+ function _non_iterable_rest$f() {
7729
7948
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
7730
7949
  }
7731
- function _sliced_to_array$e(arr, i) {
7732
- return _array_with_holes$e(arr) || _iterable_to_array_limit$e(arr, i) || _unsupported_iterable_to_array$h(arr, i) || _non_iterable_rest$e();
7950
+ function _non_iterable_spread$f() {
7951
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
7733
7952
  }
7734
- function _unsupported_iterable_to_array$h(o, minLen) {
7953
+ function _sliced_to_array$f(arr, i) {
7954
+ return _array_with_holes$f(arr) || _iterable_to_array_limit$f(arr, i) || _unsupported_iterable_to_array$n(arr, i) || _non_iterable_rest$f();
7955
+ }
7956
+ function _to_consumable_array$f(arr) {
7957
+ return _array_without_holes$f(arr) || _iterable_to_array$f(arr) || _unsupported_iterable_to_array$n(arr) || _non_iterable_spread$f();
7958
+ }
7959
+ function _unsupported_iterable_to_array$n(o, minLen) {
7735
7960
  if (!o) return;
7736
- if (typeof o === "string") return _array_like_to_array$h(o, minLen);
7961
+ if (typeof o === "string") return _array_like_to_array$n(o, minLen);
7737
7962
  var n = Object.prototype.toString.call(o).slice(8, -1);
7738
7963
  if (n === "Object" && o.constructor) n = o.constructor.name;
7739
7964
  if (n === "Map" || n === "Set") return Array.from(n);
7740
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$h(o, minLen);
7965
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$n(o, minLen);
7741
7966
  }
7742
7967
  /**
7743
7968
  * Finds the first and last occurrence of a single character within the input string.
@@ -7753,14 +7978,31 @@ function _unsupported_iterable_to_array$h(o, minLen) {
7753
7978
  if (find.length !== 1) {
7754
7979
  throw new Error('firstAndLastCharacterOccurrence() expects a single character as find input.');
7755
7980
  }
7756
- for(var i = 0; i < input.length; i += 1){
7757
- if (input[i] === find) {
7758
- if (first === -1) {
7759
- first = i;
7760
- } else {
7761
- last = i;
7981
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
7982
+ try {
7983
+ for(var _iterator = _to_consumable_array$f(input).entries()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
7984
+ var _step_value = _sliced_to_array$f(_step.value, 2), i = _step_value[0], char = _step_value[1];
7985
+ if (char === find) {
7986
+ if (first === -1) {
7987
+ first = i;
7988
+ } else {
7989
+ last = i;
7990
+ }
7991
+ occurences += 1;
7992
+ }
7993
+ }
7994
+ } catch (err) {
7995
+ _didIteratorError = true;
7996
+ _iteratorError = err;
7997
+ } finally{
7998
+ try {
7999
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
8000
+ _iterator.return();
8001
+ }
8002
+ } finally{
8003
+ if (_didIteratorError) {
8004
+ throw _iteratorError;
7762
8005
  }
7763
- occurences += 1;
7764
8006
  }
7765
8007
  }
7766
8008
  if (first !== -1 && last === -1) {
@@ -7779,7 +8021,7 @@ function _unsupported_iterable_to_array$h(o, minLen) {
7779
8021
  * @param find - substring to search for
7780
8022
  * @returns true if the substring is found within the input
7781
8023
  */ function stringContains(input, find) {
7782
- return input.indexOf(find) !== -1;
8024
+ return input.includes(find);
7783
8025
  }
7784
8026
  /**
7785
8027
  * Creates a function that replaces the last character of a string with the replacement string
@@ -7814,7 +8056,8 @@ function _unsupported_iterable_to_array$h(o, minLen) {
7814
8056
  * @param replacement - string to substitute at the index
7815
8057
  * @param decision - function that determines whether the character should be replaced
7816
8058
  * @returns the modified string, or the original if the decision is false
7817
- */ function replaceCharacterAtIndexIf(input, index, replacement, decision) {
8059
+ */ // eslint-disable-next-line @typescript-eslint/max-params
8060
+ function replaceCharacterAtIndexIf(input, index, replacement, decision) {
7818
8061
  if (decision(input[index])) {
7819
8062
  return replaceCharacterAtIndexWith(input, index, replacement);
7820
8063
  } else {
@@ -7829,7 +8072,7 @@ function _unsupported_iterable_to_array$h(o, minLen) {
7829
8072
  * @param replacement - string to substitute at the index
7830
8073
  * @returns the string with the character at the index replaced
7831
8074
  */ function replaceCharacterAtIndexWith(input, index, replacement) {
7832
- var _splitStringAtIndex = _sliced_to_array$e(splitStringAtIndex(input, index, false), 2), head = _splitStringAtIndex[0], tail = _splitStringAtIndex[1];
8075
+ var _splitStringAtIndex = _sliced_to_array$f(splitStringAtIndex(input, index, false), 2), head = _splitStringAtIndex[0], tail = _splitStringAtIndex[1];
7833
8076
  return head + replacement + tail;
7834
8077
  }
7835
8078
  /**
@@ -7868,13 +8111,40 @@ function _unsupported_iterable_to_array$h(o, minLen) {
7868
8111
  * @returns a record mapping each character to its index in the input string
7869
8112
  */ function stringCharactersToIndexRecord(chars) {
7870
8113
  var record = {};
7871
- for(var i = 0; i < chars.length; i += 1){
7872
- var char = chars[i];
7873
- record[char] = i;
8114
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
8115
+ try {
8116
+ for(var _iterator = _to_consumable_array$f(chars).entries()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
8117
+ var _step_value = _sliced_to_array$f(_step.value, 2), i = _step_value[0], char = _step_value[1];
8118
+ record[char] = i;
8119
+ }
8120
+ } catch (err) {
8121
+ _didIteratorError = true;
8122
+ _iteratorError = err;
8123
+ } finally{
8124
+ try {
8125
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
8126
+ _iterator.return();
8127
+ }
8128
+ } finally{
8129
+ if (_didIteratorError) {
8130
+ throw _iteratorError;
8131
+ }
8132
+ }
7874
8133
  }
7875
8134
  return record;
7876
8135
  }
7877
8136
 
8137
+ function _array_like_to_array$m(arr, len) {
8138
+ if (len == null || len > arr.length) len = arr.length;
8139
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
8140
+ return arr2;
8141
+ }
8142
+ function _array_with_holes$e(arr) {
8143
+ if (Array.isArray(arr)) return arr;
8144
+ }
8145
+ function _array_without_holes$e(arr) {
8146
+ if (Array.isArray(arr)) return _array_like_to_array$m(arr);
8147
+ }
7878
8148
  function _instanceof$3(left, right) {
7879
8149
  if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
7880
8150
  return !!right[Symbol.hasInstance](left);
@@ -7882,6 +8152,53 @@ function _instanceof$3(left, right) {
7882
8152
  return left instanceof right;
7883
8153
  }
7884
8154
  }
8155
+ function _iterable_to_array$e(iter) {
8156
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
8157
+ }
8158
+ function _iterable_to_array_limit$e(arr, i) {
8159
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
8160
+ if (_i == null) return;
8161
+ var _arr = [];
8162
+ var _n = true;
8163
+ var _d = false;
8164
+ var _s, _e;
8165
+ try {
8166
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
8167
+ _arr.push(_s.value);
8168
+ if (i && _arr.length === i) break;
8169
+ }
8170
+ } catch (err) {
8171
+ _d = true;
8172
+ _e = err;
8173
+ } finally{
8174
+ try {
8175
+ if (!_n && _i["return"] != null) _i["return"]();
8176
+ } finally{
8177
+ if (_d) throw _e;
8178
+ }
8179
+ }
8180
+ return _arr;
8181
+ }
8182
+ function _non_iterable_rest$e() {
8183
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
8184
+ }
8185
+ function _non_iterable_spread$e() {
8186
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
8187
+ }
8188
+ function _sliced_to_array$e(arr, i) {
8189
+ return _array_with_holes$e(arr) || _iterable_to_array_limit$e(arr, i) || _unsupported_iterable_to_array$m(arr, i) || _non_iterable_rest$e();
8190
+ }
8191
+ function _to_consumable_array$e(arr) {
8192
+ return _array_without_holes$e(arr) || _iterable_to_array$e(arr) || _unsupported_iterable_to_array$m(arr) || _non_iterable_spread$e();
8193
+ }
8194
+ function _unsupported_iterable_to_array$m(o, minLen) {
8195
+ if (!o) return;
8196
+ if (typeof o === "string") return _array_like_to_array$m(o, minLen);
8197
+ var n = Object.prototype.toString.call(o).slice(8, -1);
8198
+ if (n === "Object" && o.constructor) n = o.constructor.name;
8199
+ if (n === "Map" || n === "Set") return Array.from(n);
8200
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$m(o, minLen);
8201
+ }
7885
8202
  /**
7886
8203
  * Creates a function that replaces all occurrences of the configured target strings with a replacement value.
7887
8204
  *
@@ -7995,13 +8312,29 @@ function _instanceof$3(left, right) {
7995
8312
  return function(input, maxToReturn) {
7996
8313
  var max = maxToReturn !== null && maxToReturn !== void 0 ? maxToReturn : Number.MAX_SAFE_INTEGER;
7997
8314
  var occurrences = [];
7998
- for(var i = 0; i < input.length; i += 1){
7999
- var char = input[i];
8000
- if (characterSet.has(char)) {
8001
- occurrences.push(i);
8002
- // return if at the max number of occurences
8003
- if (occurrences.length >= max) {
8004
- break;
8315
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
8316
+ try {
8317
+ for(var _iterator = _to_consumable_array$e(input).entries()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
8318
+ var _step_value = _sliced_to_array$e(_step.value, 2), i = _step_value[0], char = _step_value[1];
8319
+ if (characterSet.has(char)) {
8320
+ occurrences.push(i);
8321
+ // return if at the max number of occurences
8322
+ if (occurrences.length >= max) {
8323
+ break;
8324
+ }
8325
+ }
8326
+ }
8327
+ } catch (err) {
8328
+ _didIteratorError = true;
8329
+ _iteratorError = err;
8330
+ } finally{
8331
+ try {
8332
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
8333
+ _iterator.return();
8334
+ }
8335
+ } finally{
8336
+ if (_didIteratorError) {
8337
+ throw _iteratorError;
8005
8338
  }
8006
8339
  }
8007
8340
  }
@@ -8194,6 +8527,7 @@ function _instanceof$3(left, right) {
8194
8527
  * Useful for providing a constant decision where a function is expected.
8195
8528
  *
8196
8529
  * @param decision - the constant boolean value to return
8530
+ * @returns a decision function that always returns the given boolean
8197
8531
  *
8198
8532
  * @example
8199
8533
  * ```ts
@@ -8227,6 +8561,7 @@ function _instanceof$3(left, right) {
8227
8561
  *
8228
8562
  * @param valueOrFunction - a boolean, decision function, or undefined
8229
8563
  * @param defaultIfUndefined - fallback boolean when the input is nullish (defaults to true)
8564
+ * @returns a {@link DecisionFunction} derived from the input
8230
8565
  *
8231
8566
  * @example
8232
8567
  * ```ts
@@ -8257,7 +8592,7 @@ function isEqualToValueDecisionFunction(equalityValue) {
8257
8592
  return equalityValueCheckFunction;
8258
8593
  }
8259
8594
 
8260
- function _array_like_to_array$g(arr, len) {
8595
+ function _array_like_to_array$l(arr, len) {
8261
8596
  if (len == null || len > arr.length) len = arr.length;
8262
8597
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
8263
8598
  return arr2;
@@ -8321,19 +8656,19 @@ function _object_spread$c(target) {
8321
8656
  return target;
8322
8657
  }
8323
8658
  function _sliced_to_array$d(arr, i) {
8324
- return _array_with_holes$d(arr) || _iterable_to_array_limit$d(arr, i) || _unsupported_iterable_to_array$g(arr, i) || _non_iterable_rest$d();
8659
+ return _array_with_holes$d(arr) || _iterable_to_array_limit$d(arr, i) || _unsupported_iterable_to_array$l(arr, i) || _non_iterable_rest$d();
8325
8660
  }
8326
8661
  function _type_of$c(obj) {
8327
8662
  "@swc/helpers - typeof";
8328
8663
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
8329
8664
  }
8330
- function _unsupported_iterable_to_array$g(o, minLen) {
8665
+ function _unsupported_iterable_to_array$l(o, minLen) {
8331
8666
  if (!o) return;
8332
- if (typeof o === "string") return _array_like_to_array$g(o, minLen);
8667
+ if (typeof o === "string") return _array_like_to_array$l(o, minLen);
8333
8668
  var n = Object.prototype.toString.call(o).slice(8, -1);
8334
8669
  if (n === "Object" && o.constructor) n = o.constructor.name;
8335
8670
  if (n === "Map" || n === "Set") return Array.from(n);
8336
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$g(o, minLen);
8671
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$l(o, minLen);
8337
8672
  }
8338
8673
  var SLASH_PATH_SEPARATOR = '/';
8339
8674
  var SLASH_PATH_FILE_TYPE_SEPARATOR = '.';
@@ -8523,7 +8858,9 @@ var ALL_SLASH_PATH_FILE_TYPE_SEPARATORS_REGEX = /\.+/g;
8523
8858
  *
8524
8859
  * If the input is a file, the folder of the file is returned instead.
8525
8860
  *
8526
- * @param input
8861
+ * @param input - the string path to convert to a folder path
8862
+ * @param config - optional configuration controlling path type inference and invalid-path handling
8863
+ * @returns a valid slash path folder string with a trailing slash, or an empty string for relative root
8527
8864
  */ function slashPathFolder(input, config) {
8528
8865
  return slashPathFolderFactory(_object_spread$c({}, config))(input);
8529
8866
  }
@@ -8634,16 +8971,12 @@ var ALL_SLASH_PATH_FILE_TYPE_SEPARATORS_REGEX = /\.+/g;
8634
8971
  var _ref = config !== null && config !== void 0 ? config : {}, _ref_illegalStrings = _ref.illegalStrings, illegalStrings = _ref_illegalStrings === void 0 ? DEFAULT_SLASH_PATH_ILLEGAL_CHARACTERS : _ref_illegalStrings, tmp = _ref.replaceIllegalCharacters, inputReplaceIllegalCharacters = tmp === void 0 ? true : tmp, tmp1 = _ref.replaceIllegalDots, inputReplaceIllegalDots = tmp1 === void 0 ? true : tmp1, throwError = _ref.throwError;
8635
8972
  var fns = [];
8636
8973
  var replaceIllegalCharacters = typeof inputReplaceIllegalCharacters === 'string' ? inputReplaceIllegalCharacters : DEFAULT_SLASH_PATH_ILLEGAL_CHARACTER_REPLACEMENT;
8637
- if (inputReplaceIllegalCharacters != null) {
8638
- fns.push(replaceStringsFunction({
8639
- replace: illegalStrings,
8640
- replaceWith: replaceIllegalCharacters
8641
- }));
8642
- }
8643
- if (inputReplaceIllegalDots != null) {
8644
- var replaceIllegalDotsWith = typeof inputReplaceIllegalDots === 'string' ? inputReplaceIllegalDots : replaceIllegalCharacters;
8645
- fns.push(replaceInvalidFilePathTypeSeparatorsInSlashPathFunction(replaceIllegalDotsWith));
8646
- }
8974
+ fns.push(replaceStringsFunction({
8975
+ replace: illegalStrings,
8976
+ replaceWith: replaceIllegalCharacters
8977
+ }));
8978
+ var replaceIllegalDotsWith = typeof inputReplaceIllegalDots === 'string' ? inputReplaceIllegalDots : replaceIllegalCharacters;
8979
+ fns.push(replaceInvalidFilePathTypeSeparatorsInSlashPathFunction(replaceIllegalDotsWith));
8647
8980
  if (throwError === true || !(inputReplaceIllegalCharacters || inputReplaceIllegalDots)) {
8648
8981
  fns.push(function(x) {
8649
8982
  if (!isValidSlashPath(x)) {
@@ -8803,31 +9136,27 @@ var ALL_SLASH_PATH_FILE_TYPE_SEPARATORS_REGEX = /\.+/g;
8803
9136
  */ function expandSlashPathPathMatcherPartToDecisionFunctions(path) {
8804
9137
  var targetPathPartsInput = asArray(path);
8805
9138
  var indexMatchingDecisionFunctions = [];
8806
- targetPathPartsInput.forEach(function(part, index) {
9139
+ targetPathPartsInput.forEach(function(part, _index) {
8807
9140
  switch(typeof part === "undefined" ? "undefined" : _type_of$c(part)){
8808
9141
  case 'number':
8809
- var matchPartFunction;
8810
- switch(part){
8811
- case SlashPathPathMatcherPartCode.WILDCARD:
8812
- matchPartFunction = decisionFunction(true);
8813
- break;
8814
- default:
8815
- // all other unknown numbers are treated as invalid and should never match
8816
- matchPartFunction = decisionFunction(false);
8817
- break;
9142
+ {
9143
+ // Currently only SlashPathPathMatcherPartCode.WILDCARD (0) exists; treat as wildcard
9144
+ var matchPartFunction = decisionFunction(true);
9145
+ indexMatchingDecisionFunctions.push(matchPartFunction);
9146
+ break;
8818
9147
  }
8819
- indexMatchingDecisionFunctions.push(matchPartFunction);
8820
- break;
8821
9148
  case 'string':
8822
- // break parts of the path into parts
8823
- var parts = slashPathParts(part);
8824
- parts.forEach(function(part, partIndex) {
8825
- var matchPartFunction = function matchPartFunction(inputPart) {
8826
- return inputPart === part;
8827
- };
8828
- indexMatchingDecisionFunctions.push(matchPartFunction);
8829
- });
8830
- break;
9149
+ {
9150
+ // break parts of the path into parts
9151
+ var parts = slashPathParts(part);
9152
+ parts.forEach(function(part, _partIndex) {
9153
+ var matchPartFunction = function matchPartFunction(inputPart) {
9154
+ return inputPart === part;
9155
+ };
9156
+ indexMatchingDecisionFunctions.push(matchPartFunction);
9157
+ });
9158
+ break;
9159
+ }
8831
9160
  case 'function':
8832
9161
  indexMatchingDecisionFunctions.push(part);
8833
9162
  break;
@@ -8873,7 +9202,7 @@ var ALL_SLASH_PATH_FILE_TYPE_SEPARATORS_REGEX = /\.+/g;
8873
9202
  /**
8874
9203
  * Creates a SlashPathPathMatcher.
8875
9204
  *
8876
- * @param config The configuration for the matcher.
9205
+ * @param input - the matcher configuration, which may be a target path string, an array of path parts, or a full config object
8877
9206
  * @returns The matcher.
8878
9207
  */ function slashPathPathMatcher(input) {
8879
9208
  var _config_matchRemaining, _config_nonMatchingFillValue;
@@ -8954,7 +9283,7 @@ var ALL_SLASH_PATH_FILE_TYPE_SEPARATORS_REGEX = /\.+/g;
8954
9283
  };
8955
9284
  }
8956
9285
 
8957
- function _array_like_to_array$f(arr, len) {
9286
+ function _array_like_to_array$k(arr, len) {
8958
9287
  if (len == null || len > arr.length) len = arr.length;
8959
9288
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
8960
9289
  return arr2;
@@ -8962,10 +9291,10 @@ function _array_like_to_array$f(arr, len) {
8962
9291
  function _array_with_holes$c(arr) {
8963
9292
  if (Array.isArray(arr)) return arr;
8964
9293
  }
8965
- function _array_without_holes$6(arr) {
8966
- if (Array.isArray(arr)) return _array_like_to_array$f(arr);
9294
+ function _array_without_holes$d(arr) {
9295
+ if (Array.isArray(arr)) return _array_like_to_array$k(arr);
8967
9296
  }
8968
- function _iterable_to_array$6(iter) {
9297
+ function _iterable_to_array$d(iter) {
8969
9298
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
8970
9299
  }
8971
9300
  function _iterable_to_array_limit$c(arr, i) {
@@ -8995,22 +9324,22 @@ function _iterable_to_array_limit$c(arr, i) {
8995
9324
  function _non_iterable_rest$c() {
8996
9325
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
8997
9326
  }
8998
- function _non_iterable_spread$6() {
9327
+ function _non_iterable_spread$d() {
8999
9328
  throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
9000
9329
  }
9001
9330
  function _sliced_to_array$c(arr, i) {
9002
- return _array_with_holes$c(arr) || _iterable_to_array_limit$c(arr, i) || _unsupported_iterable_to_array$f(arr, i) || _non_iterable_rest$c();
9331
+ return _array_with_holes$c(arr) || _iterable_to_array_limit$c(arr, i) || _unsupported_iterable_to_array$k(arr, i) || _non_iterable_rest$c();
9003
9332
  }
9004
- function _to_consumable_array$6(arr) {
9005
- return _array_without_holes$6(arr) || _iterable_to_array$6(arr) || _unsupported_iterable_to_array$f(arr) || _non_iterable_spread$6();
9333
+ function _to_consumable_array$d(arr) {
9334
+ return _array_without_holes$d(arr) || _iterable_to_array$d(arr) || _unsupported_iterable_to_array$k(arr) || _non_iterable_spread$d();
9006
9335
  }
9007
- function _unsupported_iterable_to_array$f(o, minLen) {
9336
+ function _unsupported_iterable_to_array$k(o, minLen) {
9008
9337
  if (!o) return;
9009
- if (typeof o === "string") return _array_like_to_array$f(o, minLen);
9338
+ if (typeof o === "string") return _array_like_to_array$k(o, minLen);
9010
9339
  var n = Object.prototype.toString.call(o).slice(8, -1);
9011
9340
  if (n === "Object" && o.constructor) n = o.constructor.name;
9012
9341
  if (n === "Map" || n === "Set") return Array.from(n);
9013
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$f(o, minLen);
9342
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$k(o, minLen);
9014
9343
  }
9015
9344
  /**
9016
9345
  * Returns true if the input string is a known HTTP protocol (`"http"` or `"https"`).
@@ -9041,7 +9370,7 @@ function _unsupported_iterable_to_array$f(o, minLen) {
9041
9370
  /**
9042
9371
  * This Regex is really only reliable for detecting that the TLD exists, but due to the nature of tld's
9043
9372
  * it cannot always be determined whether or not the part of the url is part of the tld or a subdomain.
9044
- */ var WEBSITE_TLD_DETECTION_REGEX = /[^\/.\s]([^.\s]+)\.([^.\s]+)$/;
9373
+ */ var WEBSITE_TLD_DETECTION_REGEX = /[^/.\s]([^.\s]+)\.([^.\s]+)$/;
9045
9374
  /**
9046
9375
  * Returns true if the input url has a website top level domain.
9047
9376
  *
@@ -9054,7 +9383,7 @@ function _unsupported_iterable_to_array$f(o, minLen) {
9054
9383
  }
9055
9384
  /**
9056
9385
  * Regex that matches a colon followed by digits, used to detect port numbers in URLs.
9057
- */ var HAS_PORT_NUMBER_REGEX = /\:(\d+)/;
9386
+ */ var HAS_PORT_NUMBER_REGEX = /:(\d+)/;
9058
9387
  /**
9059
9388
  * Returns true if the input string contains a port number (e.g., `:8080`).
9060
9389
  *
@@ -9174,7 +9503,7 @@ function _unsupported_iterable_to_array$f(o, minLen) {
9174
9503
  var baseWebUrl = removeWebProtocolPrefix(baseWebsiteUrl(basePath)); // remove prefix to prevent issues with slash paths
9175
9504
  var webUrl = mergeSlashPaths([
9176
9505
  baseWebUrl
9177
- ].concat(_to_consumable_array$6(asArray(paths))));
9506
+ ].concat(_to_consumable_array$d(asArray(paths))));
9178
9507
  return setWebProtocolPrefix(webUrl, protocol);
9179
9508
  }
9180
9509
  /**
@@ -9219,8 +9548,7 @@ function _unsupported_iterable_to_array$f(o, minLen) {
9219
9548
  } : undefined
9220
9549
  ]);
9221
9550
  return function(input) {
9222
- var path = pathTransform(websitePathFromWebsiteUrl(input));
9223
- return path;
9551
+ return pathTransform(websitePathFromWebsiteUrl(input));
9224
9552
  };
9225
9553
  }
9226
9554
  /**
@@ -9294,7 +9622,9 @@ function _unsupported_iterable_to_array$f(o, minLen) {
9294
9622
  * @param input - The domain-and-path string to split.
9295
9623
  * @returns A pair containing the domain and path.
9296
9624
  */ function websiteDomainAndPathPair(input) {
9297
- var _splitJoinRemainder = _sliced_to_array$c(splitJoinRemainder(input, '/', 2), 2), domain = _splitJoinRemainder[0], path = _splitJoinRemainder[1];
9625
+ var result = splitJoinRemainder(input, '/', 2);
9626
+ var domain = result[0];
9627
+ var path = result[1]; // may be undefined if input has no path separator
9298
9628
  return {
9299
9629
  domain: domain,
9300
9630
  path: toAbsoluteSlashPathStartType(path !== null && path !== void 0 ? path : '/')
@@ -9446,6 +9776,31 @@ function _unsupported_iterable_to_array$f(o, minLen) {
9446
9776
  return domain;
9447
9777
  }
9448
9778
 
9779
+ function _array_like_to_array$j(arr, len) {
9780
+ if (len == null || len > arr.length) len = arr.length;
9781
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
9782
+ return arr2;
9783
+ }
9784
+ function _array_without_holes$c(arr) {
9785
+ if (Array.isArray(arr)) return _array_like_to_array$j(arr);
9786
+ }
9787
+ function _iterable_to_array$c(iter) {
9788
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
9789
+ }
9790
+ function _non_iterable_spread$c() {
9791
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
9792
+ }
9793
+ function _to_consumable_array$c(arr) {
9794
+ return _array_without_holes$c(arr) || _iterable_to_array$c(arr) || _unsupported_iterable_to_array$j(arr) || _non_iterable_spread$c();
9795
+ }
9796
+ function _unsupported_iterable_to_array$j(o, minLen) {
9797
+ if (!o) return;
9798
+ if (typeof o === "string") return _array_like_to_array$j(o, minLen);
9799
+ var n = Object.prototype.toString.call(o).slice(8, -1);
9800
+ if (n === "Object" && o.constructor) n = o.constructor.name;
9801
+ if (n === "Map" || n === "Set") return Array.from(n);
9802
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$j(o, minLen);
9803
+ }
9449
9804
  /**
9450
9805
  * Converts an EmailParticipant object to a formatted string representation.
9451
9806
  * The format is: "name<email>" or "<email>" if no name is provided.
@@ -9482,19 +9837,18 @@ function _unsupported_iterable_to_array$f(o, minLen) {
9482
9837
  * @returns A combined array of EmailParticipant objects
9483
9838
  */ function coerceToEmailParticipants(param) {
9484
9839
  var _param_participants = param.participants, participants = _param_participants === void 0 ? [] : _param_participants, _param_emails = param.emails, emails = _param_emails === void 0 ? [] : _param_emails;
9485
- if (!(emails === null || emails === void 0 ? void 0 : emails.length)) {
9840
+ if (!emails.length) {
9486
9841
  return participants;
9487
9842
  } else {
9488
- var _ref;
9489
- var participantEmails = (_ref = participants === null || participants === void 0 ? void 0 : participants.map(function(x) {
9843
+ var participantEmails = participants.map(function(x) {
9490
9844
  return x.email;
9491
- })) !== null && _ref !== void 0 ? _ref : [];
9845
+ });
9492
9846
  var emailsWithoutParticipants = excludeValuesFromArray(emails, participantEmails);
9493
- return participants.concat(emailsWithoutParticipants.map(function(email) {
9847
+ return _to_consumable_array$c(participants).concat(_to_consumable_array$c(emailsWithoutParticipants.map(function(email) {
9494
9848
  return {
9495
9849
  email: email
9496
9850
  };
9497
- }));
9851
+ })));
9498
9852
  }
9499
9853
  }
9500
9854
 
@@ -9674,7 +10028,7 @@ function _is_native_reflect_construct$3() {
9674
10028
  * @param input - The value to check
9675
10029
  * @returns True if the input is a ServerError
9676
10030
  */ function isServerError(input) {
9677
- return input != null && (typeof input === "undefined" ? "undefined" : _type_of$b(input)) === 'object' && input.status != null && input.code != null;
10031
+ return input != null && (typeof input === "undefined" ? "undefined" : _type_of$b(input)) === 'object' && 'status' in input && 'code' in input;
9678
10032
  }
9679
10033
  function partialServerError(messageOrError) {
9680
10034
  var serverError;
@@ -9797,9 +10151,9 @@ function _type_of$a(obj) {
9797
10151
  function toReadableError(inputError) {
9798
10152
  var error;
9799
10153
  if (inputError) {
9800
- if (inputError.code) {
10154
+ if ('code' in inputError && inputError.code) {
9801
10155
  error = inputError;
9802
- } else if (inputError.data) {
10156
+ } else if ('data' in inputError) {
9803
10157
  error = _object_spread$a({
9804
10158
  code: DEFAULT_READABLE_ERROR_CODE
9805
10159
  }, inputError.data);
@@ -9810,9 +10164,10 @@ function toReadableError(inputError) {
9810
10164
  _error: inputError
9811
10165
  };
9812
10166
  } else {
10167
+ var _inputError_message;
9813
10168
  error = {
9814
10169
  code: DEFAULT_READABLE_ERROR_CODE,
9815
- message: inputError.message || '',
10170
+ message: (_inputError_message = inputError.message) !== null && _inputError_message !== void 0 ? _inputError_message : '',
9816
10171
  _error: inputError
9817
10172
  };
9818
10173
  }
@@ -9846,7 +10201,8 @@ function toReadableError(inputError) {
9846
10201
  * @param input - The error or string to extract a message from
9847
10202
  * @returns The error message string, or null/undefined if not available
9848
10203
  */ function messageFromError(input) {
9849
- return ((typeof input === "undefined" ? "undefined" : _type_of$a(input)) === 'object' ? input.message : input) || input;
10204
+ var _ref;
10205
+ return (_ref = (typeof input === "undefined" ? "undefined" : _type_of$a(input)) === 'object' ? input.message : input) !== null && _ref !== void 0 ? _ref : input;
9850
10206
  }
9851
10207
 
9852
10208
  /**
@@ -9863,33 +10219,33 @@ function toReadableError(inputError) {
9863
10219
  * @param buffer - Buffer-like object to check. Only requires the `lastIndexOf` method.
9864
10220
  * @returns true if both PDF markers are found in the expected positions.
9865
10221
  */ function bufferHasValidPdfMarkings(buffer) {
9866
- return buffer.lastIndexOf('%PDF-') === 0 && buffer.lastIndexOf('%%EOF') > -1;
10222
+ return buffer.lastIndexOf('%PDF-') === 0 && buffer.includes('%%EOF');
9867
10223
  }
9868
10224
 
9869
- function _array_like_to_array$e(arr, len) {
10225
+ function _array_like_to_array$i(arr, len) {
9870
10226
  if (len == null || len > arr.length) len = arr.length;
9871
10227
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
9872
10228
  return arr2;
9873
10229
  }
9874
- function _array_without_holes$5(arr) {
9875
- if (Array.isArray(arr)) return _array_like_to_array$e(arr);
10230
+ function _array_without_holes$b(arr) {
10231
+ if (Array.isArray(arr)) return _array_like_to_array$i(arr);
9876
10232
  }
9877
- function _iterable_to_array$5(iter) {
10233
+ function _iterable_to_array$b(iter) {
9878
10234
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
9879
10235
  }
9880
- function _non_iterable_spread$5() {
10236
+ function _non_iterable_spread$b() {
9881
10237
  throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
9882
10238
  }
9883
- function _to_consumable_array$5(arr) {
9884
- return _array_without_holes$5(arr) || _iterable_to_array$5(arr) || _unsupported_iterable_to_array$e(arr) || _non_iterable_spread$5();
10239
+ function _to_consumable_array$b(arr) {
10240
+ return _array_without_holes$b(arr) || _iterable_to_array$b(arr) || _unsupported_iterable_to_array$i(arr) || _non_iterable_spread$b();
9885
10241
  }
9886
- function _unsupported_iterable_to_array$e(o, minLen) {
10242
+ function _unsupported_iterable_to_array$i(o, minLen) {
9887
10243
  if (!o) return;
9888
- if (typeof o === "string") return _array_like_to_array$e(o, minLen);
10244
+ if (typeof o === "string") return _array_like_to_array$i(o, minLen);
9889
10245
  var n = Object.prototype.toString.call(o).slice(8, -1);
9890
10246
  if (n === "Object" && o.constructor) n = o.constructor.name;
9891
10247
  if (n === "Map" || n === "Set") return Array.from(n);
9892
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$e(o, minLen);
10248
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$i(o, minLen);
9893
10249
  }
9894
10250
  /*eslint @typescript-eslint/no-explicit-any:"off"*/ // any is used with intent here. using unknown can have strange effects in usage of forwardFunction and type capture.
9895
10251
  /**
@@ -9901,14 +10257,13 @@ function _unsupported_iterable_to_array$e(o, minLen) {
9901
10257
  * @param getter - A Getter that provides the target function
9902
10258
  * @returns A forwarding function with the same signature as the target
9903
10259
  */ function forwardFunction(getter) {
9904
- var fn = function fn() {
10260
+ return function() {
9905
10261
  for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
9906
10262
  args[_key] = arguments[_key];
9907
10263
  }
9908
10264
  var forwardFn = getter();
9909
- return forwardFn.apply(void 0, _to_consumable_array$5(args));
10265
+ return forwardFn.apply(void 0, _to_consumable_array$b(args));
9910
10266
  };
9911
- return fn;
9912
10267
  }
9913
10268
  /**
9914
10269
  * Creates a factory that produces forwarding functions which use the provided function
@@ -9930,6 +10285,31 @@ function _unsupported_iterable_to_array$e(o, minLen) {
9930
10285
  * Alias of MAP_IDENTITY, so `isMapIdentityFunction()` will return true for this function.
9931
10286
  */ var passThrough = MAP_IDENTITY;
9932
10287
 
10288
+ function _array_like_to_array$h(arr, len) {
10289
+ if (len == null || len > arr.length) len = arr.length;
10290
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
10291
+ return arr2;
10292
+ }
10293
+ function _array_without_holes$a(arr) {
10294
+ if (Array.isArray(arr)) return _array_like_to_array$h(arr);
10295
+ }
10296
+ function _iterable_to_array$a(iter) {
10297
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
10298
+ }
10299
+ function _non_iterable_spread$a() {
10300
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
10301
+ }
10302
+ function _to_consumable_array$a(arr) {
10303
+ return _array_without_holes$a(arr) || _iterable_to_array$a(arr) || _unsupported_iterable_to_array$h(arr) || _non_iterable_spread$a();
10304
+ }
10305
+ function _unsupported_iterable_to_array$h(o, minLen) {
10306
+ if (!o) return;
10307
+ if (typeof o === "string") return _array_like_to_array$h(o, minLen);
10308
+ var n = Object.prototype.toString.call(o).slice(8, -1);
10309
+ if (n === "Object" && o.constructor) n = o.constructor.name;
10310
+ if (n === "Map" || n === "Set") return Array.from(n);
10311
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$h(o, minLen);
10312
+ }
9933
10313
  /**
9934
10314
  * Builds an array from the intersection of an object's keys with the provided keys.
9935
10315
  * For each matching key, the associated value (or values) are added to the result array.
@@ -9938,7 +10318,7 @@ function _unsupported_iterable_to_array$e(o, minLen) {
9938
10318
  * @param keys - The keys to intersect with the object
9939
10319
  * @returns An array of values from the matching keys
9940
10320
  */ function mapKeysIntersectionObjectToArray(object, keys) {
9941
- var keysToApply = Array.from(keys);
10321
+ var keysToApply = _to_consumable_array$a(keys);
9942
10322
  var applyArray = [];
9943
10323
  keysToApply.forEach(function(key) {
9944
10324
  var values = object[key];
@@ -10267,6 +10647,14 @@ function performTaskCountLoop(config) {
10267
10647
  });
10268
10648
  }
10269
10649
 
10650
+ function _array_like_to_array$g(arr, len) {
10651
+ if (len == null || len > arr.length) len = arr.length;
10652
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
10653
+ return arr2;
10654
+ }
10655
+ function _array_without_holes$9(arr) {
10656
+ if (Array.isArray(arr)) return _array_like_to_array$g(arr);
10657
+ }
10270
10658
  function asyncGeneratorStep$8(gen, resolve, reject, _next, _throw, key, arg) {
10271
10659
  try {
10272
10660
  var info = gen[key](arg);
@@ -10296,6 +10684,23 @@ function _async_to_generator$8(fn) {
10296
10684
  });
10297
10685
  };
10298
10686
  }
10687
+ function _iterable_to_array$9(iter) {
10688
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
10689
+ }
10690
+ function _non_iterable_spread$9() {
10691
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
10692
+ }
10693
+ function _to_consumable_array$9(arr) {
10694
+ return _array_without_holes$9(arr) || _iterable_to_array$9(arr) || _unsupported_iterable_to_array$g(arr) || _non_iterable_spread$9();
10695
+ }
10696
+ function _unsupported_iterable_to_array$g(o, minLen) {
10697
+ if (!o) return;
10698
+ if (typeof o === "string") return _array_like_to_array$g(o, minLen);
10699
+ var n = Object.prototype.toString.call(o).slice(8, -1);
10700
+ if (n === "Object" && o.constructor) n = o.constructor.name;
10701
+ if (n === "Map" || n === "Set") return Array.from(n);
10702
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$g(o, minLen);
10703
+ }
10299
10704
  function _ts_generator$8(thisArg, body) {
10300
10705
  var f, y, t, _ = {
10301
10706
  label: 0,
@@ -10450,7 +10855,7 @@ function _ts_generator$8(thisArg, body) {
10450
10855
  case 2:
10451
10856
  verifiedIds = _state.sent();
10452
10857
  // concat identifiers
10453
- ids = ids.concat(verifiedIds);
10858
+ ids = _to_consumable_array$9(ids).concat(_to_consumable_array$9(verifiedIds));
10454
10859
  return [
10455
10860
  3,
10456
10861
  1
@@ -10507,7 +10912,7 @@ function _ts_generator$8(thisArg, body) {
10507
10912
  };
10508
10913
  }
10509
10914
 
10510
- function _array_like_to_array$d(arr, len) {
10915
+ function _array_like_to_array$f(arr, len) {
10511
10916
  if (len == null || len > arr.length) len = arr.length;
10512
10917
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
10513
10918
  return arr2;
@@ -10515,6 +10920,12 @@ function _array_like_to_array$d(arr, len) {
10515
10920
  function _array_with_holes$b(arr) {
10516
10921
  if (Array.isArray(arr)) return arr;
10517
10922
  }
10923
+ function _array_without_holes$8(arr) {
10924
+ if (Array.isArray(arr)) return _array_like_to_array$f(arr);
10925
+ }
10926
+ function _iterable_to_array$8(iter) {
10927
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
10928
+ }
10518
10929
  function _iterable_to_array_limit$b(arr, i) {
10519
10930
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
10520
10931
  if (_i == null) return;
@@ -10542,16 +10953,22 @@ function _iterable_to_array_limit$b(arr, i) {
10542
10953
  function _non_iterable_rest$b() {
10543
10954
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
10544
10955
  }
10956
+ function _non_iterable_spread$8() {
10957
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
10958
+ }
10545
10959
  function _sliced_to_array$b(arr, i) {
10546
- return _array_with_holes$b(arr) || _iterable_to_array_limit$b(arr, i) || _unsupported_iterable_to_array$d(arr, i) || _non_iterable_rest$b();
10960
+ return _array_with_holes$b(arr) || _iterable_to_array_limit$b(arr, i) || _unsupported_iterable_to_array$f(arr, i) || _non_iterable_rest$b();
10547
10961
  }
10548
- function _unsupported_iterable_to_array$d(o, minLen) {
10962
+ function _to_consumable_array$8(arr) {
10963
+ return _array_without_holes$8(arr) || _iterable_to_array$8(arr) || _unsupported_iterable_to_array$f(arr) || _non_iterable_spread$8();
10964
+ }
10965
+ function _unsupported_iterable_to_array$f(o, minLen) {
10549
10966
  if (!o) return;
10550
- if (typeof o === "string") return _array_like_to_array$d(o, minLen);
10967
+ if (typeof o === "string") return _array_like_to_array$f(o, minLen);
10551
10968
  var n = Object.prototype.toString.call(o).slice(8, -1);
10552
10969
  if (n === "Object" && o.constructor) n = o.constructor.name;
10553
10970
  if (n === "Map" || n === "Set") return Array.from(n);
10554
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$d(o, minLen);
10971
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$f(o, minLen);
10555
10972
  }
10556
10973
  /**
10557
10974
  * Creates a bidirectional {@link PrimativeKeyDencoderMap} from the given values,
@@ -10588,7 +11005,10 @@ function _unsupported_iterable_to_array$d(o, minLen) {
10588
11005
  /**
10589
11006
  * Default fallback factory for {@link PrimativeKeyDencoderFunction} that always returns null,
10590
11007
  * causing an error to be thrown for unknown values.
10591
- */ var PRIMATIVE_KEY_DENCODER_VALUE = function PRIMATIVE_KEY_DENCODER_VALUE(input) {
11008
+ *
11009
+ * @param _input - the unknown value to look up (ignored; always returns null)
11010
+ * @returns always returns null to signal an unknown value
11011
+ */ var PRIMATIVE_KEY_DENCODER_VALUE = function PRIMATIVE_KEY_DENCODER_VALUE(_input) {
10592
11012
  return null;
10593
11013
  };
10594
11014
  /**
@@ -10603,10 +11023,9 @@ function _unsupported_iterable_to_array$d(o, minLen) {
10603
11023
  var map = primativeKeyDencoderMap(config.values);
10604
11024
  var fn = function fn(input) {
10605
11025
  if (Array.isArray(input)) {
10606
- var values = filterMaybeArrayValues(input.map(function(x) {
11026
+ return filterMaybeArrayValues(input.map(function(x) {
10607
11027
  return map.get(x);
10608
11028
  }));
10609
- return values;
10610
11029
  } else {
10611
11030
  var value = map.get(input);
10612
11031
  if (value == null) {
@@ -10637,7 +11056,7 @@ function _unsupported_iterable_to_array$d(o, minLen) {
10637
11056
  var dencoderMap = dencoder._map;
10638
11057
  if (splitter) {
10639
11058
  dencoderMap._tuples.forEach(function(x) {
10640
- if (x[0].toString().indexOf(splitter) !== -1) {
11059
+ if (x[0].toString().includes(splitter)) {
10641
11060
  throw new Error("primativeKeyStringDencoder() encountered a value (".concat(x[0], ") that contains the splitter (").concat(splitter, ")."));
10642
11061
  }
10643
11062
  });
@@ -10649,11 +11068,11 @@ function _unsupported_iterable_to_array$d(o, minLen) {
10649
11068
  }
10650
11069
  });
10651
11070
  }
10652
- var joiner = splitter || '';
11071
+ var joiner = splitter !== null && splitter !== void 0 ? splitter : '';
10653
11072
  var splitEncodedValues = splitter ? function(encodedValues) {
10654
11073
  return encodedValues.split(splitter);
10655
11074
  } : function(encodedValues) {
10656
- return Array.from(encodedValues);
11075
+ return _to_consumable_array$8(encodedValues);
10657
11076
  };
10658
11077
  return function(input) {
10659
11078
  if (typeof input === 'string') {
@@ -10776,6 +11195,7 @@ function _unsupported_iterable_to_array$d(o, minLen) {
10776
11195
  *
10777
11196
  * @param input - the address to format
10778
11197
  * @param addLinebreaks - whether to join parts with newlines (default `true`) or concatenate them directly
11198
+ * @returns the formatted address string, or `undefined` if no meaningful parts are present
10779
11199
  */ function unitedStatesAddressString(input) {
10780
11200
  var addLinebreaks = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
10781
11201
  var _ref = input !== null && input !== void 0 ? input : {}, name = _ref.name, phone = _ref.phone, line1 = _ref.line1, line2 = _ref.line2, zip = _ref.zip, state = _ref.state, city = _ref.city;
@@ -10809,6 +11229,7 @@ function _unsupported_iterable_to_array$d(o, minLen) {
10809
11229
  * Useful for validating an address before submission or display.
10810
11230
  *
10811
11231
  * @param input - the address to validate
11232
+ * @returns `true` if all required fields (line1, city, state, zip) are populated
10812
11233
  *
10813
11234
  * @example
10814
11235
  * ```ts
@@ -10836,6 +11257,7 @@ function _unsupported_iterable_to_array$d(o, minLen) {
10836
11257
  * Only matches uppercase codes; lowercase input returns `false`.
10837
11258
  *
10838
11259
  * @param input - the string to test
11260
+ * @returns `true` if the input matches a valid US state or territory code
10839
11261
  *
10840
11262
  * @example
10841
11263
  * ```ts
@@ -10864,6 +11286,7 @@ function _unsupported_iterable_to_array$d(o, minLen) {
10864
11286
  *
10865
11287
  * @param a - first vector
10866
11288
  * @param b - second vector
11289
+ * @returns `true` if both vectors are equal or both are nullish
10867
11290
  */ function isSameVector(a, b) {
10868
11291
  return a && b ? vectorsAreEqual(a, b) : a === b;
10869
11292
  }
@@ -10872,6 +11295,7 @@ function _unsupported_iterable_to_array$d(o, minLen) {
10872
11295
  *
10873
11296
  * @param a - first vector
10874
11297
  * @param b - second vector
11298
+ * @returns `true` if both vectors have identical `x` and `y` values
10875
11299
  */ function vectorsAreEqual(a, b) {
10876
11300
  return a.x === b.x && a.y === b.y;
10877
11301
  }
@@ -10882,6 +11306,7 @@ function _unsupported_iterable_to_array$d(o, minLen) {
10882
11306
  * If a minimum is not specified for an axis, the input value is passed through unchanged.
10883
11307
  *
10884
11308
  * @param minSize - the minimum dimensions to enforce
11309
+ * @returns a resize function that clamps each axis to the specified minimum
10885
11310
  *
10886
11311
  * @example
10887
11312
  * ```ts
@@ -10904,6 +11329,7 @@ function _unsupported_iterable_to_array$d(o, minLen) {
10904
11329
  *
10905
11330
  * @param a - first rectangle
10906
11331
  * @param b - second rectangle
11332
+ * @returns `true` if the rectangles share any interior area
10907
11333
  *
10908
11334
  * @example
10909
11335
  * ```ts
@@ -10935,6 +11361,7 @@ function _unsupported_iterable_to_array$d(o, minLen) {
10935
11361
  *
10936
11362
  * @param a - first rectangle
10937
11363
  * @param b - second rectangle
11364
+ * @returns the overlapping {@link Rectangle}, or `undefined` if the rectangles do not intersect
10938
11365
  */ function getOverlappingRectangle(a, b) {
10939
11366
  var xl = Math.max(a.bl.x, b.bl.x);
10940
11367
  var yl = Math.max(a.bl.y, b.bl.y);
@@ -10958,7 +11385,7 @@ function _unsupported_iterable_to_array$d(o, minLen) {
10958
11385
  };
10959
11386
  }
10960
11387
 
10961
- function _array_like_to_array$c(arr, len) {
11388
+ function _array_like_to_array$e(arr, len) {
10962
11389
  if (len == null || len > arr.length) len = arr.length;
10963
11390
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
10964
11391
  return arr2;
@@ -11041,19 +11468,19 @@ function _object_spread_props$4(target, source) {
11041
11468
  return target;
11042
11469
  }
11043
11470
  function _sliced_to_array$a(arr, i) {
11044
- return _array_with_holes$a(arr) || _iterable_to_array_limit$a(arr, i) || _unsupported_iterable_to_array$c(arr, i) || _non_iterable_rest$a();
11471
+ return _array_with_holes$a(arr) || _iterable_to_array_limit$a(arr, i) || _unsupported_iterable_to_array$e(arr, i) || _non_iterable_rest$a();
11045
11472
  }
11046
11473
  function _type_of$9(obj) {
11047
11474
  "@swc/helpers - typeof";
11048
11475
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
11049
11476
  }
11050
- function _unsupported_iterable_to_array$c(o, minLen) {
11477
+ function _unsupported_iterable_to_array$e(o, minLen) {
11051
11478
  if (!o) return;
11052
- if (typeof o === "string") return _array_like_to_array$c(o, minLen);
11479
+ if (typeof o === "string") return _array_like_to_array$e(o, minLen);
11053
11480
  var n = Object.prototype.toString.call(o).slice(8, -1);
11054
11481
  if (n === "Object" && o.constructor) n = o.constructor.name;
11055
11482
  if (n === "Map" || n === "Set") return Array.from(n);
11056
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$c(o, minLen);
11483
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$e(o, minLen);
11057
11484
  }
11058
11485
  /**
11059
11486
  * Minimum valid latitude value (-90 degrees).
@@ -11075,8 +11502,11 @@ function _unsupported_iterable_to_array$c(o, minLen) {
11075
11502
  */ var TOTAL_LONGITUDE_RANGE = MAX_LONGITUDE_VALUE - MIN_LONGITUDE_VALUE;
11076
11503
  /**
11077
11504
  * Type guard that checks whether the input is a {@link LatLngPoint} by testing for `lat` and `lng` properties.
11505
+ *
11506
+ * @param input - the value to test
11507
+ * @returns `true` if the input has both `lat` and `lng` properties
11078
11508
  */ function isLatLngPoint(input) {
11079
- return (typeof input === "undefined" ? "undefined" : _type_of$9(input)) === 'object' && input.lat != null && input.lng != null;
11509
+ return (typeof input === "undefined" ? "undefined" : _type_of$9(input)) === 'object' && input != null && 'lat' in input && 'lng' in input;
11080
11510
  }
11081
11511
  /**
11082
11512
  * Creates a shallow copy of the point so that mutations to the copy do not affect the original.
@@ -11548,7 +11978,7 @@ function latLngString(lat, lng) {
11548
11978
  });
11549
11979
  }
11550
11980
 
11551
- function _array_like_to_array$b(arr, len) {
11981
+ function _array_like_to_array$d(arr, len) {
11552
11982
  if (len == null || len > arr.length) len = arr.length;
11553
11983
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
11554
11984
  return arr2;
@@ -11556,10 +11986,10 @@ function _array_like_to_array$b(arr, len) {
11556
11986
  function _array_with_holes$9(arr) {
11557
11987
  if (Array.isArray(arr)) return arr;
11558
11988
  }
11559
- function _array_without_holes$4(arr) {
11560
- if (Array.isArray(arr)) return _array_like_to_array$b(arr);
11989
+ function _array_without_holes$7(arr) {
11990
+ if (Array.isArray(arr)) return _array_like_to_array$d(arr);
11561
11991
  }
11562
- function _iterable_to_array$4(iter) {
11992
+ function _iterable_to_array$7(iter) {
11563
11993
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
11564
11994
  }
11565
11995
  function _iterable_to_array_limit$9(arr, i) {
@@ -11589,31 +12019,34 @@ function _iterable_to_array_limit$9(arr, i) {
11589
12019
  function _non_iterable_rest$9() {
11590
12020
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
11591
12021
  }
11592
- function _non_iterable_spread$4() {
12022
+ function _non_iterable_spread$7() {
11593
12023
  throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
11594
12024
  }
11595
12025
  function _sliced_to_array$9(arr, i) {
11596
- return _array_with_holes$9(arr) || _iterable_to_array_limit$9(arr, i) || _unsupported_iterable_to_array$b(arr, i) || _non_iterable_rest$9();
12026
+ return _array_with_holes$9(arr) || _iterable_to_array_limit$9(arr, i) || _unsupported_iterable_to_array$d(arr, i) || _non_iterable_rest$9();
11597
12027
  }
11598
- function _to_consumable_array$4(arr) {
11599
- return _array_without_holes$4(arr) || _iterable_to_array$4(arr) || _unsupported_iterable_to_array$b(arr) || _non_iterable_spread$4();
12028
+ function _to_consumable_array$7(arr) {
12029
+ return _array_without_holes$7(arr) || _iterable_to_array$7(arr) || _unsupported_iterable_to_array$d(arr) || _non_iterable_spread$7();
11600
12030
  }
11601
12031
  function _type_of$8(obj) {
11602
12032
  "@swc/helpers - typeof";
11603
12033
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
11604
12034
  }
11605
- function _unsupported_iterable_to_array$b(o, minLen) {
12035
+ function _unsupported_iterable_to_array$d(o, minLen) {
11606
12036
  if (!o) return;
11607
- if (typeof o === "string") return _array_like_to_array$b(o, minLen);
12037
+ if (typeof o === "string") return _array_like_to_array$d(o, minLen);
11608
12038
  var n = Object.prototype.toString.call(o).slice(8, -1);
11609
12039
  if (n === "Object" && o.constructor) n = o.constructor.name;
11610
12040
  if (n === "Map" || n === "Set") return Array.from(n);
11611
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$b(o, minLen);
12041
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$d(o, minLen);
11612
12042
  }
11613
12043
  /**
11614
12044
  * Type guard that checks whether the input is a {@link LatLngBound} by testing for the presence of `sw` and `ne` properties.
12045
+ *
12046
+ * @param input - value to test
12047
+ * @returns `true` if the input has `sw` and `ne` properties, indicating a bound
11615
12048
  */ function isLatLngBound(input) {
11616
- return (typeof input === "undefined" ? "undefined" : _type_of$8(input)) === 'object' && input.sw != null && input.ne != null;
12049
+ return (typeof input === "undefined" ? "undefined" : _type_of$8(input)) === 'object' && input != null && 'sw' in input && 'ne' in input;
11617
12050
  }
11618
12051
  /**
11619
12052
  * Creates a deep copy of the bound so that mutations to the copy do not affect the original.
@@ -11837,7 +12270,7 @@ function _unsupported_iterable_to_array$b(o, minLen) {
11837
12270
  sw: latLngPoint(sw),
11838
12271
  ne: latLngPoint(ne)
11839
12272
  };
11840
- } else if (input.length === 4) {
12273
+ } else {
11841
12274
  var _Math, _Math1, _Math2, _Math3;
11842
12275
  var points = input.map(latLngPoint);
11843
12276
  var lats = points.map(function(x) {
@@ -11846,10 +12279,10 @@ function _unsupported_iterable_to_array$b(o, minLen) {
11846
12279
  var lngs = points.map(function(x) {
11847
12280
  return x.lng;
11848
12281
  });
11849
- var minLat = (_Math = Math).min.apply(_Math, _to_consumable_array$4(lats));
11850
- var maxLat = (_Math1 = Math).max.apply(_Math1, _to_consumable_array$4(lats));
11851
- var minLng = (_Math2 = Math).min.apply(_Math2, _to_consumable_array$4(lngs));
11852
- var maxLng = (_Math3 = Math).max.apply(_Math3, _to_consumable_array$4(lngs));
12282
+ var minLat = (_Math = Math).min.apply(_Math, _to_consumable_array$7(lats));
12283
+ var maxLat = (_Math1 = Math).max.apply(_Math1, _to_consumable_array$7(lats));
12284
+ var minLng = (_Math2 = Math).min.apply(_Math2, _to_consumable_array$7(lngs));
12285
+ var maxLng = (_Math3 = Math).max.apply(_Math3, _to_consumable_array$7(lngs));
11853
12286
  bound = {
11854
12287
  sw: latLngPoint([
11855
12288
  minLat,
@@ -11861,12 +12294,12 @@ function _unsupported_iterable_to_array$b(o, minLen) {
11861
12294
  ])
11862
12295
  };
11863
12296
  }
11864
- } else if (input && inputNe) {
12297
+ } else if (inputNe) {
11865
12298
  bound = {
11866
12299
  sw: input,
11867
12300
  ne: inputNe
11868
12301
  };
11869
- } else if (input.sw && input.ne) {
12302
+ } else if (isLatLngBound(input)) {
11870
12303
  bound = input;
11871
12304
  }
11872
12305
  if (!bound) {
@@ -12070,6 +12503,7 @@ function _unsupported_iterable_to_array$b(o, minLen) {
12070
12503
  * but `null === undefined` is `false`.
12071
12504
  *
12072
12505
  * @param compare - the comparator to wrap
12506
+ * @returns a new comparator that handles nullish values safely before delegating to the wrapped comparator
12073
12507
  *
12074
12508
  * @example
12075
12509
  * ```ts
@@ -12092,6 +12526,7 @@ function _unsupported_iterable_to_array$b(o, minLen) {
12092
12526
  * @param a - first value to compare
12093
12527
  * @param b - second value to compare
12094
12528
  * @param compare - the equality comparator for non-nullish values
12529
+ * @returns `true` if the values are considered equal
12095
12530
  *
12096
12531
  * @example
12097
12532
  * ```ts
@@ -12112,6 +12547,7 @@ function _unsupported_iterable_to_array$b(o, minLen) {
12112
12547
  *
12113
12548
  * @param readValues - extracts the comparable value from each item
12114
12549
  * @param equalityComparator - compares the extracted values for equality
12550
+ * @returns a function that compares two items by their extracted values
12115
12551
  */ function compareEqualityWithValueFromItemsFunction(readValues, equalityComparator) {
12116
12552
  return compareEqualityWithValueFromItemsFunctionFactory(readValues)(equalityComparator);
12117
12553
  }
@@ -12122,6 +12558,7 @@ function _unsupported_iterable_to_array$b(o, minLen) {
12122
12558
  * with varying comparison strategies.
12123
12559
  *
12124
12560
  * @param readValues - extracts the comparable value from each item
12561
+ * @returns a factory function that accepts an equality comparator and produces a comparison function
12125
12562
  *
12126
12563
  * @example
12127
12564
  * ```ts
@@ -12148,7 +12585,7 @@ function _unsupported_iterable_to_array$b(o, minLen) {
12148
12585
  return fn;
12149
12586
  }
12150
12587
 
12151
- function _array_like_to_array$a(arr, len) {
12588
+ function _array_like_to_array$c(arr, len) {
12152
12589
  if (len == null || len > arr.length) len = arr.length;
12153
12590
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
12154
12591
  return arr2;
@@ -12191,25 +12628,25 @@ function _non_iterable_rest$8() {
12191
12628
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
12192
12629
  }
12193
12630
  function _sliced_to_array$8(arr, i) {
12194
- return _array_with_holes$8(arr) || _iterable_to_array_limit$8(arr, i) || _unsupported_iterable_to_array$a(arr, i) || _non_iterable_rest$8();
12631
+ return _array_with_holes$8(arr) || _iterable_to_array_limit$8(arr, i) || _unsupported_iterable_to_array$c(arr, i) || _non_iterable_rest$8();
12195
12632
  }
12196
12633
  function _type_of$7(obj) {
12197
12634
  "@swc/helpers - typeof";
12198
12635
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
12199
12636
  }
12200
- function _unsupported_iterable_to_array$a(o, minLen) {
12637
+ function _unsupported_iterable_to_array$c(o, minLen) {
12201
12638
  if (!o) return;
12202
- if (typeof o === "string") return _array_like_to_array$a(o, minLen);
12639
+ if (typeof o === "string") return _array_like_to_array$c(o, minLen);
12203
12640
  var n = Object.prototype.toString.call(o).slice(8, -1);
12204
12641
  if (n === "Object" && o.constructor) n = o.constructor.name;
12205
12642
  if (n === "Map" || n === "Set") return Array.from(n);
12206
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$a(o, minLen);
12643
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$c(o, minLen);
12207
12644
  }
12208
12645
  /**
12209
12646
  * Regular expression for validating ISO8601 date strings.
12210
12647
  *
12211
12648
  * TODO(FUTURE): Need to improve to support negative years.
12212
- */ var ISO_8601_DATE_STRING_REGEX = /(\d{4,})-(\d{2})-(\d{2})T(\d{2})\:(\d{2})\:(\d{2})(Z|[+-](\d{2})\:(\d{2}))?/;
12649
+ */ var ISO_8601_DATE_STRING_REGEX = /(\d{4,})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(Z|[+-](\d{2}):(\d{2}))?/;
12213
12650
  /**
12214
12651
  * Determines if a string is a valid ISO8601 date string.
12215
12652
  *
@@ -12330,8 +12767,7 @@ function isConsideredUtcTimezoneString(timezone) {
12330
12767
  if (year.length === 2) {
12331
12768
  year = "20".concat(year);
12332
12769
  }
12333
- var result = "".concat(year, "-").concat(month, "-").concat(day);
12334
- return result;
12770
+ return "".concat(year, "-").concat(month, "-").concat(day);
12335
12771
  }
12336
12772
  function dateFromDateOrTimeMillisecondsNumber(input) {
12337
12773
  if (input == null) {
@@ -12557,7 +12993,7 @@ var MINUTE_OF_DAY_MAXMIMUM = MINUTES_IN_DAY - 1;
12557
12993
  * @param day - Optional base date to use (defaults to the current date)
12558
12994
  * @returns A Date with the time set to the specified minute of day
12559
12995
  */ function dateFromMinuteOfDay(minuteOfDay, day) {
12560
- var date = day || new Date();
12996
+ var date = day !== null && day !== void 0 ? day : new Date();
12561
12997
  var _minutesToHoursAndMinutes = minutesToHoursAndMinutes(asMinuteOfDay(minuteOfDay)), hour = _minutesToHoursAndMinutes.hour, minute = _minutesToHoursAndMinutes.minute;
12562
12998
  date.setHours(hour, minute, 0, 0);
12563
12999
  return date;
@@ -12611,6 +13047,7 @@ var MINUTE_OF_DAY_MAXMIMUM = MINUTES_IN_DAY - 1;
12611
13047
  * every 1 hour at minute 30), which means intervals won't be exactly N minutes apart.
12612
13048
  *
12613
13049
  * @param inputMinutes - interval in minutes between executions
13050
+ * @returns a cron expression string that approximates the requested interval
12614
13051
  *
12615
13052
  * @example
12616
13053
  * ```ts
@@ -12637,6 +13074,7 @@ var MINUTE_OF_DAY_MAXMIMUM = MINUTES_IN_DAY - 1;
12637
13074
  *
12638
13075
  * @param contextValue - the reference value to compare against
12639
13076
  * @param fn - the equality comparator
13077
+ * @returns a function that checks whether a given value equals the captured reference
12640
13078
  *
12641
13079
  * @example
12642
13080
  * ```ts
@@ -12659,6 +13097,7 @@ var MINUTE_OF_DAY_MAXMIMUM = MINUTES_IN_DAY - 1;
12659
13097
  *
12660
13098
  * @param contextValue - the reference value to compare against
12661
13099
  * @param fn - the equality comparator
13100
+ * @returns a function that checks whether all input values equal the captured reference
12662
13101
  *
12663
13102
  * @example
12664
13103
  * ```ts
@@ -12690,6 +13129,7 @@ var MINUTE_OF_DAY_MAXMIMUM = MINUTES_IN_DAY - 1;
12690
13129
  *
12691
13130
  * @param values - the values to compare
12692
13131
  * @param fn - the equality comparator
13132
+ * @returns `true` if all values are equal to each other, or if fewer than two values are provided
12693
13133
  *
12694
13134
  * @example
12695
13135
  * ```ts
@@ -12715,6 +13155,7 @@ var MINUTE_OF_DAY_MAXMIMUM = MINUTES_IN_DAY - 1;
12715
13155
  * Enables fast lookup of labeled items by their value key.
12716
13156
  *
12717
13157
  * @param values - array of labeled values to index
13158
+ * @returns a Map keyed by each item's value for fast lookup
12718
13159
  *
12719
13160
  * @example
12720
13161
  * ```ts
@@ -12739,6 +13180,7 @@ var MINUTE_OF_DAY_MAXMIMUM = MINUTES_IN_DAY - 1;
12739
13180
  *
12740
13181
  * @param key - unique identifier for the modifier
12741
13182
  * @param modify - function that mutates the target value
13183
+ * @returns a new {@link Modifier} pairing the key with the modify function
12742
13184
  *
12743
13185
  * @example
12744
13186
  * ```ts
@@ -12755,8 +13197,9 @@ var MINUTE_OF_DAY_MAXMIMUM = MINUTES_IN_DAY - 1;
12755
13197
  }
12756
13198
  /**
12757
13199
  * A no-operation modifier that does nothing to the input. Useful as a default/fallback.
12758
- */ // eslint-disable-next-line @typescript-eslint/no-explicit-any
12759
- var NOOP_MODIFIER = function NOOP_MODIFIER() {
13200
+ *
13201
+ * @returns undefined (no mutation is performed)
13202
+ */ var NOOP_MODIFIER = function NOOP_MODIFIER() {
12760
13203
  return undefined;
12761
13204
  };
12762
13205
  /**
@@ -12766,6 +13209,7 @@ var NOOP_MODIFIER = function NOOP_MODIFIER() {
12766
13209
  *
12767
13210
  * @param modifiers - modifier(s) to add
12768
13211
  * @param map - existing map to add to, or undefined to create a new one
13212
+ * @returns the modifier map with the new modifiers added
12769
13213
  *
12770
13214
  * @example
12771
13215
  * ```ts
@@ -12774,9 +13218,7 @@ var NOOP_MODIFIER = function NOOP_MODIFIER() {
12774
13218
  * map.has('double'); // true
12775
13219
  * ```
12776
13220
  */ function addModifiers(modifiers, map) {
12777
- if (!map) {
12778
- map = new Map();
12779
- }
13221
+ map !== null && map !== void 0 ? map : map = new Map();
12780
13222
  forEachWithArray(modifiers, function(modifier) {
12781
13223
  return map.set(modifier.key, modifier);
12782
13224
  });
@@ -12787,6 +13229,7 @@ var NOOP_MODIFIER = function NOOP_MODIFIER() {
12787
13229
  *
12788
13230
  * @param modifiers - modifier(s) whose keys should be removed
12789
13231
  * @param map - the map to remove from
13232
+ * @returns the modifier map with the specified modifiers removed
12790
13233
  *
12791
13234
  * @example
12792
13235
  * ```ts
@@ -12811,6 +13254,7 @@ var NOOP_MODIFIER = function NOOP_MODIFIER() {
12811
13254
  * Returns {@link NOOP_MODIFIER} if the map is nullish or empty.
12812
13255
  *
12813
13256
  * @param map - the modifier map to convert
13257
+ * @returns a single modifier function that applies all mapped modifiers, or {@link NOOP_MODIFIER} if empty
12814
13258
  *
12815
13259
  * @example
12816
13260
  * ```ts
@@ -12831,6 +13275,7 @@ var NOOP_MODIFIER = function NOOP_MODIFIER() {
12831
13275
  * Returns undefined if no map is provided, allowing callers to distinguish "no modifiers" from "empty modifiers".
12832
13276
  *
12833
13277
  * @param map - the modifier map to convert
13278
+ * @returns a composed modifier function, or `undefined` if no map is provided
12834
13279
  */ function maybeModifierMapToFunction(map) {
12835
13280
  var fn;
12836
13281
  if (map != null) {
@@ -12852,6 +13297,7 @@ var NOOP_MODIFIER = function NOOP_MODIFIER() {
12852
13297
  * Returns {@link NOOP_MODIFIER} if the array is empty or nullish.
12853
13298
  *
12854
13299
  * @param modifiers - array of modifier functions to merge
13300
+ * @returns a single modifier function that applies all provided modifiers, or {@link NOOP_MODIFIER} if empty
12855
13301
  *
12856
13302
  * @example
12857
13303
  * ```ts
@@ -12872,6 +13318,7 @@ var NOOP_MODIFIER = function NOOP_MODIFIER() {
12872
13318
  * If only one modifier is provided, returns it directly without wrapping.
12873
13319
  *
12874
13320
  * @param modifiers - array of modifier functions to merge, or undefined
13321
+ * @returns a composed modifier function, the single modifier if only one provided, or `undefined` if input is nullish
12875
13322
  */ function maybeMergeModifiers(modifiers) {
12876
13323
  var result = undefined;
12877
13324
  if (modifiers != null) {
@@ -12909,6 +13356,7 @@ var NOOP_MODIFIER = function NOOP_MODIFIER() {
12909
13356
  * Operates via simple string splitting rather than URL parsing, so it works with partial or non-standard URLs.
12910
13357
  *
12911
13358
  * @param url - the full URL string to clean
13359
+ * @returns the URL string with query parameters and hash fragments removed
12912
13360
  *
12913
13361
  * @example
12914
13362
  * ```ts
@@ -13165,17 +13613,12 @@ function _ts_generator$7(thisArg, body) {
13165
13613
  result = _state.sent();
13166
13614
  return [
13167
13615
  3,
13168
- 4
13616
+ 3
13169
13617
  ];
13170
13618
  case 2:
13171
- return [
13172
- 4,
13173
- getValueFromGetter(defaultValue)
13174
- ];
13619
+ result = getValueFromGetter(defaultValue);
13620
+ _state.label = 3;
13175
13621
  case 3:
13176
- result = _state.sent();
13177
- _state.label = 4;
13178
- case 4:
13179
13622
  return [
13180
13623
  2,
13181
13624
  result
@@ -13276,6 +13719,31 @@ function _ts_generator$7(thisArg, body) {
13276
13719
  };
13277
13720
  }
13278
13721
 
13722
+ function _array_like_to_array$b(arr, len) {
13723
+ if (len == null || len > arr.length) len = arr.length;
13724
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
13725
+ return arr2;
13726
+ }
13727
+ function _array_without_holes$6(arr) {
13728
+ if (Array.isArray(arr)) return _array_like_to_array$b(arr);
13729
+ }
13730
+ function _iterable_to_array$6(iter) {
13731
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
13732
+ }
13733
+ function _non_iterable_spread$6() {
13734
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
13735
+ }
13736
+ function _to_consumable_array$6(arr) {
13737
+ return _array_without_holes$6(arr) || _iterable_to_array$6(arr) || _unsupported_iterable_to_array$b(arr) || _non_iterable_spread$6();
13738
+ }
13739
+ function _unsupported_iterable_to_array$b(o, minLen) {
13740
+ if (!o) return;
13741
+ if (typeof o === "string") return _array_like_to_array$b(o, minLen);
13742
+ var n = Object.prototype.toString.call(o).slice(8, -1);
13743
+ if (n === "Object" && o.constructor) n = o.constructor.name;
13744
+ if (n === "Map" || n === "Set") return Array.from(n);
13745
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$b(o, minLen);
13746
+ }
13279
13747
  /**
13280
13748
  * Creates an {@link ObjectDeltaArrayCompressor} that can compress and expand arrays of objects using delta encoding.
13281
13749
  *
@@ -13287,7 +13755,7 @@ function _ts_generator$7(thisArg, body) {
13287
13755
  */ function objectDeltaArrayCompressor(config) {
13288
13756
  var _equalityChecker = config.equalityChecker;
13289
13757
  var assignKnownValuesToCopy = assignValuesToPOJOFunction({
13290
- keysFilter: Array.from(_equalityChecker._fields.keys()),
13758
+ keysFilter: _to_consumable_array$6(_equalityChecker._fields.keys()),
13291
13759
  valueFilter: KeyValueTypleValueFilter.NULL
13292
13760
  });
13293
13761
  function compress(uncompressed) {
@@ -13324,7 +13792,7 @@ function _ts_generator$7(thisArg, body) {
13324
13792
  });
13325
13793
  return result;
13326
13794
  }
13327
- var allKeys = Array.from(_equalityChecker._fields.keys());
13795
+ var allKeys = _to_consumable_array$6(_equalityChecker._fields.keys());
13328
13796
  function expand(compressed) {
13329
13797
  if (compressed.length === 0) {
13330
13798
  return [];
@@ -13450,12 +13918,28 @@ function _type_of$6(obj) {
13450
13918
  if (obj != null && (typeof obj === "undefined" ? "undefined" : _type_of$6(obj)) === 'object') {
13451
13919
  var keys = Object.keys(obj);
13452
13920
  if (keys.length > 0) {
13453
- for(var i = 0; i < keys.length; i += 1){
13454
- var key = keys[i];
13455
- var value = obj[key];
13456
- var isEmpty = (typeof value === "undefined" ? "undefined" : _type_of$6(value)) === 'object' ? objectIsEmpty(value) : !hasValueOrNotEmpty(value);
13457
- if (!isEmpty) {
13458
- return false;
13921
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
13922
+ try {
13923
+ for(var _iterator = keys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
13924
+ var key = _step.value;
13925
+ var value = obj[key];
13926
+ var isEmpty = (typeof value === "undefined" ? "undefined" : _type_of$6(value)) === 'object' ? objectIsEmpty(value) : !hasValueOrNotEmpty(value);
13927
+ if (!isEmpty) {
13928
+ return false;
13929
+ }
13930
+ }
13931
+ } catch (err) {
13932
+ _didIteratorError = true;
13933
+ _iteratorError = err;
13934
+ } finally{
13935
+ try {
13936
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
13937
+ _iterator.return();
13938
+ }
13939
+ } finally{
13940
+ if (_didIteratorError) {
13941
+ throw _iteratorError;
13942
+ }
13459
13943
  }
13460
13944
  }
13461
13945
  }
@@ -13517,8 +14001,7 @@ function dateFromDateOrTimeSecondsNumber(input) {
13517
14001
  var parsedExpiresFromDate = expiresFromDate != null ? dateFromDateOrTimeMillisecondsNumber(expiresFromDate) : null;
13518
14002
  function getNow(nowOverride) {
13519
14003
  var _ref;
13520
- var now = (_ref = nowOverride !== null && nowOverride !== void 0 ? nowOverride : inputNow) !== null && _ref !== void 0 ? _ref : new Date();
13521
- return now;
14004
+ return (_ref = nowOverride !== null && nowOverride !== void 0 ? nowOverride : inputNow) !== null && _ref !== void 0 ? _ref : new Date();
13522
14005
  }
13523
14006
  function hasExpired(nowOverride) {
13524
14007
  var defaultIfNoExpirationDate = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
@@ -13633,30 +14116,30 @@ function dateFromDateOrTimeSecondsNumber(input) {
13633
14116
  return firstExpired !== -1;
13634
14117
  }
13635
14118
 
13636
- function _array_like_to_array$9(arr, len) {
14119
+ function _array_like_to_array$a(arr, len) {
13637
14120
  if (len == null || len > arr.length) len = arr.length;
13638
14121
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
13639
14122
  return arr2;
13640
14123
  }
13641
- function _array_without_holes$3(arr) {
13642
- if (Array.isArray(arr)) return _array_like_to_array$9(arr);
14124
+ function _array_without_holes$5(arr) {
14125
+ if (Array.isArray(arr)) return _array_like_to_array$a(arr);
13643
14126
  }
13644
- function _iterable_to_array$3(iter) {
14127
+ function _iterable_to_array$5(iter) {
13645
14128
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
13646
14129
  }
13647
- function _non_iterable_spread$3() {
14130
+ function _non_iterable_spread$5() {
13648
14131
  throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
13649
14132
  }
13650
- function _to_consumable_array$3(arr) {
13651
- return _array_without_holes$3(arr) || _iterable_to_array$3(arr) || _unsupported_iterable_to_array$9(arr) || _non_iterable_spread$3();
14133
+ function _to_consumable_array$5(arr) {
14134
+ return _array_without_holes$5(arr) || _iterable_to_array$5(arr) || _unsupported_iterable_to_array$a(arr) || _non_iterable_spread$5();
13652
14135
  }
13653
- function _unsupported_iterable_to_array$9(o, minLen) {
14136
+ function _unsupported_iterable_to_array$a(o, minLen) {
13654
14137
  if (!o) return;
13655
- if (typeof o === "string") return _array_like_to_array$9(o, minLen);
14138
+ if (typeof o === "string") return _array_like_to_array$a(o, minLen);
13656
14139
  var n = Object.prototype.toString.call(o).slice(8, -1);
13657
14140
  if (n === "Object" && o.constructor) n = o.constructor.name;
13658
14141
  if (n === "Map" || n === "Set") return Array.from(n);
13659
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$9(o, minLen);
14142
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$a(o, minLen);
13660
14143
  }
13661
14144
  /**
13662
14145
  * Returns the day of the week for the input date.
@@ -13782,9 +14265,9 @@ function _unsupported_iterable_to_array$9(o, minLen) {
13782
14265
  if (sundayFirst) {
13783
14266
  dayOfWeekNames = [
13784
14267
  sunday
13785
- ].concat(_to_consumable_array$3(days));
14268
+ ].concat(_to_consumable_array$5(days));
13786
14269
  } else {
13787
- dayOfWeekNames = _to_consumable_array$3(days).concat([
14270
+ dayOfWeekNames = _to_consumable_array$5(days).concat([
13788
14271
  sunday
13789
14272
  ]);
13790
14273
  }
@@ -13886,6 +14369,20 @@ function _unsupported_iterable_to_array$9(o, minLen) {
13886
14369
  return result;
13887
14370
  }
13888
14371
 
14372
+ /**
14373
+ * Converts the input number of milliseconds to whole minutes by flooring the result.
14374
+ *
14375
+ * @param milliseconds - The number of milliseconds to convert.
14376
+ * @returns The equivalent whole minutes, rounded down.
14377
+ *
14378
+ * @example
14379
+ * ```ts
14380
+ * millisecondsToMinutes(180000); // 3
14381
+ * millisecondsToMinutes(90000); // 1
14382
+ * ```
14383
+ */ function millisecondsToMinutes(milliseconds) {
14384
+ return Math.floor(milliseconds / MS_IN_MINUTE);
14385
+ }
13889
14386
  /**
13890
14387
  * Converts the input number of milliseconds to the equivalent in minutes and seconds.
13891
14388
  *
@@ -14237,6 +14734,9 @@ function waitForMs(ms, value) {
14237
14734
  * Polls at a regular interval until a condition is met or the maximum number of attempts is reached.
14238
14735
  *
14239
14736
  * @param config - Polling configuration including check function, wait interval, and max attempts.
14737
+ * @param config.check - predicate function that returns true when the polling condition has been satisfied
14738
+ * @param config.wait - milliseconds to wait between polling iterations; defaults to 250
14739
+ * @param config.timesToGiveup - maximum number of polling iterations before giving up; defaults to `Number.MAX_SAFE_INTEGER`
14240
14740
  * @returns A Promise that resolves when the check condition returns `true` or the max attempts are exhausted.
14241
14741
  */ function poll(param) {
14242
14742
  var check = param.check, _param_wait = param.wait, wait = _param_wait === void 0 ? 250 : _param_wait, _param_timesToGiveup = param.timesToGiveup, timesToGiveup = _param_timesToGiveup === void 0 ? Number.MAX_SAFE_INTEGER : _param_timesToGiveup;
@@ -14378,7 +14878,7 @@ var PROMISE_REF_NUMBER = 0;
14378
14878
  return ref;
14379
14879
  }
14380
14880
 
14381
- function _array_like_to_array$8(arr, len) {
14881
+ function _array_like_to_array$9(arr, len) {
14382
14882
  if (len == null || len > arr.length) len = arr.length;
14383
14883
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
14384
14884
  return arr2;
@@ -14386,8 +14886,8 @@ function _array_like_to_array$8(arr, len) {
14386
14886
  function _array_with_holes$7(arr) {
14387
14887
  if (Array.isArray(arr)) return arr;
14388
14888
  }
14389
- function _array_without_holes$2(arr) {
14390
- if (Array.isArray(arr)) return _array_like_to_array$8(arr);
14889
+ function _array_without_holes$4(arr) {
14890
+ if (Array.isArray(arr)) return _array_like_to_array$9(arr);
14391
14891
  }
14392
14892
  function asyncGeneratorStep$4(gen, resolve, reject, _next, _throw, key, arg) {
14393
14893
  try {
@@ -14431,7 +14931,7 @@ function _define_property$9(obj, key, value) {
14431
14931
  }
14432
14932
  return obj;
14433
14933
  }
14434
- function _iterable_to_array$2(iter) {
14934
+ function _iterable_to_array$4(iter) {
14435
14935
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
14436
14936
  }
14437
14937
  function _iterable_to_array_limit$7(arr, i) {
@@ -14461,7 +14961,7 @@ function _iterable_to_array_limit$7(arr, i) {
14461
14961
  function _non_iterable_rest$7() {
14462
14962
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
14463
14963
  }
14464
- function _non_iterable_spread$2() {
14964
+ function _non_iterable_spread$4() {
14465
14965
  throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
14466
14966
  }
14467
14967
  function _object_spread$5(target) {
@@ -14499,18 +14999,18 @@ function _object_spread_props$2(target, source) {
14499
14999
  return target;
14500
15000
  }
14501
15001
  function _sliced_to_array$7(arr, i) {
14502
- return _array_with_holes$7(arr) || _iterable_to_array_limit$7(arr, i) || _unsupported_iterable_to_array$8(arr, i) || _non_iterable_rest$7();
15002
+ return _array_with_holes$7(arr) || _iterable_to_array_limit$7(arr, i) || _unsupported_iterable_to_array$9(arr, i) || _non_iterable_rest$7();
14503
15003
  }
14504
- function _to_consumable_array$2(arr) {
14505
- return _array_without_holes$2(arr) || _iterable_to_array$2(arr) || _unsupported_iterable_to_array$8(arr) || _non_iterable_spread$2();
15004
+ function _to_consumable_array$4(arr) {
15005
+ return _array_without_holes$4(arr) || _iterable_to_array$4(arr) || _unsupported_iterable_to_array$9(arr) || _non_iterable_spread$4();
14506
15006
  }
14507
- function _unsupported_iterable_to_array$8(o, minLen) {
15007
+ function _unsupported_iterable_to_array$9(o, minLen) {
14508
15008
  if (!o) return;
14509
- if (typeof o === "string") return _array_like_to_array$8(o, minLen);
15009
+ if (typeof o === "string") return _array_like_to_array$9(o, minLen);
14510
15010
  var n = Object.prototype.toString.call(o).slice(8, -1);
14511
15011
  if (n === "Object" && o.constructor) n = o.constructor.name;
14512
15012
  if (n === "Map" || n === "Set") return Array.from(n);
14513
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$8(o, minLen);
15013
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$9(o, minLen);
14514
15014
  }
14515
15015
  function _ts_generator$4(thisArg, body) {
14516
15016
  var f, y, t, _ = {
@@ -14611,20 +15111,6 @@ function _ts_generator$4(thisArg, body) {
14611
15111
  };
14612
15112
  }
14613
15113
  }
14614
- function _ts_values(o) {
14615
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
14616
- if (m) return m.call(o);
14617
- if (o && typeof o.length === "number") return {
14618
- next: function() {
14619
- if (o && i >= o.length) o = void 0;
14620
- return {
14621
- value: o && o[i++],
14622
- done: !o
14623
- };
14624
- }
14625
- };
14626
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
14627
- }
14628
15114
  /**
14629
15115
  * Runs a single async task and returns the resulting value. Always configured to throw on failure.
14630
15116
  *
@@ -14883,7 +15369,7 @@ function _performAsyncTask(_0, _1) {
14883
15369
  2,
14884
15370
  [
14885
15371
  value
14886
- ].concat(_to_consumable_array$2(result))
15372
+ ].concat(_to_consumable_array$4(result))
14887
15373
  ];
14888
15374
  }
14889
15375
  retriesRemaining = retriesAllowed - tryNumber;
@@ -14917,7 +15403,7 @@ function _performAsyncTask(_0, _1) {
14917
15403
  config = _arguments.length > 2 && _arguments[2] !== void 0 ? _arguments[2] : {};
14918
15404
  inputThrowError = config.throwError, inputRetriesAllowed = config.retriesAllowed, _config_retryWait = config.retryWait, retryWait = _config_retryWait === void 0 ? 200 : _config_retryWait, beforeRetry = config.beforeRetry;
14919
15405
  throwError = inputThrowError !== null && inputThrowError !== void 0 ? inputThrowError : true; // throw errors by default
14920
- retriesAllowed = inputRetriesAllowed ? inputRetriesAllowed : 0;
15406
+ retriesAllowed = inputRetriesAllowed || 0;
14921
15407
  return [
14922
15408
  2,
14923
15409
  iterateTask(value, 0)
@@ -14987,10 +15473,10 @@ function _performAsyncTask(_0, _1) {
14987
15473
  * with configurable concurrency limits and non-concurrent key constraints.
14988
15474
  *
14989
15475
  * @param config - Configuration for the task factory, parallelism, and concurrency behavior.
14990
- * @returns A function that accepts a task input factory and returns a Promise resolving when all tasks complete.
15476
+ * @returns a function that accepts a task input factory and returns a Promise that resolves when all tasks complete
14991
15477
  */ function performTasksFromFactoryInParallelFunction(config) {
14992
15478
  /**
14993
- * By default returns null
15479
+ * @returns null
14994
15480
  */ var defaultNonConcurrentTaskKeyFactory = function defaultNonConcurrentTaskKeyFactory() {
14995
15481
  return null;
14996
15482
  };
@@ -15001,133 +15487,95 @@ function _performAsyncTask(_0, _1) {
15001
15487
  return new Promise(function(resolve, reject) {
15002
15488
  var requestMoreTasks = function requestMoreTasks(parallelIndex) {
15003
15489
  return _async_to_generator$4(function() {
15004
- var promiseRef, waited;
15490
+ var promiseRef;
15005
15491
  return _ts_generator$4(this, function(_state) {
15006
- switch(_state.label){
15007
- case 0:
15008
- if (!isOutOfTasks) return [
15009
- 3,
15010
- 1
15011
- ];
15012
- return [
15013
- 2
15014
- ];
15015
- case 1:
15016
- promiseRef = promiseReference();
15017
- if (!isFulfillingTask) return [
15018
- 3,
15019
- 3
15020
- ];
15492
+ if (isOutOfTasks) {
15493
+ return [
15494
+ 2
15495
+ ];
15496
+ } else {
15497
+ promiseRef = promiseReference();
15498
+ if (isFulfillingTask) {
15021
15499
  requestTasksQueue.push([
15022
15500
  parallelIndex,
15023
15501
  promiseRef
15024
15502
  ]);
15025
- return [
15026
- 4,
15027
- promiseRef.promise
15028
- ];
15029
- case 2:
15030
- waited = _state.sent();
15031
- return [
15032
- 2,
15033
- waited
15034
- ];
15035
- case 3:
15036
- fulfillRequestMoreTasks(parallelIndex, promiseRef);
15037
- _state.label = 4;
15038
- case 4:
15039
15503
  return [
15040
15504
  2,
15041
15505
  promiseRef.promise
15042
15506
  ];
15043
- case 5:
15044
- return [
15045
- 2
15046
- ];
15507
+ } else {
15508
+ void fulfillRequestMoreTasks(parallelIndex, promiseRef);
15509
+ }
15510
+ return [
15511
+ 2,
15512
+ promiseRef.promise
15513
+ ];
15047
15514
  }
15048
15515
  });
15049
15516
  })();
15050
15517
  };
15518
+ var tryAcquireTask = function tryAcquireTask(candidate) {
15519
+ var candidateIndex = candidate[2];
15520
+ if (visitedTaskIndexes.has(candidateIndex)) {
15521
+ return 'skip';
15522
+ }
15523
+ var keys = candidate[1];
15524
+ var keyOfTaskCurrentlyInUse = setContainsAnyValue(currentParellelTaskKeys, keys);
15525
+ if (keyOfTaskCurrentlyInUse) {
15526
+ keys.forEach(function(key) {
15527
+ return waitingConcurrentTasks.addTuples(key, candidate);
15528
+ });
15529
+ return 'defer';
15530
+ }
15531
+ addToSet(currentParellelTaskKeys, keys);
15532
+ return 'acquired';
15533
+ };
15051
15534
  var getNextTask = function getNextTask(parallelIndex) {
15052
15535
  return _async_to_generator$4(function() {
15053
- var _loop, nextTask, _ret;
15536
+ var nextTask, result;
15054
15537
  return _ts_generator$4(this, function(_state) {
15055
15538
  switch(_state.label){
15056
- case 0:
15057
- _loop = function() {
15058
- var nextTaskTuple, nextTaskTupleIndex, keys, keyOfTaskCurrentlyInUse;
15059
- return _ts_generator$4(this, function(_state) {
15060
- switch(_state.label){
15061
- case 0:
15062
- if (!(!isOutOfTasks && incompleteTasks.length === 0)) return [
15063
- 3,
15064
- 2
15065
- ];
15066
- return [
15067
- 4,
15068
- requestMoreTasks(parallelIndex)
15069
- ];
15070
- case 1:
15071
- nextTask = _state.sent();
15072
- _state.label = 2;
15073
- case 2:
15074
- nextTask = nextTask !== null && nextTask !== void 0 ? nextTask : incompleteTasks.pop();
15075
- if (nextTask != null) {
15076
- nextTaskTuple = nextTask;
15077
- nextTaskTupleIndex = nextTaskTuple[2];
15078
- if (visitedTaskIndexes.has(nextTaskTupleIndex)) {
15079
- // already run. Ignore.
15080
- nextTask = undefined;
15081
- } else {
15082
- keys = nextTaskTuple[1];
15083
- keyOfTaskCurrentlyInUse = setContainsAnyValue(currentParellelTaskKeys, keys);
15084
- if (keyOfTaskCurrentlyInUse) {
15085
- keys.forEach(function(key) {
15086
- return waitingConcurrentTasks.addTuples(key, nextTaskTuple);
15087
- }); // add to each key as waiting
15088
- nextTask = undefined; // clear to continue loop
15089
- } else {
15090
- addToSet(currentParellelTaskKeys, keys); // add to the current task keys, exit loop
15091
- return [
15092
- 2,
15093
- "break"
15094
- ];
15095
- }
15096
- }
15097
- } else {
15098
- return [
15099
- 2,
15100
- "break" // no tasks remaining, break.
15101
- ];
15102
- }
15103
- return [
15104
- 2
15105
- ];
15106
- }
15107
- });
15108
- };
15539
+ case 0:
15109
15540
  nextTask = undefined;
15110
15541
  _state.label = 1;
15111
15542
  case 1:
15112
15543
  if (!!nextTask) return [
15544
+ 3,
15545
+ 4
15546
+ ];
15547
+ if (!(!isOutOfTasks && incompleteTasks.length === 0)) return [
15113
15548
  3,
15114
15549
  3
15115
15550
  ];
15116
15551
  return [
15117
- 5,
15118
- _ts_values(_loop())
15552
+ 4,
15553
+ requestMoreTasks(parallelIndex)
15119
15554
  ];
15120
15555
  case 2:
15121
- _ret = _state.sent();
15122
- if (_ret === "break") return [
15123
- 3,
15124
- 3
15125
- ];
15556
+ nextTask = _state.sent();
15557
+ _state.label = 3;
15558
+ case 3:
15559
+ nextTask = nextTask !== null && nextTask !== void 0 ? nextTask : incompleteTasks.pop();
15560
+ if (nextTask == null) {
15561
+ return [
15562
+ 3,
15563
+ 4
15564
+ ];
15565
+ }
15566
+ result = tryAcquireTask(nextTask);
15567
+ if (result === 'acquired') {
15568
+ return [
15569
+ 3,
15570
+ 4
15571
+ ];
15572
+ }
15573
+ nextTask = undefined;
15126
15574
  return [
15127
15575
  3,
15128
15576
  1
15129
15577
  ];
15130
- case 3:
15578
+ case 4:
15131
15579
  if (nextTask) {
15132
15580
  // mark to prevent running again/concurrent runs
15133
15581
  visitedTaskIndexes.add(nextTask[2]);
@@ -15140,7 +15588,7 @@ function _performAsyncTask(_0, _1) {
15140
15588
  });
15141
15589
  })();
15142
15590
  };
15143
- var onTaskCompleted = function onTaskCompleted(task, parallelIndex) {
15591
+ var onTaskCompleted = function onTaskCompleted(task, _parallelIndex) {
15144
15592
  var keys = task[1];
15145
15593
  var indexesPushed = new Set();
15146
15594
  keys.forEach(function(key) {
@@ -15200,7 +15648,7 @@ function _performAsyncTask(_0, _1) {
15200
15648
  ];
15201
15649
  }).reverse(); // reverse to use push/pop
15202
15650
  baseI += newTaskEntries.length;
15203
- incompleteTasks = _to_consumable_array$2(newTaskEntries).concat(_to_consumable_array$2(incompleteTasks)); // new tasks go to the front of the stack
15651
+ incompleteTasks = _to_consumable_array$4(newTaskEntries).concat(_to_consumable_array$4(incompleteTasks)); // new tasks go to the front of the stack
15204
15652
  }
15205
15653
  _state.label = 2;
15206
15654
  case 2:
@@ -15219,10 +15667,10 @@ function _performAsyncTask(_0, _1) {
15219
15667
  _state.sent();
15220
15668
  _state.label = 4;
15221
15669
  case 4:
15222
- if (!isFulfillingTask && requestTasksQueue.length) {
15670
+ if (requestTasksQueue.length) {
15223
15671
  nextItemInQueue = requestTasksQueue.pop();
15224
15672
  if (nextItemInQueue) {
15225
- fulfillRequestMoreTasks(nextItemInQueue[0], nextItemInQueue[1]);
15673
+ void fulfillRequestMoreTasks(nextItemInQueue[0], nextItemInQueue[1]);
15226
15674
  }
15227
15675
  }
15228
15676
  return [
@@ -15261,10 +15709,10 @@ function _performAsyncTask(_0, _1) {
15261
15709
  // build/start promise
15262
15710
  promise = taskFactory(nextTask[0], currentRunIndex, nextTask[1]);
15263
15711
  currentRunIndex += 1;
15264
- promise.then(function() {
15712
+ void promise.then(function() {
15265
15713
  onTaskCompleted(nextTask);
15266
15714
  setTimeout(function() {
15267
- return dispatchNextPromise(parallelIndex);
15715
+ return void dispatchNextPromise(parallelIndex);
15268
15716
  }, waitBetweenTasks);
15269
15717
  }, function(e) {
15270
15718
  hasEncounteredFailure = true;
@@ -15288,7 +15736,7 @@ function _performAsyncTask(_0, _1) {
15288
15736
  }
15289
15737
  // run the initial promises
15290
15738
  range(0, maxPromisesToRunAtOneTime).forEach(function(parallelIndex) {
15291
- dispatchNextPromise(parallelIndex);
15739
+ void dispatchNextPromise(parallelIndex);
15292
15740
  });
15293
15741
  });
15294
15742
  };
@@ -15440,7 +15888,7 @@ function _object_spread$4(target) {
15440
15888
  var enabled = true;
15441
15889
  setConfig(initialConfig, true);
15442
15890
  function _checkRemainingReset() {
15443
- if (nextResetAt && isPast(nextResetAt)) {
15891
+ if (isPast(nextResetAt)) {
15444
15892
  reset();
15445
15893
  }
15446
15894
  }
@@ -15669,61 +16117,97 @@ function _ts_generator$3(thisArg, body) {
15669
16117
  var promiseFactories = config.promiseFactories, defaultSuccessOnMaybe = config.successOnMaybe, defaultThrowErrors = config.throwErrors;
15670
16118
  return function(input, config) {
15671
16119
  return _async_to_generator$3(function() {
15672
- var _ref, inputSuccessOnMaybe, inputThrowErrors, successOnMaybe, throwErrors, result, i, nextPromise, e;
16120
+ var _ref, inputSuccessOnMaybe, inputThrowErrors, successOnMaybe, throwErrors, result, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, factory, nextPromise, e, err;
15673
16121
  return _ts_generator$3(this, function(_state) {
15674
16122
  switch(_state.label){
15675
16123
  case 0:
15676
16124
  _ref = config !== null && config !== void 0 ? config : {}, inputSuccessOnMaybe = _ref.successOnMaybe, inputThrowErrors = _ref.throwErrors;
15677
16125
  successOnMaybe = inputSuccessOnMaybe !== null && inputSuccessOnMaybe !== void 0 ? inputSuccessOnMaybe : defaultSuccessOnMaybe;
15678
16126
  throwErrors = inputThrowErrors !== null && inputThrowErrors !== void 0 ? inputThrowErrors : defaultThrowErrors;
15679
- i = 0;
16127
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
15680
16128
  _state.label = 1;
15681
16129
  case 1:
15682
- if (!(i < promiseFactories.length)) return [
15683
- 3,
15684
- 6
15685
- ];
16130
+ _state.trys.push([
16131
+ 1,
16132
+ 8,
16133
+ 9,
16134
+ 10
16135
+ ]);
16136
+ _iterator = promiseFactories[Symbol.iterator]();
15686
16137
  _state.label = 2;
15687
16138
  case 2:
16139
+ if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
16140
+ 3,
16141
+ 7
16142
+ ];
16143
+ factory = _step.value;
16144
+ _state.label = 3;
16145
+ case 3:
15688
16146
  _state.trys.push([
15689
- 2,
15690
- 4,
16147
+ 3,
16148
+ 5,
15691
16149
  ,
15692
- 5
16150
+ 6
15693
16151
  ]);
15694
- nextPromise = promiseFactories[i](input);
16152
+ nextPromise = factory(input);
15695
16153
  return [
15696
16154
  4,
15697
16155
  nextPromise
15698
16156
  ];
15699
- case 3:
16157
+ case 4:
15700
16158
  result = _state.sent();
15701
16159
  if (result != null || successOnMaybe) {
15702
16160
  return [
15703
16161
  3,
15704
- 6
16162
+ 7
15705
16163
  ]; // end loop early
15706
16164
  }
15707
16165
  return [
15708
16166
  3,
15709
- 5
16167
+ 6
15710
16168
  ];
15711
- case 4:
16169
+ case 5:
15712
16170
  e = _state.sent();
15713
16171
  if (throwErrors) {
15714
16172
  throw e; // throw the error if requested
15715
16173
  }
15716
16174
  return [
15717
16175
  3,
15718
- 5
16176
+ 6
15719
16177
  ];
15720
- case 5:
15721
- i += 1;
16178
+ case 6:
16179
+ _iteratorNormalCompletion = true;
15722
16180
  return [
15723
16181
  3,
15724
- 1
16182
+ 2
15725
16183
  ];
15726
- case 6:
16184
+ case 7:
16185
+ return [
16186
+ 3,
16187
+ 10
16188
+ ];
16189
+ case 8:
16190
+ err = _state.sent();
16191
+ _didIteratorError = true;
16192
+ _iteratorError = err;
16193
+ return [
16194
+ 3,
16195
+ 10
16196
+ ];
16197
+ case 9:
16198
+ try {
16199
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
16200
+ _iterator.return();
16201
+ }
16202
+ } finally{
16203
+ if (_didIteratorError) {
16204
+ throw _iteratorError;
16205
+ }
16206
+ }
16207
+ return [
16208
+ 7
16209
+ ];
16210
+ case 10:
15727
16211
  return [
15728
16212
  2,
15729
16213
  result
@@ -15734,7 +16218,7 @@ function _ts_generator$3(thisArg, body) {
15734
16218
  };
15735
16219
  }
15736
16220
 
15737
- function _array_like_to_array$7(arr, len) {
16221
+ function _array_like_to_array$8(arr, len) {
15738
16222
  if (len == null || len > arr.length) len = arr.length;
15739
16223
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
15740
16224
  return arr2;
@@ -15846,15 +16330,15 @@ function _object_spread_props$1(target, source) {
15846
16330
  return target;
15847
16331
  }
15848
16332
  function _sliced_to_array$6(arr, i) {
15849
- return _array_with_holes$6(arr) || _iterable_to_array_limit$6(arr, i) || _unsupported_iterable_to_array$7(arr, i) || _non_iterable_rest$6();
16333
+ return _array_with_holes$6(arr) || _iterable_to_array_limit$6(arr, i) || _unsupported_iterable_to_array$8(arr, i) || _non_iterable_rest$6();
15850
16334
  }
15851
- function _unsupported_iterable_to_array$7(o, minLen) {
16335
+ function _unsupported_iterable_to_array$8(o, minLen) {
15852
16336
  if (!o) return;
15853
- if (typeof o === "string") return _array_like_to_array$7(o, minLen);
16337
+ if (typeof o === "string") return _array_like_to_array$8(o, minLen);
15854
16338
  var n = Object.prototype.toString.call(o).slice(8, -1);
15855
16339
  if (n === "Object" && o.constructor) n = o.constructor.name;
15856
16340
  if (n === "Map" || n === "Set") return Array.from(n);
15857
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$7(o, minLen);
16341
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$8(o, minLen);
15858
16342
  }
15859
16343
  function _ts_generator$2(thisArg, body) {
15860
16344
  var f, y, t, _ = {
@@ -16205,6 +16689,9 @@ function _is_native_reflect_construct$2() {
16205
16689
  case 'paused':
16206
16690
  result = null;
16207
16691
  break;
16692
+ case 'cancelled':
16693
+ result = null;
16694
+ break;
16208
16695
  }
16209
16696
  return result;
16210
16697
  };
@@ -16296,7 +16783,7 @@ function _is_native_reflect_construct$2() {
16296
16783
  * @param timer - The timer to toggle
16297
16784
  * @param toggleRun - If provided, forces the timer to run (true) or stop (false). Otherwise toggles the current state.
16298
16785
  */ function toggleTimerRunning(timer, toggleRun) {
16299
- toggleRun = toggleRun != null ? toggleRun : timer.state !== 'running';
16786
+ toggleRun = toggleRun !== null && toggleRun !== void 0 ? toggleRun : timer.state !== 'running';
16300
16787
  if (toggleRun) {
16301
16788
  timer.start();
16302
16789
  } else {
@@ -16305,6 +16792,9 @@ function _is_native_reflect_construct$2() {
16305
16792
  }
16306
16793
  /**
16307
16794
  * Returns the approximate end date of the given timer. If a timer is already complete, it returns the time for now.
16795
+ *
16796
+ * @param timer - the timer whose end date to approximate
16797
+ * @returns a Date representing the estimated end time, or null if no duration remains
16308
16798
  */ function approximateTimerEndDate(timer) {
16309
16799
  var durationRemaining = timer.durationRemaining;
16310
16800
  if (durationRemaining != null) {
@@ -16358,7 +16848,7 @@ function dateFromLogicalDate(logicalDate) {
16358
16848
  return isLogicalDateStringCode;
16359
16849
  }
16360
16850
 
16361
- function _array_like_to_array$6(arr, len) {
16851
+ function _array_like_to_array$7(arr, len) {
16362
16852
  if (len == null || len > arr.length) len = arr.length;
16363
16853
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
16364
16854
  return arr2;
@@ -16366,6 +16856,9 @@ function _array_like_to_array$6(arr, len) {
16366
16856
  function _array_with_holes$5(arr) {
16367
16857
  if (Array.isArray(arr)) return arr;
16368
16858
  }
16859
+ function _array_without_holes$3(arr) {
16860
+ if (Array.isArray(arr)) return _array_like_to_array$7(arr);
16861
+ }
16369
16862
  function _instanceof(left, right) {
16370
16863
  if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
16371
16864
  return !!right[Symbol.hasInstance](left);
@@ -16373,6 +16866,9 @@ function _instanceof(left, right) {
16373
16866
  return left instanceof right;
16374
16867
  }
16375
16868
  }
16869
+ function _iterable_to_array$3(iter) {
16870
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
16871
+ }
16376
16872
  function _iterable_to_array_limit$5(arr, i) {
16377
16873
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
16378
16874
  if (_i == null) return;
@@ -16400,20 +16896,26 @@ function _iterable_to_array_limit$5(arr, i) {
16400
16896
  function _non_iterable_rest$5() {
16401
16897
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
16402
16898
  }
16899
+ function _non_iterable_spread$3() {
16900
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
16901
+ }
16403
16902
  function _sliced_to_array$5(arr, i) {
16404
- return _array_with_holes$5(arr) || _iterable_to_array_limit$5(arr, i) || _unsupported_iterable_to_array$6(arr, i) || _non_iterable_rest$5();
16903
+ return _array_with_holes$5(arr) || _iterable_to_array_limit$5(arr, i) || _unsupported_iterable_to_array$7(arr, i) || _non_iterable_rest$5();
16904
+ }
16905
+ function _to_consumable_array$3(arr) {
16906
+ return _array_without_holes$3(arr) || _iterable_to_array$3(arr) || _unsupported_iterable_to_array$7(arr) || _non_iterable_spread$3();
16405
16907
  }
16406
16908
  function _type_of$3(obj) {
16407
16909
  "@swc/helpers - typeof";
16408
16910
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
16409
16911
  }
16410
- function _unsupported_iterable_to_array$6(o, minLen) {
16912
+ function _unsupported_iterable_to_array$7(o, minLen) {
16411
16913
  if (!o) return;
16412
- if (typeof o === "string") return _array_like_to_array$6(o, minLen);
16914
+ if (typeof o === "string") return _array_like_to_array$7(o, minLen);
16413
16915
  var n = Object.prototype.toString.call(o).slice(8, -1);
16414
16916
  if (n === "Object" && o.constructor) n = o.constructor.name;
16415
16917
  if (n === "Map" || n === "Set") return Array.from(n);
16416
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$6(o, minLen);
16918
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$7(o, minLen);
16417
16919
  }
16418
16920
  /**
16419
16921
  * Performs a deep equality comparison between two values.
@@ -16436,76 +16938,90 @@ function _unsupported_iterable_to_array$6(o, minLen) {
16436
16938
  * @param pojoFilter - Filter function applied to each value before comparison
16437
16939
  * @returns `true` if the filtered values are deeply equal
16438
16940
  */ function areEqualPOJOValuesUsingPojoFilter(a, b, pojoFilter) {
16941
+ var result;
16439
16942
  // check self
16440
16943
  if (a === b) {
16441
- return true;
16442
- }
16443
- // run pojo filter before comparison
16444
- a = pojoFilter(a, true);
16445
- b = pojoFilter(b, true);
16446
- // check one value is nullish and other is not
16447
- if ((a == null || b == null) && (a || b)) {
16448
- return false;
16449
- }
16450
- // object check
16451
- if ((typeof a === "undefined" ? "undefined" : _type_of$3(a)) === 'object') {
16452
- // check if they are arrays
16453
- if (isIterable(a, false)) {
16454
- if (Array.isArray(a)) {
16455
- if (a.length !== b.length) {
16456
- return false;
16457
- }
16458
- var firstInequalityIndex = a.findIndex(function(aValue, i) {
16459
- var bValue = b[i];
16460
- return !areEqualPOJOValuesUsingPojoFilter(aValue, bValue, pojoFilter);
16461
- });
16462
- return firstInequalityIndex === -1;
16463
- } else if (_instanceof(a, Set)) {
16464
- return setsAreEquivalent(a, b);
16465
- } else if (_instanceof(a, Map)) {
16466
- var bMap = b;
16467
- if (a.size !== bMap.size) {
16468
- return false;
16469
- }
16470
- var firstInequalityIndex1 = Array.from(a.entries()).findIndex(function(param) {
16471
- var _param = _sliced_to_array$5(param, 2), key = _param[0], aValue = _param[1];
16472
- var bValue = bMap.get(key);
16473
- return !areEqualPOJOValuesUsingPojoFilter(aValue, bValue, pojoFilter);
16474
- });
16475
- return firstInequalityIndex1 === -1;
16476
- }
16944
+ result = true;
16945
+ } else {
16946
+ // run pojo filter before comparison
16947
+ a = pojoFilter(a, true);
16948
+ b = pojoFilter(b, true);
16949
+ // check one value is nullish and other is not
16950
+ if ((a == null || b == null) && (a || b)) {
16951
+ result = false;
16952
+ } else if ((typeof a === "undefined" ? "undefined" : _type_of$3(a)) !== 'object') {
16953
+ result = false;
16954
+ } else if (isIterable(a, false)) {
16955
+ // check if they are iterables (arrays, Sets, Maps)
16956
+ result = _compareIterables(a, b, pojoFilter);
16477
16957
  } else if ((typeof b === "undefined" ? "undefined" : _type_of$3(b)) === 'object') {
16478
- // check contructors/types
16479
- var firstType = a === null || a === void 0 ? void 0 : a.constructor.name;
16480
- var secondType = b === null || b === void 0 ? void 0 : b.constructor.name;
16481
- if (firstType !== secondType) {
16482
- return false; // false if not the same type
16483
- }
16484
- // check Date comparison
16485
- if (isDate(a)) {
16486
- return isEqualDate(a, b);
16487
- }
16488
- // check object comparison via keys
16489
- var aObject = a;
16490
- var bObject = b;
16491
- var aKeys = Object.keys(aObject);
16492
- var bKeys = Object.keys(bObject);
16493
- // compare keys
16494
- if (aKeys.length === bKeys.length) {
16495
- var firstInequalityIndex2 = aKeys.findIndex(function(key) {
16496
- var aKeyValue = aObject[key];
16497
- var bKeyValue = bObject[key];
16498
- return !areEqualPOJOValuesUsingPojoFilter(aKeyValue, bKeyValue, pojoFilter);
16499
- });
16500
- if (firstInequalityIndex2 === -1) {
16501
- return true; // is equal if no non-matching key/value pair is found
16502
- }
16503
- }
16958
+ // check plain object comparison
16959
+ result = _compareObjects(a, b, pojoFilter);
16960
+ } else {
16961
+ result = false;
16504
16962
  }
16505
16963
  }
16506
- // still not equal if down here
16964
+ return result;
16965
+ }
16966
+ function _compareIterables(a, b, pojoFilter) {
16967
+ if (Array.isArray(a)) {
16968
+ return _compareArrays(a, b, pojoFilter);
16969
+ }
16970
+ if (_instanceof(a, Set)) {
16971
+ return setsAreEquivalent(a, b);
16972
+ }
16973
+ if (_instanceof(a, Map)) {
16974
+ return _compareMaps(a, b, pojoFilter);
16975
+ }
16507
16976
  return false;
16508
16977
  }
16978
+ function _compareArrays(a, b, pojoFilter) {
16979
+ if (a.length !== b.length) {
16980
+ return false;
16981
+ }
16982
+ var firstInequalityIndex = a.findIndex(function(aValue, i) {
16983
+ var bValue = b[i];
16984
+ return !areEqualPOJOValuesUsingPojoFilter(aValue, bValue, pojoFilter);
16985
+ });
16986
+ return firstInequalityIndex === -1;
16987
+ }
16988
+ function _compareMaps(a, b, pojoFilter) {
16989
+ if (a.size !== b.size) {
16990
+ return false;
16991
+ }
16992
+ var firstInequalityIndex = _to_consumable_array$3(a.entries()).findIndex(function(param) {
16993
+ var _param = _sliced_to_array$5(param, 2), key = _param[0], aValue = _param[1];
16994
+ var bValue = b.get(key);
16995
+ return !areEqualPOJOValuesUsingPojoFilter(aValue, bValue, pojoFilter);
16996
+ });
16997
+ return firstInequalityIndex === -1;
16998
+ }
16999
+ function _compareObjects(a, b, pojoFilter) {
17000
+ // check constructors/types
17001
+ var firstType = a.constructor.name;
17002
+ var secondType = b.constructor.name;
17003
+ if (firstType !== secondType) {
17004
+ return false;
17005
+ }
17006
+ // check Date comparison
17007
+ if (isDate(a)) {
17008
+ return isEqualDate(a, b);
17009
+ }
17010
+ // check object comparison via keys
17011
+ var aObject = a;
17012
+ var bObject = b;
17013
+ var aKeys = Object.keys(aObject);
17014
+ var bKeys = Object.keys(bObject);
17015
+ if (aKeys.length !== bKeys.length) {
17016
+ return false;
17017
+ }
17018
+ var firstInequalityIndex = aKeys.findIndex(function(key) {
17019
+ var aKeyValue = aObject[key];
17020
+ var bKeyValue = bObject[key];
17021
+ return !areEqualPOJOValuesUsingPojoFilter(aKeyValue, bKeyValue, pojoFilter);
17022
+ });
17023
+ return firstInequalityIndex === -1;
17024
+ }
16509
17025
  /**
16510
17026
  * Creates an {@link ObjectFieldEqualityChecker} that compares two objects field-by-field using configured equality functions.
16511
17027
  *
@@ -16535,7 +17051,11 @@ function _unsupported_iterable_to_array$6(o, minLen) {
16535
17051
  var unequalFields = [];
16536
17052
  _fields.forEach(function(fieldConfig, fieldName) {
16537
17053
  var isEqual = fieldConfig.isEqual;
16538
- isEqual(a[fieldName], b[fieldName]) ? equalFields.push(fieldName) : unequalFields.push(fieldName);
17054
+ if (isEqual(a[fieldName], b[fieldName])) {
17055
+ equalFields.push(fieldName);
17056
+ } else {
17057
+ unequalFields.push(fieldName);
17058
+ }
16539
17059
  });
16540
17060
  return {
16541
17061
  a: a,
@@ -16589,7 +17109,7 @@ function _unsupported_iterable_to_array$6(o, minLen) {
16589
17109
  });
16590
17110
  }
16591
17111
 
16592
- function _array_like_to_array$5(arr, len) {
17112
+ function _array_like_to_array$6(arr, len) {
16593
17113
  if (len == null || len > arr.length) len = arr.length;
16594
17114
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
16595
17115
  return arr2;
@@ -16625,15 +17145,15 @@ function _non_iterable_rest$4() {
16625
17145
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
16626
17146
  }
16627
17147
  function _sliced_to_array$4(arr, i) {
16628
- return _array_with_holes$4(arr) || _iterable_to_array_limit$4(arr, i) || _unsupported_iterable_to_array$5(arr, i) || _non_iterable_rest$4();
17148
+ return _array_with_holes$4(arr) || _iterable_to_array_limit$4(arr, i) || _unsupported_iterable_to_array$6(arr, i) || _non_iterable_rest$4();
16629
17149
  }
16630
- function _unsupported_iterable_to_array$5(o, minLen) {
17150
+ function _unsupported_iterable_to_array$6(o, minLen) {
16631
17151
  if (!o) return;
16632
- if (typeof o === "string") return _array_like_to_array$5(o, minLen);
17152
+ if (typeof o === "string") return _array_like_to_array$6(o, minLen);
16633
17153
  var n = Object.prototype.toString.call(o).slice(8, -1);
16634
17154
  if (n === "Object" && o.constructor) n = o.constructor.name;
16635
17155
  if (n === "Map" || n === "Set") return Array.from(n);
16636
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$5(o, minLen);
17156
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$6(o, minLen);
16637
17157
  }
16638
17158
  /**
16639
17159
  * Converts an {@link ObjectMap} into a `Map` using `Object.entries`.
@@ -16777,6 +17297,9 @@ function _type_of$2(obj) {
16777
17297
  }
16778
17298
  /**
16779
17299
  * Returns true if the value is a plain object (not an array, Date, RegExp, null, etc.).
17300
+ *
17301
+ * @param value - the value to check
17302
+ * @returns true if the value is a plain object with an Object or null prototype
16780
17303
  */ function _isPlainObject(value) {
16781
17304
  var result = false;
16782
17305
  if (value != null && (typeof value === "undefined" ? "undefined" : _type_of$2(value)) === 'object') {
@@ -16810,7 +17333,7 @@ function _type_of$2(obj) {
16810
17333
  };
16811
17334
  }
16812
17335
 
16813
- function _array_like_to_array$4(arr, len) {
17336
+ function _array_like_to_array$5(arr, len) {
16814
17337
  if (len == null || len > arr.length) len = arr.length;
16815
17338
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
16816
17339
  return arr2;
@@ -16846,15 +17369,15 @@ function _non_iterable_rest$3() {
16846
17369
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
16847
17370
  }
16848
17371
  function _sliced_to_array$3(arr, i) {
16849
- return _array_with_holes$3(arr) || _iterable_to_array_limit$3(arr, i) || _unsupported_iterable_to_array$4(arr, i) || _non_iterable_rest$3();
17372
+ return _array_with_holes$3(arr) || _iterable_to_array_limit$3(arr, i) || _unsupported_iterable_to_array$5(arr, i) || _non_iterable_rest$3();
16850
17373
  }
16851
- function _unsupported_iterable_to_array$4(o, minLen) {
17374
+ function _unsupported_iterable_to_array$5(o, minLen) {
16852
17375
  if (!o) return;
16853
- if (typeof o === "string") return _array_like_to_array$4(o, minLen);
17376
+ if (typeof o === "string") return _array_like_to_array$5(o, minLen);
16854
17377
  var n = Object.prototype.toString.call(o).slice(8, -1);
16855
17378
  if (n === "Object" && o.constructor) n = o.constructor.name;
16856
17379
  if (n === "Map" || n === "Set") return Array.from(n);
16857
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$4(o, minLen);
17380
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$5(o, minLen);
16858
17381
  }
16859
17382
  /**
16860
17383
  * Creates bidirectional map functions (`from` and `to`) from a set of {@link ModelFieldConversions}.
@@ -16956,7 +17479,7 @@ function _unsupported_iterable_to_array$4(o, minLen) {
16956
17479
  * @returns A function that maps Maybe input values to output values
16957
17480
  */ function modelFieldMapFunction(config) {
16958
17481
  var convert = config.convert;
16959
- var convertMaybe = config.convertMaybe;
17482
+ var convertMaybe = 'convertMaybe' in config ? config.convertMaybe : undefined;
16960
17483
  var defaultOutput = config.default;
16961
17484
  var defaultInput = config.defaultInput;
16962
17485
  var hasDefaultInput = defaultInput != null;
@@ -16968,7 +17491,7 @@ function _unsupported_iterable_to_array$4(o, minLen) {
16968
17491
  result = convert(input);
16969
17492
  } else {
16970
17493
  if (convertMaybe) {
16971
- result = convertMaybe(input !== null && input !== void 0 ? input : getDefaultInput());
17494
+ result = convertMaybe(input);
16972
17495
  } else if (hasDefaultInput) {
16973
17496
  result = convert(getDefaultInput());
16974
17497
  } else {
@@ -16986,8 +17509,7 @@ function _unsupported_iterable_to_array$4(o, minLen) {
16986
17509
  * @param input - Either a config ref or a pre-built conversions ref
16987
17510
  * @returns Resolved field conversions
16988
17511
  */ function toModelFieldConversions(input) {
16989
- var _input_fieldConversions;
16990
- var conversions = (_input_fieldConversions = input.fieldConversions) !== null && _input_fieldConversions !== void 0 ? _input_fieldConversions : modelFieldConversions(input.fields);
17512
+ var conversions = 'fieldConversions' in input ? input.fieldConversions : modelFieldConversions(input.fields);
16991
17513
  return conversions;
16992
17514
  }
16993
17515
  /**
@@ -16999,7 +17521,7 @@ function _unsupported_iterable_to_array$4(o, minLen) {
16999
17521
  * @returns Bidirectional model map functions
17000
17522
  */ function toModelMapFunctions(input) {
17001
17523
  var mapFunctions;
17002
- if (input.mapFunctions != null) {
17524
+ if ('mapFunctions' in input) {
17003
17525
  mapFunctions = input.mapFunctions;
17004
17526
  } else {
17005
17527
  var conversions = toModelFieldConversions(input);
@@ -17176,13 +17698,13 @@ function _object_spread$2(target) {
17176
17698
  }
17177
17699
  }
17178
17700
 
17179
- function _array_like_to_array$3(arr, len) {
17701
+ function _array_like_to_array$4(arr, len) {
17180
17702
  if (len == null || len > arr.length) len = arr.length;
17181
17703
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
17182
17704
  return arr2;
17183
17705
  }
17184
- function _array_without_holes$1(arr) {
17185
- if (Array.isArray(arr)) return _array_like_to_array$3(arr);
17706
+ function _array_without_holes$2(arr) {
17707
+ if (Array.isArray(arr)) return _array_like_to_array$4(arr);
17186
17708
  }
17187
17709
  function _class_call_check$5(instance, Constructor) {
17188
17710
  if (!(instance instanceof Constructor)) {
@@ -17202,22 +17724,22 @@ function _create_class$4(Constructor, protoProps, staticProps) {
17202
17724
  if (staticProps) _defineProperties$4(Constructor, staticProps);
17203
17725
  return Constructor;
17204
17726
  }
17205
- function _iterable_to_array$1(iter) {
17727
+ function _iterable_to_array$2(iter) {
17206
17728
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
17207
17729
  }
17208
- function _non_iterable_spread$1() {
17730
+ function _non_iterable_spread$2() {
17209
17731
  throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
17210
17732
  }
17211
- function _to_consumable_array$1(arr) {
17212
- return _array_without_holes$1(arr) || _iterable_to_array$1(arr) || _unsupported_iterable_to_array$3(arr) || _non_iterable_spread$1();
17733
+ function _to_consumable_array$2(arr) {
17734
+ return _array_without_holes$2(arr) || _iterable_to_array$2(arr) || _unsupported_iterable_to_array$4(arr) || _non_iterable_spread$2();
17213
17735
  }
17214
- function _unsupported_iterable_to_array$3(o, minLen) {
17736
+ function _unsupported_iterable_to_array$4(o, minLen) {
17215
17737
  if (!o) return;
17216
- if (typeof o === "string") return _array_like_to_array$3(o, minLen);
17738
+ if (typeof o === "string") return _array_like_to_array$4(o, minLen);
17217
17739
  var n = Object.prototype.toString.call(o).slice(8, -1);
17218
17740
  if (n === "Object" && o.constructor) n = o.constructor.name;
17219
17741
  if (n === "Map" || n === "Set") return Array.from(n);
17220
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$3(o, minLen);
17742
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$4(o, minLen);
17221
17743
  }
17222
17744
  /**
17223
17745
  * Type of relation change to perform on a collection of models.
@@ -17278,7 +17800,8 @@ function _unsupported_iterable_to_array$3(o, minLen) {
17278
17800
  },
17279
17801
  {
17280
17802
  key: "modifyCollection",
17281
- value: function modifyCollection(current, change, mods, config) {
17803
+ value: // eslint-disable-next-line @typescript-eslint/max-params
17804
+ function modifyCollection(current, change, mods, config) {
17282
17805
  var mask = config.mask, readKey = config.readKey;
17283
17806
  current = current !== null && current !== void 0 ? current : []; //init current if not set.
17284
17807
  if (mask) {
@@ -17297,15 +17820,23 @@ function _unsupported_iterable_to_array$3(o, minLen) {
17297
17820
  * The mask results are merged together.
17298
17821
  *
17299
17822
  * Order from the "current" is retained. Anything in currentRetain overrides modifiedResults.
17300
- */ function _mergeMaskResults(current, currentRetain, modifiedResults, readKey) {
17301
- return restoreOrderWithValues(current, _to_consumable_array$1(currentRetain).concat(_to_consumable_array$1(modifiedResults)), {
17823
+ *
17824
+ * @param current - the original array whose ordering is preserved
17825
+ * @param currentRetain - items from `current` that were excluded from modification and take precedence in the merge
17826
+ * @param modifiedResults - items that were modified or added during the relation change
17827
+ * @param readKey - function that extracts the relation key from each item for ordering
17828
+ * @returns the merged array with original ordering restored
17829
+ */ // eslint-disable-next-line @typescript-eslint/max-params
17830
+ function _mergeMaskResults(current, currentRetain, modifiedResults, readKey) {
17831
+ return restoreOrderWithValues(current, _to_consumable_array$2(currentRetain).concat(_to_consumable_array$2(modifiedResults)), {
17302
17832
  readKey: readKey
17303
17833
  });
17304
17834
  }
17305
17835
  },
17306
17836
  {
17307
17837
  key: "_modifyCollectionWithoutMask",
17308
- value: function _modifyCollectionWithoutMask(current, change, mods, config) {
17838
+ value: // eslint-disable-next-line @typescript-eslint/max-params
17839
+ function _modifyCollectionWithoutMask(current, change, mods, config) {
17309
17840
  var _config_readType;
17310
17841
  var readKey = config.readKey, merge = config.merge, shouldRemove = config.shouldRemove;
17311
17842
  var readType = (_config_readType = config.readType) !== null && _config_readType !== void 0 ? _config_readType : function() {
@@ -17396,7 +17927,14 @@ function _unsupported_iterable_to_array$3(o, minLen) {
17396
17927
  key: "_modifyCollection",
17397
17928
  value: /**
17398
17929
  * Used to modify a collection which may be multi-type. If readType is provided, the collection is handled as a multi-type map.
17399
- */ function _modifyCollection(current, mods, modifyCollection, readType) {
17930
+ *
17931
+ * @param current - the current collection of relation objects
17932
+ * @param mods - the modifications to apply to the collection
17933
+ * @param modifyCollection - function that applies modifications to a single-type subset of the collection
17934
+ * @param readType - optional function to read the type from each relation object, enabling multi-type handling
17935
+ * @returns the modified collection with all changes applied
17936
+ */ // eslint-disable-next-line @typescript-eslint/max-params
17937
+ function _modifyCollection(current, mods, modifyCollection, readType) {
17400
17938
  if (readType) {
17401
17939
  return ModelRelationUtility._modifyMultiTypeCollection(current, mods, readType, modifyCollection);
17402
17940
  } else {
@@ -17406,12 +17944,13 @@ function _unsupported_iterable_to_array$3(o, minLen) {
17406
17944
  },
17407
17945
  {
17408
17946
  key: "_modifyMultiTypeCollection",
17409
- value: function _modifyMultiTypeCollection(input, mods, readType, modifyCollection) {
17947
+ value: // eslint-disable-next-line @typescript-eslint/max-params
17948
+ function _modifyMultiTypeCollection(input, mods, readType, modifyCollection) {
17410
17949
  var inputMap = makeValuesGroupMap(input, readType);
17411
17950
  var modsMap = makeValuesGroupMap(mods, readType);
17412
- var typesModified = new Set(_to_consumable_array$1(inputMap.keys()).concat(_to_consumable_array$1(modsMap.keys())));
17951
+ var typesModified = new Set(_to_consumable_array$2(inputMap.keys()).concat(_to_consumable_array$2(modsMap.keys())));
17413
17952
  // Break the collections up into their individual types and process separately.
17414
- var modifiedSubcollections = Array.from(typesModified).map(function(type) {
17953
+ var modifiedSubcollections = _to_consumable_array$2(typesModified).map(function(type) {
17415
17954
  var _inputMap_get, _modsMap_get;
17416
17955
  var values = (_inputMap_get = inputMap.get(type)) !== null && _inputMap_get !== void 0 ? _inputMap_get : [];
17417
17956
  var _$mods = (_modsMap_get = modsMap.get(type)) !== null && _modsMap_get !== void 0 ? _modsMap_get : [];
@@ -17424,7 +17963,7 @@ function _unsupported_iterable_to_array$3(o, minLen) {
17424
17963
  });
17425
17964
  // Rejoin all changes.
17426
17965
  return modifiedSubcollections.reduce(function(x, y) {
17427
- return x.concat(y);
17966
+ return _to_consumable_array$2(x).concat(_to_consumable_array$2(y));
17428
17967
  }, []);
17429
17968
  }
17430
17969
  },
@@ -17444,11 +17983,10 @@ function _unsupported_iterable_to_array$3(o, minLen) {
17444
17983
  }
17445
17984
  });
17446
17985
  var added = ModelRelationUtility.addToCollection(current, addValues, readKey);
17447
- var results = ModelRelationUtility._updateSingleTypeCollection(added, updateValues, {
17986
+ return ModelRelationUtility._updateSingleTypeCollection(added, updateValues, {
17448
17987
  readKey: readKey,
17449
17988
  merge: merge
17450
17989
  });
17451
- return results;
17452
17990
  }
17453
17991
  },
17454
17992
  {
@@ -17480,7 +18018,7 @@ function _unsupported_iterable_to_array$3(o, minLen) {
17480
18018
  * @returns The collection with added items.
17481
18019
  */ function addToCollection(current, add, readKey) {
17482
18020
  current = current !== null && current !== void 0 ? current : [];
17483
- return (add === null || add === void 0 ? void 0 : add.length) ? ModelRelationUtility.removeDuplicates(_to_consumable_array$1(add).concat(_to_consumable_array$1(current)), readKey) : current; // Will keep any "added" before any existing ones.
18021
+ return add.length ? ModelRelationUtility.removeDuplicates(_to_consumable_array$2(add).concat(_to_consumable_array$2(current)), readKey) : current; // Will keep any "added" before any existing ones.
17484
18022
  }
17485
18023
  },
17486
18024
  {
@@ -17494,7 +18032,8 @@ function _unsupported_iterable_to_array$3(o, minLen) {
17494
18032
  * @param readKey - Function to extract the unique key from each item.
17495
18033
  * @param shouldRemove - Optional predicate that must return true for a matched item to actually be removed.
17496
18034
  * @returns The collection with matching items removed.
17497
- */ function removeFromCollection(current, remove, readKey, shouldRemove) {
18035
+ */ // eslint-disable-next-line @typescript-eslint/max-params
18036
+ function removeFromCollection(current, remove, readKey, shouldRemove) {
17498
18037
  if (current === null || current === void 0 ? void 0 : current.length) {
17499
18038
  if (shouldRemove) {
17500
18039
  var currentKeyPairs = makeKeyPairs(current, readKey);
@@ -17585,7 +18124,7 @@ function handlerFactory(readKey, options) {
17585
18124
  var bindHandle = handle.bind(bindTo);
17586
18125
  set(key, bindHandle);
17587
18126
  };
17588
- var fn = build({
18127
+ return build({
17589
18128
  base: function base(value) {
17590
18129
  var _ref;
17591
18130
  var key = readKey(value);
@@ -17607,7 +18146,6 @@ function handlerFactory(readKey, options) {
17607
18146
  x.setCatchAll = setCatchAll;
17608
18147
  }
17609
18148
  });
17610
- return fn;
17611
18149
  };
17612
18150
  }
17613
18151
  /**
@@ -17703,7 +18241,7 @@ function handlerFactory(readKey, options) {
17703
18241
  };
17704
18242
  }
17705
18243
 
17706
- function _array_like_to_array$2(arr, len) {
18244
+ function _array_like_to_array$3(arr, len) {
17707
18245
  if (len == null || len > arr.length) len = arr.length;
17708
18246
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
17709
18247
  return arr2;
@@ -17770,15 +18308,15 @@ function _non_iterable_rest$2() {
17770
18308
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
17771
18309
  }
17772
18310
  function _sliced_to_array$2(arr, i) {
17773
- return _array_with_holes$2(arr) || _iterable_to_array_limit$2(arr, i) || _unsupported_iterable_to_array$2(arr, i) || _non_iterable_rest$2();
18311
+ return _array_with_holes$2(arr) || _iterable_to_array_limit$2(arr, i) || _unsupported_iterable_to_array$3(arr, i) || _non_iterable_rest$2();
17774
18312
  }
17775
- function _unsupported_iterable_to_array$2(o, minLen) {
18313
+ function _unsupported_iterable_to_array$3(o, minLen) {
17776
18314
  if (!o) return;
17777
- if (typeof o === "string") return _array_like_to_array$2(o, minLen);
18315
+ if (typeof o === "string") return _array_like_to_array$3(o, minLen);
17778
18316
  var n = Object.prototype.toString.call(o).slice(8, -1);
17779
18317
  if (n === "Object" && o.constructor) n = o.constructor.name;
17780
18318
  if (n === "Map" || n === "Set") return Array.from(n);
17781
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$2(o, minLen);
18319
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$3(o, minLen);
17782
18320
  }
17783
18321
  /**
17784
18322
  * TypedServiceRegistry implementation.
@@ -17996,6 +18534,8 @@ function _define_property$3(obj, key, value) {
17996
18534
  key: "length",
17997
18535
  get: /**
17998
18536
  * The number of items stored.
18537
+ *
18538
+ * @returns the current count of stored key-value pairs
17999
18539
  */ function get() {
18000
18540
  return this._length;
18001
18541
  }
@@ -18003,6 +18543,7 @@ function _define_property$3(obj, key, value) {
18003
18543
  {
18004
18544
  /**
18005
18545
  * Returns the key at the given index.
18546
+ *
18006
18547
  * @param index The index of the key to retrieve.
18007
18548
  * @returns The key string if found, otherwise null.
18008
18549
  */ key: "key",
@@ -18014,6 +18555,7 @@ function _define_property$3(obj, key, value) {
18014
18555
  {
18015
18556
  /**
18016
18557
  * Checks if a key exists in the storage.
18558
+ *
18017
18559
  * @param key The key to check.
18018
18560
  * @returns True if the key exists, false otherwise.
18019
18561
  */ key: "hasKey",
@@ -18024,6 +18566,7 @@ function _define_property$3(obj, key, value) {
18024
18566
  {
18025
18567
  /**
18026
18568
  * Retrieves an item from storage.
18569
+ *
18027
18570
  * @param key The key of the item to retrieve.
18028
18571
  * @returns The item string if found, otherwise null or undefined.
18029
18572
  */ key: "getItem",
@@ -18036,6 +18579,7 @@ function _define_property$3(obj, key, value) {
18036
18579
  /**
18037
18580
  * Sets an item in storage.
18038
18581
  * If the item is null or undefined, the key will be removed.
18582
+ *
18039
18583
  * @param key The key of the item to set.
18040
18584
  * @param item The item string to store.
18041
18585
  */ key: "setItem",
@@ -18053,6 +18597,7 @@ function _define_property$3(obj, key, value) {
18053
18597
  {
18054
18598
  /**
18055
18599
  * Removes an item from storage.
18600
+ *
18056
18601
  * @param key The key of the item to remove.
18057
18602
  */ key: "removeItem",
18058
18603
  value: function removeItem(key) {
@@ -18219,6 +18764,31 @@ function _is_native_reflect_construct() {
18219
18764
  }
18220
18765
  ();
18221
18766
 
18767
+ function _array_like_to_array$2(arr, len) {
18768
+ if (len == null || len > arr.length) len = arr.length;
18769
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
18770
+ return arr2;
18771
+ }
18772
+ function _array_without_holes$1(arr) {
18773
+ if (Array.isArray(arr)) return _array_like_to_array$2(arr);
18774
+ }
18775
+ function _iterable_to_array$1(iter) {
18776
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
18777
+ }
18778
+ function _non_iterable_spread$1() {
18779
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
18780
+ }
18781
+ function _to_consumable_array$1(arr) {
18782
+ return _array_without_holes$1(arr) || _iterable_to_array$1(arr) || _unsupported_iterable_to_array$2(arr) || _non_iterable_spread$1();
18783
+ }
18784
+ function _unsupported_iterable_to_array$2(o, minLen) {
18785
+ if (!o) return;
18786
+ if (typeof o === "string") return _array_like_to_array$2(o, minLen);
18787
+ var n = Object.prototype.toString.call(o).slice(8, -1);
18788
+ if (n === "Object" && o.constructor) n = o.constructor.name;
18789
+ if (n === "Map" || n === "Set") return Array.from(n);
18790
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$2(o, minLen);
18791
+ }
18222
18792
  /**
18223
18793
  * Joins together various arrays of CSS classes into a single space-separated string of unique class names.
18224
18794
  *
@@ -18228,7 +18798,7 @@ function _is_native_reflect_construct() {
18228
18798
  var result = '';
18229
18799
  if (cssClasses) {
18230
18800
  var allClasses = cssClassesSet(cssClasses);
18231
- result = joinStringsWithSpaces(Array.from(allClasses));
18801
+ result = joinStringsWithSpaces(_to_consumable_array$1(allClasses));
18232
18802
  }
18233
18803
  return result;
18234
18804
  }
@@ -18242,11 +18812,11 @@ function _is_native_reflect_construct() {
18242
18812
  var result;
18243
18813
  if (cssClasses) {
18244
18814
  var arrayOfClasses = iterableToArray(cssClasses, false);
18245
- var arrayOfAllClassValues = arrayOfClasses.map(function(x) {
18246
- return asArray(x).map(function(x) {
18815
+ var arrayOfAllClassValues = arrayOfClasses.flatMap(function(x) {
18816
+ return asArray(x).flatMap(function(x) {
18247
18817
  return x.split(' ');
18248
- }).flat();
18249
- }).flat();
18818
+ });
18819
+ });
18250
18820
  result = new Set(arrayOfAllClassValues);
18251
18821
  } else {
18252
18822
  result = new Set();
@@ -18314,14 +18884,30 @@ function _unsupported_iterable_to_array$1(o, minLen) {
18314
18884
  return inverted;
18315
18885
  }
18316
18886
 
18317
- /** MIME type for JPEG images. */ var JPEG_MIME_TYPE = 'image/jpeg';
18318
- /** MIME type for PNG images. */ var PNG_MIME_TYPE = 'image/png';
18319
- /** MIME type for WebP images. */ var WEBP_MIME_TYPE = 'image/webp';
18320
- /** MIME type for GIF images. */ var GIF_MIME_TYPE = 'image/gif';
18321
- /** MIME type for HEIF images. */ var HEIF_MIME_TYPE = 'image/heif';
18322
- /** MIME type for TIFF images. */ var TIFF_MIME_TYPE = 'image/tiff';
18323
- /** MIME type for SVG images. */ var SVG_MIME_TYPE = 'image/svg+xml';
18324
- /** MIME type for RAW images. */ var RAW_MIME_TYPE = 'image/raw';
18887
+ /**
18888
+ * MIME type for JPEG images.
18889
+ */ var JPEG_MIME_TYPE = 'image/jpeg';
18890
+ /**
18891
+ * MIME type for PNG images.
18892
+ */ var PNG_MIME_TYPE = 'image/png';
18893
+ /**
18894
+ * MIME type for WebP images.
18895
+ */ var WEBP_MIME_TYPE = 'image/webp';
18896
+ /**
18897
+ * MIME type for GIF images.
18898
+ */ var GIF_MIME_TYPE = 'image/gif';
18899
+ /**
18900
+ * MIME type for HEIF images.
18901
+ */ var HEIF_MIME_TYPE = 'image/heif';
18902
+ /**
18903
+ * MIME type for TIFF images.
18904
+ */ var TIFF_MIME_TYPE = 'image/tiff';
18905
+ /**
18906
+ * MIME type for SVG images.
18907
+ */ var SVG_MIME_TYPE = 'image/svg+xml';
18908
+ /**
18909
+ * MIME type for RAW images.
18910
+ */ var RAW_MIME_TYPE = 'image/raw';
18325
18911
  /**
18326
18912
  * Maps image file extensions to their corresponding MIME types.
18327
18913
  */ var IMAGE_FILE_EXTENSION_TO_MIME_TYPES_RECORD = {
@@ -18349,16 +18935,36 @@ function mimeTypeForImageFileExtension(extension) {
18349
18935
  */ function imageFileExtensionForMimeType(mimeType) {
18350
18936
  return mimeType ? IMAGE_MIME_TYPES_TO_FILE_EXTENSIONS_RECORD[mimeType] : undefined;
18351
18937
  }
18352
- /** MIME type for PDF documents. */ var PDF_MIME_TYPE = 'application/pdf';
18353
- /** MIME type for DOCX (Word) documents. */ var DOCX_MIME_TYPE = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';
18354
- /** MIME type for XLSX (Excel) spreadsheets. */ var XLSX_MIME_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
18355
- /** MIME type for plain text files. */ var TXT_MIME_TYPE = 'text/plain';
18356
- /** MIME type for CSV files. */ var CSV_MIME_TYPE = 'text/csv';
18357
- /** MIME type for HTML files. */ var HTML_MIME_TYPE = 'text/html';
18358
- /** MIME type for XML files. */ var XML_MIME_TYPE = 'application/xml';
18359
- /** MIME type for JSON files. */ var JSON_MIME_TYPE = 'application/json';
18360
- /** MIME type for YAML files. */ var YAML_MIME_TYPE = 'application/yaml';
18361
- /** MIME type for Markdown files. */ var MARKDOWN_MIME_TYPE = 'text/markdown';
18938
+ /**
18939
+ * MIME type for PDF documents.
18940
+ */ var PDF_MIME_TYPE = 'application/pdf';
18941
+ /**
18942
+ * MIME type for DOCX (Word) documents.
18943
+ */ var DOCX_MIME_TYPE = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';
18944
+ /**
18945
+ * MIME type for XLSX (Excel) spreadsheets.
18946
+ */ var XLSX_MIME_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
18947
+ /**
18948
+ * MIME type for plain text files.
18949
+ */ var TXT_MIME_TYPE = 'text/plain';
18950
+ /**
18951
+ * MIME type for CSV files.
18952
+ */ var CSV_MIME_TYPE = 'text/csv';
18953
+ /**
18954
+ * MIME type for HTML files.
18955
+ */ var HTML_MIME_TYPE = 'text/html';
18956
+ /**
18957
+ * MIME type for XML files.
18958
+ */ var XML_MIME_TYPE = 'application/xml';
18959
+ /**
18960
+ * MIME type for JSON files.
18961
+ */ var JSON_MIME_TYPE = 'application/json';
18962
+ /**
18963
+ * MIME type for YAML files.
18964
+ */ var YAML_MIME_TYPE = 'application/yaml';
18965
+ /**
18966
+ * MIME type for Markdown files.
18967
+ */ var MARKDOWN_MIME_TYPE = 'text/markdown';
18362
18968
  /**
18363
18969
  * Maps document file extensions to their corresponding MIME types.
18364
18970
  */ var DOCUMENT_FILE_EXTENSION_TO_MIME_TYPES_RECORD = {
@@ -18387,7 +18993,9 @@ function mimeTypeForDocumentFileExtension(extension) {
18387
18993
  */ function documentFileExtensionForMimeType(mimeType) {
18388
18994
  return mimeType ? DOCUMENT_MIME_TYPES_TO_FILE_EXTENSIONS_RECORD[mimeType] : undefined;
18389
18995
  }
18390
- /** MIME type for ZIP archive files. */ var ZIP_FILE_MIME_TYPE = 'application/zip';
18996
+ /**
18997
+ * MIME type for ZIP archive files.
18998
+ */ var ZIP_FILE_MIME_TYPE = 'application/zip';
18391
18999
  /**
18392
19000
  * Maps application file extensions to their corresponding MIME types.
18393
19001
  */ var APPLICATION_FILE_EXTENSION_TO_MIME_TYPES_RECORD = {
@@ -18512,7 +19120,7 @@ function mimeTypeForFileExtension(extension) {
18512
19120
  var searchResult = readStrings(value);
18513
19121
  var match = false;
18514
19122
  if (Array.isArray(searchResult)) {
18515
- match = searchResult.findIndex(decision) !== -1;
19123
+ match = searchResult.some(decision);
18516
19124
  } else if (searchResult != null) {
18517
19125
  match = decision(searchResult);
18518
19126
  }
@@ -18528,7 +19136,7 @@ function mimeTypeForFileExtension(extension) {
18528
19136
  */ var caseInsensitiveFilterByIndexOfDecisionFactory = function caseInsensitiveFilterByIndexOfDecisionFactory(filterText) {
18529
19137
  var searchString = filterText.toLocaleLowerCase();
18530
19138
  return function(string) {
18531
- return string.toLocaleLowerCase().indexOf(searchString) !== -1;
19139
+ return string.toLocaleLowerCase().includes(searchString);
18532
19140
  };
18533
19141
  };
18534
19142
 
@@ -18630,11 +19238,9 @@ function _unsupported_iterable_to_array(o, minLen) {
18630
19238
  entries.forEach(function(entry) {
18631
19239
  result = factory(entry, result);
18632
19240
  });
18633
- if (!result) {
18634
- result = factory({
18635
- values: []
18636
- });
18637
- }
19241
+ result !== null && result !== void 0 ? result : result = factory({
19242
+ values: []
19243
+ });
18638
19244
  return result;
18639
19245
  }
18640
19246
  /**
@@ -18657,7 +19263,7 @@ function _unsupported_iterable_to_array(o, minLen) {
18657
19263
  var parts = value.split(separator);
18658
19264
  var currentNode = tree;
18659
19265
  parts.forEach(function(nodeValue) {
18660
- var existingChildNode = currentNode.children[nodeValue];
19266
+ var existingChildNode = currentNode.children[nodeValue]; // may be undefined for new paths
18661
19267
  var childNode = existingChildNode !== null && existingChildNode !== void 0 ? existingChildNode : {
18662
19268
  nodeValue: nodeValue,
18663
19269
  children: {}
@@ -19207,8 +19813,7 @@ function invertMaybeBoolean(x) {
19207
19813
  var chance = inputChance / 100;
19208
19814
  return function() {
19209
19815
  var roll = Math.random();
19210
- var result = roll <= chance;
19211
- return result;
19816
+ return roll <= chance;
19212
19817
  };
19213
19818
  }
19214
19819
  /**
@@ -19530,31 +20135,67 @@ function _ts_generator$1(thisArg, body) {
19530
20135
  * ```
19531
20136
  */ function iterate(values, useFn) {
19532
20137
  return _async_to_generator$1(function() {
19533
- var i;
20138
+ var _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, value, err;
19534
20139
  return _ts_generator$1(this, function(_state) {
19535
20140
  switch(_state.label){
19536
20141
  case 0:
19537
- i = 0;
20142
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
19538
20143
  _state.label = 1;
19539
20144
  case 1:
19540
- if (!(i < values.length)) return [
20145
+ _state.trys.push([
20146
+ 1,
20147
+ 6,
20148
+ 7,
20149
+ 8
20150
+ ]);
20151
+ _iterator = values[Symbol.iterator]();
20152
+ _state.label = 2;
20153
+ case 2:
20154
+ if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
19541
20155
  3,
19542
- 4
20156
+ 5
19543
20157
  ];
20158
+ value = _step.value;
19544
20159
  return [
19545
20160
  4,
19546
- useFn(values[i])
20161
+ useFn(value)
19547
20162
  ];
19548
- case 2:
19549
- _state.sent();
19550
- _state.label = 3;
19551
20163
  case 3:
19552
- i += 1;
20164
+ _state.sent();
20165
+ _state.label = 4;
20166
+ case 4:
20167
+ _iteratorNormalCompletion = true;
19553
20168
  return [
19554
20169
  3,
19555
- 1
20170
+ 2
19556
20171
  ];
19557
- case 4:
20172
+ case 5:
20173
+ return [
20174
+ 3,
20175
+ 8
20176
+ ];
20177
+ case 6:
20178
+ err = _state.sent();
20179
+ _didIteratorError = true;
20180
+ _iteratorError = err;
20181
+ return [
20182
+ 3,
20183
+ 8
20184
+ ];
20185
+ case 7:
20186
+ try {
20187
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
20188
+ _iterator.return();
20189
+ }
20190
+ } finally{
20191
+ if (_didIteratorError) {
20192
+ throw _iteratorError;
20193
+ }
20194
+ }
20195
+ return [
20196
+ 7
20197
+ ];
20198
+ case 8:
19558
20199
  return [
19559
20200
  2
19560
20201
  ];
@@ -19780,11 +20421,11 @@ function _ts_generator(thisArg, body) {
19780
20421
  * @throws Error if neither `use` nor `usePage` is specified in `iterFn`
19781
20422
  */ function iterateFilteredPages(inputPage, loadFn, iterFn) {
19782
20423
  return _async_to_generator(function() {
19783
- var _ref, _iterFn_usePage, currentPage, hasMore, count, useFn, page, values;
20424
+ var _iterFn_usePage, currentPage, hasMore, count, useFn, page, values;
19784
20425
  return _ts_generator(this, function(_state) {
19785
20426
  switch(_state.label){
19786
20427
  case 0:
19787
- currentPage = (_ref = inputPage === null || inputPage === void 0 ? void 0 : inputPage.page) !== null && _ref !== void 0 ? _ref : 0;
20428
+ currentPage = inputPage.page;
19788
20429
  hasMore = true;
19789
20430
  count = 0;
19790
20431
  if (!iterFn.use && !iterFn.usePage) {
@@ -19867,9 +20508,8 @@ function _ts_generator(thisArg, body) {
19867
20508
  var parentKey = parentParts.join('/');
19868
20509
  var parent = nodeMap.get(parentKey);
19869
20510
  if (parent) {
19870
- if (!parent.children) {
19871
- parent.children = [];
19872
- }
20511
+ var _parent, _children;
20512
+ (_children = (_parent = parent).children) !== null && _children !== void 0 ? _children : _parent.children = [];
19873
20513
  parent.children.push(node);
19874
20514
  node.parent = parent;
19875
20515
  } else if (includeChildrenWithMissingParentFolder) {
@@ -19988,4 +20628,4 @@ function _ts_generator(thisArg, body) {
19988
20628
  return result;
19989
20629
  }
19990
20630
 
19991
- export { ALL_DOUBLE_SLASHES_REGEX, ALL_SLASHES_REGEX, ALL_SLASH_PATH_FILE_TYPE_SEPARATORS_REGEX, 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_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, 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, MemoryStorageInstance, ModelRelationUtility, NOOP_MODIFIER, NUMBER_STRING_DENCODER_64, NUMBER_STRING_DENCODER_64_DEFAULT_NEGATIVE_PREFIX, NUMBER_STRING_DENCODER_64_DIGITS, PDF_MIME_TYPE, PHONE_EXTENSION_NUMBER_REGEX, 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, 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, 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, convertToArray, copyArray, copyField, copyLatLngBound, copyLatLngPoint, copyObject, copySetAndDo, countAllInNestedArray, countPOJOKeys, countPOJOKeysFunction, cronExpressionRepeatingEveryNMinutes, cssClassesSet, 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, 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, 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, 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, millisecondsToMinutesAndSeconds, 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, 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, removeFromBooleanKeyArray, removeFromSet, removeFromSetCopy, removeHttpFromUrl, removeModelsWithKey, removeModelsWithSameKey, removeModifiers, 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, 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, sumOfIntegersBetween, swMostLatLngPoint, symmetricDifferenceArray, symmetricDifferenceArrayBetweenSets, symmetricDifferenceWithModels, takeFront, takeLast, takeValuesFromIterable, telUrlString, telUrlStringForE164PhoneNumberPair, terminatingFactoryFromArray, throwKeyIsRequired, timePeriodCounter, toAbsoluteSlashPathStartType, toCaseInsensitiveStringArray, toMinuteOfDay, toModelFieldConversions, toModelMapFunctions, toReadableError, toRelativeSlashPathStartType, toggleInSet, toggleInSetCopy, toggleTimerRunning, transformNumberFunction, transformNumberFunctionConfig, transformStringFunction, transformStringFunctionConfig, transformStrings, trimArray, trueOrFalseString, 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 };
20631
+ export { ALL_DOUBLE_SLASHES_REGEX, ALL_SLASHES_REGEX, ALL_SLASH_PATH_FILE_TYPE_SEPARATORS_REGEX, 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_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, 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, MemoryStorageInstance, ModelRelationUtility, NOOP_MODIFIER, NUMBER_STRING_DENCODER_64, NUMBER_STRING_DENCODER_64_DEFAULT_NEGATIVE_PREFIX, NUMBER_STRING_DENCODER_64_DIGITS, PDF_MIME_TYPE, PHONE_EXTENSION_NUMBER_REGEX, 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, 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, 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, convertToArray, copyArray, copyField, copyLatLngBound, copyLatLngPoint, copyObject, copySetAndDo, countAllInNestedArray, countPOJOKeys, countPOJOKeysFunction, cronExpressionRepeatingEveryNMinutes, cssClassesSet, 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, 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, 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, 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, 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, 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, removeFromBooleanKeyArray, removeFromSet, removeFromSetCopy, removeHttpFromUrl, removeModelsWithKey, removeModelsWithSameKey, removeModifiers, 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, 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, sumOfIntegersBetween, swMostLatLngPoint, symmetricDifferenceArray, symmetricDifferenceArrayBetweenSets, symmetricDifferenceWithModels, takeFront, takeLast, takeValuesFromIterable, telUrlString, telUrlStringForE164PhoneNumberPair, terminatingFactoryFromArray, throwKeyIsRequired, timePeriodCounter, toAbsoluteSlashPathStartType, toCaseInsensitiveStringArray, toMinuteOfDay, toModelFieldConversions, toModelMapFunctions, toReadableError, toRelativeSlashPathStartType, toggleInSet, toggleInSetCopy, toggleTimerRunning, transformNumberFunction, transformNumberFunctionConfig, transformStringFunction, transformStringFunctionConfig, transformStrings, trimArray, trueOrFalseString, 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 };