bupkis 0.7.2 → 0.8.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 +7 -0
- package/dist/commonjs/assertion/assertion.d.ts +0 -13
- package/dist/commonjs/assertion/assertion.d.ts.map +1 -1
- package/dist/commonjs/assertion/assertion.js +42 -27
- package/dist/commonjs/assertion/assertion.js.map +1 -1
- package/dist/commonjs/assertion/create.d.ts +2 -0
- package/dist/commonjs/assertion/create.d.ts.map +1 -1
- package/dist/commonjs/assertion/create.js +7 -4
- package/dist/commonjs/assertion/create.js.map +1 -1
- package/dist/commonjs/assertion/impl/assertion-util.d.ts +2 -0
- package/dist/commonjs/assertion/impl/assertion-util.d.ts.map +1 -1
- package/dist/commonjs/assertion/impl/assertion-util.js +13 -2
- package/dist/commonjs/assertion/impl/assertion-util.js.map +1 -1
- package/dist/commonjs/assertion/impl/sync-basic.d.ts.map +1 -1
- package/dist/commonjs/assertion/impl/sync-basic.js +2 -3
- package/dist/commonjs/assertion/impl/sync-basic.js.map +1 -1
- package/dist/commonjs/assertion/impl/sync-collection.d.ts.map +1 -1
- package/dist/commonjs/assertion/impl/sync-collection.js +24 -14
- package/dist/commonjs/assertion/impl/sync-collection.js.map +1 -1
- package/dist/commonjs/assertion/impl/sync-esoteric.d.ts +1 -5
- package/dist/commonjs/assertion/impl/sync-esoteric.d.ts.map +1 -1
- package/dist/commonjs/assertion/impl/sync-esoteric.js +11 -13
- package/dist/commonjs/assertion/impl/sync-esoteric.js.map +1 -1
- package/dist/commonjs/assertion/impl/sync-parametric.d.ts.map +1 -1
- package/dist/commonjs/assertion/impl/sync-parametric.js +4 -2
- package/dist/commonjs/assertion/impl/sync-parametric.js.map +1 -1
- package/dist/commonjs/assertion/impl/sync.d.ts +2 -10
- package/dist/commonjs/assertion/impl/sync.d.ts.map +1 -1
- package/dist/commonjs/assertion/slotify.d.ts +1 -0
- package/dist/commonjs/assertion/slotify.d.ts.map +1 -1
- package/dist/commonjs/assertion/slotify.js +1 -0
- package/dist/commonjs/assertion/slotify.js.map +1 -1
- package/dist/commonjs/bootstrap.d.ts +1 -5
- package/dist/commonjs/bootstrap.d.ts.map +1 -1
- package/dist/commonjs/bootstrap.js +1 -0
- package/dist/commonjs/bootstrap.js.map +1 -1
- package/dist/commonjs/diff.d.ts +51 -0
- package/dist/commonjs/diff.d.ts.map +1 -0
- package/dist/commonjs/diff.js +279 -0
- package/dist/commonjs/diff.js.map +1 -0
- package/dist/commonjs/error.d.ts +17 -0
- package/dist/commonjs/error.d.ts.map +1 -1
- package/dist/commonjs/error.js +17 -7
- package/dist/commonjs/error.js.map +1 -1
- package/dist/commonjs/expect.d.ts.map +1 -1
- package/dist/commonjs/expect.js +13 -0
- package/dist/commonjs/expect.js.map +1 -1
- package/dist/commonjs/guards.d.ts +12 -8
- package/dist/commonjs/guards.d.ts.map +1 -1
- package/dist/commonjs/guards.js +24 -14
- package/dist/commonjs/guards.js.map +1 -1
- package/dist/commonjs/index.d.ts +1 -5
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/schema.d.ts.map +1 -1
- package/dist/commonjs/schema.js +3 -2
- package/dist/commonjs/schema.js.map +1 -1
- package/dist/commonjs/use.js +22 -8
- package/dist/commonjs/use.js.map +1 -1
- package/dist/commonjs/util.d.ts +1 -0
- package/dist/commonjs/util.d.ts.map +1 -1
- package/dist/commonjs/util.js +14 -10
- package/dist/commonjs/util.js.map +1 -1
- package/dist/commonjs/value-to-schema.d.ts +1 -0
- package/dist/commonjs/value-to-schema.d.ts.map +1 -1
- package/dist/commonjs/value-to-schema.js +17 -10
- package/dist/commonjs/value-to-schema.js.map +1 -1
- package/dist/esm/assertion/assertion.d.ts +0 -13
- package/dist/esm/assertion/assertion.d.ts.map +1 -1
- package/dist/esm/assertion/assertion.js +42 -27
- package/dist/esm/assertion/assertion.js.map +1 -1
- package/dist/esm/assertion/create.d.ts +2 -0
- package/dist/esm/assertion/create.d.ts.map +1 -1
- package/dist/esm/assertion/create.js +7 -4
- package/dist/esm/assertion/create.js.map +1 -1
- package/dist/esm/assertion/impl/assertion-util.d.ts +2 -0
- package/dist/esm/assertion/impl/assertion-util.d.ts.map +1 -1
- package/dist/esm/assertion/impl/assertion-util.js +13 -2
- package/dist/esm/assertion/impl/assertion-util.js.map +1 -1
- package/dist/esm/assertion/impl/sync-basic.d.ts.map +1 -1
- package/dist/esm/assertion/impl/sync-basic.js +2 -3
- package/dist/esm/assertion/impl/sync-basic.js.map +1 -1
- package/dist/esm/assertion/impl/sync-collection.d.ts.map +1 -1
- package/dist/esm/assertion/impl/sync-collection.js +24 -14
- package/dist/esm/assertion/impl/sync-collection.js.map +1 -1
- package/dist/esm/assertion/impl/sync-esoteric.d.ts +1 -5
- package/dist/esm/assertion/impl/sync-esoteric.d.ts.map +1 -1
- package/dist/esm/assertion/impl/sync-esoteric.js +11 -13
- package/dist/esm/assertion/impl/sync-esoteric.js.map +1 -1
- package/dist/esm/assertion/impl/sync-parametric.d.ts.map +1 -1
- package/dist/esm/assertion/impl/sync-parametric.js +4 -2
- package/dist/esm/assertion/impl/sync-parametric.js.map +1 -1
- package/dist/esm/assertion/impl/sync.d.ts +2 -10
- package/dist/esm/assertion/impl/sync.d.ts.map +1 -1
- package/dist/esm/assertion/slotify.d.ts +1 -0
- package/dist/esm/assertion/slotify.d.ts.map +1 -1
- package/dist/esm/assertion/slotify.js +1 -0
- package/dist/esm/assertion/slotify.js.map +1 -1
- package/dist/esm/bootstrap.d.ts +1 -5
- package/dist/esm/bootstrap.d.ts.map +1 -1
- package/dist/esm/bootstrap.js +1 -0
- package/dist/esm/bootstrap.js.map +1 -1
- package/dist/esm/diff.d.ts +51 -0
- package/dist/esm/diff.d.ts.map +1 -0
- package/dist/esm/diff.js +273 -0
- package/dist/esm/diff.js.map +1 -0
- package/dist/esm/error.d.ts +17 -0
- package/dist/esm/error.d.ts.map +1 -1
- package/dist/esm/error.js +17 -7
- package/dist/esm/error.js.map +1 -1
- package/dist/esm/expect.d.ts.map +1 -1
- package/dist/esm/expect.js +13 -0
- package/dist/esm/expect.js.map +1 -1
- package/dist/esm/guards.d.ts +12 -8
- package/dist/esm/guards.d.ts.map +1 -1
- package/dist/esm/guards.js +23 -12
- package/dist/esm/guards.js.map +1 -1
- package/dist/esm/index.d.ts +1 -5
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/schema.d.ts.map +1 -1
- package/dist/esm/schema.js +3 -2
- package/dist/esm/schema.js.map +1 -1
- package/dist/esm/use.js +19 -6
- package/dist/esm/use.js.map +1 -1
- package/dist/esm/util.d.ts +1 -0
- package/dist/esm/util.d.ts.map +1 -1
- package/dist/esm/util.js +14 -10
- package/dist/esm/util.js.map +1 -1
- package/dist/esm/value-to-schema.d.ts +1 -0
- package/dist/esm/value-to-schema.d.ts.map +1 -1
- package/dist/esm/value-to-schema.js +17 -10
- package/dist/esm/value-to-schema.js.map +1 -1
- package/package.json +22 -6
- package/src/assertion/assertion.ts +47 -28
- package/src/assertion/create.ts +8 -8
- package/src/assertion/impl/assertion-util.ts +27 -16
- package/src/assertion/impl/sync-basic.ts +3 -3
- package/src/assertion/impl/sync-collection.ts +34 -14
- package/src/assertion/impl/sync-esoteric.ts +17 -13
- package/src/assertion/impl/sync-parametric.ts +5 -2
- package/src/assertion/slotify.ts +1 -0
- package/src/bootstrap.ts +1 -0
- package/src/diff.ts +343 -0
- package/src/error.ts +35 -7
- package/src/expect.ts +13 -0
- package/src/guards.ts +27 -15
- package/src/schema.ts +4 -2
- package/src/use.ts +21 -7
- package/src/util.ts +15 -12
- package/src/value-to-schema.ts +18 -10
package/dist/esm/diff.js
ADDED
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Diff utilities for generating rich assertion failure output.
|
|
3
|
+
*
|
|
4
|
+
* This module provides utilities for extracting meaningful actual/expected
|
|
5
|
+
* values from Zod validation errors and generating high-quality diff output
|
|
6
|
+
* using `jest-diff` for assertion failures.
|
|
7
|
+
*
|
|
8
|
+
* @packageDocumentation
|
|
9
|
+
* @see {@link https://npm.im/jest-diff | jest-diff}
|
|
10
|
+
*/
|
|
11
|
+
import { diff } from 'jest-diff';
|
|
12
|
+
const { isArray } = Array;
|
|
13
|
+
const { max } = Math;
|
|
14
|
+
const { stringify } = JSON;
|
|
15
|
+
const { entries } = Object;
|
|
16
|
+
/**
|
|
17
|
+
* Extracts actual and expected values from a `ZodError` for meaningful diffs.
|
|
18
|
+
*
|
|
19
|
+
* @function
|
|
20
|
+
* @param zodError The `ZodError` to extract values from
|
|
21
|
+
* @param subject The original subject that failed validation
|
|
22
|
+
* @returns Object with actual and expected values for diff
|
|
23
|
+
*/
|
|
24
|
+
export const extractDiffValues = (zodError, subject) => {
|
|
25
|
+
try {
|
|
26
|
+
// Start with the original subject as the actual value
|
|
27
|
+
const actual = subject;
|
|
28
|
+
// Create a copy to modify as the expected value
|
|
29
|
+
let expected = subject != null ? deepClone(subject) : subject;
|
|
30
|
+
// Process each issue to build the expected value
|
|
31
|
+
for (const issue of zodError.issues) {
|
|
32
|
+
try {
|
|
33
|
+
// Filter path to only string/number keys (symbols are rare in practice)
|
|
34
|
+
const filteredPath = issue.path.filter((key) => typeof key === 'string' || typeof key === 'number');
|
|
35
|
+
switch (issue.code) {
|
|
36
|
+
case 'invalid_type': {
|
|
37
|
+
const correctedValue = createCorrectValueForType(issue.expected, getValueAtPath(actual, filteredPath));
|
|
38
|
+
expected = setValueAtPath(expected, filteredPath, correctedValue);
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
case 'invalid_value': {
|
|
42
|
+
// For literal/enum errors, use the first valid value
|
|
43
|
+
const correctedValue = issue.values && issue.values.length > 0
|
|
44
|
+
? issue.values[0]
|
|
45
|
+
: '<valid value>';
|
|
46
|
+
expected = setValueAtPath(expected, filteredPath, correctedValue);
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
case 'too_big': {
|
|
50
|
+
const actualValue = getValueAtPath(actual, filteredPath);
|
|
51
|
+
let correctedValue;
|
|
52
|
+
if (issue.origin === 'string' && typeof actualValue === 'string') {
|
|
53
|
+
correctedValue = actualValue.slice(0, Number(issue.maximum));
|
|
54
|
+
}
|
|
55
|
+
else if (issue.origin === 'array' && isArray(actualValue)) {
|
|
56
|
+
correctedValue = actualValue.slice(0, Number(issue.maximum));
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
correctedValue = issue.maximum;
|
|
60
|
+
}
|
|
61
|
+
expected = setValueAtPath(expected, filteredPath, correctedValue);
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
case 'too_small': {
|
|
65
|
+
const actualValue = getValueAtPath(actual, filteredPath);
|
|
66
|
+
let correctedValue;
|
|
67
|
+
if (issue.origin === 'string' && typeof actualValue === 'string') {
|
|
68
|
+
const needed = Number(issue.minimum) - actualValue.length;
|
|
69
|
+
correctedValue = actualValue + 'x'.repeat(max(0, needed));
|
|
70
|
+
}
|
|
71
|
+
else if (issue.origin === 'array' && isArray(actualValue)) {
|
|
72
|
+
const needed = Number(issue.minimum) - actualValue.length;
|
|
73
|
+
correctedValue = actualValue.concat(new Array(max(0, needed)).fill(null));
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
correctedValue = issue.minimum;
|
|
77
|
+
}
|
|
78
|
+
expected = setValueAtPath(expected, filteredPath, correctedValue);
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
case 'unrecognized_keys': {
|
|
82
|
+
// Remove unrecognized keys from expected
|
|
83
|
+
if (filteredPath.length === 0 &&
|
|
84
|
+
typeof expected === 'object' &&
|
|
85
|
+
expected !== null) {
|
|
86
|
+
const expectedCopy = {
|
|
87
|
+
...expected,
|
|
88
|
+
};
|
|
89
|
+
for (const key of issue.keys) {
|
|
90
|
+
delete expectedCopy[key];
|
|
91
|
+
}
|
|
92
|
+
expected = expectedCopy;
|
|
93
|
+
}
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
default: {
|
|
97
|
+
// For other error types, just mark that something should be different
|
|
98
|
+
// but don't try to guess what the correct value should be
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
// If we can't process an individual issue, continue with others
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return { actual, expected };
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
// If anything goes wrong, return undefined to fall back to pretty error
|
|
112
|
+
return { actual: undefined, expected: undefined };
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* Generates a rich diff string using jest-diff for assertion failures.
|
|
117
|
+
*
|
|
118
|
+
* @function
|
|
119
|
+
* @param expected The expected value
|
|
120
|
+
* @param actual The actual value
|
|
121
|
+
* @param options Configuration options for diff generation
|
|
122
|
+
* @returns A formatted diff string, or null if values are identical
|
|
123
|
+
*/
|
|
124
|
+
export const generateDiff = (expected, actual, options = {}) => {
|
|
125
|
+
if (!shouldGenerateDiff(actual, expected)) {
|
|
126
|
+
return null;
|
|
127
|
+
}
|
|
128
|
+
return diff(expected, actual, {
|
|
129
|
+
aAnnotation: 'expected',
|
|
130
|
+
bAnnotation: 'actual',
|
|
131
|
+
expand: false,
|
|
132
|
+
includeChangeCounts: true,
|
|
133
|
+
...options,
|
|
134
|
+
});
|
|
135
|
+
};
|
|
136
|
+
/**
|
|
137
|
+
* Checks if two values should generate a meaningful diff.
|
|
138
|
+
*
|
|
139
|
+
* @function
|
|
140
|
+
* @param actual The actual value
|
|
141
|
+
* @param expected The expected value
|
|
142
|
+
* @returns True if a diff should be generated, false otherwise
|
|
143
|
+
*/
|
|
144
|
+
export const shouldGenerateDiff = (actual, expected) => actual !== undefined && expected !== undefined && actual !== expected;
|
|
145
|
+
/**
|
|
146
|
+
* Creates a corrected value for a given type
|
|
147
|
+
*
|
|
148
|
+
* @function
|
|
149
|
+
*/
|
|
150
|
+
const createCorrectValueForType = (expectedType, actualValue) => {
|
|
151
|
+
switch (expectedType) {
|
|
152
|
+
case 'array':
|
|
153
|
+
return isArray(actualValue) ? actualValue : [];
|
|
154
|
+
case 'boolean':
|
|
155
|
+
return typeof actualValue === 'boolean'
|
|
156
|
+
? actualValue
|
|
157
|
+
: Boolean(actualValue);
|
|
158
|
+
case 'null':
|
|
159
|
+
return null;
|
|
160
|
+
case 'number':
|
|
161
|
+
return typeof actualValue === 'number'
|
|
162
|
+
? actualValue
|
|
163
|
+
: Number(actualValue) || 0;
|
|
164
|
+
case 'object':
|
|
165
|
+
return typeof actualValue === 'object' && actualValue !== null
|
|
166
|
+
? actualValue
|
|
167
|
+
: {};
|
|
168
|
+
case 'string':
|
|
169
|
+
if (typeof actualValue === 'string') {
|
|
170
|
+
return actualValue;
|
|
171
|
+
}
|
|
172
|
+
if (actualValue == null) {
|
|
173
|
+
return '';
|
|
174
|
+
}
|
|
175
|
+
if (typeof actualValue === 'object') {
|
|
176
|
+
return stringify(actualValue);
|
|
177
|
+
}
|
|
178
|
+
// For primitive types (number, boolean, etc.) - we know it's not an object here
|
|
179
|
+
// eslint-disable-next-line @typescript-eslint/no-base-to-string
|
|
180
|
+
return `${actualValue}`;
|
|
181
|
+
case 'undefined':
|
|
182
|
+
return undefined;
|
|
183
|
+
default:
|
|
184
|
+
return `<${expectedType}>`;
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
/**
|
|
188
|
+
* Custom deep clone implementation for values that structuredClone can't
|
|
189
|
+
* handle. Used as fallback when structuredClone fails.
|
|
190
|
+
*
|
|
191
|
+
* @function
|
|
192
|
+
*/
|
|
193
|
+
const customDeepClone = (value) => {
|
|
194
|
+
if (value === null || typeof value !== 'object') {
|
|
195
|
+
return value;
|
|
196
|
+
}
|
|
197
|
+
if (isArray(value)) {
|
|
198
|
+
return value.map(customDeepClone);
|
|
199
|
+
}
|
|
200
|
+
// For objects, create a new object and copy properties
|
|
201
|
+
const cloned = {};
|
|
202
|
+
for (const [key, val] of entries(value)) {
|
|
203
|
+
cloned[key] = customDeepClone(val);
|
|
204
|
+
}
|
|
205
|
+
return cloned;
|
|
206
|
+
};
|
|
207
|
+
/**
|
|
208
|
+
* Deep clone a value to avoid mutating the original. Uses the native
|
|
209
|
+
* structuredClone API which handles more types and circular references better
|
|
210
|
+
* than a custom implementation. Falls back to custom implementation for values
|
|
211
|
+
* containing functions.
|
|
212
|
+
*
|
|
213
|
+
* @function
|
|
214
|
+
*/
|
|
215
|
+
const deepClone = (value) => {
|
|
216
|
+
try {
|
|
217
|
+
return structuredClone(value);
|
|
218
|
+
}
|
|
219
|
+
catch (error) {
|
|
220
|
+
// Handle DataCloneError for values that can't be cloned (functions, symbols, etc.)
|
|
221
|
+
if (error instanceof Error && error.name === 'DataCloneError') {
|
|
222
|
+
return customDeepClone(value);
|
|
223
|
+
}
|
|
224
|
+
throw error;
|
|
225
|
+
}
|
|
226
|
+
};
|
|
227
|
+
/**
|
|
228
|
+
* Gets a value at a specific path in an object
|
|
229
|
+
*
|
|
230
|
+
* @function
|
|
231
|
+
*/
|
|
232
|
+
const getValueAtPath = (obj, path) => {
|
|
233
|
+
if (path.length === 0) {
|
|
234
|
+
return obj;
|
|
235
|
+
}
|
|
236
|
+
let current = obj;
|
|
237
|
+
for (const key of path) {
|
|
238
|
+
if (current == null) {
|
|
239
|
+
return undefined;
|
|
240
|
+
}
|
|
241
|
+
current = current[key];
|
|
242
|
+
}
|
|
243
|
+
return current;
|
|
244
|
+
};
|
|
245
|
+
/**
|
|
246
|
+
* Returns a new object with the value at the specified path set to the given
|
|
247
|
+
* value.
|
|
248
|
+
*
|
|
249
|
+
* @function
|
|
250
|
+
*/
|
|
251
|
+
const setValueAtPath = (obj, path, value) => {
|
|
252
|
+
if (path.length === 0) {
|
|
253
|
+
return value;
|
|
254
|
+
}
|
|
255
|
+
if (obj == null) {
|
|
256
|
+
// Need to create the structure
|
|
257
|
+
obj = typeof path[0] === 'number' ? [] : {};
|
|
258
|
+
}
|
|
259
|
+
const result = isArray(obj)
|
|
260
|
+
? [...obj]
|
|
261
|
+
: { ...obj };
|
|
262
|
+
const [head, ...tail] = path;
|
|
263
|
+
if (head !== undefined) {
|
|
264
|
+
if (tail.length === 0) {
|
|
265
|
+
result[head] = value;
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
result[head] = setValueAtPath(result[head], tail, value);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
return result;
|
|
272
|
+
};
|
|
273
|
+
//# sourceMappingURL=diff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/diff.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/error.d.ts
CHANGED
|
@@ -7,6 +7,15 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { AssertionError as NodeAssertionError } from 'node:assert';
|
|
9
9
|
import { kBupkisError } from './constant.js';
|
|
10
|
+
/**
|
|
11
|
+
* Options for {@link AssertionError}'s constructor
|
|
12
|
+
*
|
|
13
|
+
* @remarks
|
|
14
|
+
* Based on Node.js' {@link NodeAssertionError}'s constructor options, sans
|
|
15
|
+
* `operator`.
|
|
16
|
+
* @group Error Options
|
|
17
|
+
*/
|
|
18
|
+
export type AssertionErrorOptions = Partial<Omit<NonNullable<ConstructorParameters<typeof NodeAssertionError>[0]>, 'operator'>>;
|
|
10
19
|
/**
|
|
11
20
|
* Options for {@link AssertionImplementationError}
|
|
12
21
|
*
|
|
@@ -61,6 +70,7 @@ export interface UnknownAssertionErrorOptions<T extends readonly unknown[]> exte
|
|
|
61
70
|
*/
|
|
62
71
|
export declare class AssertionError extends NodeAssertionError {
|
|
63
72
|
name: string;
|
|
73
|
+
constructor(options?: AssertionErrorOptions);
|
|
64
74
|
/**
|
|
65
75
|
* Type guard for an instance of this error.
|
|
66
76
|
*
|
|
@@ -68,6 +78,13 @@ export declare class AssertionError extends NodeAssertionError {
|
|
|
68
78
|
* @returns `true` if `value` is an instance of `AssertionError`
|
|
69
79
|
*/
|
|
70
80
|
static isAssertionError(value: unknown): value is AssertionError;
|
|
81
|
+
toJSON(): {
|
|
82
|
+
actual: unknown;
|
|
83
|
+
expected: unknown;
|
|
84
|
+
message: string;
|
|
85
|
+
name: string;
|
|
86
|
+
stack: string | undefined;
|
|
87
|
+
};
|
|
71
88
|
}
|
|
72
89
|
/**
|
|
73
90
|
* Base class for all custom errors thrown by <span
|
package/dist/esm/error.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/error.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEnE,OAAO,EAEL,YAAY,EAGb,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/error.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/error.js
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
import { AssertionError as NodeAssertionError } from 'node:assert';
|
|
9
9
|
import { kBupkisAssertionError, kBupkisError, kBupkisFailAssertionError, kBupkisNegatedAssertionError, } from './constant.js';
|
|
10
10
|
import { isA } from './guards.js';
|
|
11
|
+
const { hasOwn } = Object;
|
|
11
12
|
/**
|
|
12
13
|
* _BUPKIS_' s custom `AssertionError` class, which is just a thin wrapper
|
|
13
14
|
* around Node.js' {@link NodeAssertionError AssertionError}.
|
|
@@ -21,6 +22,9 @@ export class AssertionError extends NodeAssertionError {
|
|
|
21
22
|
*/
|
|
22
23
|
[kBupkisAssertionError] = true;
|
|
23
24
|
name = 'AssertionError';
|
|
25
|
+
constructor(options) {
|
|
26
|
+
super(options);
|
|
27
|
+
}
|
|
24
28
|
/**
|
|
25
29
|
* Type guard for an instance of this error.
|
|
26
30
|
*
|
|
@@ -28,8 +32,16 @@ export class AssertionError extends NodeAssertionError {
|
|
|
28
32
|
* @returns `true` if `value` is an instance of `AssertionError`
|
|
29
33
|
*/
|
|
30
34
|
static isAssertionError(value) {
|
|
31
|
-
return (isA(value, NodeAssertionError) &&
|
|
32
|
-
|
|
35
|
+
return (isA(value, NodeAssertionError) && hasOwn(value, kBupkisAssertionError));
|
|
36
|
+
}
|
|
37
|
+
toJSON() {
|
|
38
|
+
return {
|
|
39
|
+
actual: this.actual,
|
|
40
|
+
expected: this.expected,
|
|
41
|
+
message: this.message,
|
|
42
|
+
name: this.name,
|
|
43
|
+
stack: this.stack,
|
|
44
|
+
};
|
|
33
45
|
}
|
|
34
46
|
}
|
|
35
47
|
/**
|
|
@@ -44,7 +56,7 @@ export class BupkisError extends Error {
|
|
|
44
56
|
[kBupkisError] = true;
|
|
45
57
|
name = 'BupkisError';
|
|
46
58
|
static isBupkisError(err) {
|
|
47
|
-
return isA(err, Error) &&
|
|
59
|
+
return isA(err, Error) && hasOwn(err, kBupkisError);
|
|
48
60
|
}
|
|
49
61
|
}
|
|
50
62
|
/**
|
|
@@ -76,8 +88,7 @@ export class FailAssertionError extends AssertionError {
|
|
|
76
88
|
[kBupkisFailAssertionError] = true;
|
|
77
89
|
name = 'FailAssertionError';
|
|
78
90
|
static isFailAssertionError(err) {
|
|
79
|
-
return (isA(err, FailAssertionError) &&
|
|
80
|
-
Object.hasOwn(err, kBupkisFailAssertionError));
|
|
91
|
+
return (isA(err, FailAssertionError) && hasOwn(err, kBupkisFailAssertionError));
|
|
81
92
|
}
|
|
82
93
|
}
|
|
83
94
|
/**
|
|
@@ -123,8 +134,7 @@ export class NegatedAssertionError extends AssertionError {
|
|
|
123
134
|
[kBupkisNegatedAssertionError] = true;
|
|
124
135
|
name = 'NegatedAssertionError';
|
|
125
136
|
static isNegatedAssertionError(err) {
|
|
126
|
-
return (isA(err, AssertionError) &&
|
|
127
|
-
Object.hasOwn(err, kBupkisNegatedAssertionError));
|
|
137
|
+
return (isA(err, AssertionError) && hasOwn(err, kBupkisNegatedAssertionError));
|
|
128
138
|
}
|
|
129
139
|
}
|
|
130
140
|
/**
|
package/dist/esm/error.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/error.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEnE,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,yBAAyB,EACzB,4BAA4B,GAC7B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/error.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/expect.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expect.d.ts","sourceRoot":"","sources":["../../src/expect.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,kBAAkB,EAEvB,KAAK,iBAAiB,EASvB,MAAM,gCAAgC,CAAC;AASxC,OAAO,EACL,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,eAAe,EAIrB,MAAM,YAAY,CAAC;AAKpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,yBAAyB,CACvC,CAAC,SAAS,kBAAkB,EAC5B,CAAC,SAAS,WAAW,CAAC,kBAAkB,CAAC,EACzC,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,kBAAkB,EACpE,UAAU,EAAE,CAAC,GACZ,mBAAmB,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"expect.d.ts","sourceRoot":"","sources":["../../src/expect.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,kBAAkB,EAEvB,KAAK,iBAAiB,EASvB,MAAM,gCAAgC,CAAC;AASxC,OAAO,EACL,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,eAAe,EAIrB,MAAM,YAAY,CAAC;AAKpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,yBAAyB,CACvC,CAAC,SAAS,kBAAkB,EAC5B,CAAC,SAAS,WAAW,CAAC,kBAAkB,CAAC,EACzC,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,kBAAkB,EACpE,UAAU,EAAE,CAAC,GACZ,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAuH1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,SAAS,iBAAiB,EACpC,YAAY,SAAS,MAAM,CAAC,iBAAiB,CAAC,EAE9C,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,YAAY,GACnB,cAAc,CAAC,UAAU,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,SAAS,iBAAiB,EAC3E,UAAU,EAAE,UAAU,GACrB,cAAc,CAAC,UAAU,CAAC,CAAC;AA4T9B;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,CAAC,SAAS,iBAAiB,EAC3B,CAAC,SAAS,kBAAkB,EAC5B,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9E;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,CAAC,SAAS,iBAAiB,EAC3B,CAAC,SAAS,kBAAkB,EAC5B,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC"}
|
package/dist/esm/expect.js
CHANGED
|
@@ -69,6 +69,9 @@ const debug = createDebug('bupkis:expect');
|
|
|
69
69
|
*/
|
|
70
70
|
export function createExpectAsyncFunction(assertions, expect) {
|
|
71
71
|
debug('ℹ Creating expectAsync function with %d new assertions and %d existing assertions (%d total)', assertions.length, expect?.assertions.length ?? 0, assertions.length + (expect?.assertions.length ?? 0));
|
|
72
|
+
/**
|
|
73
|
+
* @function
|
|
74
|
+
*/
|
|
72
75
|
const expectAsyncFunction = async (...args) => {
|
|
73
76
|
await Promise.resolve();
|
|
74
77
|
const [isNegated, processedArgs] = maybeProcessNegation(args);
|
|
@@ -148,6 +151,9 @@ export function createExpectAsyncFunction(assertions, expect) {
|
|
|
148
151
|
*/
|
|
149
152
|
export function createExpectSyncFunction(assertions, expect) {
|
|
150
153
|
debug('ℹ Creating expect function with %d new assertions and %d existing assertions (%d total)', assertions.length, expect?.assertions.length ?? 0, assertions.length + (expect?.assertions.length ?? 0));
|
|
154
|
+
/**
|
|
155
|
+
* @function
|
|
156
|
+
*/
|
|
151
157
|
const expectFunction = (...args) => {
|
|
152
158
|
const [isNegated, processedArgs] = maybeProcessNegation(args);
|
|
153
159
|
const candidates = [];
|
|
@@ -177,6 +183,7 @@ export function createExpectSyncFunction(assertions, expect) {
|
|
|
177
183
|
* @privateRemarks
|
|
178
184
|
* This is here because `Assertion` doesn't know anything about negation and
|
|
179
185
|
* probably shouldn't.
|
|
186
|
+
* @function
|
|
180
187
|
* @param assertion - The assertion to execute
|
|
181
188
|
* @param parsedValues - Parsed values for the assertion
|
|
182
189
|
* @param args - Original arguments passed to expect
|
|
@@ -225,6 +232,7 @@ const execute = (assertion, parsedValues, args, stackStartFn, isNegated, parseRe
|
|
|
225
232
|
* @privateRemarks
|
|
226
233
|
* This is here because `Assertion` doesn't know anything about negation and
|
|
227
234
|
* probably shouldn't.
|
|
235
|
+
* @function
|
|
228
236
|
* @param assertion - The assertion to execute
|
|
229
237
|
* @param parsedValues - Parsed values for the assertion
|
|
230
238
|
* @param args - Original arguments passed to expectAsync
|
|
@@ -263,6 +271,7 @@ const executeAsync = async (assertion, parsedValues, args, stackStartFn, isNegat
|
|
|
263
271
|
* requested along with arguments stripped of the leading negation (to enable
|
|
264
272
|
* assertion matching).
|
|
265
273
|
*
|
|
274
|
+
* @function
|
|
266
275
|
* @internal
|
|
267
276
|
*/
|
|
268
277
|
const maybeProcessNegation = (args) => {
|
|
@@ -281,6 +290,7 @@ const maybeProcessNegation = (args) => {
|
|
|
281
290
|
* Throws an error indicating that no valid assertion could be found for the
|
|
282
291
|
* provided arguments.
|
|
283
292
|
*
|
|
293
|
+
* @function
|
|
284
294
|
* @param args The arguments that were passed to the expect function
|
|
285
295
|
* @internal
|
|
286
296
|
*/
|
|
@@ -293,6 +303,7 @@ const throwInvalidParametersError = (args) => {
|
|
|
293
303
|
* Detects if an assertion phrase starts with "not " and returns the cleaned
|
|
294
304
|
* phrase.
|
|
295
305
|
*
|
|
306
|
+
* @function
|
|
296
307
|
* @param phrase - The assertion phrase to check
|
|
297
308
|
* @returns Object with `isNegated` flag and `cleanedPhrase`
|
|
298
309
|
*/
|
|
@@ -310,6 +321,8 @@ const detectNegation = (phrase) => {
|
|
|
310
321
|
};
|
|
311
322
|
/**
|
|
312
323
|
* {@inheritdoc FailFn}
|
|
324
|
+
*
|
|
325
|
+
* @function
|
|
313
326
|
*/
|
|
314
327
|
const fail = (reason) => {
|
|
315
328
|
throw new FailAssertionError({ message: reason });
|
package/dist/esm/expect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expect.js","sourceRoot":"","sources":["../../src/expect.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"expect.js","sourceRoot":"","sources":["../../src/expect.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/guards.d.ts
CHANGED
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
*
|
|
16
16
|
* @packageDocumentation
|
|
17
17
|
*/
|
|
18
|
-
import { type Primitive } from 'type-fest';
|
|
19
18
|
import { z } from 'zod/v4';
|
|
20
19
|
import type { Constructor, ExpectItExecutor, ZodTypeMap } from './types.js';
|
|
21
20
|
/**
|
|
@@ -44,6 +43,7 @@ export declare function isZodType(value: unknown): value is z.ZodType;
|
|
|
44
43
|
/**
|
|
45
44
|
* Type guard for a plain object.
|
|
46
45
|
*
|
|
46
|
+
* @function
|
|
47
47
|
* @param value Value to test
|
|
48
48
|
* @returns `true` if the value is a plain object, `false` otherwise
|
|
49
49
|
*/
|
|
@@ -51,6 +51,7 @@ export declare const isObject: (value: unknown) => value is NonNullable<object>;
|
|
|
51
51
|
/**
|
|
52
52
|
* Returns `true` if the given value is a {@link z.ZodPromise} schema.
|
|
53
53
|
*
|
|
54
|
+
* @function
|
|
54
55
|
* @param value - Value to test
|
|
55
56
|
* @returns `true` if the value is a `ZodPromise` schema; `false` otherwise
|
|
56
57
|
*/
|
|
@@ -58,6 +59,7 @@ export declare const isZodPromise: (value: unknown) => value is z.ZodPromise;
|
|
|
58
59
|
/**
|
|
59
60
|
* Checks if a value is "promise-like", meaning it is a "thenable" object.
|
|
60
61
|
*
|
|
62
|
+
* @function
|
|
61
63
|
* @param value - Value to test
|
|
62
64
|
* @returns `true` if the value is promise-like, `false` otherwise
|
|
63
65
|
*/
|
|
@@ -74,6 +76,7 @@ export declare const isPromiseLike: (value: unknown) => value is PromiseLike<unk
|
|
|
74
76
|
* This may be the only way we can determine, at runtime, if a function is a
|
|
75
77
|
* constructor without actually calling it. I am unsure if this only works for
|
|
76
78
|
* classes.
|
|
79
|
+
* @function
|
|
77
80
|
* @param fn - Function to test
|
|
78
81
|
* @returns Whether the function is constructable
|
|
79
82
|
*/
|
|
@@ -81,6 +84,7 @@ export declare const isConstructible: (fn: unknown) => fn is Constructor;
|
|
|
81
84
|
/**
|
|
82
85
|
* Type guard for a boolean value
|
|
83
86
|
*
|
|
87
|
+
* @function
|
|
84
88
|
* @param value Value to check
|
|
85
89
|
* @returns `true` if the value is a boolean, `false` otherwise
|
|
86
90
|
*/
|
|
@@ -88,6 +92,7 @@ export declare const isBoolean: (value: unknown) => value is boolean;
|
|
|
88
92
|
/**
|
|
89
93
|
* Type guard for a function value
|
|
90
94
|
*
|
|
95
|
+
* @function
|
|
91
96
|
* @param value Value to check
|
|
92
97
|
* @returns `true` if the value is a function, `false` otherwise
|
|
93
98
|
*/
|
|
@@ -95,6 +100,7 @@ export declare const isFunction: (value: unknown) => value is (...args: any[]) =
|
|
|
95
100
|
/**
|
|
96
101
|
* Type guard for a string value
|
|
97
102
|
*
|
|
103
|
+
* @function
|
|
98
104
|
* @param value Value to check
|
|
99
105
|
* @returns `true` if the value is a string, `false` otherwise
|
|
100
106
|
*/
|
|
@@ -102,23 +108,18 @@ export declare const isString: (value: unknown) => value is string;
|
|
|
102
108
|
/**
|
|
103
109
|
* Type guard for a non-null object value
|
|
104
110
|
*
|
|
111
|
+
* @function
|
|
105
112
|
* @param value Value to check
|
|
106
113
|
* @returns `true` if the value is an object and not null, `false` otherwise
|
|
107
114
|
*/
|
|
108
115
|
export declare const isNonNullObject: (value: unknown) => value is object;
|
|
109
|
-
/**
|
|
110
|
-
* Type guard for a null or non-object value
|
|
111
|
-
*
|
|
112
|
-
* @param value Value to check
|
|
113
|
-
* @returns `true` if the value is null or not an object, `false` otherwise
|
|
114
|
-
*/
|
|
115
|
-
export declare const isNullOrNonObject: (value: unknown) => value is null | Primitive;
|
|
116
116
|
/**
|
|
117
117
|
* Type guard for a valid WeakKey (object, function, or symbol).
|
|
118
118
|
*
|
|
119
119
|
* WeakMaps and WeakSets can only use objects (including functions) or symbols
|
|
120
120
|
* as keys, not primitives like strings, numbers, booleans, null, or undefined.
|
|
121
121
|
*
|
|
122
|
+
* @function
|
|
122
123
|
* @param value Value to check
|
|
123
124
|
* @returns `true` if the value is a valid WeakKey (object, function, or
|
|
124
125
|
* symbol), `false` otherwise
|
|
@@ -143,6 +144,7 @@ export declare const isWeakKey: (value: unknown) => value is WeakKey;
|
|
|
143
144
|
* ```
|
|
144
145
|
*
|
|
145
146
|
* @template T - The constructor type to check against
|
|
147
|
+
* @function
|
|
146
148
|
* @param value - Value to test
|
|
147
149
|
* @param ctor - Constructor function to check instanceof
|
|
148
150
|
* @returns `true` if the value is an instance of the constructor, `false`
|
|
@@ -169,6 +171,7 @@ export declare const isA: <T extends Constructor>(value: unknown, ctor: T) => va
|
|
|
169
171
|
* }
|
|
170
172
|
* ```
|
|
171
173
|
*
|
|
174
|
+
* @function
|
|
172
175
|
* @param value - Value to test
|
|
173
176
|
* @returns `true` if the value is an Error instance, `false` otherwise
|
|
174
177
|
*/
|
|
@@ -194,6 +197,7 @@ export declare const isError: (value: unknown) => value is Error;
|
|
|
194
197
|
* ```
|
|
195
198
|
*
|
|
196
199
|
* @template Subject - The subject type that the executor function operates on
|
|
200
|
+
* @function
|
|
197
201
|
* @param value - Value to test
|
|
198
202
|
* @returns `true` if the value is an ExpectItExecutor function, `false`
|
|
199
203
|
* otherwise
|
package/dist/esm/guards.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/guards.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../../src/guards.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAO3B,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM5E;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,UAAU,EAClD,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,CAAC,GACN,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAE1B;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC;AAsB9D;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,WAAW,CAAC,MAAM,CAEpE,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,CAAC,CAAC,UAC5B,CAAC;AAE9B;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,WAAW,CAAC,OAAO,CAIpD,CAAC;AAExB;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,eAAe,GAAI,IAAI,OAAO,KAAG,EAAE,IAAI,WAYnD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,OACxB,CAAC;AAE7B;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAC5C,CAAC;AA8B9B;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MACxB,CAAC;AAE5B;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MACb,CAAC;AAE9C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,SAAS,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,OAGzB,CAAC;AA2B5B;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,GAAG,GAAI,CAAC,SAAS,WAAW,EACvC,OAAO,OAAO,EACd,MAAM,CAAC,KACN,KAAK,IAAI,YAAY,CAAC,CAAC,CAEzB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,OAAO,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,KAA0B,CAAC;AAE7E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,kBAAkB,GAAI,OAAO,SAAS,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,UAAU,EACzE,OAAO,OAAO,KACb,KAAK,IAAI,gBAAgB,CAAC,OAAO,CAEnC,CAAC"}
|