@kdtlabs/utils 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +39 -0
- package/SKILL.md +251 -0
- package/arrays/accessors.d.ts +11 -0
- package/arrays/accessors.d.ts.map +1 -0
- package/arrays/conversions.d.ts +6 -0
- package/arrays/conversions.d.ts.map +1 -0
- package/arrays/factories.d.ts +5 -0
- package/arrays/factories.d.ts.map +1 -0
- package/arrays/guards.d.ts +5 -0
- package/arrays/guards.d.ts.map +1 -0
- package/arrays/index.d.ts +8 -0
- package/arrays/index.d.ts.map +1 -0
- package/arrays/index.js +4 -0
- package/arrays/index.js.map +9 -0
- package/arrays/operations.d.ts +16 -0
- package/arrays/operations.d.ts.map +1 -0
- package/arrays/set-operations.d.ts +6 -0
- package/arrays/set-operations.d.ts.map +1 -0
- package/arrays/types.d.ts +12 -0
- package/arrays/types.d.ts.map +1 -0
- package/buffers/conversions.d.ts +4 -0
- package/buffers/conversions.d.ts.map +1 -0
- package/buffers/guards.d.ts +7 -0
- package/buffers/guards.d.ts.map +1 -0
- package/buffers/index.d.ts +5 -0
- package/buffers/index.d.ts.map +1 -0
- package/buffers/index.js +4 -0
- package/buffers/index.js.map +9 -0
- package/buffers/operations.d.ts +4 -0
- package/buffers/operations.d.ts.map +1 -0
- package/buffers/types.d.ts +2 -0
- package/buffers/types.d.ts.map +1 -0
- package/chunk-4w1emwv7.js +6 -0
- package/chunk-4w1emwv7.js.map +14 -0
- package/chunk-6kdnnxe0.js +4 -0
- package/chunk-6kdnnxe0.js.map +17 -0
- package/chunk-6whsm14p.js +4 -0
- package/chunk-6whsm14p.js.map +13 -0
- package/chunk-6wkh99v0.js +4 -0
- package/chunk-6wkh99v0.js.map +11 -0
- package/chunk-84hxmrk7.js +4 -0
- package/chunk-84hxmrk7.js.map +12 -0
- package/chunk-bham5jvm.js +5 -0
- package/chunk-bham5jvm.js.map +13 -0
- package/chunk-bjmntg2y.js +4 -0
- package/chunk-bjmntg2y.js.map +18 -0
- package/chunk-bx5gjsp0.js +4 -0
- package/chunk-bx5gjsp0.js.map +17 -0
- package/chunk-c0p3wm8m.js +4 -0
- package/chunk-c0p3wm8m.js.map +15 -0
- package/chunk-c9mm50vv.js +4 -0
- package/chunk-c9mm50vv.js.map +11 -0
- package/chunk-f2rvwnb6.js +4 -0
- package/chunk-f2rvwnb6.js.map +26 -0
- package/chunk-kbzgn0z4.js +4 -0
- package/chunk-kbzgn0z4.js.map +10 -0
- package/chunk-m4svr349.js +4 -0
- package/chunk-m4svr349.js.map +12 -0
- package/chunk-qn6n0ff5.js +4 -0
- package/chunk-qn6n0ff5.js.map +17 -0
- package/chunk-sajy7qk7.js +4 -0
- package/chunk-sajy7qk7.js.map +14 -0
- package/chunk-xp18wdk6.js +4 -0
- package/chunk-xp18wdk6.js.map +12 -0
- package/collections/fifo-map.d.ts +7 -0
- package/collections/fifo-map.d.ts.map +1 -0
- package/collections/fifo-set.d.ts +7 -0
- package/collections/fifo-set.d.ts.map +1 -0
- package/collections/guards.d.ts +7 -0
- package/collections/guards.d.ts.map +1 -0
- package/collections/index.d.ts +10 -0
- package/collections/index.d.ts.map +1 -0
- package/collections/index.js +4 -0
- package/collections/index.js.map +9 -0
- package/collections/linked-base.d.ts +24 -0
- package/collections/linked-base.d.ts.map +1 -0
- package/collections/linked-map.d.ts +25 -0
- package/collections/linked-map.d.ts.map +1 -0
- package/collections/linked-set.d.ts +23 -0
- package/collections/linked-set.d.ts.map +1 -0
- package/collections/lru-map.d.ts +6 -0
- package/collections/lru-map.d.ts.map +1 -0
- package/collections/lru-set.d.ts +5 -0
- package/collections/lru-set.d.ts.map +1 -0
- package/collections/types.d.ts +11 -0
- package/collections/types.d.ts.map +1 -0
- package/common/assertions.d.ts +4 -0
- package/common/assertions.d.ts.map +1 -0
- package/common/guards.d.ts +2 -0
- package/common/guards.d.ts.map +1 -0
- package/common/index.d.ts +3 -0
- package/common/index.d.ts.map +1 -0
- package/common/index.js +4 -0
- package/common/index.js.map +9 -0
- package/core/constants.d.ts +2 -0
- package/core/constants.d.ts.map +1 -0
- package/core/guards.d.ts +24 -0
- package/core/guards.d.ts.map +1 -0
- package/core/index.d.ts +4 -0
- package/core/index.d.ts.map +1 -0
- package/core/index.js +4 -0
- package/core/index.js.map +9 -0
- package/core/types.d.ts +11 -0
- package/core/types.d.ts.map +1 -0
- package/errors/base-error.d.ts +22 -0
- package/errors/base-error.d.ts.map +1 -0
- package/errors/factories.d.ts +12 -0
- package/errors/factories.d.ts.map +1 -0
- package/errors/guards.d.ts +7 -0
- package/errors/guards.d.ts.map +1 -0
- package/errors/index.d.ts +7 -0
- package/errors/index.d.ts.map +1 -0
- package/errors/index.js +4 -0
- package/errors/index.js.map +9 -0
- package/errors/operations.d.ts +3 -0
- package/errors/operations.d.ts.map +1 -0
- package/errors/stringify.d.ts +36 -0
- package/errors/stringify.d.ts.map +1 -0
- package/errors/types.d.ts +10 -0
- package/errors/types.d.ts.map +1 -0
- package/events/emitter.d.ts +16 -0
- package/events/emitter.d.ts.map +1 -0
- package/events/index.d.ts +3 -0
- package/events/index.d.ts.map +1 -0
- package/events/index.js +4 -0
- package/events/index.js.map +9 -0
- package/events/types.d.ts +7 -0
- package/events/types.d.ts.map +1 -0
- package/functions/compositions.d.ts +4 -0
- package/functions/compositions.d.ts.map +1 -0
- package/functions/debounce.d.ts +4 -0
- package/functions/debounce.d.ts.map +1 -0
- package/functions/executions.d.ts +6 -0
- package/functions/executions.d.ts.map +1 -0
- package/functions/guards.d.ts +3 -0
- package/functions/guards.d.ts.map +1 -0
- package/functions/index.d.ts +11 -0
- package/functions/index.d.ts.map +1 -0
- package/functions/index.js +4 -0
- package/functions/index.js.map +9 -0
- package/functions/memoize.d.ts +15 -0
- package/functions/memoize.d.ts.map +1 -0
- package/functions/once.d.ts +6 -0
- package/functions/once.d.ts.map +1 -0
- package/functions/pipe.d.ts +24 -0
- package/functions/pipe.d.ts.map +1 -0
- package/functions/throttle.d.ts +4 -0
- package/functions/throttle.d.ts.map +1 -0
- package/functions/timer-state.d.ts +11 -0
- package/functions/timer-state.d.ts.map +1 -0
- package/functions/types.d.ts +7 -0
- package/functions/types.d.ts.map +1 -0
- package/index.d.ts +17 -0
- package/index.d.ts.map +1 -0
- package/index.js +4 -0
- package/index.js.map +9 -0
- package/json-rpc/constants.d.ts +9 -0
- package/json-rpc/constants.d.ts.map +1 -0
- package/json-rpc/factories.d.ts +7 -0
- package/json-rpc/factories.d.ts.map +1 -0
- package/json-rpc/guards.d.ts +13 -0
- package/json-rpc/guards.d.ts.map +1 -0
- package/json-rpc/index.d.ts +5 -0
- package/json-rpc/index.d.ts.map +1 -0
- package/json-rpc/index.js +4 -0
- package/json-rpc/index.js.map +9 -0
- package/json-rpc/types.d.ts +36 -0
- package/json-rpc/types.d.ts.map +1 -0
- package/meta.json +2944 -0
- package/meta.md +1782 -0
- package/numbers/bigint-math.d.ts +22 -0
- package/numbers/bigint-math.d.ts.map +1 -0
- package/numbers/constants.d.ts +3 -0
- package/numbers/constants.d.ts.map +1 -0
- package/numbers/conversions.d.ts +6 -0
- package/numbers/conversions.d.ts.map +1 -0
- package/numbers/factories.d.ts +2 -0
- package/numbers/factories.d.ts.map +1 -0
- package/numbers/formats.d.ts +9 -0
- package/numbers/formats.d.ts.map +1 -0
- package/numbers/guards.d.ts +6 -0
- package/numbers/guards.d.ts.map +1 -0
- package/numbers/index.d.ts +10 -0
- package/numbers/index.d.ts.map +1 -0
- package/numbers/index.js +4 -0
- package/numbers/index.js.map +9 -0
- package/numbers/maths.d.ts +7 -0
- package/numbers/maths.d.ts.map +1 -0
- package/numbers/ranges.d.ts +3 -0
- package/numbers/ranges.d.ts.map +1 -0
- package/numbers/types.d.ts +7 -0
- package/numbers/types.d.ts.map +1 -0
- package/objects/deep-merge.d.ts +7 -0
- package/objects/deep-merge.d.ts.map +1 -0
- package/objects/guards.d.ts +7 -0
- package/objects/guards.d.ts.map +1 -0
- package/objects/index.d.ts +5 -0
- package/objects/index.d.ts.map +1 -0
- package/objects/index.js +4 -0
- package/objects/index.js.map +9 -0
- package/objects/transformations.d.ts +10 -0
- package/objects/transformations.d.ts.map +1 -0
- package/objects/types.d.ts +28 -0
- package/objects/types.d.ts.map +1 -0
- package/package.json +129 -0
- package/promises/abortable.d.ts +3 -0
- package/promises/abortable.d.ts.map +1 -0
- package/promises/compositions.d.ts +7 -0
- package/promises/compositions.d.ts.map +1 -0
- package/promises/deferred.d.ts +26 -0
- package/promises/deferred.d.ts.map +1 -0
- package/promises/guards.d.ts +3 -0
- package/promises/guards.d.ts.map +1 -0
- package/promises/index.d.ts +10 -0
- package/promises/index.d.ts.map +1 -0
- package/promises/index.js +4 -0
- package/promises/index.js.map +9 -0
- package/promises/pipe.d.ts +24 -0
- package/promises/pipe.d.ts.map +1 -0
- package/promises/poll.d.ts +11 -0
- package/promises/poll.d.ts.map +1 -0
- package/promises/retry.d.ts +29 -0
- package/promises/retry.d.ts.map +1 -0
- package/promises/timers.d.ts +8 -0
- package/promises/timers.d.ts.map +1 -0
- package/promises/types.d.ts +2 -0
- package/promises/types.d.ts.map +1 -0
- package/serializer/constants.d.ts +4 -0
- package/serializer/constants.d.ts.map +1 -0
- package/serializer/context.d.ts +5 -0
- package/serializer/context.d.ts.map +1 -0
- package/serializer/index.d.ts +8 -0
- package/serializer/index.d.ts.map +1 -0
- package/serializer/index.js +4 -0
- package/serializer/index.js.map +9 -0
- package/serializer/serialize.d.ts +6 -0
- package/serializer/serialize.d.ts.map +1 -0
- package/serializer/serializers/array.d.ts +6 -0
- package/serializer/serializers/array.d.ts.map +1 -0
- package/serializer/serializers/binary.d.ts +4 -0
- package/serializer/serializers/binary.d.ts.map +1 -0
- package/serializer/serializers/blob.d.ts +4 -0
- package/serializer/serializers/blob.d.ts.map +1 -0
- package/serializer/serializers/collection.d.ts +4 -0
- package/serializer/serializers/collection.d.ts.map +1 -0
- package/serializer/serializers/compound.d.ts +5 -0
- package/serializer/serializers/compound.d.ts.map +1 -0
- package/serializer/serializers/error.d.ts +7 -0
- package/serializer/serializers/error.d.ts.map +1 -0
- package/serializer/serializers/function.d.ts +4 -0
- package/serializer/serializers/function.d.ts.map +1 -0
- package/serializer/serializers/index.d.ts +13 -0
- package/serializer/serializers/index.d.ts.map +1 -0
- package/serializer/serializers/leaf-object.d.ts +4 -0
- package/serializer/serializers/leaf-object.d.ts.map +1 -0
- package/serializer/serializers/number.d.ts +4 -0
- package/serializer/serializers/number.d.ts.map +1 -0
- package/serializer/serializers/object.d.ts +7 -0
- package/serializer/serializers/object.d.ts.map +1 -0
- package/serializer/serializers/opaque.d.ts +4 -0
- package/serializer/serializers/opaque.d.ts.map +1 -0
- package/serializer/serializers/primitive.d.ts +4 -0
- package/serializer/serializers/primitive.d.ts.map +1 -0
- package/serializer/symbol-registry.d.ts +2 -0
- package/serializer/symbol-registry.d.ts.map +1 -0
- package/serializer/types.d.ts +35 -0
- package/serializer/types.d.ts.map +1 -0
- package/serializer/utils.d.ts +5 -0
- package/serializer/utils.d.ts.map +1 -0
- package/strings/constants.d.ts +2 -0
- package/strings/constants.d.ts.map +1 -0
- package/strings/factories.d.ts +2 -0
- package/strings/factories.d.ts.map +1 -0
- package/strings/guards.d.ts +15 -0
- package/strings/guards.d.ts.map +1 -0
- package/strings/index.d.ts +6 -0
- package/strings/index.d.ts.map +1 -0
- package/strings/index.js +4 -0
- package/strings/index.js.map +9 -0
- package/strings/manipulations.d.ts +17 -0
- package/strings/manipulations.d.ts.map +1 -0
- package/strings/types.d.ts +3 -0
- package/strings/types.d.ts.map +1 -0
- package/system/env.d.ts +8 -0
- package/system/env.d.ts.map +1 -0
- package/system/fetch.d.ts +11 -0
- package/system/fetch.d.ts.map +1 -0
- package/system/graceful-exit.d.ts +5 -0
- package/system/graceful-exit.d.ts.map +1 -0
- package/system/index.d.ts +6 -0
- package/system/index.d.ts.map +1 -0
- package/system/index.js +4 -0
- package/system/index.js.map +9 -0
- package/system/path.d.ts +4 -0
- package/system/path.d.ts.map +1 -0
- package/system/types.d.ts +3 -0
- package/system/types.d.ts.map +1 -0
- package/times/constants.d.ts +7 -0
- package/times/constants.d.ts.map +1 -0
- package/times/conversions.d.ts +9 -0
- package/times/conversions.d.ts.map +1 -0
- package/times/factories.d.ts +2 -0
- package/times/factories.d.ts.map +1 -0
- package/times/guards.d.ts +2 -0
- package/times/guards.d.ts.map +1 -0
- package/times/index.d.ts +6 -0
- package/times/index.d.ts.map +1 -0
- package/times/index.js +4 -0
- package/times/index.js.map +9 -0
- package/times/operations.d.ts +3 -0
- package/times/operations.d.ts.map +1 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
## v0.0.3
|
|
5
|
+
|
|
6
|
+
[compare changes](https://github.com/kdtlabs/utils/compare/v0.0.2...v0.0.3)
|
|
7
|
+
|
|
8
|
+
## v0.0.2
|
|
9
|
+
|
|
10
|
+
[compare changes](https://github.com/kdtlabs/utils/compare/v0.0.1...v0.0.2)
|
|
11
|
+
|
|
12
|
+
### 🩹 Fixes
|
|
13
|
+
|
|
14
|
+
- **release:** Build after changelog gen to prevent package.json version error ([459f06c](https://github.com/kdtlabs/utils/commit/459f06c))
|
|
15
|
+
|
|
16
|
+
### ❤️ Contributors
|
|
17
|
+
|
|
18
|
+
- Diep Dang <kdt310722@gmail.com>
|
|
19
|
+
|
|
20
|
+
## v0.0.1
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
### 🚀 Enhancements
|
|
24
|
+
|
|
25
|
+
- Add SKILL.md for AI tool discovery of available utils ([e1dde1a](https://github.com/kdtlabs/utils/commit/e1dde1a))
|
|
26
|
+
|
|
27
|
+
### 🩹 Fixes
|
|
28
|
+
|
|
29
|
+
- **release:** Fix release script and add CHANGELOG.md to eslint ignore ([a72208c](https://github.com/kdtlabs/utils/commit/a72208c))
|
|
30
|
+
|
|
31
|
+
### 🏡 Chore
|
|
32
|
+
|
|
33
|
+
- Initial commit ([058e414](https://github.com/kdtlabs/utils/commit/058e414))
|
|
34
|
+
- Add gitnexus to ignore files ([88c2d38](https://github.com/kdtlabs/utils/commit/88c2d38))
|
|
35
|
+
|
|
36
|
+
### ❤️ Contributors
|
|
37
|
+
|
|
38
|
+
- Diep Dang <kdt310722@gmail.com>
|
|
39
|
+
|
package/SKILL.md
ADDED
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: kdtlabs-utils
|
|
3
|
+
description: >
|
|
4
|
+
Provides 150+ TypeScript utility functions across 15 modules (arrays, objects, strings, numbers, promises, errors, etc.).
|
|
5
|
+
MUST check this library before writing any utility function. Do NOT reimplement functions that already exist here.
|
|
6
|
+
Use when writing TypeScript code that involves common operations like array manipulation, object transformation,
|
|
7
|
+
string processing, async control flow, error handling, or type guards.
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# @kdtlabs/utils
|
|
11
|
+
|
|
12
|
+
A comprehensive TypeScript utility library. Before writing any utility function, check if it already exists here.
|
|
13
|
+
|
|
14
|
+
## Import
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
// Barrel import (all utils)
|
|
18
|
+
import { unique, debounce, deepMerge } from '@kdtlabs/utils'
|
|
19
|
+
|
|
20
|
+
// Per-module import (tree-shakeable)
|
|
21
|
+
import { unique } from '@kdtlabs/utils/arrays'
|
|
22
|
+
import { debounce } from '@kdtlabs/utils/functions'
|
|
23
|
+
import { deepMerge } from '@kdtlabs/utils/objects'
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## When you need function details
|
|
27
|
+
|
|
28
|
+
For full type signatures, overloads, and options interfaces, read the `.d.ts` files directly:
|
|
29
|
+
|
|
30
|
+
```text
|
|
31
|
+
node_modules/@kdtlabs/utils/<module>/index.d.ts
|
|
32
|
+
node_modules/@kdtlabs/utils/<module>/<file>.d.ts
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Arrays
|
|
36
|
+
|
|
37
|
+
- `first<T>(array: T[]): T | undefined` — Get first element
|
|
38
|
+
- `last<T>(array: T[]): T | undefined` — Get last element
|
|
39
|
+
- `nth<T>(array: T[], index: number): T | undefined` — Get element at index (supports negative)
|
|
40
|
+
- `unique<T>(array: T[]): T[]` — Remove duplicates via Set
|
|
41
|
+
- `uniqueBy<T>(array: T[], equalFn): T[]` — Remove duplicates via custom equality
|
|
42
|
+
- `groupBy<T, K>(array: T[], keyFn): Map<K, T[]>` — Group items by key
|
|
43
|
+
- `keyBy<T, K>(array: T[], keyFn): Map<K, T>` — Create map keyed by function result
|
|
44
|
+
- `chunk<T>(array: T[], size: number): T[][]` — Split into fixed-size chunks
|
|
45
|
+
- `sortBy<T>(array: T[], ...keys): T[]` — Sort by key(s) with direction
|
|
46
|
+
- `partition<T>(array: T[], predicate): [T[], T[]]` — Split into pass/fail arrays
|
|
47
|
+
- `compact<T>(array: T[]): NonNullable<T>[]` — Remove null/undefined values
|
|
48
|
+
- `wrap<T>(value: T | T[]): T[]` — Wrap non-array value into array
|
|
49
|
+
- `toArray<T>(value): T[]` — Convert iterable/value to array
|
|
50
|
+
- `range(from, to, step): number[]` — Create numeric range
|
|
51
|
+
- `createArray<T>(length, valueFn): T[]` — Create array with factory function
|
|
52
|
+
- `sample<T>(array: T[], quantity): T[]` — Random sampling
|
|
53
|
+
|
|
54
|
+
Also: merge, flatten, shuffle, intersection, diff, symmetricDiff
|
|
55
|
+
|
|
56
|
+
**Type guards:** isArray, isEmptyArray, isNonEmptyArray
|
|
57
|
+
|
|
58
|
+
**Types:** MaybeArray, EmptyArray, NonEmptyArray, ElementOf, Head, Tail, Last, Flatten, TupleToUnion, FixedLength
|
|
59
|
+
|
|
60
|
+
## Objects
|
|
61
|
+
|
|
62
|
+
- `deepMerge<T>(base: T, override: DeepPartial<T>, options?): T` — Recursive deep merge with array mode control
|
|
63
|
+
- `pick<T, K>(obj: T, ...keys: K[]): Pick<T, K>` — Pick keys to new object
|
|
64
|
+
- `omit<T, K>(obj: T, ...keys: K[]): Omit<T, K>` — Omit keys from object
|
|
65
|
+
- `filter(obj, predicate)` — Filter object entries
|
|
66
|
+
- `filterByValue(obj, predicate)` — Filter by value only
|
|
67
|
+
- `map(obj, fn)` — Map object entries
|
|
68
|
+
- `entries(obj)` — Typed Object.entries
|
|
69
|
+
- `resolveOptions(options, defaultValue)` — Merge options with defaults
|
|
70
|
+
|
|
71
|
+
**Type guards:** isObject, isPlainObject, isEmptyObject, isKeyOf, isKeysOf
|
|
72
|
+
|
|
73
|
+
**Types:** PartialBy, RequiredBy, Mutable, DeepPartial, DeepReadonly, KeysOfType, StringKeys, Dictionary, Constructor, AnyObject, UnknownObject
|
|
74
|
+
|
|
75
|
+
## Functions
|
|
76
|
+
|
|
77
|
+
- `debounce<T>(fn: T, wait: number): Debounced<T>` — Debounce with cancel/flush/pending
|
|
78
|
+
- `throttle<T>(fn: T, wait: number): Throttled<T>` — Throttle with cancel/flush/pending
|
|
79
|
+
- `memoize<T>(fn: T, options?): T` — Memoization with configurable cache
|
|
80
|
+
- `pipe(...fns)` — Sequential function composition (up to 20 overloads)
|
|
81
|
+
- `once<T>(fn: T): T & { reset(): void }` — Run once, with reset capability
|
|
82
|
+
- `tap<T>(value: T, callback: (v: T) => void): T` — Side-effect, return original value
|
|
83
|
+
- `transform<T, R>(value: T, callback: (v: T) => R): R` — Transform value
|
|
84
|
+
- `tryCatch<T, F>(fn: () => T, fallback: F): T | F` — Try/catch wrapper
|
|
85
|
+
|
|
86
|
+
Also: noop, invoke, invokes
|
|
87
|
+
|
|
88
|
+
**Type guard:** isFunction
|
|
89
|
+
|
|
90
|
+
**Types:** Fn, Args, TimingControlled
|
|
91
|
+
|
|
92
|
+
## Promises
|
|
93
|
+
|
|
94
|
+
- `withRetry<T>(fn, options?): Promise<T>` — Retry with exponential backoff, jitter, custom conditions
|
|
95
|
+
- `withTimeout<T>(promise, ms, options?): Promise<T>` — Timeout wrapper
|
|
96
|
+
- `poll<T>(fn, options): Promise<T>` — Repeated polling with interval and condition
|
|
97
|
+
- `sleep(ms, options?): Promise<void>` — Delay with abort support
|
|
98
|
+
- `abortable<T>(promise, signal, error?): Promise<T>` — Make promise abortable
|
|
99
|
+
- `createDeferred<T>(options?): DeferredPromise<T>` — Deferred promise factory with resolve/reject
|
|
100
|
+
- `createDeferredWithTimeout<T>(ms, options?): DeferredPromise<T>` — Deferred with auto-timeout
|
|
101
|
+
- `pPipe(...fns)` — Async pipe composition
|
|
102
|
+
- `pTap(callback)` — Async tap for promise chains
|
|
103
|
+
- `tryCatchAsync<T, F>(fn, fallback): Promise<T | F>` — Async try/catch wrapper
|
|
104
|
+
- `getRetryDelay(attempts, options)` — Calculate retry delay with backoff
|
|
105
|
+
|
|
106
|
+
**Type guards:** isPromiseLike, isPromise
|
|
107
|
+
|
|
108
|
+
**Types:** Awaitable
|
|
109
|
+
|
|
110
|
+
## Errors
|
|
111
|
+
|
|
112
|
+
- `BaseError` — Extended Error class with code, timestamp, retryable, cause chain
|
|
113
|
+
- `normalizeError(error, options?)` — Normalize unknown value to Error instance
|
|
114
|
+
- `ensureError(input, ctor?)` — Ensure value is Error, wrap if not
|
|
115
|
+
- `stringifyError(error, options?)` — Human-readable error string with cause chain
|
|
116
|
+
- `createAbortError(message?, name?)` — Create DOMException abort error
|
|
117
|
+
- `createTimeoutError(message?, name?)` — Create timeout error
|
|
118
|
+
- `createAbortController(timeout?, timeoutError?)` — AbortController with auto-timeout
|
|
119
|
+
- `fromErrorLike(errorLike, ctor?)` — Create Error from error-like object
|
|
120
|
+
- `combineSignals(...signals)` — Combine multiple AbortSignals into one
|
|
121
|
+
|
|
122
|
+
**Type guards:** isError, isBaseError, isAbortError, isErrorLike
|
|
123
|
+
|
|
124
|
+
**Types:** BaseErrorOptions, BaseErrorCode, Errorable, ErrorCtor, ErrorLike
|
|
125
|
+
|
|
126
|
+
## Strings
|
|
127
|
+
|
|
128
|
+
- `truncate(str, maxLength, omission?)` — Truncate with suffix (default "...")
|
|
129
|
+
- `truncateMiddle(str, maxLength, omission?)` — Truncate from middle
|
|
130
|
+
- `capitalize(str)` — Capitalize first character
|
|
131
|
+
- `randomStr(length, characters?)` — Random string generator
|
|
132
|
+
- `escapeRegExp(input)` — Escape regex special characters
|
|
133
|
+
- `ensurePrefix(str, prefix)` — Add prefix if missing
|
|
134
|
+
- `ensureSuffix(str, suffix)` — Add suffix if missing
|
|
135
|
+
- `stripPrefix(str, prefix)` — Remove prefix
|
|
136
|
+
- `stripSuffix(str, suffix)` — Remove suffix
|
|
137
|
+
- `padZeroStart(num, targetLength)` — Zero-pad number
|
|
138
|
+
|
|
139
|
+
Also: padStart, chunkStr, ltrim, rtrim, trim, trimRepeated
|
|
140
|
+
|
|
141
|
+
**Type guards:** isEmptyString, isValidUrl, isHttpUrl, isWebSocketUrl, isValidProtocol, isStringEquals, isStringEqualsIgnoreCase, isIncludesAll, isIncludesAny, isIncludes, isHexString, isStrictHexString
|
|
142
|
+
|
|
143
|
+
**Types:** UrlLike, HexString
|
|
144
|
+
|
|
145
|
+
## Numbers
|
|
146
|
+
|
|
147
|
+
- `clamp(value, min, max)` — Clamp value to range
|
|
148
|
+
- `roundTo(value, decimals)` — Round to N decimal places
|
|
149
|
+
- `lerp(start, end, t)` — Linear interpolation
|
|
150
|
+
- `random(min, max)` — Random integer in range
|
|
151
|
+
- `formatNumber(input, options?)` — Locale-aware number formatting
|
|
152
|
+
- `toOrdinal(n)` — Convert to ordinal string (1st, 2nd, 3rd...)
|
|
153
|
+
- `toPercent(value, total, decimals?)` — Calculate percentage
|
|
154
|
+
|
|
155
|
+
Also: sum, avg, median, countLeadingZeros, toSubscriptDigits, parseExponential, BigIntMath
|
|
156
|
+
|
|
157
|
+
**Type guards:** isNumberString, isNumberish, isPercentage, isValidRange, isInRange
|
|
158
|
+
|
|
159
|
+
**Types:** NumberString, Numberish, Percentage
|
|
160
|
+
|
|
161
|
+
## Core
|
|
162
|
+
|
|
163
|
+
- `isNull(value)` / `isUndefined(value)` / `isNullish(value)` — Nullish checks
|
|
164
|
+
- `notNull(value)` / `notUndefined(value)` / `notNullish(value)` — Non-null type guards
|
|
165
|
+
- `isTrueLike(value, options?)` — Check truthy-like values (configurable true strings)
|
|
166
|
+
|
|
167
|
+
Also: isBoolean, isSymbol, isBigInt, isNumber, isString, isDate, isPrimitive, isJsonablePrimitive, isGenerator, toString, typeOf
|
|
168
|
+
|
|
169
|
+
**Types:** Primitive, Optional, Nullable, Nullish, Jsonable, JsonablePrimitive
|
|
170
|
+
|
|
171
|
+
## Common
|
|
172
|
+
|
|
173
|
+
- `isEmpty(value)` — Universal empty check (arrays, objects, collections, strings, maps, sets)
|
|
174
|
+
- `assert(condition, message?, ctor?)` — Assert condition or throw (default Error)
|
|
175
|
+
- `assertParam(condition, message?, ctor?)` — Assert parameter (default TypeError)
|
|
176
|
+
|
|
177
|
+
## Collections
|
|
178
|
+
|
|
179
|
+
- `LruMap<K, V>` — LRU eviction map with max size
|
|
180
|
+
- `LruSet<T>` — LRU eviction set with max size
|
|
181
|
+
- `FifoMap<K, V>` — FIFO eviction map with max size
|
|
182
|
+
- `FifoSet<T>` — FIFO eviction set with max size
|
|
183
|
+
|
|
184
|
+
**Type guards:** isIterable, isCollectionLike, isEmptyCollection, isSetLike, isMapLike
|
|
185
|
+
|
|
186
|
+
**Types:** CollectionLike, SetLike, MapLike
|
|
187
|
+
|
|
188
|
+
## Events
|
|
189
|
+
|
|
190
|
+
- `Emitter<TEventMap>` — Typed event emitter with on, once, off, emit, removeAllListeners, listeners, listenersCount, eventNames
|
|
191
|
+
|
|
192
|
+
**Types:** EventMap, EventNames, EventArgs, EventListener
|
|
193
|
+
|
|
194
|
+
## Buffers
|
|
195
|
+
|
|
196
|
+
- `bufferToString(buffer, encoding?)` — Convert buffer to string
|
|
197
|
+
- `toUint8Array(buffer)` — Normalize any buffer to Uint8Array
|
|
198
|
+
- `concatBuffers(buffers)` — Concatenate multiple buffers
|
|
199
|
+
- `bufferEquals(a, b)` — Deep buffer comparison
|
|
200
|
+
|
|
201
|
+
**Type guards:** isBuffer, isArrayBuffer, isSharedArrayBuffer, isArrayBufferView, isBufferLike
|
|
202
|
+
|
|
203
|
+
**Types:** BufferLike
|
|
204
|
+
|
|
205
|
+
## Times
|
|
206
|
+
|
|
207
|
+
- `formatDate(date, format)` — Format date with token patterns
|
|
208
|
+
- `humanizeMilliseconds(ms)` — Human-readable duration from ms
|
|
209
|
+
- `humanizeSeconds(s)` — Human-readable duration from seconds
|
|
210
|
+
- `humanizeNanoseconds(ns)` — Human-readable duration from ns
|
|
211
|
+
- `timestamp()` — Current Unix timestamp (seconds)
|
|
212
|
+
- `toUnixTimestamp(date)` — Date to Unix timestamp
|
|
213
|
+
- `fromUnixTimestamp(timestamp)` — Unix timestamp to Date
|
|
214
|
+
|
|
215
|
+
Also: isValidDate, startOfDay, endOfDay
|
|
216
|
+
|
|
217
|
+
**Constants:** MS_PER_SECOND, MS_PER_MINUTE, MS_PER_HOUR, MS_PER_DAY, MS_PER_MONTH, MS_PER_YEAR
|
|
218
|
+
|
|
219
|
+
## System
|
|
220
|
+
|
|
221
|
+
- `fetch(request, options?)` — Fetch with built-in retry support
|
|
222
|
+
- `pwd(importMeta, ...path)` — Resolve path relative to current module
|
|
223
|
+
- `pathToString(path)` — Convert PathLike to string
|
|
224
|
+
- `gracefulExit(exitCode?, maxWaitTime?)` — Graceful shutdown with exit handlers
|
|
225
|
+
- `addExitHandler(handler, maxWaitTime?)` — Register exit handler
|
|
226
|
+
|
|
227
|
+
Also: isInDevelopment, isInProduction, isInStaging, isInMode, isInDev, isInProd, isInStage
|
|
228
|
+
|
|
229
|
+
**Types:** PathLike, FetchOptions
|
|
230
|
+
|
|
231
|
+
## Serializer
|
|
232
|
+
|
|
233
|
+
- `serialize(value, options?)` — Deep serialization of any value to JSON-safe format
|
|
234
|
+
- `createContext(options?)` — Create serialization context for custom serialization
|
|
235
|
+
- `createSymbolKeySerializer()` — Serialize Symbol keys to strings
|
|
236
|
+
|
|
237
|
+
Handles: primitives, arrays, objects, errors, functions, binary data, blobs, collections, dates, regexps, URLs, circular references.
|
|
238
|
+
|
|
239
|
+
## JSON-RPC
|
|
240
|
+
|
|
241
|
+
- `createJsonRpcRequestMessage(id, method, params?)` — Create JSON-RPC 2.0 request
|
|
242
|
+
- `createJsonRpcNotifyMessage(method, params?)` — Create notification (no id)
|
|
243
|
+
- `createJsonRpcSuccessResponseMessage(id, result)` — Create success response
|
|
244
|
+
- `createJsonRpcErrorResponseMessage(id, error)` — Create error response
|
|
245
|
+
- `createJsonRpcErrorObject(code, message, data?)` — Create error object
|
|
246
|
+
|
|
247
|
+
**Type guards:** isJsonRpcMessage, isJsonRpcRequestMessage, isJsonRpcNotifyMessage, isJsonRpcResponseMessage, isJsonRpcSuccessResponseMessage, isJsonRpcErrorResponseMessage, isJsonRpcError, isJsonRpcBatchRequest, isJsonRpcBatchResponse, isValidJsonRpcId
|
|
248
|
+
|
|
249
|
+
**Constants:** JsonRpcErrorCode enum
|
|
250
|
+
|
|
251
|
+
**Types:** JsonRpcRequestMessage, JsonRpcNotifyMessage, JsonRpcResponseMessage, JsonRpcSuccessResponseMessage, JsonRpcErrorResponseMessage, JsonRpcMessage, JsonRpcBatchRequest, JsonRpcBatchResponse
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { EmptyArray, NonEmptyArray } from './types';
|
|
2
|
+
export declare function nth(array: EmptyArray, index: number): undefined;
|
|
3
|
+
export declare function nth<T>(array: NonEmptyArray<T>, index: number): T;
|
|
4
|
+
export declare function nth<T>(array: T[], index: number): T | undefined;
|
|
5
|
+
export declare function first(array: EmptyArray): undefined;
|
|
6
|
+
export declare function first<T>(array: NonEmptyArray<T>): T;
|
|
7
|
+
export declare function first<T>(array: T[]): T | undefined;
|
|
8
|
+
export declare function last(array: EmptyArray): undefined;
|
|
9
|
+
export declare function last<T>(array: NonEmptyArray<T>): T;
|
|
10
|
+
export declare function last<T>(array: T[]): T | undefined;
|
|
11
|
+
//# sourceMappingURL=accessors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accessors.d.ts","sourceRoot":"","sources":["../../src/arrays/accessors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAExD,wBAAgB,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;AAChE,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,CAAA;AACjE,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAA;AAMhE,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CAAA;AACnD,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AACpD,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,CAAA;AAMnD,wBAAgB,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CAAA;AAClD,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AACnD,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { MaybeArray } from './types';
|
|
2
|
+
import { type Nullable } from '../core';
|
|
3
|
+
export declare const wrap: <T>(array: T | T[]) => T[];
|
|
4
|
+
export declare function toArray<T>(value?: Nullable<MaybeArray<T>>): T[];
|
|
5
|
+
export declare const compact: <T>(array: Array<Nullable<T>>) => T[];
|
|
6
|
+
//# sourceMappingURL=conversions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversions.d.ts","sourceRoot":"","sources":["../../src/arrays/conversions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;AAGnD,eAAO,MAAM,IAAI,GAAI,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,QAAuC,CAAA;AAE7E,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAMzD;AAED,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAG,CAAC,EAA8B,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { EmptyArray, NonEmptyArray } from './types';
|
|
2
|
+
export declare const createArray: <T, TStrict extends boolean = true, TLength extends number = number>(length: TLength, value: (index: number) => T) => TStrict extends false ? T[] : (TLength extends 0 ? EmptyArray : NonEmptyArray<T>);
|
|
3
|
+
export declare const range: (from: number, to: number, step?: number) => number[];
|
|
4
|
+
export declare const sample: <T>(array: T[], quantity?: number) => (T | undefined)[];
|
|
5
|
+
//# sourceMappingURL=factories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../src/arrays/factories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAExD,eAAO,MAAM,WAAW,GAAI,CAAC,EAAE,OAAO,SAAS,OAAO,GAAG,IAAI,EAAE,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,QAAQ,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,KAC1F,OAAO,SAAS,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,OAAO,SAAS,CAAC,GAAG,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CACjI,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,MAAM,MAAM,EAAE,IAAI,MAAM,EAAE,aAAQ,aAEvD,CAAA;AAED,eAAO,MAAM,MAAM,GAAI,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,iBAAY,sBAEjD,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { EmptyArray, NonEmptyArray } from './types';
|
|
2
|
+
export declare const isArray: <T = any>(value: unknown) => value is T[];
|
|
3
|
+
export declare const isEmptyArray: <T = any, TStrict extends boolean = true>(value: T[]) => value is (TStrict extends true ? EmptyArray : T[]);
|
|
4
|
+
export declare const isNonEmptyArray: <T = any, TStrict extends boolean = true>(value: T[]) => value is (TStrict extends true ? NonEmptyArray<T> : T[]);
|
|
5
|
+
//# sourceMappingURL=guards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/arrays/guards.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAExD,eAAO,MAAM,OAAO,GAAI,CAAC,GAAG,GAAG,EAAE,OAAO,OAAO,KAAG,KAAK,IAAI,CAAC,EAA0B,CAAA;AAEtF,eAAO,MAAM,YAAY,GAAI,CAAC,GAAG,GAAG,EAAE,OAAO,SAAS,OAAO,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,KAAG,KAAK,IAAI,CAAC,OAAO,SAAS,IAAI,GAAG,UAAU,GAAG,CAAC,EAAE,CAAuB,CAAA;AAE3J,eAAO,MAAM,eAAe,GAAI,CAAC,GAAG,GAAG,EAAE,OAAO,SAAS,OAAO,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,KAAG,KAAK,IAAI,CAAC,OAAO,SAAS,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAyB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/arrays/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAEhC,mBAAmB,SAAS,CAAA"}
|
package/arrays/index.js
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{$b as w,Fb as a,Gb as b,Hb as c,Ib as d,Jb as e,Kb as f,Lb as g,Mb as h,Nb as i,Ob as j,Pb as k,Qb as l,Rb as m,Sb as n,Tb as o,Ub as p,Vb as q,Wb as r,Xb as s,Yb as t,Zb as u,_b as v,ac as x,bc as y}from"../chunk-c0p3wm8m.js";import"../chunk-qn6n0ff5.js";import"../chunk-c9mm50vv.js";export{g as wrap,v as uniqueBy,u as unique,h as toArray,y as symmetricDiff,s as sortBy,o as shuffle,l as sample,k as range,t as partition,a as nth,m as merge,c as last,q as keyBy,f as isNonEmptyArray,e as isEmptyArray,d as isArray,w as intersection,p as groupBy,n as flatten,b as first,x as diff,j as createArray,i as compact,r as chunk};
|
|
2
|
+
|
|
3
|
+
//# debugId=7FF7885B231E2BF464756E2164756E21
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Nullable } from '../core';
|
|
2
|
+
import type { MaybeArray } from './types';
|
|
3
|
+
export declare const merge: <T>(...arrays: Array<Nullable<MaybeArray<T>>>) => T[];
|
|
4
|
+
export declare const flatten: <T>(array?: Nullable<MaybeArray<T | T[]>>) => T[];
|
|
5
|
+
export declare function shuffle<T>(array: T[]): T[];
|
|
6
|
+
export declare function groupBy<T, K extends PropertyKey>(array: T[], keyFn: (item: T) => K): Record<K, T[]>;
|
|
7
|
+
export declare function keyBy<T, K extends PropertyKey>(array: T[], keyFn: (item: T) => K): Record<K, T>;
|
|
8
|
+
export declare function chunk<T>(array: T[], size: number): T[][];
|
|
9
|
+
export type SortDirection = 'asc' | 'desc';
|
|
10
|
+
export type SortKey<T> = ((item: T) => number | string) | {
|
|
11
|
+
fn: (item: T) => number | string;
|
|
12
|
+
order: SortDirection;
|
|
13
|
+
};
|
|
14
|
+
export declare function sortBy<T>(array: T[], ...keys: Array<SortKey<T>>): T[];
|
|
15
|
+
export declare function partition<T>(array: T[], predicate: (item: T) => boolean): [T[], T[]];
|
|
16
|
+
//# sourceMappingURL=operations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../src/arrays/operations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAGzC,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,GAAG,QAAQ,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAA8C,CAAA;AAEhH,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,QAAQ,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAA8B,CAAC,EAAE,CAAA;AAEjG,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAY1C;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAenG;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAQ/F;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,CAaxD;AAED,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,CAAA;AAE1C,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,MAAM,CAAC,GAAG;IAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,MAAM,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,CAAA;AAEpH,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAmBrE;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAapF"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const unique: <T>(array: T[]) => T[];
|
|
2
|
+
export declare const uniqueBy: <T>(array: T[], equalFn: (a: T, b: T) => boolean) => T[];
|
|
3
|
+
export declare const intersection: <T>(a: T[], b: T[]) => T[];
|
|
4
|
+
export declare const diff: <T>(a: T[], b: T[]) => T[];
|
|
5
|
+
export declare const symmetricDiff: <T>(a: T[], b: T[]) => T[];
|
|
6
|
+
//# sourceMappingURL=set-operations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-operations.d.ts","sourceRoot":"","sources":["../../src/arrays/set-operations.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,GAAI,CAAC,EAAE,OAAO,CAAC,EAAE,QAAwB,CAAA;AAE5D,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,QAEvE,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,QAAmC,CAAA;AAEjF,eAAO,MAAM,IAAI,GAAI,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,QAAoC,CAAA;AAE1E,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,QAAmC,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type MaybeArray<T> = Iterable<T> | T | T[];
|
|
2
|
+
export type EmptyArray = [];
|
|
3
|
+
export type NonEmptyArray<T> = [T, ...T[]];
|
|
4
|
+
export type ElementOf<T> = T extends Array<infer E> ? E : never;
|
|
5
|
+
export type Head<T extends readonly unknown[]> = T extends readonly [infer H, ...unknown[]] ? H : never;
|
|
6
|
+
export type Tail<T extends readonly unknown[]> = T extends readonly [unknown, ...infer R] ? R : [];
|
|
7
|
+
export type Last<T extends readonly unknown[]> = T extends readonly [...unknown[], infer L] ? L : never;
|
|
8
|
+
export type Flatten<T extends readonly unknown[]> = T extends ReadonlyArray<infer U> ? U extends ReadonlyArray<infer V> ? V[] : U[] : never;
|
|
9
|
+
export type TupleToUnion<T extends readonly unknown[]> = T[number];
|
|
10
|
+
export type FixedLength<T, N extends number, R extends T[] = []> = R['length'] extends N ? R : FixedLength<T, N, [...R, T]>;
|
|
11
|
+
export type ReadonlyNonEmptyArray<T> = readonly [T, ...T[]];
|
|
12
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/arrays/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAA;AAEjD,MAAM,MAAM,UAAU,GAAG,EAAE,CAAA;AAE3B,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;AAE1C,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAE/D,MAAM,MAAM,IAAI,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,IAAI,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAEvG,MAAM,MAAM,IAAI,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,IAAI,CAAC,SAAS,SAAS,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;AAElG,MAAM,MAAM,IAAI,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,IAAI,CAAC,SAAS,SAAS,CAAC,GAAG,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAEvG,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,IAAI,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,CAAA;AAE3I,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAA;AAElE,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAE3H,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { BufferLike } from './types';
|
|
2
|
+
export declare function bufferToString(buffer: BufferLike, encoding?: BufferEncoding): string;
|
|
3
|
+
export declare function toUint8Array(input: BufferLike): Buffer<ArrayBufferLike> | Uint8Array<ArrayBufferLike>;
|
|
4
|
+
//# sourceMappingURL=conversions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversions.d.ts","sourceRoot":"","sources":["../../src/buffers/conversions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAGzC,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,GAAE,cAAuB,UAUnF;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,yDAU7C"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { BufferLike } from './types';
|
|
2
|
+
export declare const isBuffer: (value: unknown) => value is Buffer;
|
|
3
|
+
export declare const isArrayBuffer: (value: unknown) => value is ArrayBuffer;
|
|
4
|
+
export declare const isSharedArrayBuffer: (value: unknown) => value is SharedArrayBuffer;
|
|
5
|
+
export declare const isArrayBufferView: (value: unknown) => value is ArrayBufferView;
|
|
6
|
+
export declare const isBufferLike: (value: unknown) => value is BufferLike;
|
|
7
|
+
//# sourceMappingURL=guards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/buffers/guards.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MAAgC,CAAA;AAEnF,eAAO,MAAM,aAAa,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,WAA2C,CAAA;AAEnG,eAAO,MAAM,mBAAmB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,iBAAuD,CAAA;AAErH,eAAO,MAAM,iBAAiB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,eAA4C,CAAA;AAExG,eAAO,MAAM,YAAY,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,UAEtD,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/buffers/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAE5B,mBAAmB,SAAS,CAAA"}
|
package/buffers/index.js
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{gb as a,hb as b,ib as c,jb as d,kb as e,lb as f,mb as g,nb as h,ob as i}from"../chunk-xp18wdk6.js";export{g as toUint8Array,c as isSharedArrayBuffer,e as isBufferLike,a as isBuffer,d as isArrayBufferView,b as isArrayBuffer,h as concatBuffers,f as bufferToString,i as bufferEquals};
|
|
2
|
+
|
|
3
|
+
//# debugId=58E6E050C983599364756E2164756E21
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../src/buffers/operations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAGzC,wBAAgB,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,2BAsBlD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,WAgBxD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/buffers/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,eAAe,GAAG,MAAM,GAAG,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import{pd as f,td as b}from"./chunk-m4svr349.js";import{Kd as c,Pd as u}from"./chunk-c9mm50vv.js";class p extends Error{constructor(r,{code:e,details:t,exitCode:n,name:o,retryable:i,timestamp:s,...a}={}){super(r,a);Object.setPrototypeOf(this,new.target.prototype),this.defineValue("name",o??this.constructor.name),this.defineValue("timestamp",s??new Date),this.defineValue("cause",a.cause),this.defineValue("code",e),this.defineValue("details",t),this.defineValue("exitCode",n),this.defineValue("retryable",i)}withValue(r,e){if(Object.hasOwn(this,r))throw TypeError(`Cannot redefine property '${r}' on ${this.name}`);return this.defineValue(r,e)}defineValue(r,e){return Object.defineProperty(this,r,{configurable:!1,enumerable:!0,value:e,writable:!1}),this}}var v=(r)=>r instanceof Error,P=(r)=>r instanceof p,R=(r)=>r instanceof DOMException&&r.name==="AbortError",x=(r)=>f(r)&&b(r,"name")&&u(r.name);var O=(r="This operation was aborted",e="AbortError")=>new DOMException(r,e),C=(r="The operation was aborted due to a timeout",e="TimeoutError")=>O(r,e);function B(r,e){let t=new AbortController;if(c(r)&&r>0&&r<=Number.MAX_SAFE_INTEGER){let n,o=()=>{clearTimeout(n),t.signal.removeEventListener("abort",o)};t.signal.addEventListener("abort",o),n=setTimeout(()=>t.abort(d(e??C())),r)}return t}function d(r,e){if(typeof r==="string")return e?new e(r):Error(r);if(typeof r==="function")return d(r(),e);return r}function k({cause:r,message:e,name:t,stack:n,...o},i){let a=new(i??Error)(e,{cause:r});Object.defineProperty(a,"name",{configurable:!0,enumerable:!1,value:t,writable:!0}),Object.defineProperty(a,"stack",{configurable:!0,enumerable:!1,value:n,writable:!0});for(let[l,m]of Object.entries(o))Object.defineProperty(a,l,Object.getOwnPropertyDescriptor(o,l)??{configurable:!0,enumerable:!0,value:m,writable:!0});return a}function y(r,{defaultMessage:e="Unknown error",errorConstructor:t}={}){let n=t??Error;if(r instanceof n)return r;if(u(r))return d(r,t);if(x(r))return k(r,t);return new n(e,{cause:r})}function K(...r){let e=r.filter(c);if(e.length===0)return new AbortController().signal;if(e.length===1)return e[0];return AbortSignal.any(e)}var N={code:(r)=>`[${r}]`,message:(r)=>r,name:(r)=>`${r}:`};function A(r,e,t,n){let o=t+" ".repeat(n.causeIndent),i=[];if(r instanceof AggregateError&&r.errors.length>0)for(let s of r.errors)i.push(g(s,e-1,o,n.causePrefix,n));if(f(r.cause)||u(r.cause))i.push(g(r.cause,e-1,o,n.causePrefix,n));return i}function h(r,e,t,n,o,i){if(!i.includeCause||n<=0||e!==t&&e.cause===t)return;let s=A(e,n,o,i);if(s.length>0)r.push(`
|
|
2
|
+
${s.join(`
|
|
3
|
+
`)}`)}function M(r,e){let t=[];if(e.includeCode&&"code"in r&&c(r.code))t.push(e.formatters.code(String(r.code)));if(e.includeName)t.push(e.formatters.name(r.name));return t.push(e.formatters.message(r.message||e.defaultMessage)),t}function g(r,e,t,n,o){if(o.visited.has(r))return`${t}${n}${o.circularReferenceMessage}`;if(r instanceof Error)o.visited.add(r);if(r instanceof Error&&r.toString!==Error.prototype.toString){let a=[r.toString()];return h(a,r,r,e,t,o),t+n+a.join(" ")}let i=y(r,{...o.normalizeOptions,defaultMessage:o.defaultMessage});o.visited.add(i);let s=M(i,o);return h(s,i,r,e,t,o),t+n+s.join(" ")}function J(r,e={}){let{causeIndent:t=2,causePrefix:n="-> ",circularReferenceMessage:o="[Circular Reference]",defaultMessage:i="Unknown error",formatters:s={},includeCause:a=!0,includeCode:l=!0,includeName:m=!0,maxCauseDepth:E=Number.POSITIVE_INFINITY,...w}=e,S={causeIndent:t,causePrefix:n,circularReferenceMessage:o,defaultMessage:i,formatters:{...N,...s},includeCause:a,includeCode:l,includeName:m,maxCauseDepth:E,normalizeOptions:w,visited:new Set};return g(r,E,"","",S)}export{p as Zc,v as _c,P as $c,R as ad,x as bd,O as cd,C as dd,B as ed,d as fd,k as gd,y as hd,K as id,N as jd,A as kd,h as ld,M as md,g as nd,J as od};
|
|
4
|
+
|
|
5
|
+
//# debugId=89966F1E1B5C279064756E2164756E21
|
|
6
|
+
//# sourceMappingURL=chunk-4w1emwv7.js.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/errors/base-error.ts", "../src/errors/guards.ts", "../src/errors/factories.ts", "../src/errors/operations.ts", "../src/errors/stringify.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"export type BaseErrorCode = number | string\n\nexport interface BaseErrorOptions extends ErrorOptions {\n cause?: unknown\n code?: BaseErrorCode\n details?: string\n exitCode?: number\n name?: string\n retryable?: boolean\n timestamp?: Date\n}\n\nexport class BaseError extends Error {\n public declare readonly timestamp: Date\n public declare readonly code?: BaseErrorCode\n public declare readonly cause?: unknown\n public declare readonly details?: string\n public declare readonly exitCode?: number\n public declare readonly retryable?: boolean\n\n public constructor(message: string, { code, details, exitCode, name, retryable, timestamp, ...options }: BaseErrorOptions = {}) {\n super(message, options)\n\n Object.setPrototypeOf(this, new.target.prototype)\n\n this.defineValue('name', name ?? this.constructor.name)\n this.defineValue('timestamp', timestamp ?? new Date())\n this.defineValue('cause', options.cause)\n this.defineValue('code', code)\n this.defineValue('details', details)\n this.defineValue('exitCode', exitCode)\n this.defineValue('retryable', retryable)\n }\n\n public withValue<K extends string, V>(key: K, value: V): Record<K, V> & this {\n if (Object.hasOwn(this, key)) {\n throw new TypeError(`Cannot redefine property '${key}' on ${this.name}`)\n }\n\n return this.defineValue(key, value) as Record<K, V> & this\n }\n\n protected defineValue(key: string, value: unknown) {\n Object.defineProperty(this, key, { configurable: false, enumerable: true, value, writable: false })\n\n return this\n }\n}\n",
|
|
6
|
+
"import type { ErrorLike } from './types'\nimport { isString } from '../core'\nimport { isKeysOf, isObject } from '../objects'\nimport { BaseError } from './base-error'\n\nexport const isError = (value: unknown): value is Error => value instanceof Error\n\nexport const isBaseError = (value: unknown): value is BaseError => value instanceof BaseError\n\nexport const isAbortError = (error: unknown): error is DOMException => error instanceof DOMException && error.name === 'AbortError'\n\nexport const isErrorLike = (value: unknown): value is ErrorLike => isObject(value) && isKeysOf(value, 'name') && isString(value.name)\n",
|
|
7
|
+
"import type { Errorable, ErrorCtor, ErrorLike } from './types'\nimport { isString, notNullish } from '../core'\nimport { isErrorLike } from './guards'\n\nexport const createAbortError = (message = 'This operation was aborted', name = 'AbortError') => new DOMException(message, name)\n\nexport const createTimeoutError = (message = 'The operation was aborted due to a timeout', name = 'TimeoutError') => createAbortError(message, name)\n\nexport function createAbortController(timeout?: number, timeoutError?: Errorable) {\n const controller = new AbortController()\n\n if (notNullish(timeout) && timeout > 0 && timeout <= Number.MAX_SAFE_INTEGER) {\n let timeoutId: NodeJS.Timeout\n\n const cleanup = () => {\n clearTimeout(timeoutId)\n controller.signal.removeEventListener('abort', cleanup)\n }\n\n controller.signal.addEventListener('abort', cleanup)\n timeoutId = setTimeout(() => controller.abort(ensureError(timeoutError ?? createTimeoutError())), timeout)\n }\n\n return controller\n}\n\nexport function ensureError(input: Errorable, ctor?: ErrorCtor) {\n if (typeof input === 'string') {\n return ctor ? new ctor(input) : new Error(input)\n }\n\n if (typeof input === 'function') {\n return ensureError(input(), ctor)\n }\n\n return input\n}\n\nexport function fromErrorLike({ cause, message, name, stack, ...properties }: ErrorLike, ctor?: ErrorCtor) {\n const errorClass = ctor ?? Error\n const error = new errorClass(message, { cause })\n\n Object.defineProperty(error, 'name', { configurable: true, enumerable: false, value: name, writable: true })\n Object.defineProperty(error, 'stack', { configurable: true, enumerable: false, value: stack, writable: true })\n\n for (const [key, value] of Object.entries(properties)) {\n Object.defineProperty(error, key, Object.getOwnPropertyDescriptor(properties, key) ?? { configurable: true, enumerable: true, value, writable: true })\n }\n\n return error\n}\n\nexport interface NormalizeErrorOptions {\n defaultMessage?: string\n errorConstructor?: ErrorCtor\n}\n\nexport function normalizeError(error: unknown, { defaultMessage = 'Unknown error', errorConstructor }: NormalizeErrorOptions = {}) {\n const errorClass = errorConstructor ?? Error\n\n if (error instanceof errorClass) {\n return error\n }\n\n if (isString(error)) {\n return ensureError(error, errorConstructor)\n }\n\n if (isErrorLike(error)) {\n return fromErrorLike(error, errorConstructor)\n }\n\n return new errorClass(defaultMessage, { cause: error })\n}\n",
|
|
8
|
+
"import { notNullish, type Nullish } from '../core'\n\nexport function combineSignals(...signals: Array<Nullish<AbortSignal>>) {\n const validSignals = signals.filter(notNullish)\n\n if (validSignals.length === 0) {\n return new AbortController().signal\n }\n\n if (validSignals.length === 1) {\n return validSignals[0]!\n }\n\n return AbortSignal.any(validSignals)\n}\n",
|
|
9
|
+
"import { isString, notNullish } from '../core'\nimport { isObject } from '../objects'\nimport { normalizeError, type NormalizeErrorOptions } from './factories'\n\nexport interface StringifyErrorFormatters {\n code?: (code: string) => string\n message?: (message: string) => string\n name?: (name: string) => string\n}\n\nexport interface StringifyErrorOptions extends NormalizeErrorOptions {\n causeIndent?: number\n causePrefix?: string\n circularReferenceMessage?: string\n formatters?: StringifyErrorFormatters\n includeCause?: boolean\n includeCode?: boolean\n includeName?: boolean\n maxCauseDepth?: number\n}\n\nexport const DEFAULT_STRINGIFY_FORMATTERS: Required<StringifyErrorFormatters> = {\n code: (value) => `[${value}]`,\n message: (value) => value,\n name: (value) => `${value}:`,\n}\n\nexport interface StringifyErrorState {\n causeIndent: number\n causePrefix: string\n circularReferenceMessage: string\n defaultMessage: string\n formatters: Required<StringifyErrorFormatters>\n includeCause: boolean\n includeCode: boolean\n includeName: boolean\n maxCauseDepth: number\n normalizeOptions: NormalizeErrorOptions\n visited: Set<unknown>\n}\n\nexport function collectCauses(error: Error, depth: number, indent: string, state: StringifyErrorState) {\n const childIndent = indent + ' '.repeat(state.causeIndent)\n const pointers: string[] = []\n\n if (error instanceof AggregateError && error.errors.length > 0) {\n for (const subError of error.errors) {\n pointers.push(stringifyErrorNode(subError, depth - 1, childIndent, state.causePrefix, state))\n }\n }\n\n if (isObject(error.cause) || isString(error.cause)) {\n pointers.push(stringifyErrorNode(error.cause, depth - 1, childIndent, state.causePrefix, state))\n }\n\n return pointers\n}\n\nexport function appendCauses(parts: string[], error: Error, error_: unknown, depth: number, indent: string, state: StringifyErrorState) {\n if (!state.includeCause || depth <= 0 || (error !== error_ && error.cause === error_)) {\n return\n }\n\n const pointers = collectCauses(error, depth, indent, state)\n\n if (pointers.length > 0) {\n parts.push(`\\n${pointers.join('\\n')}`)\n }\n}\n\nexport function buildErrorParts(error: Error, state: StringifyErrorState) {\n const parts: string[] = []\n\n if (state.includeCode && 'code' in error && notNullish(error.code)) {\n parts.push(state.formatters.code(String(error.code)))\n }\n\n if (state.includeName) {\n parts.push(state.formatters.name(error.name))\n }\n\n parts.push(state.formatters.message(error.message || state.defaultMessage))\n\n return parts\n}\n\nexport function stringifyErrorNode(error_: unknown, depth: number, indent: string, prefix: string, state: StringifyErrorState): string {\n if (state.visited.has(error_)) {\n return `${indent}${prefix}${state.circularReferenceMessage}`\n }\n\n if (error_ instanceof Error) {\n state.visited.add(error_)\n }\n\n if (error_ instanceof Error && error_.toString !== Error.prototype.toString) {\n const parts = [error_.toString()]\n appendCauses(parts, error_, error_, depth, indent, state)\n\n return indent + prefix + parts.join(' ')\n }\n\n const error = normalizeError(error_, { ...state.normalizeOptions, defaultMessage: state.defaultMessage })\n\n state.visited.add(error)\n\n const parts = buildErrorParts(error, state)\n appendCauses(parts, error, error_, depth, indent, state)\n\n return indent + prefix + parts.join(' ')\n}\n\nexport function stringifyError(error: unknown, options: StringifyErrorOptions = {}) {\n const { causeIndent = 2, causePrefix = '-> ', circularReferenceMessage = '[Circular Reference]', defaultMessage = 'Unknown error', formatters: formatters_ = {}, includeCause = true, includeCode = true, includeName = true, maxCauseDepth = Number.POSITIVE_INFINITY, ...normalizeOptions } = options\n\n const state: StringifyErrorState = {\n causeIndent,\n causePrefix,\n circularReferenceMessage,\n defaultMessage,\n formatters: { ...DEFAULT_STRINGIFY_FORMATTERS, ...formatters_ },\n includeCause,\n includeCode,\n includeName,\n maxCauseDepth,\n normalizeOptions,\n visited: new Set<unknown>(),\n }\n\n return stringifyErrorNode(error, maxCauseDepth, '', '', state)\n}\n"
|
|
10
|
+
],
|
|
11
|
+
"mappings": "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",
|
|
12
|
+
"debugId": "89966F1E1B5C279064756E2164756E21",
|
|
13
|
+
"names": []
|
|
14
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
var u={isEven(t){return t%2n===0n},isOdd(t){return t%2n!==0n},divMod(t,r){if(r===0n)throw RangeError("Division by zero");return[t/r,t%r]},abs(t){return t<0n?-t:t},max(t,r){return t>r?t:r},min(t,r){return t<r?t:r},pow(t,r){return t**r},sign(t){return t===0n?0n:t<0n?-1n:1n},mod(t,r){return(t%r+r)%r},modPow(t,r,n){if(r<0n)throw RangeError("Exponent must be non-negative");if(n===1n)return 0n;let e=1n;t=u.mod(t,n);while(r>0n){if(r%2n===1n)e=u.mod(e*t,n);r>>=1n,t=u.mod(t*t,n)}return e},gcd(t,r){t=u.abs(t),r=u.abs(r);while(r!==0n)[t,r]=[r,t%r];return t},lcm(t,r){return t/u.gcd(t,r)*r},clamp(t,r,n){return u.min(u.max(t,r),n)},sqrt(t){if(t<0n)throw RangeError("Square root of negative bigint is undefined");if(t<2n)return t;let r=t,n=(r+1n)/2n;while(n<r)r=n,n=(r+t/r)/2n;return r},factorial(t){if(t<0n)throw RangeError("Factorial of negative bigint is undefined");if(t===0n)return 1n;let r=1n;for(let n=1n;n<=t;n++)r*=n;return r},sum(t){return t.reduce((r,n)=>r+n,0n)},avg(t){if(t.length===0)return 0n;return u.sum(t)/BigInt(t.length)},isPrime(t){if(t<2n)return!1;if(t<4n)return!0;if(t%2n===0n||t%3n===0n)return!1;let r=u.sqrt(t);for(let n=5n;n<=r;n+=6n)if(t%n===0n||t%(n+2n)===0n)return!1;return!0},compare(t,r){return t===r?0:t<r?-1:1}};var l=new Set(["+Infinity","-Infinity","Infinity","NaN"]),d={0:"₀",1:"₁",2:"₂",3:"₃",4:"₄",5:"₅",6:"₆",7:"₇",8:"₈",9:"₉"};import{transform as I}from"@/functions";var F=(t)=>t.reduce((r,n)=>r+n,0),D=(t)=>t.length===0?0:F(t)/t.length,C=(t,r,n)=>Math.min(Math.max(t,r),n),h=(t,r)=>I(10**r,(n)=>Math.round(t*n)/n),O=(t,r,n)=>t+(r-t)*n;function q(t){if(t.length===0)return 0;let r=[...t].toSorted((e,i)=>e-i),n=Math.floor(r.length/2);if(r.length%2===0)return(r[n-1]+r[n])/2;return r[n]}function x(t){let r="";for(let n of t.toString())r+=d[n]??n;return r}function w(t){let r=t.toString().toLowerCase(),[n,e]=r.split("e");if(e===void 0)return r;let[i,m=""]=n?.split(".")??[];if(!i)return r;let f=i.startsWith("-")?"-":"",g=f?i.slice(1):i,s=Number(e);if(s>=0){let p=Math.max(0,s-m.length),o=m+"0".repeat(p);if(o.length>s)return`${f}${g}${o.slice(0,s)}.${o.slice(s)}`;return`${f}${g}${o}`}let a=-s,c=g+m,b=Math.max(0,a-g.length);return`${f}0.${"0".repeat(b)}${c}`}function U(t){let r=Math.abs(t)%100,n=r%10;if(r>=11&&r<=13)return`${t}th`;switch(n){case 1:return`${t}st`;case 2:return`${t}nd`;case 3:return`${t}rd`;default:return`${t}th`}}function j(t,r,n){if(r===0)return 0;let e=t/r*100;if(n===void 0)return e;return h(e,n)}function V(t,r){let n=Math.min(t,r),e=Math.max(t,r);return Math.floor(Math.random()*(e-n+1))+n}function N(t){let r=0;for(let n=0;n<t.length&&t[n]==="0";n++)r++;return r}function G(t,r={}){let{formatLeadingZeros:n=(o)=>`0${x(o)}`,groupFractionLeadingZeros:e=!0,locales:i="en-US",maximumFractionDigits:m=4,...f}=r,g=(o)=>new Intl.NumberFormat(i,{...f,maximumFractionDigits:o}).format(t);if(!e)return g(m);let s=w(t),[,a=""]=s.split(".",2),c=N(a);if(c<=1)return g(m);let b=(o)=>{if(o.type==="fraction")return`${n(c)}${o.value.slice(c)}`;return o.value};return new Intl.NumberFormat(i,{...f,maximumFractionDigits:m+c}).formatToParts(t).map(b).join("")}import{isBigInt as S,isNumber as M,isString as T}from"@/core";var L=/^[+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/iu,P=(t)=>l.has(t);function R(t){if(P(t))return!0;return L.test(t)}var X=(t)=>M(t)||S(t)||T(t)&&R(t),Y=(t)=>t>=0&&t<=100;import{notNullish as $}from"@/core";function tt(t,r,n=!0,e,i){if($(e)&&t<e)return!1;if($(i)&&r>i)return!1;return n?t<=r:t<r}var rt=(t,r,n,e=!0)=>e?t>=r&&t<=n:t>r&&t<n;export{u as J,l as K,d as L,F as M,D as N,C as O,h as P,O as Q,q as R,x as S,w as T,U,j as V,V as W,N as X,G as Y,P as Z,R as _,X as $,Y as aa,tt as ba,rt as ca};
|
|
2
|
+
|
|
3
|
+
//# debugId=372A1B62607032A564756E2164756E21
|
|
4
|
+
//# sourceMappingURL=chunk-6kdnnxe0.js.map
|