@lowerdeck/validation 1.0.2 → 1.0.4
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/package.json +9 -3
- package/.turbo/turbo-build.log +0 -11
- package/.turbo/turbo-test.log +0 -144
- package/CHANGELOG.md +0 -13
- package/dist/index.modern.js +0 -2
- package/dist/index.modern.js.map +0 -1
- package/tsconfig.json +0 -9
package/package.json
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lowerdeck/validation",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
7
|
+
"files": [
|
|
8
|
+
"src/**",
|
|
9
|
+
"dist/**",
|
|
10
|
+
"README.md",
|
|
11
|
+
"package.json"
|
|
12
|
+
],
|
|
7
13
|
"author": "Tobias Herber",
|
|
8
14
|
"license": "Apache 2",
|
|
9
15
|
"type": "module",
|
|
@@ -21,12 +27,12 @@
|
|
|
21
27
|
"scripts": {
|
|
22
28
|
"test": "vitest run --passWithNoTests",
|
|
23
29
|
"lint": "prettier src/**/*.ts --check",
|
|
24
|
-
"build": "microbundle"
|
|
30
|
+
"build": "rm -rf ./dist && microbundle"
|
|
25
31
|
},
|
|
26
32
|
"dependencies": {},
|
|
27
33
|
"devDependencies": {
|
|
28
34
|
"microbundle": "^0.15.1",
|
|
29
|
-
"@lowerdeck/tsconfig": "^1.0.
|
|
35
|
+
"@lowerdeck/tsconfig": "^1.0.1",
|
|
30
36
|
"typescript": "^5.8.3",
|
|
31
37
|
"vitest": "^3.1.2"
|
|
32
38
|
}
|
package/.turbo/turbo-build.log
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
[0m[2m[35m$[0m [2m[1mmicrobundle[0m
|
|
3
|
-
[34mBuild "@lowerdeck/validation" to dist:[39m
|
|
4
|
-
[32m4.21 kB[39m: [37mindex.cjs[39m.gz
|
|
5
|
-
[32m3.57 kB[39m: [37mindex.cjs[39m.br
|
|
6
|
-
[32m3.69 kB[39m: [37mindex.module.js[39m.gz
|
|
7
|
-
[32m3.1 kB[39m: [37mindex.module.js[39m.br
|
|
8
|
-
[32m4.21 kB[39m: [37mindex.module.js[39m.gz
|
|
9
|
-
[32m3.57 kB[39m: [37mindex.module.js[39m.br
|
|
10
|
-
[32m4.25 kB[39m: [37mindex.umd.js[39m.gz
|
|
11
|
-
[32m3.63 kB[39m: [37mindex.umd.js[39m.br
|
package/.turbo/turbo-test.log
DELETED
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
[0m[2m[35m$[0m [2m[1mvitest run --passWithNoTests[0m
|
|
3
|
-
[?25l
|
|
4
|
-
[1m[46m RUN [49m[22m [36mv3.2.4 [39m[90m/Users/tobias/code/metorial/metorial-enterprise/oss/src/packages/shared/validation[39m
|
|
5
|
-
|
|
6
|
-
[?2026h
|
|
7
|
-
[1m[33m ❯ [39m[22msrc/validators/union.test.ts[2m [queued][22m
|
|
8
|
-
|
|
9
|
-
[2m Test Files [22m[1m[32m0 passed[39m[22m[90m (36)[39m
|
|
10
|
-
[2m Tests [22m[1m[32m0 passed[39m[22m[90m (0)[39m
|
|
11
|
-
[2m Start at [22m10:23:28
|
|
12
|
-
[2m Duration [22m203ms
|
|
13
|
-
[?2026l[?2026h[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K
|
|
14
|
-
[1m[33m ❯ [39m[22msrc/lib/result.test.ts[2m 1/2[22m
|
|
15
|
-
[1m[33m ❯ [39m[22msrc/lib/validator.test.ts[2m [queued][22m
|
|
16
|
-
[1m[33m ❯ [39m[22msrc/modifiers/equals.test.ts[2m [queued][22m
|
|
17
|
-
[1m[33m ❯ [39m[22msrc/modifiers/includes.test.ts[2m [queued][22m
|
|
18
|
-
[1m[33m ❯ [39m[22msrc/modifiers/isoDate.test.ts[2m [queued][22m
|
|
19
|
-
[1m[33m ❯ [39m[22msrc/modifiers/length.test.ts[2m [queued][22m
|
|
20
|
-
[1m[33m ❯ [39m[22msrc/modifiers/multipleOf.test.ts[2m [queued][22m
|
|
21
|
-
[1m[33m ❯ [39m[22msrc/modifiers/positive.test.ts[2m [queued][22m
|
|
22
|
-
[1m[33m ❯ [39m[22msrc/modifiers/size.test.ts[2m [queued][22m
|
|
23
|
-
[1m[33m ❯ [39m[22msrc/modifiers/url.test.ts[2m [queued][22m
|
|
24
|
-
[1m[33m ❯ [39m[22msrc/validators/object.test.ts[2m [queued][22m
|
|
25
|
-
[1m[33m ❯ [39m[22msrc/validators/record.test.ts[2m [queued][22m
|
|
26
|
-
[1m[33m ❯ [39m[22msrc/validators/union.test.ts[2m [queued][22m
|
|
27
|
-
|
|
28
|
-
[2m Test Files [22m[1m[32m0 passed[39m[22m[90m (36)[39m
|
|
29
|
-
[2m Tests [22m[1m[32m1 passed[39m[22m[90m (2)[39m
|
|
30
|
-
[2m Start at [22m10:23:28
|
|
31
|
-
[2m Duration [22m305ms
|
|
32
|
-
[?2026l[?2026h[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K [32m✓[39m src/lib/result.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
33
|
-
[32m✓[39m src/modifiers/positive.test.ts [2m([22m[2m6 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
34
|
-
[32m✓[39m src/lib/validator.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
35
|
-
[32m✓[39m src/modifiers/includes.test.ts [2m([22m[2m6 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
36
|
-
[32m✓[39m src/modifiers/isoDate.test.ts [2m([22m[2m9 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
37
|
-
[32m✓[39m src/modifiers/multipleOf.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
38
|
-
[32m✓[39m src/modifiers/url.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
39
|
-
[32m✓[39m src/modifiers/size.test.ts [2m([22m[2m6 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
40
|
-
[32m✓[39m src/modifiers/equals.test.ts [2m([22m[2m6 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
41
|
-
[32m✓[39m src/modifiers/length.test.ts [2m([22m[2m10 tests[22m[2m)[22m[32m 5[2mms[22m[39m
|
|
42
|
-
[32m✓[39m src/validators/record.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
43
|
-
[32m✓[39m src/validators/object.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
44
|
-
|
|
45
|
-
[1m[33m ❯ [39m[22msrc/lib/validator.test.ts[2m 3/3[22m
|
|
46
|
-
[1m[33m ❯ [39m[22msrc/modifiers/equals.test.ts[2m 6/6[22m
|
|
47
|
-
[1m[33m ❯ [39m[22msrc/modifiers/includes.test.ts[2m 6/6[22m
|
|
48
|
-
[1m[33m ❯ [39m[22msrc/modifiers/integer.test.ts[2m [queued][22m
|
|
49
|
-
[1m[33m ❯ [39m[22msrc/modifiers/isoDate.test.ts[2m 9/9[22m
|
|
50
|
-
[1m[33m ❯ [39m[22msrc/modifiers/length.test.ts[2m 10/10[22m
|
|
51
|
-
[1m[33m ❯ [39m[22msrc/modifiers/multipleOf.test.ts[2m 3/3[22m
|
|
52
|
-
[1m[33m ❯ [39m[22msrc/modifiers/positive.test.ts[2m 6/6[22m
|
|
53
|
-
[1m[33m ❯ [39m[22msrc/modifiers/size.test.ts[2m 6/6[22m
|
|
54
|
-
[1m[33m ❯ [39m[22msrc/modifiers/url.test.ts[2m 5/5[22m
|
|
55
|
-
[1m[33m ❯ [39m[22msrc/validators/object.test.ts[2m 3/3[22m
|
|
56
|
-
[1m[33m ❯ [39m[22msrc/validators/record.test.ts[2m 5/5[22m
|
|
57
|
-
[1m[33m ❯ [39m[22msrc/validators/union.test.ts[2m [queued][22m
|
|
58
|
-
|
|
59
|
-
[2m Test Files [22m[1m[32m12 passed[39m[22m[90m (36)[39m
|
|
60
|
-
[2m Tests [22m[1m[32m64 passed[39m[22m[90m (64)[39m
|
|
61
|
-
[2m Start at [22m10:23:28
|
|
62
|
-
[2m Duration [22m537ms
|
|
63
|
-
[?2026l[?2026h[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K [32m✓[39m src/modifiers/integer.test.ts [2m([22m[2m4 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
64
|
-
[32m✓[39m src/modifiers/endsWith.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
65
|
-
[32m✓[39m src/validators/literal.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
66
|
-
[32m✓[39m src/validators/union.test.ts [2m([22m[2m6 tests[22m[2m)[22m[32m 5[2mms[22m[39m
|
|
67
|
-
|
|
68
|
-
[1m[33m ❯ [39m[22msrc/modifiers/endsWith.test.ts[2m 3/3[22m
|
|
69
|
-
[1m[33m ❯ [39m[22msrc/modifiers/integer.test.ts[2m 4/4[22m
|
|
70
|
-
[1m[33m ❯ [39m[22msrc/modifiers/length.test.ts[2m 10/10[22m
|
|
71
|
-
[1m[33m ❯ [39m[22msrc/modifiers/startsWith.test.ts[2m [queued][22m
|
|
72
|
-
[1m[33m ❯ [39m[22msrc/transformers/case.test.ts[2m [queued][22m
|
|
73
|
-
[1m[33m ❯ [39m[22msrc/validators/array.test.ts[2m [queued][22m
|
|
74
|
-
[1m[33m ❯ [39m[22msrc/validators/date.test.ts[2m [queued][22m
|
|
75
|
-
[1m[33m ❯ [39m[22msrc/validators/literal.test.ts[2m 3/3[22m
|
|
76
|
-
[1m[33m ❯ [39m[22msrc/validators/object.test.ts[2m 3/3[22m
|
|
77
|
-
[1m[33m ❯ [39m[22msrc/validators/optional.test.ts[2m [queued][22m
|
|
78
|
-
[1m[33m ❯ [39m[22msrc/validators/record.test.ts[2m 5/5[22m
|
|
79
|
-
[1m[33m ❯ [39m[22msrc/validators/string.test.ts[2m [queued][22m
|
|
80
|
-
[1m[33m ❯ [39m[22msrc/validators/union.test.ts[2m 6/6[22m
|
|
81
|
-
|
|
82
|
-
[2m Test Files [22m[1m[32m16 passed[39m[22m[90m (36)[39m
|
|
83
|
-
[2m Tests [22m[1m[32m80 passed[39m[22m[90m (80)[39m
|
|
84
|
-
[2m Start at [22m10:23:28
|
|
85
|
-
[2m Duration [22m741ms
|
|
86
|
-
[?2026l[?2026h[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K [32m✓[39m src/validators/array.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
87
|
-
[32m✓[39m src/modifiers/startsWith.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
88
|
-
[32m✓[39m src/validators/optional.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
89
|
-
[32m✓[39m src/validators/string.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
90
|
-
[32m✓[39m src/transformers/case.test.ts [2m([22m[2m4 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
91
|
-
[32m✓[39m src/validators/number.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
92
|
-
[32m✓[39m src/validators/boolean.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
93
|
-
[32m✓[39m src/validators/null.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
94
|
-
[32m✓[39m src/validators/date.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
95
|
-
|
|
96
|
-
[1m[33m ❯ [39m[22msrc/modifiers/endsWith.test.ts[2m 3/3[22m
|
|
97
|
-
[1m[33m ❯ [39m[22msrc/modifiers/integer.test.ts[2m 4/4[22m
|
|
98
|
-
[1m[33m ❯ [39m[22msrc/modifiers/startsWith.test.ts[2m 3/3[22m
|
|
99
|
-
[1m[33m ❯ [39m[22msrc/transformers/case.test.ts[2m 4/4[22m
|
|
100
|
-
[1m[33m ❯ [39m[22msrc/validators/array.test.ts[2m 3/3[22m
|
|
101
|
-
[1m[33m ❯ [39m[22msrc/validators/literal.test.ts[2m 3/3[22m
|
|
102
|
-
[1m[33m ❯ [39m[22msrc/validators/number.test.ts[2m 3/3[22m
|
|
103
|
-
[1m[33m ❯ [39m[22msrc/validators/optional.test.ts[2m 2/2[22m
|
|
104
|
-
[1m[33m ❯ [39m[22msrc/validators/string.test.ts[2m 3/3[22m
|
|
105
|
-
[1m[33m ❯ [39m[22msrc/validators/union.test.ts[2m 6/6[22m
|
|
106
|
-
|
|
107
|
-
[2m Test Files [22m[1m[32m25 passed[39m[22m[90m (36)[39m
|
|
108
|
-
[2m Tests [22m[1m[32m107 passed[39m[22m[90m (107)[39m
|
|
109
|
-
[2m Start at [22m10:23:28
|
|
110
|
-
[2m Duration [22m946ms
|
|
111
|
-
[?2026l[?2026h[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K
|
|
112
|
-
[1m[33m ❯ [39m[22msrc/modifiers/oneOf.test.ts[2m [queued][22m
|
|
113
|
-
[1m[33m ❯ [39m[22msrc/modifiers/startsWith.test.ts[2m 3/3[22m
|
|
114
|
-
[1m[33m ❯ [39m[22msrc/transformers/case.test.ts[2m 4/4[22m
|
|
115
|
-
[1m[33m ❯ [39m[22msrc/validators/array.test.ts[2m 3/3[22m
|
|
116
|
-
[1m[33m ❯ [39m[22msrc/validators/enum.test.ts[2m [queued][22m
|
|
117
|
-
[1m[33m ❯ [39m[22msrc/validators/literal.test.ts[2m 3/3[22m
|
|
118
|
-
[1m[33m ❯ [39m[22msrc/validators/number.test.ts[2m 3/3[22m
|
|
119
|
-
[1m[33m ❯ [39m[22msrc/validators/optional.test.ts[2m 2/2[22m
|
|
120
|
-
[1m[33m ❯ [39m[22msrc/validators/string.test.ts[2m 3/3[22m
|
|
121
|
-
[1m[33m ❯ [39m[22msrc/validators/union.test.ts[2m 6/6[22m
|
|
122
|
-
|
|
123
|
-
[2m Test Files [22m[1m[32m25 passed[39m[22m[90m (36)[39m
|
|
124
|
-
[2m Tests [22m[1m[32m107 passed[39m[22m[90m (107)[39m
|
|
125
|
-
[2m Start at [22m10:23:28
|
|
126
|
-
[2m Duration [22m1.05s
|
|
127
|
-
[?2026l[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K[1A[K [32m✓[39m src/validators/enum.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
128
|
-
[32m✓[39m src/validators/nullable.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
129
|
-
[32m✓[39m src/modifiers/ip.test.ts [2m([22m[2m4 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
130
|
-
[32m✓[39m src/modifiers/oneOf.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
131
|
-
[32m✓[39m src/modifiers/email.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
132
|
-
[32m✓[39m src/validators/any.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 2[2mms[22m[39m
|
|
133
|
-
[32m✓[39m src/modifiers/regex.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
134
|
-
[32m✓[39m src/modifiers/emoji.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
135
|
-
[32m✓[39m src/transformers/trim.test.ts [2m([22m[2m6 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
136
|
-
[32m✓[39m src/modifiers/color.test.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 4[2mms[22m[39m
|
|
137
|
-
[32m✓[39m src/validators/intersection.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 3[2mms[22m[39m
|
|
138
|
-
|
|
139
|
-
[2m Test Files [22m [1m[32m36 passed[39m[22m[90m (36)[39m
|
|
140
|
-
[2m Tests [22m [1m[32m139 passed[39m[22m[90m (139)[39m
|
|
141
|
-
[2m Start at [22m 10:23:28
|
|
142
|
-
[2m Duration [22m 1.19s[2m (transform 762ms, setup 0ms, collect 2.10s, tests 126ms, environment 6ms, prepare 4.46s)[22m
|
|
143
|
-
|
|
144
|
-
[?25h
|
package/CHANGELOG.md
DELETED
package/dist/index.modern.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
function e(){return e=Object.assign?Object.assign.bind():function(e){for(var u=1;u<arguments.length;u++){var l=arguments[u];for(var i in l)({}).hasOwnProperty.call(l,i)&&(e[i]=l[i])}return e},e.apply(null,arguments)}let u=e=>{var l;return{examples:null!=(l=e.examples)?l:[],items:e.items?Array.isArray(e.items)?e.items.map(u):[u(e.items)]:void 0,properties:e.properties?Object.fromEntries(Object.entries(e.properties).filter(([e,u])=>!u.hidden).map(([e,l])=>[e,u(l)])):void 0,type:e.type,name:e.name,description:e.description,optional:!!e.optional,nullable:!!e.nullable}};var l={__proto__:null,introspectType:u};let i=e=>({success:!0,value:e}),a=e=>({success:!1,errors:e});var n={__proto__:null,success:i,error:a};let t=(e,u)=>l=>{var n;return{validate:e=>{try{let n=null!=l&&l.preprocessors&&null!=l&&l.preprocessors.length?((e,u)=>e.reduce((e,u)=>u(e),u))(null==l?void 0:l.preprocessors,e):e,t=u(null!=l?l:{},n);if(!t.success)return t;let r=null!=l&&l.modifiers&&null!=l&&l.modifiers.length?((e,u)=>e.reduce((e,l)=>e.concat(l(u)),[]))(null==l?void 0:l.modifiers,n):[];return r.length?a(r):i(null!=l&&l.transformers&&null!=l&&l.transformers.length?((e,u)=>e.reduce((e,u)=>u(e),u))(null==l?void 0:l.transformers,t.value):t.value)}catch(e){var n;return a([{code:"invalid_type",message:null!=(n=null==l?void 0:l.message)?n:"Unable to validate value"}])}},examples:null!=(n=null==l?void 0:l.examples)?n:[],type:e,name:null==l?void 0:l.name,description:null==l?void 0:l.description,hidden:!(null==l||!l.hidden)}};var r={__proto__:null,createValidator:t};let s=/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,d=/^[\w+-]+(?:\.[\w+-]+)*@[A-Z0-9]+(?:(?:\.|-)[A-Z0-9]+)*\.[A-Z]{2,}$/i,o=/^((?:[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDC2C-\uDC2F\uDC94-\uDC9F\uDCAF\uDCB0\uDCC0\uDCCF\uDCD0\uDCF6-\uDCFF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDAE-\uDDE5\uDE01-\uDE0F\uDE1A\uDE2F\uDE32-\uDE3A\uDE3C-\uDE3F\uDE49-\uDE5F\uDE66-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFA]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDEE5\uDEE9\uDEEB-\uDEF0\uDEF3-\uDEFF\uDFDA-\uDFFF]|\uD83E[\uDC0C-\uDC0F\uDC48-\uDC4F\uDC5A-\uDC5F\uDC88-\uDC8F\uDCAE\uDCAF\uDCBC-\uDCBF\uDCC2-\uDCCF\uDCD9-\uDCFF\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDDFF\uDE58-\uDE5F\uDE6E-\uDEFF]|\uD83F[\uDC00-\uDFFD])|(?:[#\*0-9\u200D\u20E3\uFE0F]|\uD83C[\uDDE6-\uDDFF\uDFFB-\uDFFF]|\uD83E[\uDDB0-\uDDB3]|\uDB40[\uDC20-\uDC7F]))+$/,v=/^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}$/,c=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,D=/^\d{4}-(0[1-9]|1[0-2])-([12]\d|0[1-9]|3[01])$/,p=/^\d{4}-(0[1-9]|1[0-2])-([12]\d|0[1-9]|3[01])T(0[0-9]|1\d|2[0-3]):[0-5]\d$/,m=/^(0[0-9]|1\d|2[0-3]):[0-5]\d$/;var g={__proto__:null,color:e=>u=>{var l;return s.test(u)?[]:[{code:"invalid_color",message:null!=(l=null==e?void 0:e.message)?l:"Invalid color"}]},email:e=>u=>{var l;return d.test(u)?[]:[{code:"invalid_email",message:null!=(l=null==e?void 0:e.message)?l:"Invalid email address"}]},emoji:e=>u=>{var l;return o.test(u)?[]:[{code:"invalid_emoji",message:null!=(l=null==e?void 0:e.message)?l:"Invalid emoji"}]},endsWith:(e,u)=>l=>{var i;return l.endsWith(e)?[]:[{code:"invalid_suffix",message:null!=(i=null==u?void 0:u.message)?i:`Invalid suffix, expected ${e}`,expected:e,received:l}]},equals:(e,u)=>l=>{var i;return l!==e?[{code:"invalid_equals",message:null!=(i=null==u?void 0:u.message)?i:`Invalid value, expected ${e}`,expected:e,received:l}]:[]},notEquals:(e,u)=>l=>{var i;return l===e?[{code:"invalid_not_equals",message:null!=(i=null==u?void 0:u.message)?i:`Invalid value, expected not ${e}`,expected:e,received:l}]:[]},includes:(e,u)=>l=>{var i;return l.includes(e)?[]:[{code:"invalid_includes",message:null!=(i=null==u?void 0:u.message)?i:`Invalid substring, expected ${e}`,expected:e,received:l}]},notIncludes:(e,u)=>l=>{var i;return l.includes(e)?[{code:"invalid_not_includes",message:null!=(i=null==u?void 0:u.message)?i:`Invalid substring, expected not ${e}`,expected:e,received:l}]:[]},integer:e=>u=>{var l;return Number.isInteger(u)?[]:[{code:"invalid_integer",message:null!=(l=null==e?void 0:e.message)?l:"Invalid value, expected integer",expected:u,received:u}]},ip:e=>u=>{var l;return v.test(u)||c.test(u)?[]:[{code:"invalid_ip",message:null!=(l=null==e?void 0:e.message)?l:"Invalid ip address"}]},ipV4:e=>u=>{var l;return v.test(u)?[]:[{code:"invalid_ip_v4",message:null!=(l=null==e?void 0:e.message)?l:"Invalid ip v4 address"}]},ipV6:e=>u=>{var l;return c.test(u)?[]:[{code:"invalid_ip_v6",message:null!=(l=null==e?void 0:e.message)?l:"Invalid ip v6 address"}]},isoDate:e=>u=>{var l;return D.test(u)?[]:[{code:"invalid_iso_date",message:null!=(l=null==e?void 0:e.message)?l:"Invalid iso date"}]},isoDateTime:e=>u=>{var l;return p.test(u)?[]:[{code:"invalid_iso_date_time",message:null!=(l=null==e?void 0:e.message)?l:"Invalid iso date time"}]},isoTime:e=>u=>{var l;return m.test(u)?[]:[{code:"invalid_iso_time",message:null!=(l=null==e?void 0:e.message)?l:"Invalid iso time"}]},length:e=>u=>u.length!==e?[{code:"invalid_length",message:`Invalid length, expected ${e}`,expected:e,received:u.length}]:[],minLength:(e,u)=>l=>{var i;return l.length<e?[{code:"invalid_min_length",message:null!=(i=null==u?void 0:u.message)?i:`Invalid min length, expected ${e}`,expected:e,received:l.length,min:e}]:[]},maxLength:(e,u)=>l=>{var i;return l.length>e?[{code:"invalid_max_length",message:null!=(i=null==u?void 0:u.message)?i:`Invalid max length, expected ${e}`,expected:e,received:l.length,max:e}]:[]},multipleOf:(e,u)=>l=>{var i;return l%e!==0?[{code:"invalid_multiple_of",message:null!=(i=null==u?void 0:u.message)?i:`Invalid multiple of ${e}, expected ${l}`,received:l,multipleOf:e}]:[]},oneOf:(e,u)=>l=>{var i;return e.includes(l)?[]:[{code:"invalid_value",message:null!=(i=null==u?void 0:u.message)?i:`Value must be one of: ${e.join(", ")}`}]},positive:e=>u=>{var l;return u<=0?[{code:"invalid_positive",message:null!=(l=null==e?void 0:e.message)?l:`Invalid positive, expected ${u}`,received:u,positive:!0}]:[]},negative:e=>u=>{var l;return u>=0?[{code:"invalid_negative",message:null!=(l=null==e?void 0:e.message)?l:`Invalid negative, expected ${u}`,received:u,negative:!0}]:[]},regex:(e,u)=>l=>{var i;return e.test(l)?[]:[{code:"invalid_regex",message:null!=(i=null==u?void 0:u.message)?i:`Invalid regex, expected ${e}`,received:l}]},minValue:(e,u)=>l=>{var i;return l<e?[{code:"invalid_min",message:null!=(i=null==u?void 0:u.message)?i:`Invalid min, expected ${e}`,expected:e,received:l,min:e}]:[]},maxValue:(e,u)=>l=>{var i;return l>e?[{code:"invalid_max",message:null!=(i=null==u?void 0:u.message)?i:`Invalid max, expected ${e}`,expected:e,received:l,max:e}]:[]},startsWith:(e,u)=>l=>{var i;return l.startsWith(e)?[]:[{code:"invalid_prefix",message:null!=(i=null==u?void 0:u.message)?i:`Invalid prefix, expected ${e}`,expected:e,received:l}]},url:e=>u=>{try{let i=new URL(u);var l;return null!=e&&e.hostnames&&!e.hostnames.includes(i.hostname)?[{code:"invalid_hostname",message:null!=(l=null==e?void 0:e.message)?l:"Invalid hostname",expected:null==e?void 0:e.hostnames,received:i.hostname}]:[]}catch(l){var i;return[{code:"invalid_url",message:null!=(i=null==e?void 0:e.message)?i:"Invalid URL",received:u}]}}},F={__proto__:null,any:t("any",(e,u)=>({success:!0,value:u})),typedAny:e=>t(e,(e,u)=>({success:!0,value:u}))(),array:(u,l)=>({type:"array",items:u,name:null==l?void 0:l.name,description:null==l?void 0:l.description,examples:Array.isArray(u.examples)?u.examples.map(e=>[e,e]):void 0,validate:l=>{if(!Array.isArray(l))return a([{code:"invalid_type",message:"Invalid input, expected array, received "+typeof l,received:typeof l,expected:"array"}]);let n=[];for(let[i,t]of l.entries()){let l=u.validate(t);if(!l.success)return a(l.errors.map(u=>{var l;return e({},u,{path:[i.toString(),...null!=(l=u.path)?l:[]]})}));n.push(l.value)}return i(n)}}),boolean:t("boolean",(e,u)=>{let l;var i;return"string"==typeof u?"true"==u?l=!0:"false"==u&&(l=!1):"boolean"==typeof u&&(l=u),void 0===l?a([{code:"invalid_type",message:null!=(i=e.message)?i:"Invalid input, expected a boolean, received "+typeof u,received:typeof u,expected:"boolean"}]):{success:!0,value:l}}),date:t("date",(e,u)=>{if("string"==typeof u){let e=new Date(u);isNaN(e.getTime())||(u=e)}var l;return u instanceof Date?{success:!0,value:u}:a([{code:"invalid_type",message:null!=(l=e.message)?l:"Invalid input, expected a date, received "+typeof u,received:typeof u,expected:"date"}])}),enumOf:(e,u)=>({type:"enum",examples:e,name:null==u?void 0:u.name,description:null==u?void 0:u.description,validate:u=>e.includes(u)?{success:!0,value:u}:a([{code:"invalid_enum",message:`Invalid input, expected one of ${e.join(", ")}, received ${u}`,received:u,expected:e}])}),intersection:(u,l)=>({type:"intersection",name:null==l?void 0:l.name,items:u,description:null==l?void 0:l.description,examples:[],validate:l=>{let i={};for(let a of u){let u=a.validate(l);if(!u.success)return u;i=e({},i,u.value)}return{success:!0,value:i}}}),literal:(e,u)=>({type:"literal",examples:[e],name:null==u?void 0:u.name,description:null==u?void 0:u.description,validate:l=>{var i;return l!=e?a([{code:"invalid_literal",message:null!=(i=null==u?void 0:u.message)?i:`Invalid input, expected ${e}, received ${l}`,received:l,expected:e}]):{success:!0,value:e}}}),nullValue:t("null",(e,u)=>{var l;return null!==u?a([{code:"invalid_type",message:null!=(l=e.message)?l:"Invalid input, expected null, received "+typeof u,received:typeof u,expected:"null"}]):{success:!0,value:null}}),nullable:u=>e({},u,{nullable:!0,validate:e=>null===e?{success:!0,value:e}:u.validate(e)}),number:t("number",(e,u)=>{let l="string"==typeof u?parseFloat(u):u;var i;return"number"!=typeof l||isNaN(l)?a([{code:"invalid_type",message:null!=(i=e.message)?i:"Invalid input, expected number, received "+typeof u,received:typeof u,expected:"number"}]):{success:!0,value:l}}),object:(u,l)=>({type:"object",name:null==l?void 0:l.name,description:null==l?void 0:l.description,properties:u,examples:[Object.fromEntries(Object.entries(u).map(([e,u])=>{var l;let i=null==(l=u.examples)?void 0:l[0];return void 0===i&&u.nullable?null:[e,i]}).filter(e=>null!==e))],validate:l=>{if("object"!=typeof l||null===l||Array.isArray(l))return a([{code:"invalid_type",message:"Invalid input, expected object, received "+typeof l,received:Array.isArray(l)?"array":typeof l,expected:"object"}]);let n={};for(let[i,t]of Object.entries(u)){let u=t.validate(l[i]);if(!u.success)return a(u.errors.map(u=>{var l;return e({},u,{path:[i,...null!=(l=u.path)?l:[]]})}));n[i]=u.value}return i(n)}}),optional:u=>e({},u,{optional:!0,validate:e=>void 0===e?{success:!0,value:e}:u.validate(e)}),record:(u,l)=>({type:"record",items:u,name:null==l?void 0:l.name,description:null==l?void 0:l.description,examples:Array.isArray(u.examples)?[{key1:u.examples[0]}]:void 0,validate:l=>{if("object"!=typeof l||null===l||Array.isArray(l))return a([{code:"invalid_type",message:"Invalid input, expected object",received:l,expected:"object"}]);let n={};for(let[i,t]of Object.entries(l)){if("string"!=typeof i)return a([{code:"invalid_type",message:"Invalid input, expected object with string keys, received "+typeof i,received:i,expected:"string"}]);let l=u.validate(t);if(!l.success)return a(l.errors.map(u=>{var l;return e({},u,{path:[i,...null!=(l=u.path)?l:[]]})}));n[i]=l.value}return i(n)}}),string:t("string",(e,u)=>{var l;return"string"!=typeof u?a([{code:"invalid_type",message:null!=(l=e.message)?l:"Invalid input, expected string, received "+typeof u,received:typeof u,expected:"string"}]):u.length>1e5?a([{code:"max_length",message:"Input is too long"}]):{success:!0,value:u}}),union:(e,u)=>({type:"union",name:null==u?void 0:u.name,items:e,description:null==u?void 0:u.description,examples:e.flatMap(e=>e.examples||[]),validate:u=>{let l=[];for(let i of e){let e=i.validate(u);if(e.success)return e;l.push(...e.errors)}return a(l)}}),voidType:t("void",(e,u)=>({success:!0,value:void 0}))};let f=e({},g,l,{__proto__:null,upperCase:e=>e.toUpperCase(),lowerCase:e=>e.toLowerCase(),trim:e=>e.trim(),trimStart:e=>e.trimStart(),trimEnd:e=>e.trimEnd()},F,n,r);export{u as introspectType,f as v};
|
|
2
|
-
//# sourceMappingURL=index.modern.js.map
|
package/dist/index.modern.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.modern.js","sources":["../src/lib/introspect.ts","../src/lib/result.ts","../src/lib/validator.ts","../src/modifiers/color.ts","../src/modifiers/email.ts","../src/modifiers/emoji.ts","../src/modifiers/ip.ts","../src/modifiers/isoDate.ts","../src/modifiers/endsWith.ts","../src/modifiers/equals.ts","../src/modifiers/includes.ts","../src/modifiers/integer.ts","../src/modifiers/length.ts","../src/modifiers/multipleOf.ts","../src/modifiers/oneOf.ts","../src/modifiers/positive.ts","../src/modifiers/regex.ts","../src/modifiers/size.ts","../src/modifiers/startsWith.ts","../src/modifiers/url.ts","../src/validators/any.ts","../src/validators/array.ts","../src/validators/boolean.ts","../src/validators/date.ts","../src/validators/enum.ts","../src/validators/intersection.ts","../src/validators/literal.ts","../src/validators/null.ts","../src/validators/nullable.ts","../src/validators/number.ts","../src/validators/object.ts","../src/validators/optional.ts","../src/validators/record.ts","../src/validators/string.ts","../src/validators/union.ts","../src/validators/void.ts","../src/index.ts","../src/transformers/case.ts","../src/transformers/trim.ts"],"sourcesContent":["import { ValidationType } from './types';\n\nexport interface IntrospectedType {\n examples: any[];\n items?: IntrospectedType[];\n properties?: Record<string, IntrospectedType>;\n type: string;\n name?: string;\n description?: string;\n optional: boolean;\n nullable: boolean;\n}\n\nexport let introspectType = (type: ValidationType<any>): IntrospectedType => ({\n examples: type.examples ?? [],\n items: type.items\n ? Array.isArray(type.items)\n ? type.items.map(introspectType)\n : [introspectType(type.items)]\n : undefined,\n properties: type.properties\n ? Object.fromEntries(\n Object.entries(type.properties)\n .filter(([_, v]) => !v.hidden)\n .map(([key, value]) => [key, introspectType(value)])\n )\n : undefined,\n type: type.type,\n name: type.name,\n description: type.description,\n optional: !!type.optional,\n nullable: !!type.nullable\n});\n","import { ValidationError, ValidationResult } from './types';\n\nexport let success = <T>(value: T): ValidationResult<T> => ({\n success: true,\n value\n});\n\nexport let error = (errors: ValidationError[]): ValidationResult<any> => ({\n success: false,\n errors\n});\n","import { error, success } from './result';\nimport {\n Preprocessor,\n Transformer,\n ValidationError,\n ValidationModifier,\n ValidationResult,\n ValidationType,\n ValidatorOptions\n} from './types';\n\nlet preprocess = (preprocessors: Preprocessor[], value: any) => {\n return preprocessors.reduce((val, fn) => fn(val), value);\n};\n\nlet modify = <T>(modifiers: ValidationModifier<T>[], value: T) => {\n return modifiers.reduce((errors, fn) => errors.concat(fn(value)), [] as ValidationError[]);\n};\n\nlet transform = <T>(transformers: Transformer<T>[], value: T) => {\n return transformers.reduce((val, fn) => fn(val), value);\n};\n\nexport let createValidator =\n <Type, Opts extends ValidatorOptions<Type>>(\n type: string,\n handler: (opts: Opts, value: any) => ValidationResult<Type>\n ) =>\n (opts?: Opts): ValidationType<Type> => ({\n validate: rawValue => {\n try {\n let value =\n !opts?.preprocessors || !opts?.preprocessors.length\n ? rawValue\n : preprocess(opts?.preprocessors, rawValue);\n\n let handlerRes = handler(opts ?? ({} as any), value);\n if (!handlerRes.success) return handlerRes;\n\n let modifierErrors =\n !opts?.modifiers || !opts?.modifiers.length ? [] : modify(opts?.modifiers, value);\n if (modifierErrors.length) return error(modifierErrors);\n\n return success(\n !opts?.transformers || !opts?.transformers.length\n ? handlerRes.value\n : transform(opts?.transformers, handlerRes.value)\n );\n } catch (err) {\n return error([\n {\n code: 'invalid_type',\n message: opts?.message ?? 'Unable to validate value'\n }\n ]);\n }\n },\n examples: opts?.examples ?? [],\n type,\n name: opts?.name,\n description: opts?.description,\n hidden: !!opts?.hidden\n });\n","import { ValidationModifier } from '../lib/types';\n\nlet colorRegex = /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;\n\nexport let color =\n (opts?: { message?: string }): ValidationModifier<string> =>\n value => {\n if (!colorRegex.test(value)) {\n return [\n {\n code: 'invalid_color',\n message: opts?.message ?? 'Invalid color'\n }\n ];\n }\n\n return [];\n };\n","import { ValidationModifier } from '../lib/types';\n\nlet emailRegex = /^[\\w+-]+(?:\\.[\\w+-]+)*@[A-Z0-9]+(?:(?:\\.|-)[A-Z0-9]+)*\\.[A-Z]{2,}$/i;\n\nexport let email =\n (opts?: { message?: string }): ValidationModifier<string> =>\n value => {\n if (!emailRegex.test(value)) {\n return [\n {\n code: 'invalid_email',\n message: opts?.message ?? 'Invalid email address'\n }\n ];\n }\n\n return [];\n };\n","import { ValidationModifier } from '../lib/types';\n\nlet emojiRegex = /^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$/u;\n\nexport let emoji =\n (opts?: { message?: string }): ValidationModifier<string> =>\n value => {\n if (!emojiRegex.test(value)) {\n return [\n {\n code: 'invalid_emoji',\n message: opts?.message ?? 'Invalid emoji'\n }\n ];\n }\n\n return [];\n };\n","import { ValidationModifier } from '../lib/types';\n\nlet ipV4Regex = /^((25[0-5]|(2[0-4]|1\\d|[1-9]|)\\d)\\.?\\b){4}$/;\nlet ipV6Regex =\n /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;\n\nexport let ip =\n (opts?: { message?: string }): ValidationModifier<string> =>\n value => {\n if (!ipV4Regex.test(value) && !ipV6Regex.test(value)) {\n return [\n {\n code: 'invalid_ip',\n message: opts?.message ?? 'Invalid ip address'\n }\n ];\n }\n\n return [];\n };\n\nexport let ipV4 =\n (opts?: { message?: string }): ValidationModifier<string> =>\n value => {\n if (!ipV4Regex.test(value)) {\n return [\n {\n code: 'invalid_ip_v4',\n message: opts?.message ?? 'Invalid ip v4 address'\n }\n ];\n }\n\n return [];\n };\n\nexport let ipV6 =\n (opts?: { message?: string }): ValidationModifier<string> =>\n value => {\n if (!ipV6Regex.test(value)) {\n return [\n {\n code: 'invalid_ip_v6',\n message: opts?.message ?? 'Invalid ip v6 address'\n }\n ];\n }\n\n return [];\n };\n","import { ValidationModifier } from '../lib/types';\n\nlet isoDateRegex = /^\\d{4}-(0[1-9]|1[0-2])-([12]\\d|0[1-9]|3[01])$/;\nlet isoDateTimeRegex =\n /^\\d{4}-(0[1-9]|1[0-2])-([12]\\d|0[1-9]|3[01])T(0[0-9]|1\\d|2[0-3]):[0-5]\\d$/;\nlet isoTimeRegex = /^(0[0-9]|1\\d|2[0-3]):[0-5]\\d$/;\n\nexport let isoDate =\n (opts?: { message?: string }): ValidationModifier<string> =>\n value => {\n if (!isoDateRegex.test(value)) {\n return [\n {\n code: 'invalid_iso_date',\n message: opts?.message ?? 'Invalid iso date'\n }\n ];\n }\n\n return [];\n };\n\nexport let isoDateTime =\n (opts?: { message?: string }): ValidationModifier<string> =>\n value => {\n if (!isoDateTimeRegex.test(value)) {\n return [\n {\n code: 'invalid_iso_date_time',\n message: opts?.message ?? 'Invalid iso date time'\n }\n ];\n }\n\n return [];\n };\n\nexport let isoTime =\n (opts?: { message?: string }): ValidationModifier<string> =>\n value => {\n if (!isoTimeRegex.test(value)) {\n return [\n {\n code: 'invalid_iso_time',\n message: opts?.message ?? 'Invalid iso time'\n }\n ];\n }\n\n return [];\n };\n","import { ValidationModifier } from '../lib/types';\n\nexport let endsWith =\n (suffix: string, opts?: { message?: string }): ValidationModifier<string> =>\n value => {\n if (!value.endsWith(suffix)) {\n return [\n {\n code: 'invalid_suffix',\n message: opts?.message ?? `Invalid suffix, expected ${suffix}`,\n expected: suffix,\n received: value\n }\n ];\n }\n\n return [];\n };\n","import { ValidationModifier } from '../lib/types';\n\nexport let equals =\n (\n expected: string | number | boolean,\n opts?: { message?: string }\n ): ValidationModifier<string> =>\n value => {\n if (value !== expected) {\n return [\n {\n code: 'invalid_equals',\n message: opts?.message ?? `Invalid value, expected ${expected}`,\n expected: expected,\n received: value\n }\n ];\n }\n\n return [];\n };\n\nexport let notEquals =\n (\n expected: string | number | boolean,\n opts?: { message?: string }\n ): ValidationModifier<string> =>\n value => {\n if (value === expected) {\n return [\n {\n code: 'invalid_not_equals',\n message: opts?.message ?? `Invalid value, expected not ${expected}`,\n expected: expected,\n received: value\n }\n ];\n }\n\n return [];\n };\n","import { ValidationModifier } from '../lib/types';\n\nexport let includes =\n (substring: string, opts?: { message?: string }): ValidationModifier<string> =>\n value => {\n if (!value.includes(substring)) {\n return [\n {\n code: 'invalid_includes',\n message: opts?.message ?? `Invalid substring, expected ${substring}`,\n expected: substring,\n received: value\n }\n ];\n }\n\n return [];\n };\n\nexport let notIncludes =\n (substring: string, opts?: { message?: string }): ValidationModifier<string> =>\n value => {\n if (value.includes(substring)) {\n return [\n {\n code: 'invalid_not_includes',\n message: opts?.message ?? `Invalid substring, expected not ${substring}`,\n expected: substring,\n received: value\n }\n ];\n }\n\n return [];\n };\n","import { ValidationModifier } from '../lib/types';\n\nexport let integer =\n (opts?: { message?: string }): ValidationModifier<number> =>\n value => {\n if (!Number.isInteger(value)) {\n return [\n {\n code: 'invalid_integer',\n message: opts?.message ?? `Invalid value, expected integer`,\n expected: value,\n received: value\n }\n ];\n }\n\n return [];\n };\n","import { ValidationModifier } from '../lib/types';\n\nexport let length =\n (length: number): ValidationModifier<string> =>\n value => {\n if (value.length !== length) {\n return [\n {\n code: 'invalid_length',\n message: `Invalid length, expected ${length}`,\n expected: length,\n received: value.length\n }\n ];\n }\n\n return [];\n };\n\nexport let minLength =\n (length: number, opts?: { message?: string }): ValidationModifier<string | any[]> =>\n value => {\n if (value.length < length) {\n return [\n {\n code: 'invalid_min_length',\n message: opts?.message ?? `Invalid min length, expected ${length}`,\n expected: length,\n received: value.length,\n min: length\n }\n ];\n }\n\n return [];\n };\n\nexport let maxLength =\n (length: number, opts?: { message?: string }): ValidationModifier<string | any[]> =>\n value => {\n if (value.length > length) {\n return [\n {\n code: 'invalid_max_length',\n message: opts?.message ?? `Invalid max length, expected ${length}`,\n expected: length,\n received: value.length,\n max: length\n }\n ];\n }\n\n return [];\n };\n","import { ValidationModifier } from '../lib/types';\n\nexport let multipleOf =\n (multi: number, opts?: { message?: string }): ValidationModifier<number> =>\n value => {\n if (value % multi !== 0) {\n return [\n {\n code: 'invalid_multiple_of',\n message: opts?.message ?? `Invalid multiple of ${multi}, expected ${value}`,\n received: value,\n multipleOf: multi\n }\n ];\n }\n\n return [];\n };\n","import { ValidationModifier } from '../lib/types';\n\nexport let oneOf =\n (allowed: string[], opts?: { message?: string }): ValidationModifier<string> =>\n value => {\n if (!allowed.includes(value)) {\n return [\n {\n code: 'invalid_value',\n message: opts?.message ?? `Value must be one of: ${allowed.join(', ')}`\n }\n ];\n }\n\n return [];\n };\n","import { ValidationModifier } from '../lib/types';\n\nexport let positive =\n (opts?: { message?: string }): ValidationModifier<number> =>\n value => {\n if (value <= 0) {\n return [\n {\n code: 'invalid_positive',\n message: opts?.message ?? `Invalid positive, expected ${value}`,\n received: value,\n positive: true\n }\n ];\n }\n\n return [];\n };\n\nexport let negative =\n (opts?: { message?: string }): ValidationModifier<number> =>\n value => {\n if (value >= 0) {\n return [\n {\n code: 'invalid_negative',\n message: opts?.message ?? `Invalid negative, expected ${value}`,\n received: value,\n negative: true\n }\n ];\n }\n\n return [];\n };\n","import { ValidationModifier } from '../lib/types';\n\nexport let regex =\n (pattern: RegExp, opts?: { message?: string }): ValidationModifier<string> =>\n value => {\n if (!pattern.test(value)) {\n return [\n {\n code: 'invalid_regex',\n message: opts?.message ?? `Invalid regex, expected ${pattern}`,\n received: value\n }\n ];\n }\n\n return [];\n };\n","import { ValidationModifier } from '../lib/types';\n\nexport let minValue =\n (min: number, opts?: { message?: string }): ValidationModifier<number> =>\n value => {\n if (value < min) {\n return [\n {\n code: 'invalid_min',\n message: opts?.message ?? `Invalid min, expected ${min}`,\n expected: min,\n received: value,\n min\n }\n ];\n }\n\n return [];\n };\n\nexport let maxValue =\n (max: number, opts?: { message?: string }): ValidationModifier<number> =>\n value => {\n if (value > max) {\n return [\n {\n code: 'invalid_max',\n message: opts?.message ?? `Invalid max, expected ${max}`,\n expected: max,\n received: value,\n max\n }\n ];\n }\n\n return [];\n };\n","import { ValidationModifier } from '../lib/types';\n\nexport let startsWith =\n (prefix: string, opts?: { message?: string }): ValidationModifier<string> =>\n value => {\n if (!value.startsWith(prefix)) {\n return [\n {\n code: 'invalid_prefix',\n message: opts?.message ?? `Invalid prefix, expected ${prefix}`,\n expected: prefix,\n received: value\n }\n ];\n }\n\n return [];\n };\n","import { ValidationModifier } from '../lib/types';\n\nexport let url =\n (opts?: { message?: string; hostnames?: string[] }): ValidationModifier<string> =>\n value => {\n try {\n let url = new URL(value);\n\n if (opts?.hostnames && !opts.hostnames.includes(url.hostname)) {\n return [\n {\n code: 'invalid_hostname',\n message: opts?.message ?? `Invalid hostname`,\n expected: opts?.hostnames,\n received: url.hostname\n }\n ];\n }\n\n return [];\n } catch (err) {\n return [\n {\n code: 'invalid_url',\n message: opts?.message ?? `Invalid URL`,\n received: value\n }\n ];\n }\n };\n","import { ValidatorOptions } from '../lib/types';\nimport { createValidator } from '../lib/validator';\n\nexport let any = createValidator<any, ValidatorOptions<any>>('any', (opts, value) => {\n return { success: true, value };\n});\n\nexport let typedAny = <T>(name: string) =>\n createValidator<T, ValidatorOptions<T>>(name, (opts, value) => {\n return { success: true, value };\n })();\n","import { error, success } from '../lib/result';\nimport { ValidationType, ValidationTypeValue, ValidatorOptions } from '../lib/types';\n\nexport let array = <Validator extends ValidationType<any>>(\n validator: Validator,\n opts?: ValidatorOptions<ValidationTypeValue<Validator>[]>\n): ValidationType<ValidationTypeValue<Validator>[]> => ({\n type: 'array',\n items: validator,\n name: opts?.name,\n description: opts?.description,\n examples: Array.isArray(validator.examples)\n ? validator.examples.map(v => [v, v])\n : undefined,\n validate: value => {\n if (!Array.isArray(value)) {\n return error([\n {\n code: 'invalid_type',\n message: `Invalid input, expected array, received ${typeof value}`,\n received: typeof value,\n expected: 'array'\n }\n ]);\n }\n\n let values: ValidationTypeValue<Validator>[] = [];\n\n for (let [key, val] of value.entries()) {\n let result = validator.validate(val);\n\n if (!result.success) {\n return error(\n result.errors.map(e => ({ ...e, path: [key.toString(), ...(e.path ?? [])] }))\n );\n }\n\n values.push(result.value);\n }\n\n return success(values);\n }\n});\n","import { error } from '../lib/result';\nimport { ValidatorOptions } from '../lib/types';\nimport { createValidator } from '../lib/validator';\n\nexport let boolean = createValidator<boolean, ValidatorOptions<boolean>>(\n 'boolean',\n (opts, value) => {\n let serializedValue: boolean | undefined;\n\n if (typeof value == 'string') {\n if (value == 'true') {\n serializedValue = true;\n } else if (value == 'false') {\n serializedValue = false;\n }\n } else if (typeof value == 'boolean') {\n serializedValue = value;\n }\n\n if (serializedValue === undefined) {\n return error([\n {\n code: 'invalid_type',\n message:\n opts.message ?? `Invalid input, expected a boolean, received ${typeof value}`,\n received: typeof value,\n expected: 'boolean'\n }\n ]);\n }\n\n return { success: true, value: serializedValue };\n }\n);\n","import { error } from '../lib/result';\nimport { ValidatorOptions } from '../lib/types';\nimport { createValidator } from '../lib/validator';\n\nexport let date = createValidator<Date, ValidatorOptions<Date>>('date', (opts, value) => {\n if (typeof value === 'string') {\n let date = new Date(value);\n\n if (!isNaN(date.getTime())) {\n value = date;\n }\n }\n\n if (!(value instanceof Date)) {\n return error([\n {\n code: 'invalid_type',\n message: opts.message ?? `Invalid input, expected a date, received ${typeof value}`,\n received: typeof value,\n expected: 'date'\n }\n ]);\n }\n\n return { success: true, value };\n});\n","import { error } from '../lib/result';\nimport { ValidationType } from '../lib/types';\n\n// export let enumType = <\n// A extends string | number | boolean,\n// Rest extends (string | number | boolean)[]\n// >(\n// ...values: [A, ...Rest]\n// ): ValidationType<A | Rest[number]> => ({\n// type: 'enum',\n// examples: values,\n// validate: value => {\n// if (!values.includes(value)) {\n// return error([\n// {\n// code: 'invalid_enum',\n// message: `Invalid input, expected one of ${values.join(', ')}, received ${value}`,\n// received: value,\n// expected: values\n// }\n// ]);\n// }\n\n// return { success: true, value };\n// }\n// });\n\nexport let enumOf = <\n const A extends string | number | boolean,\n Rest extends (string | number | boolean)[]\n>(\n values: [A, ...Rest],\n opts?: {\n name?: string;\n description?: string;\n }\n): ValidationType<A | Rest[number]> => ({\n type: 'enum',\n examples: values,\n name: opts?.name,\n description: opts?.description,\n validate: value => {\n if (!values.includes(value)) {\n return error([\n {\n code: 'invalid_enum',\n message: `Invalid input, expected one of ${values.join(', ')}, received ${value}`,\n received: value,\n expected: values\n }\n ]);\n }\n\n return { success: true, value };\n }\n});\n","import { ValidationType, ValidationTypeValue, ValidatorOptions } from '../lib/types';\n\nexport let intersection = <A extends ValidationType<object>, B extends ValidationType<object>>(\n validators: [A, B],\n opts?: ValidatorOptions<ValidationTypeValue<A> & ValidationTypeValue<B>>\n): ValidationType<ValidationTypeValue<A> & ValidationTypeValue<B>> => ({\n type: 'intersection',\n name: opts?.name,\n items: validators,\n description: opts?.description,\n examples: [],\n validate: value => {\n let fullValue: any = {};\n\n for (let validator of validators) {\n let result = validator.validate(value);\n if (!result.success) return result;\n\n fullValue = { ...fullValue, ...result.value };\n }\n\n return { success: true, value: fullValue };\n }\n});\n","import { error } from '../lib/result';\nimport { ValidationType, ValidatorOptions } from '../lib/types';\n\nexport let literal = <A extends string | number | boolean>(\n value: A,\n opts?: ValidatorOptions<A>\n): ValidationType<A> => ({\n type: 'literal',\n examples: [value],\n name: opts?.name,\n description: opts?.description,\n validate: input => {\n if (input != value) {\n return error([\n {\n code: 'invalid_literal',\n message: opts?.message ?? `Invalid input, expected ${value}, received ${input}`,\n received: input,\n expected: value\n }\n ]);\n }\n\n return { success: true, value };\n }\n});\n","import { error } from '../lib/result';\nimport { ValidatorOptions } from '../lib/types';\nimport { createValidator } from '../lib/validator';\n\nexport let nullValue = createValidator<null, ValidatorOptions<null>>('null', (opts, value) => {\n if (value !== null) {\n return error([\n {\n code: 'invalid_type',\n message: opts.message ?? `Invalid input, expected null, received ${typeof value}`,\n received: typeof value,\n expected: 'null'\n }\n ]);\n }\n\n return { success: true, value: null };\n});\n","import { ValidationType, ValidationTypeValue } from '../lib/types';\n\nexport let nullable = <A extends ValidationType<any>>(\n validator: A\n): ValidationType<ValidationTypeValue<A> | null> => ({\n ...validator,\n\n nullable: true,\n validate: value => {\n if (value === null) {\n return { success: true, value };\n }\n\n return validator.validate(value);\n }\n});\n","import { error } from '../lib/result';\nimport { ValidatorOptions } from '../lib/types';\nimport { createValidator } from '../lib/validator';\n\nexport let number = createValidator<number, ValidatorOptions<number>>(\n 'number',\n (opts, value) => {\n let number = typeof value == 'string' ? parseFloat(value) : value;\n\n if (typeof number != 'number' || isNaN(number)) {\n return error([\n {\n code: 'invalid_type',\n message: opts.message ?? `Invalid input, expected number, received ${typeof value}`,\n received: typeof value,\n expected: 'number'\n }\n ]);\n }\n\n return { success: true, value: number };\n }\n);\n","import { error, success } from '../lib/result';\nimport { ValidationType, ValidationTypeValue, ValidatorOptions } from '../lib/types';\n\ntype KeysWhichExtend<T, SelectedType> = {\n [key in keyof T]: SelectedType extends T[key] ? key : never;\n}[keyof T];\ntype Optional<T> = Partial<Pick<T, KeysWhichExtend<T, undefined>>>;\ntype Required<T> = Omit<T, KeysWhichExtend<T, undefined>>;\nexport type UndefinedIsOptional<T> = Optional<T> & Required<T>;\n\nexport let object = <Validator extends { [key: string]: ValidationType<any> }>(\n shape: Validator,\n opts?: ValidatorOptions<Record<string, ValidationTypeValue<Validator>>>\n): ValidationType<\n UndefinedIsOptional<{\n [key in keyof Validator]: ValidationTypeValue<Validator[key]>;\n }>\n> => ({\n type: 'object',\n name: opts?.name,\n description: opts?.description,\n properties: shape,\n examples: [\n Object.fromEntries(\n Object.entries(shape)\n .map(([key, validator]) => {\n let example = validator.examples?.[0];\n // For nullable fields, if there's no example, don't include it\n // This prevents undefined from becoming {} in Object.fromEntries\n if (example === undefined && validator.nullable) {\n return null; // Will be filtered out\n }\n return [key, example];\n })\n .filter((entry): entry is [string, any] => entry !== null)\n )\n ] as any,\n validate: value => {\n if (typeof value !== 'object' || value === null || Array.isArray(value)) {\n return error([\n {\n code: 'invalid_type',\n message: `Invalid input, expected object, received ${typeof value}`,\n received: Array.isArray(value) ? 'array' : typeof value,\n expected: 'object'\n }\n ]);\n }\n\n let values: {\n [key in keyof Validator]: ValidationTypeValue<Validator[key]>;\n } = {} as any;\n\n for (let [key, validator] of Object.entries(shape)) {\n let result = validator.validate(value[key]);\n\n if (!result.success) {\n return error(result.errors.map(e => ({ ...e, path: [key, ...(e.path ?? [])] })));\n }\n\n values[key as keyof Validator] = result.value;\n }\n\n return success(values);\n }\n});\n","import { ValidationType, ValidationTypeValue } from '../lib/types';\n\nexport let optional = <A extends ValidationType<any>>(\n validator: A\n): ValidationType<ValidationTypeValue<A> | undefined> => ({\n ...validator,\n\n optional: true,\n validate: value => {\n if (value === undefined) {\n return { success: true, value };\n }\n\n return validator.validate(value);\n }\n});\n","import { error, success } from '../lib/result';\nimport { ValidationType, ValidationTypeValue, ValidatorOptions } from '../lib/types';\n\nexport let record = <Validator extends ValidationType<any>>(\n validator: Validator,\n opts?: ValidatorOptions<Record<string, ValidationTypeValue<Validator>>>\n): ValidationType<Record<string, ValidationTypeValue<Validator>>> => ({\n type: 'record',\n items: validator,\n name: opts?.name,\n description: opts?.description,\n examples: Array.isArray(validator.examples)\n ? [\n {\n key1: validator.examples[0]\n }\n ]\n : undefined,\n validate: value => {\n if (typeof value != 'object' || value === null || Array.isArray(value)) {\n return error([\n {\n code: 'invalid_type',\n message: `Invalid input, expected object`,\n received: value,\n expected: 'object'\n }\n ]);\n }\n\n let values: Record<string, ValidationTypeValue<Validator>> = {};\n\n for (let [key, val] of Object.entries(value)) {\n if (typeof key != 'string') {\n return error([\n {\n code: 'invalid_type',\n message: `Invalid input, expected object with string keys, received ${typeof key}`,\n received: key,\n expected: 'string'\n }\n ]);\n }\n\n let result = validator.validate(val);\n\n if (!result.success) {\n return error(result.errors.map(e => ({ ...e, path: [key, ...(e.path ?? [])] })));\n }\n\n values[key] = result.value;\n }\n\n return success(values);\n }\n});\n","import { error } from '../lib/result';\nimport { ValidatorOptions } from '../lib/types';\nimport { createValidator } from '../lib/validator';\n\nexport let string = createValidator<string, ValidatorOptions<string>>(\n 'string',\n (opts, value) => {\n if (typeof value != 'string') {\n return error([\n {\n code: 'invalid_type',\n message: opts.message ?? `Invalid input, expected string, received ${typeof value}`,\n received: typeof value,\n expected: 'string'\n }\n ]);\n }\n\n if (value.length > 100_000) {\n return error([\n {\n code: 'max_length',\n message: 'Input is too long'\n }\n ]);\n }\n\n return { success: true, value };\n }\n);\n","import { error } from '../lib/result';\nimport {\n ValidationError,\n ValidationType,\n ValidationTypeValue,\n ValidatorOptions\n} from '../lib/types';\n\nexport let union = <\n A extends ValidationType<any>,\n B extends ValidationType<any>,\n Rest extends ValidationType<any>[]\n>(\n validators: [A, B, ...Rest],\n opts?: ValidatorOptions<\n ValidationTypeValue<A> | ValidationTypeValue<B> | ValidationTypeValue<Rest[number]>\n >\n): ValidationType<\n ValidationTypeValue<A> | ValidationTypeValue<B> | ValidationTypeValue<Rest[number]>\n> => ({\n type: 'union',\n name: opts?.name,\n items: validators,\n description: opts?.description,\n examples: validators.flatMap(v => v.examples || []),\n validate: value => {\n let errors: ValidationError[] = [];\n\n for (let validator of validators) {\n let result = validator.validate(value);\n if (result.success) return result;\n\n errors.push(...result.errors);\n }\n\n return error(errors);\n }\n});\n","import { ValidatorOptions } from '../lib/types';\nimport { createValidator } from '../lib/validator';\n\nexport let voidType = createValidator<void, ValidatorOptions<void>>('void', (opts, value) => {\n return { success: true, value: undefined };\n});\n","// export * from './lib/result';\n// export * from './lib/validator';\n// export * from './modifiers';\n// export * from './transformers';\n// export * from './validators';\n\nexport * from './lib/introspect';\nexport * from './lib/types';\n\nimport * as introspect from './lib/introspect';\nimport * as result from './lib/result';\nimport * as validator from './lib/validator';\nimport * as modifiers from './modifiers';\nimport * as transformers from './transformers';\nimport * as validators from './validators';\n\n// export default {\n// ...modifiers,\n// ...introspect,\n// ...transformers,\n// ...validators,\n// ...result,\n// ...validator\n// };\n\nexport let v = {\n ...modifiers,\n ...introspect,\n ...transformers,\n ...validators,\n ...result,\n ...validator\n};\n","import { Transformer } from '../lib/types';\n\nexport let upperCase: Transformer<string> = value => value.toUpperCase();\n\nexport let lowerCase: Transformer<string> = value => value.toLowerCase();\n","import { Transformer } from '../lib/types';\n\nexport let trim: Transformer<string> = value => value.trim();\n\nexport let trimStart: Transformer<string> = value => value.trimStart();\n\nexport let trimEnd: Transformer<string> = value => value.trimEnd();\n"],"names":["introspectType","type","_type$examples","examples","items","Array","isArray","map","undefined","properties","Object","fromEntries","entries","filter","_","v","hidden","key","value","name","description","optional","nullable","success","error","errors","createValidator","handler","opts","_opts$examples","validate","rawValue","preprocessors","length","preprocess","reduce","val","fn","handlerRes","modifierErrors","modifiers","modify","concat","transformers","transform","err","_opts$message","code","message","colorRegex","emailRegex","emojiRegex","ipV4Regex","ipV6Regex","isoDateRegex","isoDateTimeRegex","isoTimeRegex","test","endsWith","suffix","expected","received","equals","notEquals","_opts$message2","includes","substring","notIncludes","Number","isInteger","_opts$message3","minLength","min","maxLength","max","multipleOf","multi","oneOf","allowed","join","positive","negative","regex","pattern","minValue","maxValue","startsWith","prefix","url","URL","hostnames","hostname","array","validator","values","result","e","_e$path","_extends","path","toString","push","serializedValue","date","Date","isNaN","getTime","enumOf","intersection","validators","fullValue","literal","input","number","parseFloat","object","shape","_validator$examples","example","entry","record","key1","union","flatMap","introspect","toUpperCase","toLowerCase","trim","trimStart","trimEnd"],"mappings":"wNAaW,IAAAA,EAAkBC,IAAyBC,IAAAA,EAAwB,MAAA,CAC5EC,SAAuBD,OAAfA,EAAED,EAAKE,UAAQD,EAAI,GAC3BE,MAAOH,EAAKG,MACRC,MAAMC,QAAQL,EAAKG,OACjBH,EAAKG,MAAMG,IAAIP,GACf,CAACA,EAAeC,EAAKG,aACvBI,EACJC,WAAYR,EAAKQ,WACbC,OAAOC,YACLD,OAAOE,QAAQX,EAAKQ,YACjBI,OAAO,EAAEC,EAAGC,MAAQA,EAAEC,QACtBT,IAAI,EAAEU,EAAKC,KAAW,CAACD,EAAKjB,EAAekB,WAEhDV,EACJP,KAAMA,EAAKA,KACXkB,KAAMlB,EAAKkB,KACXC,YAAanB,EAAKmB,YAClBC,WAAYpB,EAAKoB,SACjBC,WAAYrB,EAAKqB,mDC7BR,IAAAC,EAAcL,IAAmC,CAC1DK,SAAS,EACTL,UAGSM,EAASC,IAAsD,CACxEF,SAAS,EACTE,oDCEF,IAYWC,EACTA,CACEzB,EACA0B,IAEDC,IAAW,IAAAC,EAA4B,MAAA,CACtCC,SAAUC,IACR,IACE,IAAIb,QACDU,GAAAA,EAAMI,eAAkBJ,MAAAA,GAAAA,EAAMI,cAAcC,OArBtCC,EAACF,EAA+Bd,IACxCc,EAAcG,OAAO,CAACC,EAAKC,IAAOA,EAAGD,GAAMlB,GAsBtCgB,CAAe,MAAJN,OAAI,EAAJA,EAAMI,cAAeD,GADhCA,EAGFO,EAAaX,EAAQC,MAAAA,EAAAA,EAAS,GAAYV,GAC9C,IAAKoB,EAAWf,QAAS,OAAOe,EAEhC,IAAIC,EACG,MAAJX,GAAAA,EAAMY,WAAcZ,MAAAA,GAAAA,EAAMY,UAAUP,OAzBlCQ,EAAID,EAAoCtB,IAC5CsB,EAAUL,OAAO,CAACV,EAAQY,IAAOZ,EAAOiB,OAAOL,EAAGnB,IAAS,IAwBPuB,CAAW,MAAJb,OAAI,EAAJA,EAAMY,UAAWtB,GAA7B,GAChD,OAAIqB,EAAeN,OAAeT,EAAMe,GAEjChB,QACJK,GAAAA,EAAMe,cAAqB,MAAJf,GAAAA,EAAMe,aAAaV,OAzBrCW,EAAID,EAAgCzB,IAC3CyB,EAAaR,OAAO,CAACC,EAAKC,IAAOA,EAAGD,GAAMlB,GA0BrC0B,CAAc,MAAJhB,OAAI,EAAJA,EAAMe,aAAcL,EAAWpB,OADzCoB,EAAWpB,MAGnB,CAAE,MAAO2B,GAAKC,IAAAA,EACZ,OAAOtB,EAAM,CACX,CACEuB,KAAM,eACNC,QAAsBF,OAAfA,EAAM,MAAJlB,OAAI,EAAJA,EAAMoB,SAAOF,EAAI,6BAGhC,GAEF3C,gBAAQ0B,EAAM,MAAJD,OAAI,EAAJA,EAAMzB,UAAQ0B,EAAI,GAC5B5B,OACAkB,KAAU,MAAJS,OAAI,EAAJA,EAAMT,KACZC,YAAiB,MAAJQ,OAAI,EAAJA,EAAMR,YACnBJ,SAAUY,MAAAA,IAAAA,EAAMZ,mDC3DpB,IAAIiC,EAAa,qCCAbC,EAAa,sECAbC,EAAa,0pDCAbC,EAAY,8CACZC,EACF,wpBCFEC,EAAe,gDACfC,EACF,4EACEC,EAAe,4DJAhB5B,GACDV,IAC+B4B,IAAAA,EAA7B,OAAKG,EAAWQ,KAAKvC,GASd,GARE,CACL,CACE6B,KAAM,gBACNC,QAAsBF,OAAfA,EAAM,MAAJlB,OAAI,EAAJA,EAAMoB,SAAOF,EAAI,yBCNjClB,GACDV,IAC+B4B,IAAAA,EAA7B,OAAKI,EAAWO,KAAKvC,GASd,GARE,CACL,CACE6B,KAAM,gBACNC,QAAsBF,OAAfA,EAAM,MAAJlB,OAAI,EAAJA,EAAMoB,SAAOF,EAAI,iCCNjClB,GACDV,IAC+B4B,IAAAA,EAA7B,OAAKK,EAAWM,KAAKvC,GASd,GARE,CACL,CACE6B,KAAM,gBACNC,QAAsBF,OAAfA,EAAM,MAAJlB,OAAI,EAAJA,EAAMoB,SAAOF,EAAI,4BGRlCY,CAACC,EAAgB/B,IACjBV,IAC+B4B,IAAAA,EAA7B,OAAK5B,EAAMwC,SAASC,GAWb,GAVE,CACL,CACEZ,KAAM,iBACNC,QAAsB,OAAfF,EAAM,MAAJlB,OAAI,EAAJA,EAAMoB,SAAOF,EAAI,4BAA4Ba,IACtDC,SAAUD,EACVE,SAAU3C,YCRlB4C,CACEF,EACAhC,IAEFV,IAC0B4B,IAAAA,EAAxB,OAAI5B,IAAU0C,EACL,CACL,CACEb,KAAM,iBACNC,QAAsB,OAAfF,EAAElB,MAAAA,OAAAA,EAAAA,EAAMoB,SAAOF,EAAI,2BAA2Bc,IACrDA,SAAUA,EACVC,SAAU3C,IAKT,cAIT6C,CACEH,EACAhC,IAEFV,IAC0B8C,IAAAA,EAAxB,OAAI9C,IAAU0C,EACL,CACL,CACEb,KAAM,qBACNC,QAAsBgB,OAAfA,EAAEpC,MAAAA,OAAAA,EAAAA,EAAMoB,SAAOgB,EAAI,+BAA+BJ,IACzDA,SAAUA,EACVC,SAAU3C,IAKT,aCpCT+C,CAACC,EAAmBtC,IACpBV,IACkC4B,IAAAA,EAAhC,OAAK5B,EAAM+C,SAASC,GAWb,GAVE,CACL,CACEnB,KAAM,mBACNC,QAAsBF,OAAfA,EAAElB,MAAAA,OAAAA,EAAAA,EAAMoB,SAAOF,EAAI,+BAA+BoB,IACzDN,SAAUM,EACVL,SAAU3C,iBASlBiD,CAACD,EAAmBtC,IACpBV,IACiC,IAAA8C,EAA/B,OAAI9C,EAAM+C,SAASC,GACV,CACL,CACEnB,KAAM,uBACNC,QAAsB,OAAfgB,EAAM,MAAJpC,OAAI,EAAJA,EAAMoB,SAAOgB,EAAI,mCAAmCE,IAC7DN,SAAUM,EACVL,SAAU3C,IAKT,YC9BRU,GACDV,IACgC,IAAA4B,EAA9B,OAAKsB,OAAOC,UAAUnD,GAWf,GAVE,CACL,CACE6B,KAAM,kBACNC,QAAsBF,OAAfA,EAAM,MAAJlB,OAAI,EAAJA,EAAMoB,SAAOF,EAAI,kCAC1Bc,SAAU1C,EACV2C,SAAU3C,QLJjBU,GACDV,IACwD4B,IAAAA,EAAtD,OAAKM,EAAUK,KAAKvC,IAAWmC,EAAUI,KAAKvC,GASvC,GARE,CACL,CACE6B,KAAM,aACNC,QAAsB,OAAfF,EAAElB,MAAAA,OAAAA,EAAAA,EAAMoB,SAAOF,EAAI,6BASjClB,GACDV,IAC8B8C,IAAAA,EAA5B,OAAKZ,EAAUK,KAAKvC,GASb,GARE,CACL,CACE6B,KAAM,gBACNC,QAAsBgB,OAAfA,EAAM,MAAJpC,OAAI,EAAJA,EAAMoB,SAAOgB,EAAI,gCASjCpC,GACDV,QAC8BoD,EAA5B,OAAKjB,EAAUI,KAAKvC,GASb,GARE,CACL,CACE6B,KAAM,gBACNC,QAAsBsB,OAAfA,EAAM,MAAJ1C,OAAI,EAAJA,EAAMoB,SAAOsB,EAAI,mCCnCjC1C,GACDV,QACiC4B,EAA/B,OAAKQ,EAAaG,KAAKvC,GAShB,GARE,CACL,CACE6B,KAAM,mBACNC,QAAsBF,OAAfA,QAAElB,SAAAA,EAAMoB,SAAOF,EAAI,kCASjClB,GACDV,IACqC,IAAA8C,EAAnC,OAAKT,EAAiBE,KAAKvC,GASpB,GARE,CACL,CACE6B,KAAM,wBACNC,QAAsBgB,OAAfA,EAAM,MAAJpC,OAAI,EAAJA,EAAMoB,SAAOgB,EAAI,mCASjCpC,GACDV,QACiCoD,EAA/B,OAAKd,EAAaC,KAAKvC,GAShB,GARE,CACL,CACE6B,KAAM,mBACNC,QAAsBsB,OAAfA,EAAM,MAAJ1C,OAAI,EAAJA,EAAMoB,SAAOsB,EAAI,6BKzCjCrC,GACDf,GACMA,EAAMe,SAAWA,EACZ,CACL,CACEc,KAAM,iBACNC,QAAS,4BAA4Bf,IACrC2B,SAAU3B,EACV4B,SAAU3C,EAAMe,SAKf,aAITsC,CAACtC,EAAgBL,IACjBV,IAC6B,IAAA4B,EAA3B,OAAI5B,EAAMe,OAASA,EACV,CACL,CACEc,KAAM,qBACNC,eAAOF,EAAM,MAAJlB,OAAI,EAAJA,EAAMoB,SAAOF,EAAI,gCAAgCb,IAC1D2B,SAAU3B,EACV4B,SAAU3C,EAAMe,OAChBuC,IAAKvC,IAKJ,cAITwC,CAACxC,EAAgBL,IACjBV,IAC6B,IAAA8C,EAA3B,OAAI9C,EAAMe,OAASA,EACV,CACL,CACEc,KAAM,qBACNC,QAAsB,OAAfgB,EAAEpC,MAAAA,OAAAA,EAAAA,EAAMoB,SAAOgB,EAAI,gCAAgC/B,IAC1D2B,SAAU3B,EACV4B,SAAU3C,EAAMe,OAChByC,IAAKzC,IAKJ,eCjDT0C,CAACC,EAAehD,IAChBV,IAC2B4B,IAAAA,EAAzB,OAAI5B,EAAQ0D,IAAU,EACb,CACL,CACE7B,KAAM,sBACNC,QAAsB,OAAfF,EAAM,MAAJlB,OAAI,EAAJA,EAAMoB,SAAOF,EAAI,uBAAuB8B,eAAmB1D,IACpE2C,SAAU3C,EACVyD,WAAYC,IAKX,UCbTC,CAACC,EAAmBlD,IACpBV,IACgC,IAAA4B,EAA9B,OAAKgC,EAAQb,SAAS/C,GASf,GARE,CACL,CACE6B,KAAM,gBACNC,QAAsB,OAAfF,EAAM,MAAJlB,OAAI,EAAJA,EAAMoB,SAAOF,EAAI,yBAAyBgC,EAAQC,KAAK,oBCNvEnD,GACDV,IACkB4B,IAAAA,EAAhB,OAAI5B,GAAS,EACJ,CACL,CACE6B,KAAM,mBACNC,QAAsBF,OAAfA,EAAM,MAAJlB,OAAI,EAAJA,EAAMoB,SAAOF,EAAI,8BAA8B5B,IACxD2C,SAAU3C,EACV8D,UAAU,IAKT,aAIRpD,GACDV,IACkB,IAAA8C,EAAhB,OAAI9C,GAAS,EACJ,CACL,CACE6B,KAAM,mBACNC,eAAOgB,EAAEpC,MAAAA,OAAAA,EAAAA,EAAMoB,SAAOgB,EAAI,8BAA8B9C,IACxD2C,SAAU3C,EACV+D,UAAU,IAKT,UC9BTC,CAACC,EAAiBvD,IAClBV,IAC4B4B,IAAAA,EAA1B,OAAKqC,EAAQ1B,KAAKvC,GAUX,GATE,CACL,CACE6B,KAAM,gBACNC,QAAsBF,OAAfA,EAAElB,MAAAA,OAAAA,EAAAA,EAAMoB,SAAOF,EAAI,2BAA2BqC,IACrDtB,SAAU3C,cCPlBkE,CAACZ,EAAa5C,IACdV,IACmB,IAAA4B,EAAjB,OAAI5B,EAAQsD,EACH,CACL,CACEzB,KAAM,cACNC,QAAsB,OAAfF,EAAM,MAAJlB,OAAI,EAAJA,EAAMoB,SAAOF,EAAI,yBAAyB0B,IACnDZ,SAAUY,EACVX,SAAU3C,EACVsD,QAKC,aAITa,CAACX,EAAa9C,IACdV,IACmB,IAAA8C,EAAjB,OAAI9C,EAAQwD,EACH,CACL,CACE3B,KAAM,cACNC,QAAsB,OAAfgB,EAAM,MAAJpC,OAAI,EAAJA,EAAMoB,SAAOgB,EAAI,yBAAyBU,IACnDd,SAAUc,EACVb,SAAU3C,EACVwD,QAKC,eChCTY,CAACC,EAAgB3D,IACjBV,IACiC4B,IAAAA,EAA/B,OAAK5B,EAAMoE,WAAWC,GAWf,GAVE,CACL,CACExC,KAAM,iBACNC,QAAsB,OAAfF,EAAM,MAAJlB,OAAI,EAAJA,EAAMoB,SAAOF,EAAI,4BAA4ByC,IACtD3B,SAAU2B,EACV1B,SAAU3C,SCRjBU,GACDV,IACE,IACE,IAAIsE,EAAM,IAAIC,IAAIvE,GAE6C4B,IAAAA,EAA/D,OAAIlB,MAAAA,GAAAA,EAAM8D,YAAc9D,EAAK8D,UAAUzB,SAASuB,EAAIG,UAC3C,CACL,CACE5C,KAAM,mBACNC,QAAsB,OAAfF,EAAElB,MAAAA,OAAAA,EAAAA,EAAMoB,SAAOF,EAAI,mBAC1Bc,SAAc,MAAJhC,OAAI,EAAJA,EAAM8D,UAChB7B,SAAU2B,EAAIG,WAKb,EACT,CAAE,MAAO9C,GAAK,IAAAmB,EACZ,MAAO,CACL,CACEjB,KAAM,cACNC,QAAsB,OAAfgB,EAAM,MAAJpC,OAAI,EAAJA,EAAMoB,SAAOgB,EAAI,cAC1BH,SAAU3C,GAGhB,0BCzBaQ,EAA4C,MAAO,CAACE,EAAMV,KAClE,CAAEK,SAAS,EAAML,oBAGAC,GACxBO,EAAwCP,EAAM,CAACS,EAAMV,KAC5C,CAAEK,SAAS,EAAML,UAD1BQ,SCLiBkE,CACjBC,EACAjE,KACsD,CACtD3B,KAAM,QACNG,MAAOyF,EACP1E,WAAMS,SAAAA,EAAMT,KACZC,YAAaQ,MAAAA,OAAAA,EAAAA,EAAMR,YACnBjB,SAAUE,MAAMC,QAAQuF,EAAU1F,UAC9B0F,EAAU1F,SAASI,IAAIQ,GAAK,CAACA,EAAGA,SAChCP,EACJsB,SAAUZ,IACR,IAAKb,MAAMC,QAAQY,GACjB,OAAOM,EAAM,CACX,CACEuB,KAAM,eACNC,QAAS,kDAAkD9B,EAC3D2C,gBAAiB3C,EACjB0C,SAAU,WAKhB,IAAIkC,EAA2C,GAE/C,IAAK,IAAK7E,EAAKmB,KAAQlB,EAAMN,UAAW,CACtC,IAAImF,EAASF,EAAU/D,SAASM,GAEhC,IAAK2D,EAAOxE,QACV,OAAOC,EACLuE,EAAOtE,OAAOlB,IAAIyF,IAACC,IAAAA,SAAAC,EAAA,CAAA,EAAUF,EAAC,CAAEG,KAAM,CAAClF,EAAImF,cAAsB,OAAVH,EAAID,EAAEG,MAAIF,EAAI,SAIzEH,EAAOO,KAAKN,EAAO7E,MACrB,CAEA,OAAOK,EAAQuE,cCpCEpE,EACnB,UACA,CAACE,EAAMV,KACL,IAAIoF,EAY+BxD,IAAAA,EAAnC,MAVoB,iBAAT5B,EACI,QAATA,EACFoF,GAAkB,EACA,SAATpF,IACToF,GAAkB,GAEK,kBAATpF,IAChBoF,EAAkBpF,QAGIV,IAApB8F,EACK9E,EAAM,CACX,CACEuB,KAAM,eACNC,QACc,OADPF,EACLlB,EAAKoB,SAAOF,EAAI,sDAAsD5B,EACxE2C,gBAAiB3C,EACjB0C,SAAU,aAKT,CAAErC,SAAS,EAAML,MAAOoF,UC3BjB5E,EAA8C,OAAQ,CAACE,EAAMV,KAC7E,GAAqB,iBAAVA,EAAoB,CAC7B,IAAIqF,EAAO,IAAIC,KAAKtF,GAEfuF,MAAMF,EAAKG,aACdxF,EAAQqF,EAEZ,CAE8BzD,IAAAA,EAA9B,OAAM5B,aAAiBsF,KAWhB,CAAEjF,SAAS,EAAML,SAVfM,EAAM,CACX,CACEuB,KAAM,eACNC,QAAqBF,OAAdA,EAAElB,EAAKoB,SAAOF,EAAI,mDAAmD5B,EAC5E2C,gBAAiB3C,EACjB0C,SAAU,mBCQE+C,CAIlBb,EACAlE,KAGC,CAED3B,KAAM,OACNE,SAAU2F,EACV3E,WAAMS,SAAAA,EAAMT,KACZC,YAAaQ,MAAAA,OAAAA,EAAAA,EAAMR,YACnBU,SAAUZ,GACH4E,EAAO7B,SAAS/C,GAWd,CAAEK,SAAS,EAAML,SAVfM,EAAM,CACX,CACEuB,KAAM,eACNC,QAAS,kCAAkC8C,EAAOf,KAAK,mBAAmB7D,IAC1E2C,SAAU3C,EACV0C,SAAUkC,oBC9CMc,CACxBC,EACAjF,KAAwE,CAExE3B,KAAM,eACNkB,WAAMS,SAAAA,EAAMT,KACZf,MAAOyG,EACPzF,YAAiB,MAAJQ,OAAI,EAAJA,EAAMR,YACnBjB,SAAU,GACV2B,SAAUZ,IACR,IAAI4F,EAAiB,CAAE,EAEvB,IAAK,IAAIjB,KAAagB,EAAY,CAChC,IAAId,EAASF,EAAU/D,SAASZ,GAChC,IAAK6E,EAAOxE,QAAS,OAAOwE,EAE5Be,EAASZ,EAAA,CAAA,EAAQY,EAAcf,EAAO7E,MACxC,CAEA,MAAO,CAAEK,SAAS,EAAML,MAAO4F,cClBdC,CACnB7F,EACAU,KAA0B,CAE1B3B,KAAM,UACNE,SAAU,CAACe,GACXC,KAAMS,MAAAA,OAAAA,EAAAA,EAAMT,KACZC,YAAiB,MAAJQ,OAAI,EAAJA,EAAMR,YACnBU,SAAUkF,QACYlE,EAApB,OAAIkE,GAAS9F,EACJM,EAAM,CACX,CACEuB,KAAM,kBACNC,QAAsB,OAAfF,EAAElB,MAAAA,OAAAA,EAAAA,EAAMoB,SAAOF,EAAI,2BAA2B5B,eAAmB8F,IACxEnD,SAAUmD,EACVpD,SAAU1C,KAKT,CAAEK,SAAS,EAAML,sBCnBLQ,EAA8C,OAAQ,CAACE,EAAMV,KAC9D,IAAA4B,EAApB,OAAc,OAAV5B,EACKM,EAAM,CACX,CACEuB,KAAM,eACNC,QAAqBF,OAAdA,EAAElB,EAAKoB,SAAOF,EAAI,iDAAiD5B,EAC1E2C,gBAAiB3C,EACjB0C,SAAU,UAKT,CAAErC,SAAS,EAAML,MAAO,iBCb/B2E,GAAYK,EAETL,CAAAA,EAAAA,GAEHvE,UAAU,EACVQ,SAAUZ,GACM,OAAVA,EACK,CAAEK,SAAS,EAAML,SAGnB2E,EAAU/D,SAASZ,YCTVQ,EAClB,SACA,CAACE,EAAMV,KACL,IAAI+F,EAAyB,iBAAT/F,EAAoBgG,WAAWhG,GAASA,MAEZ4B,EAAhD,MAAqB,iBAAVmE,GAAsBR,MAAMQ,GAC9BzF,EAAM,CACX,CACEuB,KAAM,eACNC,eAAOF,EAAElB,EAAKoB,SAAOF,EAAI,mDAAmD5B,EAC5E2C,gBAAiB3C,EACjB0C,SAAU,YAKT,CAAErC,SAAS,EAAML,MAAO+F,YCVfE,CAClBC,EACAxF,KAAuE,CAMvE3B,KAAM,SACNkB,KAAMS,MAAAA,OAAAA,EAAAA,EAAMT,KACZC,YAAiB,MAAJQ,OAAI,EAAJA,EAAMR,YACnBX,WAAY2G,EACZjH,SAAU,CACRO,OAAOC,YACLD,OAAOE,QAAQwG,GACZ7G,IAAI,EAAEU,EAAK4E,MAAcwB,IAAAA,EACxB,IAAIC,EAA4B,OAArBD,EAAGxB,EAAU1F,eAAQ,EAAlBkH,EAAqB,GAGnC,YAAgB7G,IAAZ8G,GAAyBzB,EAAUvE,SAEvC,KACO,CAACL,EAAKqG,KAEdzG,OAAQ0G,GAA4C,OAAVA,KAGjDzF,SAAUZ,IACR,GAAqB,iBAAVA,GAAgC,OAAVA,GAAkBb,MAAMC,QAAQY,GAC/D,OAAOM,EAAM,CACX,CACEuB,KAAM,eACNC,QAAS,mDAAmD9B,EAC5D2C,SAAUxD,MAAMC,QAAQY,GAAS,eAAiBA,EAClD0C,SAAU,YAKhB,IAAIkC,EAEA,GAEJ,IAAK,IAAK7E,EAAK4E,KAAcnF,OAAOE,QAAQwG,GAAQ,CAClD,IAAIrB,EAASF,EAAU/D,SAASZ,EAAMD,IAEtC,IAAK8E,EAAOxE,QACV,OAAOC,EAAMuE,EAAOtE,OAAOlB,IAAIyF,IAACC,IAAAA,EAAAC,OAAAA,EAAUF,CAAAA,EAAAA,EAAGG,CAAAA,KAAM,CAAClF,KAAegF,OAAVA,EAAID,EAAEG,MAAIF,EAAI,SAGzEH,EAAO7E,GAA0B8E,EAAO7E,KAC1C,CAEA,OAAOK,EAAQuE,eC5DjBD,GAAYK,EAETL,CAAAA,EAAAA,GAEHxE,UAAU,EACVS,SAAUZ,QACMV,IAAVU,EACK,CAAEK,SAAS,EAAML,SAGnB2E,EAAU/D,SAASZ,YCVVsG,CAClB3B,EACAjE,KACoE,CACpE3B,KAAM,SACNG,MAAOyF,EACP1E,KAAU,MAAJS,OAAI,EAAJA,EAAMT,KACZC,YAAiB,MAAJQ,OAAI,EAAJA,EAAMR,YACnBjB,SAAUE,MAAMC,QAAQuF,EAAU1F,UAC9B,CACE,CACEsH,KAAM5B,EAAU1F,SAAS,UAG7BK,EACJsB,SAAUZ,IACR,GAAoB,iBAATA,GAA+B,OAAVA,GAAkBb,MAAMC,QAAQY,GAC9D,OAAOM,EAAM,CACX,CACEuB,KAAM,eACNC,QAAS,iCACTa,SAAU3C,EACV0C,SAAU,YAKhB,IAAIkC,EAAyD,CAAA,EAE7D,IAAK,IAAK7E,EAAKmB,KAAQ1B,OAAOE,QAAQM,GAAQ,CAC5C,GAAkB,iBAAPD,EACT,OAAOO,EAAM,CACX,CACEuB,KAAM,eACNC,QAAS,oEAAoE/B,EAC7E4C,SAAU5C,EACV2C,SAAU,YAKhB,IAAImC,EAASF,EAAU/D,SAASM,GAEhC,IAAK2D,EAAOxE,QACV,OAAOC,EAAMuE,EAAOtE,OAAOlB,IAAIyF,IAAC,IAAAC,EAAA,OAAAC,EAAA,CAAA,EAAUF,EAAC,CAAEG,KAAM,CAAClF,KAAe,OAAVgF,EAAID,EAAEG,MAAIF,EAAI,SAGzEH,EAAO7E,GAAO8E,EAAO7E,KACvB,CAEA,OAAOK,EAAQuE,aCjDCpE,EAClB,SACA,CAACE,EAAMV,KACyB,IAAA4B,EAA9B,MAAoB,iBAAT5B,EACFM,EAAM,CACX,CACEuB,KAAM,eACNC,QAAqBF,OAAdA,EAAElB,EAAKoB,SAAOF,EAAI,mDAAmD5B,EAC5E2C,gBAAiB3C,EACjB0C,SAAU,YAKZ1C,EAAMe,OAAS,IACVT,EAAM,CACX,CACEuB,KAAM,aACNC,QAAS,uBAKR,CAAEzB,SAAS,EAAML,iBCnBTwG,CAKjBb,EACAjF,KAKI,CACJ3B,KAAM,QACNkB,KAAU,MAAJS,OAAI,EAAJA,EAAMT,KACZf,MAAOyG,EACPzF,kBAAaQ,SAAAA,EAAMR,YACnBjB,SAAU0G,EAAWc,QAAQ5G,GAAKA,EAAEZ,UAAY,IAChD2B,SAAUZ,IACR,IAAIO,EAA4B,GAEhC,IAAK,IAAIoE,KAAagB,EAAY,CAChC,IAAId,EAASF,EAAU/D,SAASZ,GAChC,GAAI6E,EAAOxE,QAAS,OAAOwE,EAE3BtE,EAAO4E,QAAQN,EAAOtE,OACxB,CAEA,OAAOD,EAAMC,eChCKC,EAA8C,OAAQ,CAACE,EAAMV,KAC1E,CAAEK,SAAS,EAAML,WAAOV,MCqBtB,IAAAO,EAACmF,EACP1D,CAAAA,EAAAA,EACAoF,4BCzBuC1G,GAASA,EAAM2G,wBAEf3G,GAASA,EAAM4G,mBCFpB5G,GAASA,EAAM6G,iBAEV7G,GAASA,EAAM8G,oBAEjB9G,GAASA,EAAM+G,WFuBpDpB,EACAd,EACAF"}
|