hein 1.4.2 → 2.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/ESM_MIGRATION_NOTES.md +6 -0
- package/README.md +46 -7
- package/dist/assert-9EsvfQwn.d.cts +483 -0
- package/dist/assert-9EsvfQwn.d.cts.map +1 -0
- package/dist/assert-B_vcZS90.d.ts +481 -0
- package/dist/assert-B_vcZS90.d.ts.map +1 -0
- package/dist/assert-DZjgWjOw.cjs +1626 -0
- package/dist/assert-DZjgWjOw.cjs.map +1 -0
- package/dist/assert-kFXp7i_B.js +1260 -0
- package/dist/assert-kFXp7i_B.js.map +1 -0
- package/dist/assert.cjs +53 -0
- package/dist/assert.d.cts +3 -0
- package/dist/assert.d.ts +3 -27
- package/dist/assert.js +3 -84
- package/dist/chunk-CTAAG5j7.js +13 -0
- package/dist/expect.types-DPl6xY56.d.ts +99 -0
- package/dist/expect.types-DPl6xY56.d.ts.map +1 -0
- package/dist/expect.types-s8icgWp5.d.cts +99 -0
- package/dist/expect.types-s8icgWp5.d.cts.map +1 -0
- package/dist/expect.types.cjs +0 -0
- package/dist/expect.types.d.cts +3 -0
- package/dist/expect.types.d.ts +3 -66
- package/dist/expect.types.js +1 -4
- package/dist/index.cjs +596 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +16 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.ts +15 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +573 -27
- package/dist/index.js.map +1 -1
- package/dist/throws-BrCCeBBl.d.ts +42 -0
- package/dist/throws-BrCCeBBl.d.ts.map +1 -0
- package/dist/throws-D7JsW4NM.d.cts +40 -0
- package/dist/throws-D7JsW4NM.d.cts.map +1 -0
- package/eslint.config.mjs +13 -0
- package/package.json +31 -18
- package/tsdown.config.ts +9 -0
- package/dist/assert/deep-equal.d.ts +0 -2
- package/dist/assert/deep-equal.d.ts.map +0 -1
- package/dist/assert/deep-equal.js +0 -26
- package/dist/assert/deep-equal.js.map +0 -1
- package/dist/assert/deep-has-property.d.ts +0 -20
- package/dist/assert/deep-has-property.d.ts.map +0 -1
- package/dist/assert/deep-has-property.js +0 -50
- package/dist/assert/deep-has-property.js.map +0 -1
- package/dist/assert/ends-with.d.ts +0 -11
- package/dist/assert/ends-with.d.ts.map +0 -1
- package/dist/assert/ends-with.js +0 -30
- package/dist/assert/ends-with.js.map +0 -1
- package/dist/assert/equal.d.ts +0 -9
- package/dist/assert/equal.d.ts.map +0 -1
- package/dist/assert/equal.js +0 -21
- package/dist/assert/equal.js.map +0 -1
- package/dist/assert/greater-than-equal.d.ts +0 -9
- package/dist/assert/greater-than-equal.d.ts.map +0 -1
- package/dist/assert/greater-than-equal.js +0 -20
- package/dist/assert/greater-than-equal.js.map +0 -1
- package/dist/assert/greater-than.d.ts +0 -9
- package/dist/assert/greater-than.d.ts.map +0 -1
- package/dist/assert/greater-than.js +0 -20
- package/dist/assert/greater-than.js.map +0 -1
- package/dist/assert/has-keys.d.ts +0 -14
- package/dist/assert/has-keys.d.ts.map +0 -1
- package/dist/assert/has-keys.js +0 -47
- package/dist/assert/has-keys.js.map +0 -1
- package/dist/assert/has-members.d.ts +0 -46
- package/dist/assert/has-members.d.ts.map +0 -1
- package/dist/assert/has-members.js +0 -58
- package/dist/assert/has-members.js.map +0 -1
- package/dist/assert/has-property.d.ts +0 -20
- package/dist/assert/has-property.d.ts.map +0 -1
- package/dist/assert/has-property.js +0 -47
- package/dist/assert/has-property.js.map +0 -1
- package/dist/assert/has-size.d.ts +0 -40
- package/dist/assert/has-size.d.ts.map +0 -1
- package/dist/assert/has-size.js +0 -68
- package/dist/assert/has-size.js.map +0 -1
- package/dist/assert/in-ballpark.d.ts +0 -14
- package/dist/assert/in-ballpark.d.ts.map +0 -1
- package/dist/assert/in-ballpark.js +0 -26
- package/dist/assert/in-ballpark.js.map +0 -1
- package/dist/assert/includes.d.ts +0 -22
- package/dist/assert/includes.d.ts.map +0 -1
- package/dist/assert/includes.js +0 -32
- package/dist/assert/includes.js.map +0 -1
- package/dist/assert/instance-of.d.ts +0 -13
- package/dist/assert/instance-of.d.ts.map +0 -1
- package/dist/assert/instance-of.js +0 -35
- package/dist/assert/instance-of.js.map +0 -1
- package/dist/assert/is-after.d.ts +0 -9
- package/dist/assert/is-after.d.ts.map +0 -1
- package/dist/assert/is-after.js +0 -27
- package/dist/assert/is-after.js.map +0 -1
- package/dist/assert/is-before.d.ts +0 -9
- package/dist/assert/is-before.d.ts.map +0 -1
- package/dist/assert/is-before.js +0 -27
- package/dist/assert/is-before.js.map +0 -1
- package/dist/assert/is-between.d.ts +0 -13
- package/dist/assert/is-between.d.ts.map +0 -1
- package/dist/assert/is-between.js +0 -38
- package/dist/assert/is-between.js.map +0 -1
- package/dist/assert/is-empty.d.ts +0 -29
- package/dist/assert/is-empty.d.ts.map +0 -1
- package/dist/assert/is-empty.js +0 -48
- package/dist/assert/is-empty.js.map +0 -1
- package/dist/assert/is-type.d.ts +0 -94
- package/dist/assert/is-type.d.ts.map +0 -1
- package/dist/assert/is-type.js +0 -32
- package/dist/assert/is-type.js.map +0 -1
- package/dist/assert/less-than-equal.d.ts +0 -9
- package/dist/assert/less-than-equal.d.ts.map +0 -1
- package/dist/assert/less-than-equal.js +0 -27
- package/dist/assert/less-than-equal.js.map +0 -1
- package/dist/assert/less-than.d.ts +0 -9
- package/dist/assert/less-than.d.ts.map +0 -1
- package/dist/assert/less-than.js +0 -20
- package/dist/assert/less-than.js.map +0 -1
- package/dist/assert/match.d.ts +0 -13
- package/dist/assert/match.d.ts.map +0 -1
- package/dist/assert/match.js +0 -29
- package/dist/assert/match.js.map +0 -1
- package/dist/assert/rejects.d.ts +0 -33
- package/dist/assert/rejects.d.ts.map +0 -1
- package/dist/assert/rejects.js +0 -48
- package/dist/assert/rejects.js.map +0 -1
- package/dist/assert/round-to.d.ts +0 -13
- package/dist/assert/round-to.d.ts.map +0 -1
- package/dist/assert/round-to.js +0 -43
- package/dist/assert/round-to.js.map +0 -1
- package/dist/assert/starts-with.d.ts +0 -12
- package/dist/assert/starts-with.d.ts.map +0 -1
- package/dist/assert/starts-with.js +0 -30
- package/dist/assert/starts-with.js.map +0 -1
- package/dist/assert/throws.d.ts +0 -33
- package/dist/assert/throws.d.ts.map +0 -1
- package/dist/assert/throws.js +0 -40
- package/dist/assert/throws.js.map +0 -1
- package/dist/assert.d.ts.map +0 -1
- package/dist/assert.js.map +0 -1
- package/dist/expect/after.d.ts +0 -11
- package/dist/expect/after.d.ts.map +0 -1
- package/dist/expect/after.js +0 -18
- package/dist/expect/after.js.map +0 -1
- package/dist/expect/ballpark.d.ts +0 -12
- package/dist/expect/ballpark.d.ts.map +0 -1
- package/dist/expect/ballpark.js +0 -18
- package/dist/expect/ballpark.js.map +0 -1
- package/dist/expect/before.d.ts +0 -11
- package/dist/expect/before.d.ts.map +0 -1
- package/dist/expect/before.js +0 -18
- package/dist/expect/before.js.map +0 -1
- package/dist/expect/between.d.ts +0 -21
- package/dist/expect/between.d.ts.map +0 -1
- package/dist/expect/between.js +0 -18
- package/dist/expect/between.js.map +0 -1
- package/dist/expect/empty.d.ts +0 -16
- package/dist/expect/empty.d.ts.map +0 -1
- package/dist/expect/empty.js +0 -18
- package/dist/expect/empty.js.map +0 -1
- package/dist/expect/end-with.d.ts +0 -12
- package/dist/expect/end-with.d.ts.map +0 -1
- package/dist/expect/end-with.js +0 -18
- package/dist/expect/end-with.js.map +0 -1
- package/dist/expect/eql.d.ts +0 -11
- package/dist/expect/eql.d.ts.map +0 -1
- package/dist/expect/eql.js +0 -22
- package/dist/expect/eql.js.map +0 -1
- package/dist/expect/equal-shorthand.d.ts +0 -14
- package/dist/expect/equal-shorthand.d.ts.map +0 -1
- package/dist/expect/equal-shorthand.js +0 -34
- package/dist/expect/equal-shorthand.js.map +0 -1
- package/dist/expect/equal.d.ts +0 -14
- package/dist/expect/equal.d.ts.map +0 -1
- package/dist/expect/equal.js +0 -28
- package/dist/expect/equal.js.map +0 -1
- package/dist/expect/excluding.d.ts +0 -11
- package/dist/expect/excluding.d.ts.map +0 -1
- package/dist/expect/excluding.js +0 -14
- package/dist/expect/excluding.js.map +0 -1
- package/dist/expect/greater-than-equal.d.ts +0 -32
- package/dist/expect/greater-than-equal.d.ts.map +0 -1
- package/dist/expect/greater-than-equal.js +0 -20
- package/dist/expect/greater-than-equal.js.map +0 -1
- package/dist/expect/greater-than.d.ts +0 -32
- package/dist/expect/greater-than.d.ts.map +0 -1
- package/dist/expect/greater-than.js +0 -20
- package/dist/expect/greater-than.js.map +0 -1
- package/dist/expect/has-property.d.ts +0 -36
- package/dist/expect/has-property.d.ts.map +0 -1
- package/dist/expect/has-property.js +0 -22
- package/dist/expect/has-property.js.map +0 -1
- package/dist/expect/include.d.ts +0 -25
- package/dist/expect/include.d.ts.map +0 -1
- package/dist/expect/include.js +0 -22
- package/dist/expect/include.js.map +0 -1
- package/dist/expect/instance-of-shorthand.d.ts +0 -34
- package/dist/expect/instance-of-shorthand.d.ts.map +0 -1
- package/dist/expect/instance-of-shorthand.js +0 -22
- package/dist/expect/instance-of-shorthand.js.map +0 -1
- package/dist/expect/instance-of.d.ts +0 -11
- package/dist/expect/instance-of.d.ts.map +0 -1
- package/dist/expect/instance-of.js +0 -18
- package/dist/expect/instance-of.js.map +0 -1
- package/dist/expect/keys.d.ts +0 -17
- package/dist/expect/keys.d.ts.map +0 -1
- package/dist/expect/keys.js +0 -18
- package/dist/expect/keys.js.map +0 -1
- package/dist/expect/length.d.ts +0 -28
- package/dist/expect/length.d.ts.map +0 -1
- package/dist/expect/length.js +0 -19
- package/dist/expect/length.js.map +0 -1
- package/dist/expect/less-than-equal.d.ts +0 -32
- package/dist/expect/less-than-equal.d.ts.map +0 -1
- package/dist/expect/less-than-equal.js +0 -20
- package/dist/expect/less-than-equal.js.map +0 -1
- package/dist/expect/less-than.d.ts +0 -32
- package/dist/expect/less-than.d.ts.map +0 -1
- package/dist/expect/less-than.js +0 -20
- package/dist/expect/less-than.js.map +0 -1
- package/dist/expect/match.d.ts +0 -10
- package/dist/expect/match.d.ts.map +0 -1
- package/dist/expect/match.js +0 -18
- package/dist/expect/match.js.map +0 -1
- package/dist/expect/members.d.ts +0 -20
- package/dist/expect/members.d.ts.map +0 -1
- package/dist/expect/members.js +0 -32
- package/dist/expect/members.js.map +0 -1
- package/dist/expect/reject.d.ts +0 -12
- package/dist/expect/reject.d.ts.map +0 -1
- package/dist/expect/reject.js +0 -13
- package/dist/expect/reject.js.map +0 -1
- package/dist/expect/round-to.d.ts +0 -12
- package/dist/expect/round-to.d.ts.map +0 -1
- package/dist/expect/round-to.js +0 -18
- package/dist/expect/round-to.js.map +0 -1
- package/dist/expect/start-with.d.ts +0 -12
- package/dist/expect/start-with.d.ts.map +0 -1
- package/dist/expect/start-with.js +0 -18
- package/dist/expect/start-with.js.map +0 -1
- package/dist/expect/throw.d.ts +0 -12
- package/dist/expect/throw.d.ts.map +0 -1
- package/dist/expect/throw.js +0 -13
- package/dist/expect/throw.js.map +0 -1
- package/dist/expect/type-shorthand.d.ts +0 -66
- package/dist/expect/type-shorthand.d.ts.map +0 -1
- package/dist/expect/type-shorthand.js +0 -34
- package/dist/expect/type-shorthand.js.map +0 -1
- package/dist/expect/type.d.ts +0 -10
- package/dist/expect/type.d.ts.map +0 -1
- package/dist/expect/type.js +0 -18
- package/dist/expect/type.js.map +0 -1
- package/dist/expect.d.ts +0 -33
- package/dist/expect.d.ts.map +0 -1
- package/dist/expect.js +0 -88
- package/dist/expect.js.map +0 -1
- package/dist/expect.types.d.ts.map +0 -1
- package/dist/expect.types.js.map +0 -1
- package/dist/mixins.d.ts +0 -26
- package/dist/mixins.d.ts.map +0 -1
- package/dist/mixins.js +0 -9
- package/dist/mixins.js.map +0 -1
- package/dist/utils/cast-array.d.ts +0 -2
- package/dist/utils/cast-array.d.ts.map +0 -1
- package/dist/utils/cast-array.js +0 -14
- package/dist/utils/cast-array.js.map +0 -1
- package/dist/utils/chain.d.ts +0 -3
- package/dist/utils/chain.d.ts.map +0 -1
- package/dist/utils/chain.js +0 -21
- package/dist/utils/chain.js.map +0 -1
- package/dist/utils/fail.d.ts +0 -6
- package/dist/utils/fail.d.ts.map +0 -1
- package/dist/utils/fail.js +0 -13
- package/dist/utils/fail.js.map +0 -1
- package/dist/utils/get-size.d.ts +0 -2
- package/dist/utils/get-size.d.ts.map +0 -1
- package/dist/utils/get-size.js +0 -24
- package/dist/utils/get-size.js.map +0 -1
- package/dist/utils/get-type.d.ts +0 -3
- package/dist/utils/get-type.d.ts.map +0 -1
- package/dist/utils/get-type.js +0 -17
- package/dist/utils/get-type.js.map +0 -1
- package/dist/utils/match.d.ts +0 -15
- package/dist/utils/match.d.ts.map +0 -1
- package/dist/utils/match.js +0 -150
- package/dist/utils/match.js.map +0 -1
- package/dist/utils/process-error.d.ts +0 -11
- package/dist/utils/process-error.d.ts.map +0 -1
- package/dist/utils/process-error.js +0 -98
- package/dist/utils/process-error.js.map +0 -1
- package/dist/utils/types.d.ts +0 -4
- package/dist/utils/types.d.ts.map +0 -1
- package/dist/utils/types.js +0 -3
- package/dist/utils/types.js.map +0 -1
- package/dist/utils/validate-numeric-and-dates.d.ts +0 -2
- package/dist/utils/validate-numeric-and-dates.d.ts.map +0 -1
- package/dist/utils/validate-numeric-and-dates.js +0 -15
- package/dist/utils/validate-numeric-and-dates.js.map +0 -1
- package/dist/utils/xor.d.ts +0 -2
- package/dist/utils/xor.d.ts.map +0 -1
- package/dist/utils/xor.js +0 -8
- package/dist/utils/xor.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,14 @@ All notable changes to this project will be documented in this file. Dates are d
|
|
|
4
4
|
|
|
5
5
|
Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
6
6
|
|
|
7
|
+
#### [hein@1.5.0](https://github.com/KristjanTammekivi/hein/compare/hein@1.4.2...hein@1.5.0)
|
|
8
|
+
|
|
9
|
+
> 1 October 2024
|
|
10
|
+
|
|
11
|
+
- feat: add .every [`#348`](https://github.com/KristjanTammekivi/hein/issues/348)
|
|
12
|
+
- style: run lint fix [`9391e27`](https://github.com/KristjanTammekivi/hein/commit/9391e2712592341fc003a5cec1953559e4d0bf34)
|
|
13
|
+
- fix: adapt to typescript-eslint 8 changes [`dd9e1b2`](https://github.com/KristjanTammekivi/hein/commit/dd9e1b2e98bbd138946005621a504de4e506d1db)
|
|
14
|
+
|
|
7
15
|
#### [hein@1.4.2](https://github.com/KristjanTammekivi/hein/compare/hein@1.4.1...hein@1.4.2)
|
|
8
16
|
|
|
9
17
|
> 11 December 2023
|
package/README.md
CHANGED
|
@@ -40,13 +40,52 @@ expect(1).to.equal(1);
|
|
|
40
40
|
|
|
41
41
|
#### Chainable properties
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
-
|
|
49
|
-
-
|
|
43
|
+
##### Language chains
|
|
44
|
+
|
|
45
|
+
There are multiple side-effect free tokens to chain assertions together. These include:
|
|
46
|
+
- to
|
|
47
|
+
- be
|
|
48
|
+
- a
|
|
49
|
+
- an
|
|
50
|
+
- have
|
|
51
|
+
- in
|
|
52
|
+
- of
|
|
53
|
+
|
|
54
|
+
```typescript
|
|
55
|
+
expect(5).to.be.a.number(); // same as expect(5).number();
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
##### not
|
|
59
|
+
|
|
60
|
+
Not inverts the conditions inside the expectation.
|
|
61
|
+
|
|
62
|
+
```typescript
|
|
63
|
+
expect(5).to.not.equal(4);
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
##### every
|
|
67
|
+
|
|
68
|
+
Run the assertion for each member of an array
|
|
69
|
+
|
|
70
|
+
```typescript
|
|
71
|
+
expect([1, 2, 3]).every.to.be.a.number();
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
##### length
|
|
75
|
+
|
|
76
|
+
Run the assertion on the length of an array
|
|
77
|
+
|
|
78
|
+
```typescript
|
|
79
|
+
expect([1, 2, 3]).length.to.be.greaterThan(2);
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
##### and
|
|
83
|
+
|
|
84
|
+
Clears most of the state in the chain (with the exception of the effects of .every);
|
|
85
|
+
|
|
86
|
+
```typescript
|
|
87
|
+
expect(1).to.not.be.greaterThan(5).and.be.greaterThan(0);
|
|
88
|
+
```
|
|
50
89
|
|
|
51
90
|
#### Assertions
|
|
52
91
|
|
|
@@ -0,0 +1,483 @@
|
|
|
1
|
+
import { Constructor, ErrorPredicate, notThrows, throws } from "./throws-D7JsW4NM.cjs";
|
|
2
|
+
|
|
3
|
+
//#region rolldown:runtime
|
|
4
|
+
//#endregion
|
|
5
|
+
//#region src/assert/deep-equal.d.ts
|
|
6
|
+
declare const deepEqual: <T>(actual: T, expected: T, partialOrMessage?: string | boolean, message?: string) => true | void, notDeepEqual: <T>(actual: T, expected: T, partialOrMessage?: string | boolean, message?: string) => true | void;
|
|
7
|
+
//#endregion
|
|
8
|
+
//#region src/assert/equal.d.ts
|
|
9
|
+
interface Equal {
|
|
10
|
+
/**
|
|
11
|
+
* check for === equality except here NaN is equal to NaN
|
|
12
|
+
*/
|
|
13
|
+
<T>(actual: T, expected: T, message?: string): void;
|
|
14
|
+
}
|
|
15
|
+
declare const equal: Equal, notEqual: Equal;
|
|
16
|
+
//#endregion
|
|
17
|
+
//#region src/assert/greater-than.d.ts
|
|
18
|
+
interface GreaterThan {
|
|
19
|
+
/**
|
|
20
|
+
* check for >
|
|
21
|
+
*/
|
|
22
|
+
<T extends number | bigint | Date>(actual: T, expected: T, message?: string): void;
|
|
23
|
+
}
|
|
24
|
+
declare const greaterThan: GreaterThan, notGreaterThan: GreaterThan;
|
|
25
|
+
//#endregion
|
|
26
|
+
//#region src/assert/greater-than-equal.d.ts
|
|
27
|
+
interface GreaterThanEqual {
|
|
28
|
+
/**
|
|
29
|
+
* check for >=
|
|
30
|
+
*/
|
|
31
|
+
<T extends number | bigint | Date>(actual: T, expected: T, message?: string): void;
|
|
32
|
+
}
|
|
33
|
+
declare const greaterThanEqual: GreaterThanEqual, notGreaterThanEqual: GreaterThanEqual;
|
|
34
|
+
//#endregion
|
|
35
|
+
//#region src/assert/has-property.d.ts
|
|
36
|
+
interface HasProperty {
|
|
37
|
+
/**
|
|
38
|
+
* check if object has a property
|
|
39
|
+
* @param object
|
|
40
|
+
* @param property a property in the object.
|
|
41
|
+
* @example hasProperty({a: 1}, 'a');
|
|
42
|
+
*/
|
|
43
|
+
<T, K extends keyof T>(object: T, property: K): void;
|
|
44
|
+
/**
|
|
45
|
+
* check if object has a property with a specific value
|
|
46
|
+
* @param object
|
|
47
|
+
* @param property a property in the object.
|
|
48
|
+
* @param value
|
|
49
|
+
* @example hasProperty({a: 1}, 'a', 1);
|
|
50
|
+
*/
|
|
51
|
+
<T, K extends keyof T>(object: T, property: K, value: T[K]): void;
|
|
52
|
+
}
|
|
53
|
+
declare const hasProperty: HasProperty, notHasProperty: HasProperty;
|
|
54
|
+
//#endregion
|
|
55
|
+
//#region src/assert/has-size.d.ts
|
|
56
|
+
interface HasSize {
|
|
57
|
+
/**
|
|
58
|
+
* check if array has a specific length
|
|
59
|
+
* @param array
|
|
60
|
+
* @param length
|
|
61
|
+
* @example hasSize([1, 2, 3], 3);
|
|
62
|
+
*/
|
|
63
|
+
(array: any[], length: number, message?: string): void;
|
|
64
|
+
/**
|
|
65
|
+
* check if object has a specific amount of keys
|
|
66
|
+
* @param object
|
|
67
|
+
* @param length
|
|
68
|
+
* @example hasSize({a: 1, b: 2}, 2);
|
|
69
|
+
*/
|
|
70
|
+
(object: Record<string, unknown>, length: number, message?: string): void;
|
|
71
|
+
/**
|
|
72
|
+
* check if Map has a specific amount of keys
|
|
73
|
+
* @param map
|
|
74
|
+
* @param length
|
|
75
|
+
* @example hasSize(new Map([['a', 1], ['b', 2]]), 2);
|
|
76
|
+
*/
|
|
77
|
+
(map: Map<unknown, unknown>, length: number, message?: string): void;
|
|
78
|
+
/**
|
|
79
|
+
* check if Set has a specific amount of members
|
|
80
|
+
* @param set
|
|
81
|
+
* @param length
|
|
82
|
+
* @example hasSize(new Set([1, 2, 3]), 3);
|
|
83
|
+
*/
|
|
84
|
+
(set: Set<unknown>, length: number, message?: string): void;
|
|
85
|
+
/**
|
|
86
|
+
* check if string has a specific length
|
|
87
|
+
* @param string
|
|
88
|
+
* @param length
|
|
89
|
+
* @example hasSize('abc', 3);
|
|
90
|
+
*/
|
|
91
|
+
(string: string, length: number, message?: string): void;
|
|
92
|
+
}
|
|
93
|
+
declare const hasSize: HasSize, notHasSize: HasSize;
|
|
94
|
+
//#endregion
|
|
95
|
+
//#region src/assert/includes.d.ts
|
|
96
|
+
interface Includes {
|
|
97
|
+
/**
|
|
98
|
+
* check if array includes a specific element
|
|
99
|
+
* @param array
|
|
100
|
+
* @param element
|
|
101
|
+
* @example includes([1, 2, 3], 2);
|
|
102
|
+
* @example includes([1, 2, 3], 2, 3);
|
|
103
|
+
*/
|
|
104
|
+
<T>(array: T[], ...elements: T[]): void;
|
|
105
|
+
/**
|
|
106
|
+
* check if string includes a specific string
|
|
107
|
+
* @param string
|
|
108
|
+
* @param element
|
|
109
|
+
* @example includes('abc', 'b');
|
|
110
|
+
* @example includes('abc', 'b', 'c');
|
|
111
|
+
* @example includes('abc', 'bc');
|
|
112
|
+
*/
|
|
113
|
+
(string: string, ...elements: string[]): void;
|
|
114
|
+
}
|
|
115
|
+
declare const includes: Includes, notIncludes: Includes;
|
|
116
|
+
//#endregion
|
|
117
|
+
//#region src/assert/instance-of.d.ts
|
|
118
|
+
interface InstanceOf {
|
|
119
|
+
/**
|
|
120
|
+
* check if value is an instance of a constructor
|
|
121
|
+
* @param value
|
|
122
|
+
* @param constructor
|
|
123
|
+
* @example instanceOf(new Error(), Error);
|
|
124
|
+
*/
|
|
125
|
+
<T extends Constructor>(value: InstanceType<T>, constructor: T): void;
|
|
126
|
+
}
|
|
127
|
+
declare const instanceOf: InstanceOf, notInstanceOf: InstanceOf;
|
|
128
|
+
//#endregion
|
|
129
|
+
//#region src/assert/is-empty.d.ts
|
|
130
|
+
interface IsEmpty {
|
|
131
|
+
/**
|
|
132
|
+
* check if array is empty
|
|
133
|
+
* @param array
|
|
134
|
+
* @example isEmpty([]);
|
|
135
|
+
*/
|
|
136
|
+
<T>(array: T[], message?: string): void;
|
|
137
|
+
/**
|
|
138
|
+
* check if object is empty
|
|
139
|
+
* @param object
|
|
140
|
+
* @example isEmpty({});
|
|
141
|
+
*/
|
|
142
|
+
(object: Record<string, unknown>, message?: string): void;
|
|
143
|
+
/**
|
|
144
|
+
* check if Map is empty
|
|
145
|
+
* @param map
|
|
146
|
+
* @example isEmpty(new Map());
|
|
147
|
+
*/
|
|
148
|
+
<K, V>(map: Map<K, V>, message?: string): void;
|
|
149
|
+
/**
|
|
150
|
+
* check if Set is empty
|
|
151
|
+
* @param set
|
|
152
|
+
* @example isEmpty(new Set());
|
|
153
|
+
*/
|
|
154
|
+
<T>(set: Set<T>, message?: string): void;
|
|
155
|
+
}
|
|
156
|
+
declare const isEmpty: IsEmpty, notIsEmpty: IsEmpty;
|
|
157
|
+
//#endregion
|
|
158
|
+
//#region src/utils/get-type.d.ts
|
|
159
|
+
type ValueType = 'string' | 'number' | 'bigint' | 'boolean' | 'symbol' | 'undefined' | 'object' | 'function' | 'null' | 'NaN' | 'array';
|
|
160
|
+
//#endregion
|
|
161
|
+
//#region src/assert/is-type.d.ts
|
|
162
|
+
interface IsType {
|
|
163
|
+
/**
|
|
164
|
+
* check if value is of a specific type, nulls, NaN and arrays are specially handled
|
|
165
|
+
* @param value
|
|
166
|
+
* @param expectedType
|
|
167
|
+
* @example isType('foo', 'string');
|
|
168
|
+
* @example isType(1, 'number');
|
|
169
|
+
* @example isType(1n, 'bigint');
|
|
170
|
+
* @example isType(true, 'boolean');
|
|
171
|
+
* @example isType(Symbol('foo'), 'symbol');
|
|
172
|
+
* @example isType(undefined, 'undefined');
|
|
173
|
+
* @example isType({}, 'object');
|
|
174
|
+
* @example isType(() => {}, 'function');
|
|
175
|
+
* @example isType(null, 'null');
|
|
176
|
+
* @example isType(NaN, 'NaN');
|
|
177
|
+
* @example isType([], 'array');
|
|
178
|
+
*/
|
|
179
|
+
(value: unknown, expectedType: ValueType): void;
|
|
180
|
+
/**
|
|
181
|
+
* check if value is of a specific type, nulls, NaN and arrays are specially handled
|
|
182
|
+
* @param value
|
|
183
|
+
* @param expectedType
|
|
184
|
+
* @example isType('foo', 'string');
|
|
185
|
+
*/
|
|
186
|
+
(value: string, expectedType: 'string'): void;
|
|
187
|
+
/**
|
|
188
|
+
* check if value is of a specific type, nulls, NaN and arrays are specially handled
|
|
189
|
+
* @param value
|
|
190
|
+
* @param expectedType
|
|
191
|
+
* @example isType(1, 'number');
|
|
192
|
+
* @example isType(NaN, 'NaN');
|
|
193
|
+
*/
|
|
194
|
+
(value: number, expectedType: 'number' | 'NaN'): void;
|
|
195
|
+
/**
|
|
196
|
+
* check if value is of a specific type, nulls, NaN and arrays are specially handled
|
|
197
|
+
* @param value
|
|
198
|
+
* @param expectedType
|
|
199
|
+
* @example isType(1n, 'bigint');
|
|
200
|
+
*/
|
|
201
|
+
(value: bigint, expectedType: 'bigint'): void;
|
|
202
|
+
/**
|
|
203
|
+
* check if value is of a specific type, nulls, NaN and arrays are specially handled
|
|
204
|
+
* @param value
|
|
205
|
+
* @param expectedType
|
|
206
|
+
* @example isType(true, 'boolean');
|
|
207
|
+
*/
|
|
208
|
+
(value: boolean, expectedType: 'boolean'): void;
|
|
209
|
+
/**
|
|
210
|
+
* check if value is of a specific type, nulls, NaN and arrays are specially handled
|
|
211
|
+
* @param value
|
|
212
|
+
* @param expectedType
|
|
213
|
+
* @example isType(Symbol('foo'), 'symbol');
|
|
214
|
+
*/
|
|
215
|
+
(value: symbol, expectedType: 'symbol'): void;
|
|
216
|
+
/**
|
|
217
|
+
* check if value is of a specific type, nulls, NaN and arrays are specially handled
|
|
218
|
+
* @param value
|
|
219
|
+
* @param expectedType
|
|
220
|
+
* @example isType(Symbol('foo'), 'symbol');
|
|
221
|
+
*/
|
|
222
|
+
(value: undefined, expectedType: 'undefined'): void;
|
|
223
|
+
/**
|
|
224
|
+
* check if value is of a specific type, nulls, NaN and arrays are specially handled
|
|
225
|
+
* @param value
|
|
226
|
+
* @param expectedType
|
|
227
|
+
* @example isType({}, 'object');
|
|
228
|
+
*/
|
|
229
|
+
(value: object, expectedType: 'object'): void;
|
|
230
|
+
/**
|
|
231
|
+
* check if value is of a specific type, nulls, NaN and arrays are specially handled
|
|
232
|
+
* @param value
|
|
233
|
+
* @param expectedType
|
|
234
|
+
* @example isType(() => {}, 'function');
|
|
235
|
+
*/
|
|
236
|
+
(value: Function, expectedType: 'function'): void;
|
|
237
|
+
/**
|
|
238
|
+
* check if value is of a specific type, nulls, NaN and arrays are specially handled
|
|
239
|
+
* @param value
|
|
240
|
+
* @param expectedType
|
|
241
|
+
* @example isType(null, 'null');
|
|
242
|
+
*/
|
|
243
|
+
(value: null, expectedType: 'null'): void;
|
|
244
|
+
/**
|
|
245
|
+
* check if value is of a specific type, nulls, NaN and arrays are specially handled
|
|
246
|
+
* @param value
|
|
247
|
+
* @param expectedType
|
|
248
|
+
* @example isType([], 'array');
|
|
249
|
+
*/
|
|
250
|
+
(value: any[], expectedType: 'array'): void;
|
|
251
|
+
}
|
|
252
|
+
declare const isType: IsType, notIsType: IsType;
|
|
253
|
+
//#endregion
|
|
254
|
+
//#region src/assert/less-than.d.ts
|
|
255
|
+
interface LesserThan {
|
|
256
|
+
/**
|
|
257
|
+
* check for <
|
|
258
|
+
*/
|
|
259
|
+
<T extends number | bigint | Date>(actual: T, expected: T, message?: string): void;
|
|
260
|
+
}
|
|
261
|
+
declare const lessThan: LesserThan, notLessThan: LesserThan;
|
|
262
|
+
//#endregion
|
|
263
|
+
//#region src/assert/less-than-equal.d.ts
|
|
264
|
+
interface LessThanEqual {
|
|
265
|
+
/**
|
|
266
|
+
* check for <=
|
|
267
|
+
*/
|
|
268
|
+
<T extends number | bigint | Date>(actual: T, expected: T, message?: string): void;
|
|
269
|
+
}
|
|
270
|
+
declare const lessThanEqual: LessThanEqual, notLessThanEqual: LessThanEqual;
|
|
271
|
+
//#endregion
|
|
272
|
+
//#region src/assert/match.d.ts
|
|
273
|
+
interface IsMatch {
|
|
274
|
+
/**
|
|
275
|
+
* check if string matches regex
|
|
276
|
+
* @param actual
|
|
277
|
+
* @param regex
|
|
278
|
+
* @example match('foo', /foo/);
|
|
279
|
+
* @example notMatch('foo', /bar/);
|
|
280
|
+
*/
|
|
281
|
+
(actual: string, regex: RegExp): void;
|
|
282
|
+
}
|
|
283
|
+
declare const match: IsMatch, notMatch: IsMatch;
|
|
284
|
+
//#endregion
|
|
285
|
+
//#region src/assert/rejects.d.ts
|
|
286
|
+
interface Rejects {
|
|
287
|
+
/**
|
|
288
|
+
* check if promise rejects
|
|
289
|
+
* @param promise
|
|
290
|
+
* @example rejects(Promise.reject());
|
|
291
|
+
*/
|
|
292
|
+
(promise: Promise<any>, message?: string): Promise<void>;
|
|
293
|
+
/**
|
|
294
|
+
* check if promise rejects with an instance of constructor
|
|
295
|
+
* @param promise
|
|
296
|
+
* @param constructor - expected error constructor
|
|
297
|
+
* @example rejects(Promise.reject(new Error()), Error);
|
|
298
|
+
*/
|
|
299
|
+
(promise: Promise<any>, constructor: Constructor, message?: string): Promise<void>;
|
|
300
|
+
/**
|
|
301
|
+
* check if promise rejects with a specific error message
|
|
302
|
+
* @param promise
|
|
303
|
+
* @param regex - expected error message regex
|
|
304
|
+
* @example rejects(Promise.reject(new Error('This is worrying)), /worrying/);
|
|
305
|
+
*/
|
|
306
|
+
(promise: Promise<any>, constructor: RegExp, message?: string): Promise<void>;
|
|
307
|
+
/**
|
|
308
|
+
* check if promise rejects with and matches the predicate function
|
|
309
|
+
* @param promise
|
|
310
|
+
* @param predicate - predicate function that receives the error and returns boolean
|
|
311
|
+
* @example rejects(Promise.reject(new Error('This is worrying')), (error) => error.message === 'This is worrying');));
|
|
312
|
+
*/
|
|
313
|
+
(promise: Promise<any>, constructor: ErrorPredicate, message?: string): Promise<void>;
|
|
314
|
+
}
|
|
315
|
+
declare const rejects: Rejects, notRejects: Rejects;
|
|
316
|
+
//#endregion
|
|
317
|
+
//#region src/assert/deep-has-property.d.ts
|
|
318
|
+
interface DeepHasProperty {
|
|
319
|
+
/**
|
|
320
|
+
* check if object has a property
|
|
321
|
+
* @param object
|
|
322
|
+
* @param property a property in the object. Can be a path like 'a.b.c'
|
|
323
|
+
* @example deepHasProperty([{a: {b: {c: 1}}}], '[0].a.b.c');
|
|
324
|
+
*/
|
|
325
|
+
(object: any, property: string): void;
|
|
326
|
+
/**
|
|
327
|
+
* check if object has a property with a specific value
|
|
328
|
+
* @param object
|
|
329
|
+
* @param property a property in the object. Can be a path like 'a.b.c'
|
|
330
|
+
* @param value
|
|
331
|
+
* @example deepHasProperty([{a: {b: {c: 1}}}], '[0].a.b.c', 1);
|
|
332
|
+
*/
|
|
333
|
+
(object: any, property: string, value: any): void;
|
|
334
|
+
}
|
|
335
|
+
declare const deepHasProperty: DeepHasProperty, deepNotHasProperty: DeepHasProperty;
|
|
336
|
+
//#endregion
|
|
337
|
+
//#region src/assert/starts-with.d.ts
|
|
338
|
+
interface StartsWith {
|
|
339
|
+
/**
|
|
340
|
+
* check if string starts with start
|
|
341
|
+
* @param string
|
|
342
|
+
* @param start
|
|
343
|
+
* @example startsWith('foo', 'f');
|
|
344
|
+
*/
|
|
345
|
+
(string: string, start: string): void;
|
|
346
|
+
}
|
|
347
|
+
declare const startsWith: StartsWith, notStartsWith: StartsWith;
|
|
348
|
+
//#endregion
|
|
349
|
+
//#region src/assert/ends-with.d.ts
|
|
350
|
+
interface EndsWith {
|
|
351
|
+
/**
|
|
352
|
+
* check if string ends with a specific string
|
|
353
|
+
* @param string
|
|
354
|
+
* @param end
|
|
355
|
+
*/
|
|
356
|
+
(string: string, end: string): void;
|
|
357
|
+
}
|
|
358
|
+
declare const endsWith: EndsWith, notEndsWith: EndsWith;
|
|
359
|
+
//#endregion
|
|
360
|
+
//#region src/assert/is-before.d.ts
|
|
361
|
+
interface IsBefore {
|
|
362
|
+
/**
|
|
363
|
+
* check that date is before another date
|
|
364
|
+
*/
|
|
365
|
+
<T extends Date>(actual: T, expected: T, message?: string): void;
|
|
366
|
+
}
|
|
367
|
+
declare const isBefore: IsBefore, notBefore: IsBefore;
|
|
368
|
+
//#endregion
|
|
369
|
+
//#region src/assert/is-after.d.ts
|
|
370
|
+
interface IsAfter {
|
|
371
|
+
/**
|
|
372
|
+
* check that date is after another date
|
|
373
|
+
*/
|
|
374
|
+
<T extends Date>(actual: T, expected: T): void;
|
|
375
|
+
}
|
|
376
|
+
declare const isAfter: IsAfter, notAfter: IsAfter;
|
|
377
|
+
//#endregion
|
|
378
|
+
//#region src/assert/is-between.d.ts
|
|
379
|
+
interface IsBetweenOptions {
|
|
380
|
+
inclusive?: boolean;
|
|
381
|
+
}
|
|
382
|
+
interface IsBetween {
|
|
383
|
+
/**
|
|
384
|
+
* check that date is Between another date
|
|
385
|
+
*/
|
|
386
|
+
<T extends Date>(actual: T, start: T, end: T, options?: IsBetweenOptions): void;
|
|
387
|
+
<T extends number>(actual: T, start: T, end: T, options?: IsBetweenOptions): void;
|
|
388
|
+
}
|
|
389
|
+
declare const isBetween: IsBetween, notBetween: IsBetween;
|
|
390
|
+
//#endregion
|
|
391
|
+
//#region src/assert/in-ballpark.d.ts
|
|
392
|
+
interface InBallpark {
|
|
393
|
+
/**
|
|
394
|
+
* check if a number is in ballpark of another number. See also roundTo
|
|
395
|
+
* @param actual
|
|
396
|
+
* @param expected
|
|
397
|
+
* @param [allowedDifferenceMultiplier=0.1] - a number between 0 and 1 (exclusive). 0.1 (default) means 10% difference is allowed.
|
|
398
|
+
* @example inBallpark(1, 1.1);
|
|
399
|
+
* @example inBallpark(1, 1.1, 0.1);
|
|
400
|
+
*/
|
|
401
|
+
(actual: number, expected: number, allowedDifferenceMultiplier?: number): void;
|
|
402
|
+
}
|
|
403
|
+
declare const inBallpark: InBallpark, notInBallpark: InBallpark;
|
|
404
|
+
//#endregion
|
|
405
|
+
//#region src/assert/round-to.d.ts
|
|
406
|
+
interface RoundTo {
|
|
407
|
+
/**
|
|
408
|
+
* check if value rounds to target
|
|
409
|
+
* @param actual
|
|
410
|
+
* @param expected
|
|
411
|
+
* @param [decimals=0] - number of decimals to round to, defaults to 0
|
|
412
|
+
* @example roundTo(1.234, 1.23, 2);
|
|
413
|
+
*/
|
|
414
|
+
(actual: number, expected: number, decimals?: number): void;
|
|
415
|
+
}
|
|
416
|
+
declare const roundTo: RoundTo, notRoundTo: RoundTo;
|
|
417
|
+
//#endregion
|
|
418
|
+
//#region src/assert/has-members.d.ts
|
|
419
|
+
interface HasMembersOptions {
|
|
420
|
+
/**
|
|
421
|
+
* check for deep equality (ie {a: 1} === {a: 1})
|
|
422
|
+
* @default false
|
|
423
|
+
* @example
|
|
424
|
+
* hasMembers([{ a: 1 }], [{ a: 1 }], { deep: true });
|
|
425
|
+
*/
|
|
426
|
+
deep?: boolean;
|
|
427
|
+
/**
|
|
428
|
+
* use partial matching (ie {a: 1, b: 2} === {a: 1})
|
|
429
|
+
* implies deep
|
|
430
|
+
* @default false
|
|
431
|
+
* @example
|
|
432
|
+
* hasMembers([{ a: 1, b: 2 }], [{ a: 1 }], { partial: true });
|
|
433
|
+
*/
|
|
434
|
+
partial?: boolean;
|
|
435
|
+
/**
|
|
436
|
+
* check that all the members in the first array are present in the second one
|
|
437
|
+
* @default false
|
|
438
|
+
* @example
|
|
439
|
+
* hasMembers([1, 2], [2, 1], { same: true });
|
|
440
|
+
* notHasMembers([1, 2], [1], { same: true});
|
|
441
|
+
*/
|
|
442
|
+
same?: boolean;
|
|
443
|
+
/**
|
|
444
|
+
* check that the members in the first array are in the same order as the second one
|
|
445
|
+
* @default false
|
|
446
|
+
* @example
|
|
447
|
+
* hasMembers([1, 2], [1, 2], { ordered: true });
|
|
448
|
+
* notHasMembers([1, 2], [2, 1], { ordered: true });
|
|
449
|
+
*/
|
|
450
|
+
ordered?: boolean;
|
|
451
|
+
}
|
|
452
|
+
interface HasMembers {
|
|
453
|
+
/**
|
|
454
|
+
* check that the members in second array are present in the first one
|
|
455
|
+
* @example
|
|
456
|
+
* hasMembers([1], [1]);
|
|
457
|
+
* hasMembers([1, 2], [2, 1]);
|
|
458
|
+
* hasMembers([{ a: 1 }], [{ a: 1 }], { deep: true });
|
|
459
|
+
*/
|
|
460
|
+
<T>(actual: T[], expected: T[], options?: HasMembersOptions, message?: string): void;
|
|
461
|
+
}
|
|
462
|
+
declare const hasMembers: HasMembers, notHasMembers: HasMembers;
|
|
463
|
+
//#endregion
|
|
464
|
+
//#region src/assert/has-keys.d.ts
|
|
465
|
+
interface HasKeys {
|
|
466
|
+
/**
|
|
467
|
+
* check if object has keys
|
|
468
|
+
* @param object
|
|
469
|
+
* @param keys a key or array of keys in the object.
|
|
470
|
+
* @example hasKeys({a: 1}, 'a');
|
|
471
|
+
* @example hasKeys({a: 1, b: 2}, ['a', 'b']);
|
|
472
|
+
*/
|
|
473
|
+
<T extends Record<string, any>, K extends keyof T>(object: T, keys: K[] | K, message?: string): void;
|
|
474
|
+
<K, T extends Map<K, any>>(object: T, keys: K[] | K, message?: string): void;
|
|
475
|
+
}
|
|
476
|
+
declare const hasKeys: HasKeys, notHasKeys: HasKeys;
|
|
477
|
+
declare namespace assert_d_exports {
|
|
478
|
+
export { assert, deepEqual, deepHasProperty, deepNotHasProperty, endsWith, equal, greaterThan, greaterThanEqual, hasKeys, hasMembers, hasProperty, hasSize, inBallpark, includes, instanceOf, isAfter, isBefore, isBetween, isEmpty, isType, lessThan, lessThanEqual, match, notAfter, notBefore, notBetween, notDeepEqual, notEndsWith, notEqual, notGreaterThan, notGreaterThanEqual, notHasKeys, notHasMembers, notHasProperty, notHasSize, notInBallpark, notIncludes, notInstanceOf, notIsEmpty, notIsType, notLessThan, notLessThanEqual, notMatch, notRejects, notRoundTo, notStartsWith, notThrows, rejects, roundTo, startsWith, throws };
|
|
479
|
+
}
|
|
480
|
+
declare const assert: () => never;
|
|
481
|
+
//#endregion
|
|
482
|
+
export { ValueType, assert, assert_d_exports, deepEqual, deepHasProperty, deepNotHasProperty, endsWith, equal, greaterThan, greaterThanEqual, hasKeys, hasMembers, hasProperty, hasSize, inBallpark, includes, instanceOf, isAfter, isBefore, isBetween, isEmpty, isType, lessThan, lessThanEqual, match, notAfter, notBefore, notBetween, notDeepEqual, notEndsWith, notEqual, notGreaterThan, notGreaterThanEqual, notHasKeys, notHasMembers, notHasProperty, notHasSize, notInBallpark, notIncludes, notInstanceOf, notIsEmpty, notIsType, notLessThan, notLessThanEqual, notMatch, notRejects, notRoundTo, notStartsWith, rejects, roundTo, startsWith };
|
|
483
|
+
//# sourceMappingURL=assert-9EsvfQwn.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assert-9EsvfQwn.d.cts","names":[],"sources":["../src/assert/deep-equal.ts","../src/assert/equal.ts","../src/assert/greater-than.ts","../src/assert/greater-than-equal.ts","../src/assert/has-property.ts","../src/assert/has-size.ts","../src/assert/includes.ts","../src/assert/instance-of.ts","../src/assert/is-empty.ts","../src/utils/get-type.ts","../src/assert/is-type.ts","../src/assert/less-than.ts","../src/assert/less-than-equal.ts","../src/assert/match.ts","../src/assert/rejects.ts","../src/assert/deep-has-property.ts","../src/assert/starts-with.ts","../src/assert/ends-with.ts","../src/assert/is-before.ts","../src/assert/is-after.ts","../src/assert/is-between.ts","../src/assert/in-ballpark.ts","../src/assert/round-to.ts","../src/assert/has-members.ts","../src/assert/has-keys.ts","../src/assert.ts"],"sourcesContent":[],"mappings":";;;;;cAIc,uBAOM,aAAa,oGAAb,aAAa;;;UCTvB,KAAA;;;;cAIM,aAAa;;cAGf,OAAK,iBAAU;;;UCNnB,WAAA;;;;+BAIuB,cAAc,aAAa;;cAG9C,aAAW,6BAAgB;;;UCP/B,gBAAA;;;;+BAIuB,cAAc,aAAa;;cAG9C,kBAAgB,uCAAqB;;;UCRzC,WAAA;;;;;;;sBAOc,WAAW,aAAa;;;;;;;;EJLlC,CAAA,CAAA,EAAA,UAOkF,MIMxE,CJNwE,CAAA,CAAA,MAAA,EIM7D,CJN6D,EAAA,QAAA,EIMhD,CJNgD,EAAA,KAAA,EIMtC,CJNsC,CIMpC,CJNoC,CAAA,CAAA,EAAA,IAAA;;AAA5E,cISN,WJTM,EISK,WJTL,EAAA,cAAA,EISqB,WJTrB;;;UKRV,OAAA;;;;;;;;;;;;;;WAcG;ELbC;;;;;;EAOoB,CAAA,GAAA,EKaxB,GLbwB,CAAA,OAAA,EAAA,OAAA,CAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,MAAA,CAAA,EAAA,IAAA;EAPT;;;;;;MCET,EIyBN,GJzBM,CAAA,OAAA,CAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,MAAA,CAAA,EAAA,IAAA;;;AAGhB;;;;EAgBE,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,MAAA,CAAA,EAAA,IAAA;;cIgBY,SAAO,qBAAY;;;UCvCvB,QAAA;;;;;;;;aAQK,kBAAkB;;;;;;;ANNjC;;SAOoB,EAAA,MAAA,EAAA,GAAA,QAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA;;AAAA,cMWN,QNXM,EMWE,QNXF,EAAA,WAAA,EMWe,QNXf;;;UONV,UAAA;;;;;;;aAOK,oBAAoB,aAAa,iBAAiB;;cAGnD,YAAU,2BAAe;;;UCZ7B,OAAA;;;;;;aAMK;;;;;;WAMF;;;ARXb;;;MAOiC,CAAA,CAAA,CAAA,GAAA,EQUjB,GRViB,CQUb,CRVa,EQUV,CRVU,CAAA,EAAA,OAAA,CAAA,EAAA,MAAA,CAAA,EAAA,IAAA;;;;;;WQgBpB,IAAI;;APzBP,cO4BI,OP5BC,EO4BM,OP5BN,EAAA,UAAA,EO4BkB,OP5BlB;;;KQFH,SAAA;;;UCGF,MAAA;;;;;;;;;;;;;;AVCV;;;QAOiC,EAAA,OAAA,EAAA,YAAA,EUSE,SVTF,CAAA,EAAA,IAAA;;;;;;;;ECTvB;;;;;AAOV;;QAAmB,EAAA,MAAA,EAAA,YAAA,EAAA,QAAA,GAAA,KAAA,CAAA,EAAA,IAAA;;;;;;;ECNT,CAAA,KAAA,EAAA,MAAW,EAAA,YAAA,EAAA,QAAA,CAAA,EAAA,IAAA;EAAA;;;;;AAOrB;EAAyB,CAAA,KAAA,EAAA,OAAA,EAAA,YAAA,EAAA,SAAA,CAAA,EAAA,IAAA;;;;;;;;ECPf;;;;;;EAOI,CAAA,KAAA,EAAA,SAAA,EAAgB,YAAA,EAAA,WAAA,CAAA,EAAA,IAAA;EAAA;;;;;;;;;;;;;QCON,EM6DZ,QN7DY,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,IAAA;;;;;;AAGxB;EAAyB,CAAA,KAAA,EAAA,IAAA,EAAA,YAAA,EAAA,MAAA,CAAA,EAAA,IAAA;;;;;;;;;ACjBR,cK4FH,ML5FG,EK4FG,ML5FH,EAAA,SAAA,EK4Fc,ML5Fd;;;UMAP,UAAA;;;;+BAIuB,cAAc,aAAa;;cAG9C,UAAQ,yBAAa;;;UCPzB,aAAA;;;;+BAIuB,cAAc,aAAa;;cAG9C,eAAa,iCAAkB;;;UCRnC,OAAA;;;;;;;;0BAQkB;;cAGd,OAAK,mBAAU;;;UCVnB,OAAA;;;;;;YAMI,iCAAiC;;;;;;;YAOjC,2BAA2B,gCAAgC;EdZ3D;;;;;;EAOoB,CAAA,OAAA,EcYpB,OdZoB,CAAA,GAAA,CAAA,EAAA,WAAA,EcYO,MdZP,EAAA,OAAA,CAAA,EAAA,MAAA,CAAA,EcYkC,OdZlC,CAAA,IAAA,CAAA;EAPT;;;;;;UCET,EawBF,ObxBE,CAAA,GAAA,CAAA,EAAA,WAAA,EawByB,cbxBzB,EAAA,OAAA,CAAA,EAAA,MAAA,CAAA,EawB4D,ObxB5D,CAAA,IAAA,CAAA;;AAAc,ca2BhB,Ob3BgB,Ea2BT,Ob3BS,EAAA,UAAA,Ea2BG,Ob3BH;;;UcFpB,eAAA;;;;;;;;;;;;;;;EfAI,CAAA,MAAA,EAAA,GAOkF,EAAA,QAAA,EAAA,MAAA,EAAA,KAAA,EAAA,GAAA,CAAA,EAAA,IAAA;;AAA5E,ceWN,efXM,EeWS,efXT,EAAA,kBAAA,EeW6B,efX7B;;;UgBTV,UAAA;;;;;;;;;cAUI,YAAU,2BAAe;;;UCR7B,QAAA;;;;;;;;cASI,UAAQ,uBAAa;;;UCXzB,QAAA;;;;aAIK,cAAc,aAAa;;cAG5B,UAAQ,qBAAW;;;UCPvB,OAAA;;;;aAIK,cAAc,aAAa;;cAG5B,SAAO,mBAAU;;;UCPrB,gBAAA;;;UAIA,SAAA;;;;aAIK,cAAc,UAAU,QAAQ,aAAa;6BAC7B,UAAU,QAAQ,aAAa;;cAGhD,WAAS,uBAAY;;;UCZzB,UAAA;;;;;;;;;;;cAYI,YAAU,2BAAe;;;UCZ7B,OAAA;;;;;;;;;;cAWI,SAAO,qBAAY;;;UCVvB,iBAAA;;;;;;;;;;;;;;;EvBCI,OAAA,CAAA,EAAA,OAOkF;EAAA;;;;;;;;;;;;;;;ECFlF,OAAA,CAAK,EAAA,OAAA;;UsB4BT,UAAA,CtB5BS;;;;;;;;ECNE,CAAA,CAAA,CAAA,CAAA,MAAA,EqB0CL,CrB1CK,EAAA,EAAA,QAAA,EqB0CU,CrB1CV,EAAA,EAAA,OAAA,CAAA,EqB0CyB,iBrB1CzB,EAAA,OAAA,CAAA,EAAA,MAAA,CAAA,EAAA,IAAA;;AAI0B,cqByCjC,UrBzCiC,EqByCvB,UrBzCuB,EAAA,aAAA,EqByCR,UrBzCQ;;;UsBJrC,OAAA;;;;;;;;aAQK,qCAAqC,WAAW,SAAS,MAAM;gBAC5D,IAAI,iBAAiB,SAAS,MAAM;;cAGxC,SAAO,qBAAY;;;;cCWpB"}
|