@pawells/typescript-common 1.1.6 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/README.md +32 -6
  2. package/build/array/array-chunk.js +1 -1
  3. package/build/array/array-chunk.js.map +1 -1
  4. package/build/array/array-contains.d.ts +1 -1
  5. package/build/array/array-contains.d.ts.map +1 -1
  6. package/build/array/array-count-by.d.ts +1 -1
  7. package/build/array/array-count-by.d.ts.map +1 -1
  8. package/build/array/array-difference.d.ts +1 -1
  9. package/build/array/array-difference.d.ts.map +1 -1
  10. package/build/array/array-filter.d.ts +1 -1
  11. package/build/array/array-filter.d.ts.map +1 -1
  12. package/build/array/array-filter.js +5 -0
  13. package/build/array/array-filter.js.map +1 -1
  14. package/build/array/array-group-by.d.ts +1 -1
  15. package/build/array/array-group-by.d.ts.map +1 -1
  16. package/build/array/array-intersection.d.ts +1 -1
  17. package/build/array/array-intersection.d.ts.map +1 -1
  18. package/build/array/array-partition.d.ts +1 -1
  19. package/build/array/array-partition.d.ts.map +1 -1
  20. package/build/array/array-sort-by.d.ts +1 -1
  21. package/build/array/array-sort-by.d.ts.map +1 -1
  22. package/build/array/assert.d.ts +17 -24
  23. package/build/array/assert.d.ts.map +1 -1
  24. package/build/array/assert.js +13 -21
  25. package/build/array/assert.js.map +1 -1
  26. package/build/asserts/errors.d.ts +18 -0
  27. package/build/asserts/errors.d.ts.map +1 -1
  28. package/build/asserts/errors.js +23 -0
  29. package/build/asserts/errors.js.map +1 -1
  30. package/build/asserts/generic.d.ts +19 -20
  31. package/build/asserts/generic.d.ts.map +1 -1
  32. package/build/asserts/generic.js +19 -34
  33. package/build/asserts/generic.js.map +1 -1
  34. package/build/asserts/internal-utils.d.ts +1 -44
  35. package/build/asserts/internal-utils.d.ts.map +1 -1
  36. package/build/asserts/internal-utils.js +2 -104
  37. package/build/asserts/internal-utils.js.map +1 -1
  38. package/build/boolean/assert.d.ts +2 -1
  39. package/build/boolean/assert.d.ts.map +1 -1
  40. package/build/boolean/assert.js +2 -3
  41. package/build/boolean/assert.js.map +1 -1
  42. package/build/function/memoize.d.ts +2 -1
  43. package/build/function/memoize.d.ts.map +1 -1
  44. package/build/function/memoize.js +4 -7
  45. package/build/function/memoize.js.map +1 -1
  46. package/build/function/once.d.ts.map +1 -1
  47. package/build/function/once.js +14 -2
  48. package/build/function/once.js.map +1 -1
  49. package/build/function/throttle.d.ts.map +1 -1
  50. package/build/function/throttle.js +4 -2
  51. package/build/function/throttle.js.map +1 -1
  52. package/build/index.d.ts +5 -4
  53. package/build/index.d.ts.map +1 -1
  54. package/build/index.js +6 -5
  55. package/build/index.js.map +1 -1
  56. package/build/lru-cache.d.ts +105 -0
  57. package/build/lru-cache.d.ts.map +1 -0
  58. package/build/lru-cache.js +139 -0
  59. package/build/lru-cache.js.map +1 -0
  60. package/build/number/assert.d.ts +2 -1
  61. package/build/number/assert.d.ts.map +1 -1
  62. package/build/number/assert.js +2 -5
  63. package/build/number/assert.js.map +1 -1
  64. package/build/object/assert-object.d.ts +13 -2
  65. package/build/object/assert-object.d.ts.map +1 -1
  66. package/build/object/assert-object.js +13 -2
  67. package/build/object/assert-object.js.map +1 -1
  68. package/build/object/assert.d.ts +4 -3
  69. package/build/object/assert.d.ts.map +1 -1
  70. package/build/object/assert.js +5 -8
  71. package/build/object/assert.js.map +1 -1
  72. package/build/object/clone.d.ts.map +1 -1
  73. package/build/object/clone.js +13 -8
  74. package/build/object/clone.js.map +1 -1
  75. package/build/object/equals.js +1 -1
  76. package/build/object/equals.js.map +1 -1
  77. package/build/object/filter-cached.d.ts.map +1 -1
  78. package/build/object/filter-cached.js +4 -6
  79. package/build/object/filter-cached.js.map +1 -1
  80. package/build/object/filter.d.ts.map +1 -1
  81. package/build/object/filter.js +2 -19
  82. package/build/object/filter.js.map +1 -1
  83. package/build/object/has-circular-reference.d.ts.map +1 -1
  84. package/build/object/has-circular-reference.js +5 -0
  85. package/build/object/has-circular-reference.js.map +1 -1
  86. package/build/object/hash.d.ts +12 -5
  87. package/build/object/hash.d.ts.map +1 -1
  88. package/build/object/hash.js +41 -13
  89. package/build/object/hash.js.map +1 -1
  90. package/build/object/index.d.ts +1 -1
  91. package/build/object/index.d.ts.map +1 -1
  92. package/build/object/index.js +1 -1
  93. package/build/object/index.js.map +1 -1
  94. package/build/object/key-value-pairs.d.ts.map +1 -1
  95. package/build/object/key-value-pairs.js +12 -4
  96. package/build/object/key-value-pairs.js.map +1 -1
  97. package/build/object/map-cached.d.ts.map +1 -1
  98. package/build/object/map-cached.js +2 -3
  99. package/build/object/map-cached.js.map +1 -1
  100. package/build/object/merge.d.ts.map +1 -1
  101. package/build/object/merge.js +3 -6
  102. package/build/object/merge.js.map +1 -1
  103. package/build/object/object-diff.d.ts +4 -8
  104. package/build/object/object-diff.d.ts.map +1 -1
  105. package/build/object/object-diff.js +8 -11
  106. package/build/object/object-diff.js.map +1 -1
  107. package/build/object/property-paths.js +2 -2
  108. package/build/object/property-paths.js.map +1 -1
  109. package/build/object/security-utils.d.ts.map +1 -1
  110. package/build/object/security-utils.js +0 -4
  111. package/build/object/security-utils.js.map +1 -1
  112. package/build/object/sort-keys.js +1 -1
  113. package/build/object/sort-keys.js.map +1 -1
  114. package/build/string/assert.d.ts +2 -1
  115. package/build/string/assert.d.ts.map +1 -1
  116. package/build/string/assert.js +5 -3
  117. package/build/string/assert.js.map +1 -1
  118. package/build/time/elapsed-time/elapsed-time.d.ts +1 -0
  119. package/build/time/elapsed-time/elapsed-time.d.ts.map +1 -1
  120. package/build/time/elapsed-time/elapsed-time.js +33 -22
  121. package/build/time/elapsed-time/elapsed-time.js.map +1 -1
  122. package/build/time/elapsed-time/types.d.ts +2 -2
  123. package/build/time/elapsed-time/types.d.ts.map +1 -1
  124. package/build/time/stopwatch/stopwatch.d.ts +20 -0
  125. package/build/time/stopwatch/stopwatch.d.ts.map +1 -1
  126. package/build/time/stopwatch/stopwatch.js +26 -4
  127. package/build/time/stopwatch/stopwatch.js.map +1 -1
  128. package/package.json +9 -12
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  [![npm](https://img.shields.io/npm/v/@pawells/typescript-common)](https://www.npmjs.com/package/@pawells/typescript-common)
4
4
  [![GitHub Release](https://img.shields.io/github/v/release/PhillipAWells/typescript-common)](https://github.com/PhillipAWells/typescript-common/releases)
5
5
  [![CI](https://github.com/PhillipAWells/typescript-common/actions/workflows/ci.yml/badge.svg)](https://github.com/PhillipAWells/typescript-common/actions/workflows/ci.yml)
6
- [![Node](https://img.shields.io/badge/node-%3E%3D24-brightgreen)](https://nodejs.org)
6
+ [![Node](https://img.shields.io/badge/node-%3E%3D22-brightgreen)](https://nodejs.org)
7
7
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE)
8
8
  [![GitHub Sponsors](https://img.shields.io/github/sponsors/PhillipAWells?style=social)](https://github.com/sponsors/PhillipAWells)
9
9
 
@@ -31,11 +31,12 @@ import {
31
31
 
32
32
  ArrayUtils.ArrayChunk([1, 2, 3, 4], 2); // [[1, 2], [3, 4]]
33
33
  ArrayUtils.AssertArray(value); // throws if not an array
34
+ ObjectUtils.IsObject(value); // returns true/false (type-guard)
34
35
  BooleanUtils.AssertBoolean(value); // throws if not a boolean
35
36
  NumberUtils.AssertNumber(value, { gte: 0, integer: true });
36
37
 
37
38
  // Direct named import (tree-shakeable)
38
- import { ArrayChunk, ObjectPick, CamelCase, Sleep, AssertString } from '@pawells/typescript-common';
39
+ import { ArrayChunk, ObjectPick, CamelCase, Sleep, AssertString, LRUCache } from '@pawells/typescript-common';
39
40
  ```
40
41
 
41
42
  ## API
@@ -82,15 +83,17 @@ import { ArrayChunk, ObjectPick, CamelCase, Sleep, AssertString } from '@pawells
82
83
 
83
84
  | Export | Description |
84
85
  |--------|-------------|
85
- | `AssertObject(value)` | Assert a value is a non-null plain object (type-guard, returns boolean) |
86
+ | `IsObject(value)` | Type-guard: returns `true` if value is a non-null, non-array object |
86
87
  | `ObjectClone(obj)` | Deep-clone an object |
87
88
  | `ObjectEquals(a, b)` | Deep equality check |
88
89
  | `ObjectFilter(obj, predicate)` | Filter object entries by predicate |
90
+ | `ObjectFilterCached(obj, predicate)` | Cached filter for repeated operations |
89
91
  | `FilterObject(obj, keys)` | Keep only specified keys |
90
92
  | `ObjectPick(obj, keys)` | Pick a subset of keys |
91
93
  | `ObjectOmit(obj, keys)` | Omit specified keys |
92
94
  | `ObjectMerge(target, ...sources)` | Deep merge objects |
93
95
  | `MapObject(obj, fn)` | Map over object values |
96
+ | `MapObjectCached(obj, fn)` | Cached map for repeated operations |
94
97
  | `TransformObject(obj, fn)` | Transform object entries |
95
98
  | `ObjectHash(obj)` | Compute a stable hash of an object |
96
99
  | `ObjectSortKeys(obj)` | Return object with keys sorted |
@@ -101,6 +104,7 @@ import { ArrayChunk, ObjectPick, CamelCase, Sleep, AssertString } from '@pawells
101
104
  | `ObjectInvert(obj)` | Swap keys and values |
102
105
  | `ObjectFlatten(obj, separator?)` | Flatten nested object to dot-separated keys |
103
106
  | `ObjectDiff(objA, objB)` | Compute added/removed/changed keys between two objects |
107
+ | `ObjectHasCircularReference(obj)` | Detect circular references in an object |
104
108
  | `AssertObjectHasProperty(value, property, exception?)` | Assert object has an inherited or own property |
105
109
  | `AssertObjectHasOwnProperty(value, property, exception?)` | Assert object has a direct own property |
106
110
  | `AssertObjectPropertyNotNull(value, property, exception?)` | Assert object property is not null/undefined |
@@ -110,16 +114,23 @@ import { ArrayChunk, ObjectPick, CamelCase, Sleep, AssertString } from '@pawells
110
114
  | Export | Description |
111
115
  |--------|-------------|
112
116
  | `CamelCase(str)` | Convert a string to camelCase |
117
+ | `CAPITALIZE(str)` | Capitalize the first letter of a string |
113
118
  | `PASCAL_CASE(str)` | Convert a string to PascalCase |
114
119
  | `KEBAB_CASE(str)` | Convert a string to kebab-case |
115
120
  | `SNAKE_CASE(str)` | Convert a string to snake_case |
116
121
  | `SCREAMING_SNAKE_CASE(str)` | Convert a string to SCREAMING_SNAKE_CASE |
117
122
  | `FormatString(template, values)` | Simple string template formatting |
123
+ | `TruncateString(str, maxLength, ellipsis?)` | Truncate a string with ellipsis |
124
+ | `PadString(str, length, char?, padEnd?)` | Pad a string to a specified length |
118
125
  | `EscapeHTML(str)` | Escape HTML special characters |
119
126
  | `StripHTML(str)` | Remove all HTML tags from a string |
120
127
  | `Pluralize(word, count, plural?)` | Return singular or plural form based on count |
121
128
  | `WordCount(str)` | Count the number of words in a string |
122
129
  | `CountOccurrences(str, substr)` | Count non-overlapping occurrences of a substring |
130
+ | `REVERSE_STRING(str)` | Reverse a string |
131
+ | `SLUGIFY(str)` | Convert a string to a URL-friendly slug |
132
+ | `IS_BLANK_STRING(str)` | Check if a string is empty or whitespace-only |
133
+ | `IS_HEX_STRING(str)` | Check if a string is a valid hexadecimal value |
123
134
  | `AssertString(value, exception?)` | Assert value is a string primitive |
124
135
  | `AssertStringNotEmpty(value, exception?)` | Assert value is a non-empty, non-whitespace string |
125
136
  | `AssertStringMatches(value, regex, exception?)` | Assert string matches a regular expression |
@@ -128,7 +139,8 @@ import { ArrayChunk, ObjectPick, CamelCase, Sleep, AssertString } from '@pawells
128
139
 
129
140
  | Export | Description |
130
141
  |--------|-------------|
131
- | `ElapsedTime` | Measure elapsed time with human-readable output |
142
+ | `ElapsedTime` | Class for measuring elapsed time with human-readable output |
143
+ | `FormatElapsedTime(ms, options?)` | Format milliseconds using concise format |
132
144
  | `Stopwatch` | Lap-based stopwatch for benchmarking |
133
145
 
134
146
  ### Enum utilities — `EnumUtils`
@@ -154,6 +166,20 @@ import { ArrayChunk, ObjectPick, CamelCase, Sleep, AssertString } from '@pawells
154
166
  | `Compose(...fns)` | Compose functions right-to-left |
155
167
  | `Sleep(ms)` | Return a `Promise` that resolves after `ms` ms |
156
168
 
169
+ ### LRU Cache — `LRUCache`
170
+
171
+ | Export | Description |
172
+ |--------|-------------|
173
+ | `LRUCache<K, V>` | Generic Least Recently Used cache with configurable capacity |
174
+
175
+ ```typescript
176
+ const cache = new LRUCache<string, number>(100);
177
+ cache.set('key', 42);
178
+ cache.get('key'); // 42 (marks as recently used)
179
+ cache.has('key'); // true
180
+ cache.clear(); // removes all entries
181
+ ```
182
+
157
183
  ### Assertion utilities — `AssertsUtils`
158
184
 
159
185
  Cross-cutting assertions not tied to a single type, plus the shared assertion infrastructure.
@@ -176,7 +202,7 @@ Cross-cutting assertions not tied to a single type, plus the shared assertion in
176
202
 
177
203
  **All type-specific assertions** (`AssertArray`, `AssertBoolean`, `AssertNumber`, `AssertObject` (throwing), `AssertString`, etc.) are also accessible through `AssertsUtils` as a single convenience namespace.
178
204
 
179
- **Note:** `AssertsUtils.AssertObject` is the throwing assertion (narrows to `Record<string, unknown>`). `ObjectUtils.AssertObject` is the boolean predicate (returns `true`/`false`).
205
+ **Note:** `AssertObject` is a throwing assertion (narrows to `Record<string, unknown>`). Use `ObjectUtils.IsObject` for a boolean type-guard that returns `true`/`false`.
180
206
 
181
207
  #### Error classes
182
208
 
@@ -199,7 +225,7 @@ yarn test:coverage # Tests with coverage report
199
225
 
200
226
  ## Requirements
201
227
 
202
- - Node.js >= 24.0.0
228
+ - Node.js >= 22.0.0
203
229
 
204
230
  ## License
205
231
 
@@ -13,7 +13,7 @@
13
13
  * ```
14
14
  */
15
15
  export function ArrayChunk(array, size) {
16
- if (!array || size <= 0) {
16
+ if (!array || !(size > 0)) {
17
17
  return [];
18
18
  }
19
19
  const result = [];
@@ -1 +1 @@
1
- {"version":3,"file":"array-chunk.js","sourceRoot":"","sources":["../../src/array/array-chunk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,UAAU,CAAI,KAAU,EAAE,IAAY;IACrD,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACX,CAAC;IAED,MAAM,MAAM,GAAU,EAAE,CAAC;IAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"array-chunk.js","sourceRoot":"","sources":["../../src/array/array-chunk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,UAAU,CAAI,KAAU,EAAE,IAAY;IACrD,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC;IACX,CAAC;IAED,MAAM,MAAM,GAAU,EAAE,CAAC;IAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { TPredicate } from './types';
1
+ import type { TPredicate } from './types.js';
2
2
  /**
3
3
  * Checks if an array contains at least one element that passes a predicate test.
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"array-contains.d.ts","sourceRoot":"","sources":["../../src/array/array-contains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAM9E"}
1
+ {"version":3,"file":"array-contains.d.ts","sourceRoot":"","sources":["../../src/array/array-contains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAM9E"}
@@ -1,4 +1,4 @@
1
- import type { TTransform } from './types';
1
+ import type { TTransform } from './types.js';
2
2
  /**
3
3
  * Counts how many elements fall into each group defined by `keyFn`.
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"array-count-by.d.ts","sourceRoot":"","sources":["../../src/array/array-count-by.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EACjE,KAAK,EAAE,CAAC,EAAE,EACV,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GACrB,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAWnB"}
1
+ {"version":3,"file":"array-count-by.d.ts","sourceRoot":"","sources":["../../src/array/array-count-by.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EACjE,KAAK,EAAE,CAAC,EAAE,EACV,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GACrB,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAWnB"}
@@ -1,4 +1,4 @@
1
- import type { TEqualityComparator } from './types';
1
+ import type { TEqualityComparator } from './types.js';
2
2
  /**
3
3
  * Returns elements present in the first array but not in the second (set difference).
4
4
  * Optimised O(n+m) using a Set when no custom comparator is provided.
@@ -1 +1 @@
1
- {"version":3,"file":"array-difference.d.ts","sourceRoot":"","sources":["../../src/array/array-difference.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAChC,MAAM,EAAE,CAAC,EAAE,EACX,MAAM,EAAE,CAAC,EAAE,EACX,UAAU,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GACjC,CAAC,EAAE,CAUL"}
1
+ {"version":3,"file":"array-difference.d.ts","sourceRoot":"","sources":["../../src/array/array-difference.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAChC,MAAM,EAAE,CAAC,EAAE,EACX,MAAM,EAAE,CAAC,EAAE,EACX,UAAU,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GACjC,CAAC,EAAE,CAUL"}
@@ -1,4 +1,4 @@
1
- import type { TPredicate } from './types';
1
+ import type { TPredicate } from './types.js';
2
2
  /**
3
3
  * Filters an array based on criteria that can be an object filter or a predicate function.
4
4
  * Supports nested property filtering with dot notation and array property filtering.
@@ -1 +1 @@
1
- {"version":3,"file":"array-filter.d.ts","sourceRoot":"","sources":["../../src/array/array-filter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAoC1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC5B,KAAK,EAAE,CAAC,EAAE,EACV,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GACxD,CAAC,EAAE,CAaL"}
1
+ {"version":3,"file":"array-filter.d.ts","sourceRoot":"","sources":["../../src/array/array-filter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAsC7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC5B,KAAK,EAAE,CAAC,EAAE,EACV,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GACxD,CAAC,EAAE,CAeL"}
@@ -10,6 +10,9 @@ function getNestedValue(obj, path) {
10
10
  for (const key of keys) {
11
11
  if (current === null || current === undefined)
12
12
  return undefined;
13
+ // Block prototype-pollution paths
14
+ if (key === '__proto__' || key === 'constructor' || key === 'prototype')
15
+ return undefined;
13
16
  current = current[key];
14
17
  }
15
18
  return current;
@@ -63,6 +66,8 @@ function matchesValue(value, filterValue) {
63
66
  * ArrayFilter(numbers, (n) => n > 3); // [4, 5]
64
67
  */
65
68
  export function ArrayFilter(array, criteria) {
69
+ if (!array)
70
+ return [];
66
71
  // If criteria is a function, use it as predicate
67
72
  if (typeof criteria === 'function') {
68
73
  return array.filter(criteria);
@@ -1 +1 @@
1
- {"version":3,"file":"array-filter.js","sourceRoot":"","sources":["../../src/array/array-filter.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,SAAS,cAAc,CAAC,GAAY,EAAE,IAAY;IACjD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,OAAO,GAAQ,GAAG,CAAC;IAEvB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAChE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,OAAO,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CAAC,KAAc,EAAE,WAAoB;IACzD,8DAA8D;IAC9D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC;IAED,wBAAwB;IACxB,OAAO,KAAK,KAAK,WAAW,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,WAAW,CAC1B,KAAU,EACV,QAA0D;IAE1D,iDAAiD;IACjD,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,6CAA6C;IAC7C,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAC5B,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,EAAE;YAC5D,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC5C,OAAO,YAAY,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"array-filter.js","sourceRoot":"","sources":["../../src/array/array-filter.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,SAAS,cAAc,CAAC,GAAY,EAAE,IAAY;IACjD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,OAAO,GAAQ,GAAG,CAAC;IAEvB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAChE,kCAAkC;QAClC,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,aAAa,IAAI,GAAG,KAAK,WAAW;YAAE,OAAO,SAAS,CAAC;QAC1F,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,OAAO,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CAAC,KAAc,EAAE,WAAoB;IACzD,8DAA8D;IAC9D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC;IAED,wBAAwB;IACxB,OAAO,KAAK,KAAK,WAAW,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,WAAW,CAC1B,KAAU,EACV,QAA0D;IAE1D,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IAEtB,iDAAiD;IACjD,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,6CAA6C;IAC7C,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAC5B,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,EAAE;YAC5D,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC5C,OAAO,YAAY,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { TTransform } from './types';
1
+ import type { TTransform } from './types.js';
2
2
  /**
3
3
  * Groups array elements by a key generated by a provided function.
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"array-group-by.d.ts","sourceRoot":"","sources":["../../src/array/array-group-by.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAavH"}
1
+ {"version":3,"file":"array-group-by.d.ts","sourceRoot":"","sources":["../../src/array/array-group-by.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAavH"}
@@ -1,4 +1,4 @@
1
- import type { TEqualityComparator } from './types';
1
+ import type { TEqualityComparator } from './types.js';
2
2
  /**
3
3
  * Returns the intersection of two arrays (elements present in both)
4
4
  * Optimized O(n+m) complexity using Set-based approach
@@ -1 +1 @@
1
- {"version":3,"file":"array-intersection.d.ts","sourceRoot":"","sources":["../../src/array/array-intersection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAClC,MAAM,EAAE,CAAC,EAAE,EACX,MAAM,EAAE,CAAC,EAAE,EACX,UAAU,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GACjC,CAAC,EAAE,CAoBL"}
1
+ {"version":3,"file":"array-intersection.d.ts","sourceRoot":"","sources":["../../src/array/array-intersection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAClC,MAAM,EAAE,CAAC,EAAE,EACX,MAAM,EAAE,CAAC,EAAE,EACX,UAAU,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,GACjC,CAAC,EAAE,CAoBL"}
@@ -1,4 +1,4 @@
1
- import type { TPredicate } from './types';
1
+ import type { TPredicate } from './types.js';
2
2
  /**
3
3
  * Splits an array into two groups: elements that satisfy the predicate and those that do not.
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"array-partition.d.ts","sourceRoot":"","sources":["../../src/array/array-partition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAelF"}
1
+ {"version":3,"file":"array-partition.d.ts","sourceRoot":"","sources":["../../src/array/array-partition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAelF"}
@@ -1,4 +1,4 @@
1
- import type { TTransform } from './types';
1
+ import type { TTransform } from './types.js';
2
2
  /**
3
3
  * Returns a new array sorted by the value produced by `keyFn`, without mutating the original.
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"array-sort-by.d.ts","sourceRoot":"","sources":["../../src/array/array-sort-by.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC5B,KAAK,EAAE,CAAC,EAAE,EACV,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,EACrC,SAAS,GAAE,KAAK,GAAG,MAAc,GAC/B,CAAC,EAAE,CAWL"}
1
+ {"version":3,"file":"array-sort-by.d.ts","sourceRoot":"","sources":["../../src/array/array-sort-by.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC5B,KAAK,EAAE,CAAC,EAAE,EACV,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,EACrC,SAAS,GAAE,KAAK,GAAG,MAAc,GAC/B,CAAC,EAAE,CAWL"}
@@ -1,16 +1,24 @@
1
1
  import type { IAssertException } from '../asserts/types.js';
2
+ import { SimpleError } from '../asserts/errors.js';
2
3
  /**
3
- * Type alias for size constraint properties.
4
- * Represents constraints that can be applied to array dimensions.
4
+ * Configuration interface for array validation constraints.
5
+ *
6
+ * Provides flexible size constraints for array validation, allowing
7
+ * exact size matching or range-based validation with min/max bounds.
8
+ * All size constraints are inclusive.
5
9
  */
6
- export type TSizeConstraint = {
7
- /** Exact size requirement */
10
+ export interface IAssertArrayArgs {
11
+ /** Exact number of elements the array must contain */
8
12
  size?: number;
9
- /** Minimum size requirement (inclusive) */
13
+ /** Minimum number of elements the array must contain (inclusive) */
10
14
  minSize?: number;
11
- /** Maximum size requirement (inclusive) */
15
+ /** Maximum number of elements the array must contain (inclusive) */
12
16
  maxSize?: number;
13
- };
17
+ }
18
+ /**
19
+ * Alias for {@link IAssertArrayArgs}. Kept for backwards compatibility.
20
+ */
21
+ export type TSizeConstraint = IAssertArrayArgs;
14
22
  /**
15
23
  * Type alias for 2D dimension constraint properties.
16
24
  * Represents constraints that can be applied to matrix dimensions.
@@ -29,24 +37,9 @@ export type TDimensionConstraint = {
29
37
  * @example
30
38
  * throw new ArrayError('Value is not a valid array');
31
39
  */
32
- export declare class ArrayError extends Error {
40
+ export declare class ArrayError extends SimpleError {
33
41
  constructor(message?: string);
34
42
  }
35
- /**
36
- * Configuration interface for array validation constraints.
37
- *
38
- * Provides flexible size constraints for array validation, allowing
39
- * exact size matching or range-based validation with min/max bounds.
40
- * All size constraints are inclusive.
41
- */
42
- export interface IAssertArrayArgs {
43
- /** Exact number of elements the array must contain */
44
- size?: number;
45
- /** Minimum number of elements the array must contain (inclusive) */
46
- minSize?: number;
47
- /** Maximum number of elements the array must contain (inclusive) */
48
- maxSize?: number;
49
- }
50
43
  /**
51
44
  * Configuration interface for 2D array (matrix) validation constraints.
52
45
  *
@@ -76,7 +69,7 @@ export interface IAssertArray2DArgs {
76
69
  * @param exception Optional custom exception to throw.
77
70
  * @throws {ArrayError} If the value is not an array or fails size validation.
78
71
  */
79
- export declare function AssertArray<T = unknown>(value: unknown, args?: IAssertArrayArgs, exceptionInput?: IAssertException): asserts value is T[];
72
+ export declare function AssertArray<T = unknown>(value: unknown, args?: IAssertArrayArgs, exception?: IAssertException): asserts value is T[];
80
73
  /**
81
74
  * Asserts that a value is a 2D array, optionally validating its dimensions.
82
75
  * @template T The type of array elements.
@@ -1 +1 @@
1
- {"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../src/array/assert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAG5D;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAC7B,6BAA6B;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAClC,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,UAAW,SAAQ,KAAK;gBACxB,OAAO,CAAC,EAAE,MAAM;CAK5B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAChC,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IAClC,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,gBAAgB,EAAE,cAAc,GAAE,gBAAqB,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,EAAE,CA+B7I;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,GAAE,kBAAuB,EAAE,SAAS,GAAE,gBAAqB,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,EAAE,EAAE,CAuElJ;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,SAAS,GAAE,gBAAqB,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,EAAE,CAYnH;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,OAAO,EAAE,SAAS,GAAE,gBAAqB,GAAG,IAAI,CAe1I;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,OAAO,EAAE,SAAS,GAAE,gBAAqB,GAAG,IAAI,CAe1I"}
1
+ {"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../src/array/assert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAChC,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,gBAAgB,CAAC;AAE/C;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAClC,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,UAAW,SAAQ,WAAW;gBAC9B,OAAO,CAAC,EAAE,MAAM;CAG5B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IAClC,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,gBAAgB,EAAE,SAAS,GAAE,gBAAqB,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,EAAE,CA8BxI;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,GAAE,kBAAuB,EAAE,SAAS,GAAE,gBAAqB,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,EAAE,EAAE,CAuElJ;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,SAAS,GAAE,gBAAqB,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,EAAE,CAYnH;AAWD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,OAAO,EAAE,SAAS,GAAE,gBAAqB,GAAG,IAAI,CAM1I;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,OAAO,EAAE,SAAS,GAAE,gBAAqB,GAAG,IAAI,CAM1I"}
@@ -1,15 +1,14 @@
1
1
  import { SetExceptionClass, SetExceptionMessage, ThrowException } from '../asserts/utils.js';
2
+ import { SimpleError } from '../asserts/errors.js';
2
3
  /**
3
4
  * Error thrown when a value is not a valid array or fails an array assertion.
4
5
  *
5
6
  * @example
6
7
  * throw new ArrayError('Value is not a valid array');
7
8
  */
8
- export class ArrayError extends Error {
9
+ export class ArrayError extends SimpleError {
9
10
  constructor(message) {
10
11
  super(message ?? 'Array assertion failed');
11
- this.name = 'ArrayError';
12
- Object.setPrototypeOf(this, ArrayError.prototype);
13
12
  }
14
13
  }
15
14
  /**
@@ -20,9 +19,8 @@ export class ArrayError extends Error {
20
19
  * @param exception Optional custom exception to throw.
21
20
  * @throws {ArrayError} If the value is not an array or fails size validation.
22
21
  */
23
- export function AssertArray(value, args, exceptionInput = {}) {
22
+ export function AssertArray(value, args, exception = {}) {
24
23
  // Initialize exception configuration with defaults
25
- const exception = exceptionInput ?? {};
26
24
  SetExceptionClass(exception, ArrayError);
27
25
  // Validate that the value is an array
28
26
  if (!Array.isArray(value)) {
@@ -135,6 +133,14 @@ export function AssertArrayNotEmpty(value, exception = {}) {
135
133
  ThrowException(exception);
136
134
  }
137
135
  }
136
+ /** Shared guard for predicate-based array assertions. */
137
+ function assertIsArray(array, exception) {
138
+ SetExceptionClass(exception, ArrayError);
139
+ if (!Array.isArray(array)) {
140
+ SetExceptionMessage(exception, 'Value is not an array');
141
+ ThrowException(exception);
142
+ }
143
+ }
138
144
  /**
139
145
  * Asserts that all elements in an array satisfy a predicate.
140
146
  * @template T The type of array elements.
@@ -144,14 +150,7 @@ export function AssertArrayNotEmpty(value, exception = {}) {
144
150
  * @throws {ArrayError} If any element fails the predicate test.
145
151
  */
146
152
  export function AssertArrayAll(array, predicate, exception = {}) {
147
- // Initialize exception configuration with defaults
148
- SetExceptionClass(exception, ArrayError);
149
- // Validate that the value is an array
150
- if (!Array.isArray(array)) {
151
- SetExceptionMessage(exception, 'Value is not an array');
152
- ThrowException(exception);
153
- }
154
- // Check if all elements satisfy the predicate
153
+ assertIsArray(array, exception);
155
154
  if (!array.every(predicate)) {
156
155
  SetExceptionMessage(exception, 'Not all elements satisfy the predicate condition');
157
156
  ThrowException(exception);
@@ -166,14 +165,7 @@ export function AssertArrayAll(array, predicate, exception = {}) {
166
165
  * @throws {ArrayError} If no elements pass the predicate test.
167
166
  */
168
167
  export function AssertArrayAny(array, predicate, exception = {}) {
169
- // Initialize exception configuration with defaults
170
- SetExceptionClass(exception, ArrayError);
171
- // Validate that the value is an array
172
- if (!Array.isArray(array)) {
173
- SetExceptionMessage(exception, 'Value is not an array');
174
- ThrowException(exception);
175
- }
176
- // Check if any elements satisfy the predicate
168
+ assertIsArray(array, exception);
177
169
  if (!array.some(predicate)) {
178
170
  SetExceptionMessage(exception, 'No elements satisfy the predicate condition');
179
171
  ThrowException(exception);
@@ -1 +1 @@
1
- {"version":3,"file":"assert.js","sourceRoot":"","sources":["../../src/array/assert.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assert.js","sourceRoot":"","sources":["../../src/array/assert.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,21 @@
1
+ /**
2
+ * Lightweight base for simple assertion error classes.
3
+ *
4
+ * Handles the two boilerplate steps that every Error subclass needs:
5
+ * - Restoring the correct prototype chain (required when the runtime's built-in
6
+ * Error constructor replaces `this`, as in some transpiled environments).
7
+ * - Setting `this.name` to the concrete class name so stack traces are readable.
8
+ *
9
+ * Subclasses only need to supply their default message:
10
+ * ```typescript
11
+ * class MyError extends SimpleError {
12
+ * constructor(message?: string) { super(message ?? 'My default message'); }
13
+ * }
14
+ * ```
15
+ */
16
+ export declare class SimpleError extends Error {
17
+ constructor(message: string);
18
+ }
1
19
  /**
2
20
  * Base error class for all custom errors in the assertion library.
3
21
  *
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/asserts/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,SAAU,SAAQ,KAAK;IACnC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B,SAAgB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAE7D;;;;OAIG;gBACS,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAS5E;AAED;;;;;;;GAOG;AACH,qBAAa,eAAgB,SAAQ,SAAS;IAC7C;;;OAGG;gBACS,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG9D;AAED;;;;;;;GAOG;AACH,qBAAa,cAAe,SAAQ,SAAS;IAC5C;;;OAGG;gBACS,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG9D;AAED;;;;;;;;;;GAUG;AACH,qBAAa,oBAAqB,SAAQ,SAAS;IAClD;;;;OAIG;gBACS,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAGnF;AAED;;;;;;;;;GASG;AACH,qBAAa,iBAAkB,SAAQ,SAAS;IAC/C;;;OAGG;gBACS,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAGhE;AAED;;;;;;;;;GASG;AACH,qBAAa,aAAc,SAAQ,SAAS;IAC3C;;;OAGG;gBACS,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG3D;AAED;;;;;;;;;;GAUG;AACH,qBAAa,mBAAoB,SAAQ,SAAS;IACjD;;;OAGG;gBACS,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG9D"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/asserts/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,qBAAa,WAAY,SAAQ,KAAK;gBACzB,OAAO,EAAE,MAAM;CAM3B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,SAAU,SAAQ,KAAK;IACnC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B,SAAgB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAE7D;;;;OAIG;gBACS,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAS5E;AAED;;;;;;;GAOG;AACH,qBAAa,eAAgB,SAAQ,SAAS;IAC7C;;;OAGG;gBACS,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG9D;AAED;;;;;;;GAOG;AACH,qBAAa,cAAe,SAAQ,SAAS;IAC5C;;;OAGG;gBACS,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG9D;AAED;;;;;;;;;;GAUG;AACH,qBAAa,oBAAqB,SAAQ,SAAS;IAClD;;;;OAIG;gBACS,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAGnF;AAED;;;;;;;;;GASG;AACH,qBAAa,iBAAkB,SAAQ,SAAS;IAC/C;;;OAGG;gBACS,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAGhE;AAED;;;;;;;;;GASG;AACH,qBAAa,aAAc,SAAQ,SAAS;IAC3C;;;OAGG;gBACS,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG3D;AAED;;;;;;;;;;GAUG;AACH,qBAAa,mBAAoB,SAAQ,SAAS;IACjD;;;OAGG;gBACS,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG9D"}
@@ -1,3 +1,26 @@
1
+ /**
2
+ * Lightweight base for simple assertion error classes.
3
+ *
4
+ * Handles the two boilerplate steps that every Error subclass needs:
5
+ * - Restoring the correct prototype chain (required when the runtime's built-in
6
+ * Error constructor replaces `this`, as in some transpiled environments).
7
+ * - Setting `this.name` to the concrete class name so stack traces are readable.
8
+ *
9
+ * Subclasses only need to supply their default message:
10
+ * ```typescript
11
+ * class MyError extends SimpleError {
12
+ * constructor(message?: string) { super(message ?? 'My default message'); }
13
+ * }
14
+ * ```
15
+ */
16
+ export class SimpleError extends Error {
17
+ constructor(message) {
18
+ super(message);
19
+ // Fix prototype chain before reading this.constructor.name.
20
+ Object.setPrototypeOf(this, new.target.prototype);
21
+ this.name = this.constructor.name;
22
+ }
23
+ }
1
24
  /**
2
25
  * Base error class for all custom errors in the assertion library.
3
26
  *
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/asserts/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,SAAU,SAAQ,KAAK;IACnB,IAAI,CAAS;IAEb,OAAO,CAAsC;IAE7D;;;;OAIG;IACH,YAAY,OAAe,EAAE,IAAY,EAAE,OAAiC;QAC3E,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,OAAO,KAAK,CAAC,iBAAiB,KAAK,UAAU,EAAE,CAAC;YACnD,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC;IACF,CAAC;CACD;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,eAAgB,SAAQ,SAAS;IAC7C;;;OAGG;IACH,YAAY,OAAe,EAAE,OAAiC;QAC7D,KAAK,CAAC,OAAO,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;CACD;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,cAAe,SAAQ,SAAS;IAC5C;;;OAGG;IACH,YAAY,OAAe,EAAE,OAAiC;QAC7D,KAAK,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;CACD;AAED;;;;;;;;;;GAUG;AACH,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IAClD;;;;OAIG;IACH,YAAY,YAAoB,EAAE,MAAc,EAAE,OAAiC;QAClF,KAAK,CAAC,qBAAqB,YAAY,MAAM,MAAM,EAAE,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC;IACrF,CAAC;CACD;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,iBAAkB,SAAQ,SAAS;IAC/C;;;OAGG;IACH,YAAY,SAAiB,EAAE,OAAiC;QAC/D,KAAK,CAAC,4BAA4B,SAAS,EAAE,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;IAC1E,CAAC;CACD;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,aAAc,SAAQ,SAAS;IAC3C;;;OAGG;IACH,YAAY,IAAY,EAAE,OAAiC;QAC1D,KAAK,CAAC,cAAc,IAAI,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;CACD;AAED;;;;;;;;;;GAUG;AACH,MAAM,OAAO,mBAAoB,SAAQ,SAAS;IACjD;;;OAGG;IACH,YAAY,OAAe,EAAE,OAAiC;QAC7D,KAAK,CAAC,iCAAiC,OAAO,WAAW,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;IACxF,CAAC;CACD"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/asserts/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,WAAY,SAAQ,KAAK;IACrC,YAAY,OAAe;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,4DAA4D;QAC5D,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACnC,CAAC;CACD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,SAAU,SAAQ,KAAK;IACnB,IAAI,CAAS;IAEb,OAAO,CAAsC;IAE7D;;;;OAIG;IACH,YAAY,OAAe,EAAE,IAAY,EAAE,OAAiC;QAC3E,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,OAAQ,KAAa,CAAC,iBAAiB,KAAK,UAAU,EAAE,CAAC;YAC3D,KAAa,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1D,CAAC;IACF,CAAC;CACD;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,eAAgB,SAAQ,SAAS;IAC7C;;;OAGG;IACH,YAAY,OAAe,EAAE,OAAiC;QAC7D,KAAK,CAAC,OAAO,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;CACD;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,cAAe,SAAQ,SAAS;IAC5C;;;OAGG;IACH,YAAY,OAAe,EAAE,OAAiC;QAC7D,KAAK,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;CACD;AAED;;;;;;;;;;GAUG;AACH,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IAClD;;;;OAIG;IACH,YAAY,YAAoB,EAAE,MAAc,EAAE,OAAiC;QAClF,KAAK,CAAC,qBAAqB,YAAY,MAAM,MAAM,EAAE,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC;IACrF,CAAC;CACD;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,iBAAkB,SAAQ,SAAS;IAC/C;;;OAGG;IACH,YAAY,SAAiB,EAAE,OAAiC;QAC/D,KAAK,CAAC,4BAA4B,SAAS,EAAE,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;IAC1E,CAAC;CACD;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,aAAc,SAAQ,SAAS;IAC3C;;;OAGG;IACH,YAAY,IAAY,EAAE,OAAiC;QAC1D,KAAK,CAAC,cAAc,IAAI,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;CACD;AAED;;;;;;;;;;GAUG;AACH,MAAM,OAAO,mBAAoB,SAAQ,SAAS;IACjD;;;OAGG;IACH,YAAY,OAAe,EAAE,OAAiC;QAC7D,KAAK,CAAC,iCAAiC,OAAO,WAAW,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;IACxF,CAAC;CACD"}