bupkis 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/CHANGELOG.md +72 -88
  2. package/dist/commonjs/assertion/assertion-async.d.ts.map +1 -1
  3. package/dist/commonjs/assertion/assertion-async.js +32 -9
  4. package/dist/commonjs/assertion/assertion-async.js.map +1 -1
  5. package/dist/commonjs/assertion/assertion-standard-schema-async.d.ts +64 -0
  6. package/dist/commonjs/assertion/assertion-standard-schema-async.d.ts.map +1 -0
  7. package/dist/commonjs/assertion/assertion-standard-schema-async.js +155 -0
  8. package/dist/commonjs/assertion/assertion-standard-schema-async.js.map +1 -0
  9. package/dist/commonjs/assertion/assertion-standard-schema-sync.d.ts +64 -0
  10. package/dist/commonjs/assertion/assertion-standard-schema-sync.d.ts.map +1 -0
  11. package/dist/commonjs/assertion/assertion-standard-schema-sync.js +164 -0
  12. package/dist/commonjs/assertion/assertion-standard-schema-sync.js.map +1 -0
  13. package/dist/commonjs/assertion/assertion-sync.d.ts.map +1 -1
  14. package/dist/commonjs/assertion/assertion-sync.js +38 -5
  15. package/dist/commonjs/assertion/assertion-sync.js.map +1 -1
  16. package/dist/commonjs/assertion/assertion-types.d.ts +82 -14
  17. package/dist/commonjs/assertion/assertion-types.d.ts.map +1 -1
  18. package/dist/commonjs/assertion/assertion.d.ts +11 -0
  19. package/dist/commonjs/assertion/assertion.d.ts.map +1 -1
  20. package/dist/commonjs/assertion/assertion.js +30 -0
  21. package/dist/commonjs/assertion/assertion.js.map +1 -1
  22. package/dist/commonjs/assertion/create.d.ts.map +1 -1
  23. package/dist/commonjs/assertion/create.js +10 -2
  24. package/dist/commonjs/assertion/create.js.map +1 -1
  25. package/dist/commonjs/assertion/impl/async-parametric.d.ts +11 -31
  26. package/dist/commonjs/assertion/impl/async-parametric.d.ts.map +1 -1
  27. package/dist/commonjs/assertion/impl/async-parametric.js +12 -37
  28. package/dist/commonjs/assertion/impl/async-parametric.js.map +1 -1
  29. package/dist/commonjs/assertion/impl/async.d.ts +34 -74
  30. package/dist/commonjs/assertion/impl/async.d.ts.map +1 -1
  31. package/dist/commonjs/assertion/impl/sync-basic.d.ts +37 -37
  32. package/dist/commonjs/assertion/impl/sync-basic.d.ts.map +1 -1
  33. package/dist/commonjs/assertion/impl/sync-basic.js +25 -25
  34. package/dist/commonjs/assertion/impl/sync-basic.js.map +1 -1
  35. package/dist/commonjs/assertion/impl/sync-collection.d.ts +7 -9
  36. package/dist/commonjs/assertion/impl/sync-collection.d.ts.map +1 -1
  37. package/dist/commonjs/assertion/impl/sync-collection.js +18 -19
  38. package/dist/commonjs/assertion/impl/sync-collection.js.map +1 -1
  39. package/dist/commonjs/assertion/impl/sync-date.d.ts +14 -213
  40. package/dist/commonjs/assertion/impl/sync-date.d.ts.map +1 -1
  41. package/dist/commonjs/assertion/impl/sync-date.js +5 -271
  42. package/dist/commonjs/assertion/impl/sync-date.js.map +1 -1
  43. package/dist/commonjs/assertion/impl/sync-esoteric.d.ts +3 -3
  44. package/dist/commonjs/assertion/impl/sync-esoteric.d.ts.map +1 -1
  45. package/dist/commonjs/assertion/impl/sync-esoteric.js +2 -2
  46. package/dist/commonjs/assertion/impl/sync-esoteric.js.map +1 -1
  47. package/dist/commonjs/assertion/impl/sync-parametric.d.ts +29 -49
  48. package/dist/commonjs/assertion/impl/sync-parametric.d.ts.map +1 -1
  49. package/dist/commonjs/assertion/impl/sync-parametric.js +77 -100
  50. package/dist/commonjs/assertion/impl/sync-parametric.js.map +1 -1
  51. package/dist/commonjs/assertion/impl/sync.d.ts +138 -320
  52. package/dist/commonjs/assertion/impl/sync.d.ts.map +1 -1
  53. package/dist/commonjs/assertion/impl/sync.js +0 -7
  54. package/dist/commonjs/assertion/impl/sync.js.map +1 -1
  55. package/dist/commonjs/assertion/slotify.js +106 -43
  56. package/dist/commonjs/assertion/slotify.js.map +1 -1
  57. package/dist/commonjs/bootstrap.d.ts +84 -195
  58. package/dist/commonjs/bootstrap.d.ts.map +1 -1
  59. package/dist/commonjs/diff.d.ts.map +1 -1
  60. package/dist/commonjs/diff.js +14 -21
  61. package/dist/commonjs/diff.js.map +1 -1
  62. package/dist/commonjs/guards.d.ts +16 -0
  63. package/dist/commonjs/guards.d.ts.map +1 -1
  64. package/dist/commonjs/guards.js +27 -1
  65. package/dist/commonjs/guards.js.map +1 -1
  66. package/dist/commonjs/index.d.ts +53 -157
  67. package/dist/commonjs/index.d.ts.map +1 -1
  68. package/dist/commonjs/index.js.map +1 -1
  69. package/dist/commonjs/internal-schema.d.ts.map +1 -1
  70. package/dist/commonjs/internal-schema.js +30 -12
  71. package/dist/commonjs/internal-schema.js.map +1 -1
  72. package/dist/commonjs/schema.d.ts +21 -0
  73. package/dist/commonjs/schema.d.ts.map +1 -1
  74. package/dist/commonjs/schema.js +132 -2
  75. package/dist/commonjs/schema.js.map +1 -1
  76. package/dist/commonjs/standard-schema.d.ts +192 -0
  77. package/dist/commonjs/standard-schema.d.ts.map +1 -0
  78. package/dist/commonjs/standard-schema.js +13 -0
  79. package/dist/commonjs/standard-schema.js.map +1 -0
  80. package/dist/commonjs/types.d.ts +165 -13
  81. package/dist/commonjs/types.d.ts.map +1 -1
  82. package/dist/esm/assertion/assertion-async.d.ts.map +1 -1
  83. package/dist/esm/assertion/assertion-async.js +33 -10
  84. package/dist/esm/assertion/assertion-async.js.map +1 -1
  85. package/dist/esm/assertion/assertion-standard-schema-async.d.ts +64 -0
  86. package/dist/esm/assertion/assertion-standard-schema-async.d.ts.map +1 -0
  87. package/dist/esm/assertion/assertion-standard-schema-async.js +151 -0
  88. package/dist/esm/assertion/assertion-standard-schema-async.js.map +1 -0
  89. package/dist/esm/assertion/assertion-standard-schema-sync.d.ts +64 -0
  90. package/dist/esm/assertion/assertion-standard-schema-sync.d.ts.map +1 -0
  91. package/dist/esm/assertion/assertion-standard-schema-sync.js +160 -0
  92. package/dist/esm/assertion/assertion-standard-schema-sync.js.map +1 -0
  93. package/dist/esm/assertion/assertion-sync.d.ts.map +1 -1
  94. package/dist/esm/assertion/assertion-sync.js +39 -6
  95. package/dist/esm/assertion/assertion-sync.js.map +1 -1
  96. package/dist/esm/assertion/assertion-types.d.ts +82 -14
  97. package/dist/esm/assertion/assertion-types.d.ts.map +1 -1
  98. package/dist/esm/assertion/assertion.d.ts +11 -0
  99. package/dist/esm/assertion/assertion.d.ts.map +1 -1
  100. package/dist/esm/assertion/assertion.js +30 -0
  101. package/dist/esm/assertion/assertion.js.map +1 -1
  102. package/dist/esm/assertion/create.d.ts.map +1 -1
  103. package/dist/esm/assertion/create.js +11 -3
  104. package/dist/esm/assertion/create.js.map +1 -1
  105. package/dist/esm/assertion/impl/async-parametric.d.ts +11 -31
  106. package/dist/esm/assertion/impl/async-parametric.d.ts.map +1 -1
  107. package/dist/esm/assertion/impl/async-parametric.js +13 -38
  108. package/dist/esm/assertion/impl/async-parametric.js.map +1 -1
  109. package/dist/esm/assertion/impl/async.d.ts +34 -74
  110. package/dist/esm/assertion/impl/async.d.ts.map +1 -1
  111. package/dist/esm/assertion/impl/sync-basic.d.ts +37 -37
  112. package/dist/esm/assertion/impl/sync-basic.d.ts.map +1 -1
  113. package/dist/esm/assertion/impl/sync-basic.js +26 -26
  114. package/dist/esm/assertion/impl/sync-basic.js.map +1 -1
  115. package/dist/esm/assertion/impl/sync-collection.d.ts +7 -9
  116. package/dist/esm/assertion/impl/sync-collection.d.ts.map +1 -1
  117. package/dist/esm/assertion/impl/sync-collection.js +19 -20
  118. package/dist/esm/assertion/impl/sync-collection.js.map +1 -1
  119. package/dist/esm/assertion/impl/sync-date.d.ts +14 -213
  120. package/dist/esm/assertion/impl/sync-date.d.ts.map +1 -1
  121. package/dist/esm/assertion/impl/sync-date.js +4 -270
  122. package/dist/esm/assertion/impl/sync-date.js.map +1 -1
  123. package/dist/esm/assertion/impl/sync-esoteric.d.ts +3 -3
  124. package/dist/esm/assertion/impl/sync-esoteric.d.ts.map +1 -1
  125. package/dist/esm/assertion/impl/sync-esoteric.js +3 -3
  126. package/dist/esm/assertion/impl/sync-esoteric.js.map +1 -1
  127. package/dist/esm/assertion/impl/sync-parametric.d.ts +29 -49
  128. package/dist/esm/assertion/impl/sync-parametric.d.ts.map +1 -1
  129. package/dist/esm/assertion/impl/sync-parametric.js +78 -101
  130. package/dist/esm/assertion/impl/sync-parametric.js.map +1 -1
  131. package/dist/esm/assertion/impl/sync.d.ts +138 -320
  132. package/dist/esm/assertion/impl/sync.d.ts.map +1 -1
  133. package/dist/esm/assertion/impl/sync.js +1 -8
  134. package/dist/esm/assertion/impl/sync.js.map +1 -1
  135. package/dist/esm/assertion/slotify.js +107 -44
  136. package/dist/esm/assertion/slotify.js.map +1 -1
  137. package/dist/esm/bootstrap.d.ts +84 -195
  138. package/dist/esm/bootstrap.d.ts.map +1 -1
  139. package/dist/esm/diff.d.ts.map +1 -1
  140. package/dist/esm/diff.js +14 -21
  141. package/dist/esm/diff.js.map +1 -1
  142. package/dist/esm/guards.d.ts +16 -0
  143. package/dist/esm/guards.d.ts.map +1 -1
  144. package/dist/esm/guards.js +25 -0
  145. package/dist/esm/guards.js.map +1 -1
  146. package/dist/esm/index.d.ts +53 -157
  147. package/dist/esm/index.d.ts.map +1 -1
  148. package/dist/esm/index.js.map +1 -1
  149. package/dist/esm/internal-schema.d.ts.map +1 -1
  150. package/dist/esm/internal-schema.js +31 -13
  151. package/dist/esm/internal-schema.js.map +1 -1
  152. package/dist/esm/schema.d.ts +21 -0
  153. package/dist/esm/schema.d.ts.map +1 -1
  154. package/dist/esm/schema.js +129 -1
  155. package/dist/esm/schema.js.map +1 -1
  156. package/dist/esm/standard-schema.d.ts +192 -0
  157. package/dist/esm/standard-schema.d.ts.map +1 -0
  158. package/dist/esm/standard-schema.js +12 -0
  159. package/dist/esm/standard-schema.js.map +1 -0
  160. package/dist/esm/types.d.ts +165 -13
  161. package/dist/esm/types.d.ts.map +1 -1
  162. package/package.json +38 -20
  163. package/src/assertion/assertion-async.ts +54 -14
  164. package/src/assertion/assertion-standard-schema-async.ts +202 -0
  165. package/src/assertion/assertion-standard-schema-sync.ts +214 -0
  166. package/src/assertion/assertion-sync.ts +65 -10
  167. package/src/assertion/assertion-types.ts +113 -13
  168. package/src/assertion/assertion.ts +40 -0
  169. package/src/assertion/create.ts +11 -5
  170. package/src/assertion/impl/async-parametric.ts +16 -37
  171. package/src/assertion/impl/sync-basic.ts +48 -32
  172. package/src/assertion/impl/sync-collection.ts +25 -23
  173. package/src/assertion/impl/sync-date.ts +4 -311
  174. package/src/assertion/impl/sync-esoteric.ts +7 -3
  175. package/src/assertion/impl/sync-parametric.ts +104 -102
  176. package/src/assertion/impl/sync.ts +0 -14
  177. package/src/assertion/slotify.ts +90 -13
  178. package/src/diff.ts +14 -29
  179. package/src/guards.ts +29 -0
  180. package/src/index.ts +16 -6
  181. package/src/internal-schema.ts +36 -16
  182. package/src/schema.ts +152 -1
  183. package/src/standard-schema.ts +214 -0
  184. package/src/types.ts +176 -14
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+ /**
3
+ * Asynchronous Standard Schema assertion implementation.
4
+ *
5
+ * This module provides the `BupkisAssertionStandardSchemaAsync` class for
6
+ * assertions implemented using Standard Schema v1 compliant validators that may
7
+ * perform asynchronous validation.
8
+ *
9
+ * @packageDocumentation
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.BupkisAssertionStandardSchemaAsync = void 0;
13
+ const constant_js_1 = require("../constant.js");
14
+ const metadata_js_1 = require("../metadata.js");
15
+ const assertion_js_1 = require("./assertion.js");
16
+ /**
17
+ * An asynchronous assertion implemented using a Standard Schema v1 validator.
18
+ *
19
+ * This class handles async schema-based assertions where the implementation is
20
+ * any Standard Schema compliant validator that may perform asynchronous
21
+ * validation. It optimizes validation by caching the subject validation result
22
+ * during `parseValuesAsync()` to avoid double parsing.
23
+ *
24
+ * @template Parts - The assertion parts tuple defining structure
25
+ * @template Impl - The Standard Schema implementation
26
+ * @template Slots - The derived validation slots
27
+ */
28
+ class BupkisAssertionStandardSchemaAsync extends assertion_js_1.BupkisAssertion {
29
+ /**
30
+ * Executes the assertion asynchronously against validated values.
31
+ *
32
+ * If validation was already performed during `parseValuesAsync()` and cached,
33
+ * reuses that result. Otherwise, performs validation using the Standard
34
+ * Schema's validate() method (which may return a Promise).
35
+ *
36
+ * @param parsedValues - The parsed and validated values
37
+ * @param _args - Original raw arguments (unused)
38
+ * @param stackStartFn - Function to use as stack trace start point
39
+ * @param parseResult - Optional cached parse result from `parseValuesAsync()`
40
+ * @throws {AssertionError} If validation fails
41
+ */
42
+ async executeAsync(parsedValues, _args, stackStartFn, parseResult) {
43
+ const cachedValidation = parseResult?.success
44
+ ? parseResult.subjectValidationResult
45
+ : undefined;
46
+ if (cachedValidation && !cachedValidation.success) {
47
+ if ('issues' in cachedValidation) {
48
+ throw this.fromStandardSchemaIssues(cachedValidation.issues, stackStartFn, parsedValues);
49
+ }
50
+ }
51
+ const [subject] = parsedValues;
52
+ const result = this.impl['~standard'].validate(subject);
53
+ const validationResult = result instanceof Promise ? await result : result;
54
+ if (validationResult.issues) {
55
+ throw this.fromStandardSchemaIssues(validationResult.issues, stackStartFn, parsedValues);
56
+ }
57
+ }
58
+ /**
59
+ * Parses raw arguments asynchronously against slots with optimized caching.
60
+ *
61
+ * For simple schema assertions (subject + phrase literals only), this method
62
+ * validates the subject during parsing and caches the result to avoid double
63
+ * validation in `executeAsync()`.
64
+ *
65
+ * @param args - Raw arguments provided to `expectAsync()`
66
+ * @returns Promise resolving to parse result with cached validation
67
+ */
68
+ async parseValuesAsync(args) {
69
+ const { slots } = this;
70
+ const parsedValues = [];
71
+ const mismatch = this.maybeParseValuesArgMismatch(args);
72
+ if (mismatch) {
73
+ return mismatch;
74
+ }
75
+ let exactMatch = true;
76
+ let subjectValidationResult;
77
+ for (let i = 0; i < slots.length; i++) {
78
+ const slot = slots[i];
79
+ const arg = args[i];
80
+ const parsedLiteralResult = this.parseSlotForLiteral(slot, i, arg);
81
+ if (parsedLiteralResult === true) {
82
+ continue;
83
+ }
84
+ else if (parsedLiteralResult !== false) {
85
+ return parsedLiteralResult;
86
+ }
87
+ if (i === 0 &&
88
+ (slot.def.type === 'unknown' || slot.def.type === 'any') &&
89
+ this.isSimpleSchemaAssertion()) {
90
+ const result = this.impl['~standard'].validate(arg);
91
+ const validationResult = result instanceof Promise ? await result : result;
92
+ if (validationResult.issues) {
93
+ subjectValidationResult = {
94
+ issues: validationResult.issues,
95
+ success: false,
96
+ };
97
+ parsedValues.push(arg);
98
+ }
99
+ else {
100
+ subjectValidationResult = {
101
+ data: validationResult.value,
102
+ success: true,
103
+ };
104
+ parsedValues.push(validationResult.value);
105
+ }
106
+ exactMatch = false;
107
+ continue;
108
+ }
109
+ if (slot.def.type === 'unknown' || slot.def.type === 'any') {
110
+ parsedValues.push(arg);
111
+ exactMatch = false;
112
+ continue;
113
+ }
114
+ const result = await slot.safeParseAsync(arg);
115
+ if (!result.success) {
116
+ return {
117
+ success: false,
118
+ };
119
+ }
120
+ parsedValues.push(result.data);
121
+ }
122
+ const result = {
123
+ exactMatch,
124
+ parsedValues: parsedValues,
125
+ success: true,
126
+ };
127
+ if (subjectValidationResult) {
128
+ result.subjectValidationResult = subjectValidationResult;
129
+ }
130
+ return result;
131
+ }
132
+ /**
133
+ * Determines if this is a simple schema assertion eligible for optimization.
134
+ *
135
+ * Returns true when the assertion has:
136
+ *
137
+ * - Exactly one subject slot (unknown/any type)
138
+ * - Only phrase literal slots after the subject
139
+ * - No complex argument processing
140
+ *
141
+ * @returns True if optimization can be applied
142
+ */
143
+ isSimpleSchemaAssertion() {
144
+ const hasSubjectSlot = this.slots.length > 0 &&
145
+ (this.slots[0]?.def.type === 'unknown' ||
146
+ this.slots[0]?.def.type === 'any');
147
+ const allOtherSlotsAreLiterals = this.slots.slice(1).every((slot) => {
148
+ const meta = metadata_js_1.BupkisRegistry.get(slot) ?? {};
149
+ return constant_js_1.kStringLiteral in meta;
150
+ });
151
+ return hasSubjectSlot && allOtherSlotsAreLiterals;
152
+ }
153
+ }
154
+ exports.BupkisAssertionStandardSchemaAsync = BupkisAssertionStandardSchemaAsync;
155
+ //# sourceMappingURL=assertion-standard-schema-async.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertion-standard-schema-async.js","sourceRoot":"","sources":["../../../src/assertion/assertion-standard-schema-async.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Synchronous Standard Schema assertion implementation.
3
+ *
4
+ * This module provides the `BupkisAssertionStandardSchemaSync` class for
5
+ * assertions implemented using Standard Schema v1 compliant validators from any
6
+ * library (Valibot, ArkType, etc.).
7
+ *
8
+ * @packageDocumentation
9
+ */
10
+ import type { StandardSchemaV1 } from '../standard-schema.js';
11
+ import type { AssertionParts, AssertionSlots, AssertionStandardSchemaSync, ParsedResult, ParsedValues } from './assertion-types.js';
12
+ import { BupkisAssertion } from './assertion.js';
13
+ /**
14
+ * A synchronous assertion implemented using a Standard Schema v1 validator.
15
+ *
16
+ * This class handles schema-based assertions where the implementation is any
17
+ * Standard Schema compliant validator (not just Zod). It optimizes validation
18
+ * by caching the subject validation result during `parseValues()` to avoid
19
+ * double parsing.
20
+ *
21
+ * @template Parts - The assertion parts tuple defining structure
22
+ * @template Impl - The Standard Schema implementation
23
+ * @template Slots - The derived validation slots
24
+ */
25
+ export declare class BupkisAssertionStandardSchemaSync<Parts extends AssertionParts, Impl extends StandardSchemaV1, Slots extends AssertionSlots<Parts>> extends BupkisAssertion<Parts, Impl, Slots> implements AssertionStandardSchemaSync<Parts, Impl, Slots> {
26
+ /**
27
+ * Executes the assertion against validated values.
28
+ *
29
+ * If validation was already performed during `parseValues()` and cached,
30
+ * reuses that result. Otherwise, performs validation using the Standard
31
+ * Schema's validate() method.
32
+ *
33
+ * @param parsedValues - The parsed and validated values
34
+ * @param _args - Original raw arguments (unused)
35
+ * @param stackStartFn - Function to use as stack trace start point
36
+ * @param parseResult - Optional cached parse result from `parseValues()`
37
+ * @throws {AssertionError} If validation fails
38
+ */
39
+ execute(parsedValues: ParsedValues<Parts>, _args: unknown[], stackStartFn: (...args: any[]) => any, parseResult?: ParsedResult<Parts>): void;
40
+ /**
41
+ * Parses raw arguments against slots with optimized validation caching.
42
+ *
43
+ * For simple schema assertions (subject + phrase literals only), this method
44
+ * validates the subject during parsing and caches the result to avoid double
45
+ * validation in `execute()`.
46
+ *
47
+ * @param args - Raw arguments provided to `expect()`
48
+ * @returns Parse result indicating success/failure and cached validation
49
+ */
50
+ parseValues<Args extends readonly unknown[]>(args: Args): ParsedResult<Parts>;
51
+ /**
52
+ * Determines if this is a simple schema assertion eligible for optimization.
53
+ *
54
+ * Returns true when the assertion has:
55
+ *
56
+ * - Exactly one subject slot (unknown/any type)
57
+ * - Only phrase literal slots after the subject
58
+ * - No complex argument processing
59
+ *
60
+ * @returns True if optimization can be applied
61
+ */
62
+ private isSimpleSchemaAssertion;
63
+ }
64
+ //# sourceMappingURL=assertion-standard-schema-sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertion-standard-schema-sync.d.ts","sourceRoot":"","sources":["../../../src/assertion/assertion-standard-schema-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,2BAA2B,EAC3B,YAAY,EAEZ,YAAY,EACb,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;;;;;;;;;;GAWG;AACH,qBAAa,iCAAiC,CAC1C,KAAK,SAAS,cAAc,EAC5B,IAAI,SAAS,gBAAgB,EAC7B,KAAK,SAAS,cAAc,CAAC,KAAK,CAAC,CAErC,SAAQ,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAC1C,YAAW,2BAA2B,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;IAE1D;;;;;;;;;;;;OAYG;IACH,OAAO,CACL,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC,EACjC,KAAK,EAAE,OAAO,EAAE,EAChB,YAAY,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACrC,WAAW,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,GAChC,IAAI;IAuCP;;;;;;;;;OASG;IACH,WAAW,CAAC,IAAI,SAAS,SAAS,OAAO,EAAE,EACzC,IAAI,EAAE,IAAI,GACT,YAAY,CAAC,KAAK,CAAC;IA4EtB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,uBAAuB;CAahC"}
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ /**
3
+ * Synchronous Standard Schema assertion implementation.
4
+ *
5
+ * This module provides the `BupkisAssertionStandardSchemaSync` class for
6
+ * assertions implemented using Standard Schema v1 compliant validators from any
7
+ * library (Valibot, ArkType, etc.).
8
+ *
9
+ * @packageDocumentation
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.BupkisAssertionStandardSchemaSync = void 0;
13
+ const constant_js_1 = require("../constant.js");
14
+ const metadata_js_1 = require("../metadata.js");
15
+ const assertion_js_1 = require("./assertion.js");
16
+ /**
17
+ * A synchronous assertion implemented using a Standard Schema v1 validator.
18
+ *
19
+ * This class handles schema-based assertions where the implementation is any
20
+ * Standard Schema compliant validator (not just Zod). It optimizes validation
21
+ * by caching the subject validation result during `parseValues()` to avoid
22
+ * double parsing.
23
+ *
24
+ * @template Parts - The assertion parts tuple defining structure
25
+ * @template Impl - The Standard Schema implementation
26
+ * @template Slots - The derived validation slots
27
+ */
28
+ class BupkisAssertionStandardSchemaSync extends assertion_js_1.BupkisAssertion {
29
+ /**
30
+ * Executes the assertion against validated values.
31
+ *
32
+ * If validation was already performed during `parseValues()` and cached,
33
+ * reuses that result. Otherwise, performs validation using the Standard
34
+ * Schema's validate() method.
35
+ *
36
+ * @param parsedValues - The parsed and validated values
37
+ * @param _args - Original raw arguments (unused)
38
+ * @param stackStartFn - Function to use as stack trace start point
39
+ * @param parseResult - Optional cached parse result from `parseValues()`
40
+ * @throws {AssertionError} If validation fails
41
+ */
42
+ execute(parsedValues, _args, stackStartFn, parseResult) {
43
+ const cachedValidation = parseResult?.success
44
+ ? parseResult.subjectValidationResult
45
+ : undefined;
46
+ if (cachedValidation) {
47
+ if (!cachedValidation.success) {
48
+ if ('issues' in cachedValidation) {
49
+ throw this.fromStandardSchemaIssues(cachedValidation.issues, stackStartFn, parsedValues);
50
+ }
51
+ }
52
+ return;
53
+ }
54
+ const [subject] = parsedValues;
55
+ const result = this.impl['~standard'].validate(subject);
56
+ if (result instanceof Promise) {
57
+ result.catch(() => {
58
+ /* prevent unhandled rejection */
59
+ });
60
+ throw new Error(`Standard Schema returned a Promise in sync context; use expectAsync() instead`);
61
+ }
62
+ if (result.issues) {
63
+ throw this.fromStandardSchemaIssues(result.issues, stackStartFn, parsedValues);
64
+ }
65
+ }
66
+ /**
67
+ * Parses raw arguments against slots with optimized validation caching.
68
+ *
69
+ * For simple schema assertions (subject + phrase literals only), this method
70
+ * validates the subject during parsing and caches the result to avoid double
71
+ * validation in `execute()`.
72
+ *
73
+ * @param args - Raw arguments provided to `expect()`
74
+ * @returns Parse result indicating success/failure and cached validation
75
+ */
76
+ parseValues(args) {
77
+ const { slots } = this;
78
+ const parsedValues = [];
79
+ const mismatch = this.maybeParseValuesArgMismatch(args);
80
+ if (mismatch) {
81
+ return mismatch;
82
+ }
83
+ let exactMatch = true;
84
+ let subjectValidationResult;
85
+ for (let i = 0; i < slots.length; i++) {
86
+ const slot = slots[i];
87
+ const arg = args[i];
88
+ const parsedLiteralResult = this.parseSlotForLiteral(slot, i, arg);
89
+ if (parsedLiteralResult === true) {
90
+ continue;
91
+ }
92
+ else if (parsedLiteralResult !== false) {
93
+ return parsedLiteralResult;
94
+ }
95
+ if (i === 0 &&
96
+ (slot.def.type === 'unknown' || slot.def.type === 'any') &&
97
+ this.isSimpleSchemaAssertion()) {
98
+ const result = this.impl['~standard'].validate(arg);
99
+ if (result instanceof Promise) {
100
+ result.catch(() => {
101
+ /* prevent unhandled rejection */
102
+ });
103
+ return {
104
+ success: false,
105
+ };
106
+ }
107
+ if (result.issues) {
108
+ subjectValidationResult = { issues: result.issues, success: false };
109
+ parsedValues.push(arg);
110
+ }
111
+ else {
112
+ subjectValidationResult = { data: result.value, success: true };
113
+ parsedValues.push(result.value);
114
+ }
115
+ exactMatch = false;
116
+ continue;
117
+ }
118
+ if (slot.def.type === 'unknown' || slot.def.type === 'any') {
119
+ parsedValues.push(arg);
120
+ exactMatch = false;
121
+ continue;
122
+ }
123
+ const result = slot.safeParse(arg);
124
+ if (!result.success) {
125
+ return {
126
+ success: false,
127
+ };
128
+ }
129
+ parsedValues.push(arg);
130
+ }
131
+ const result = {
132
+ exactMatch,
133
+ parsedValues: parsedValues,
134
+ success: true,
135
+ };
136
+ if (subjectValidationResult) {
137
+ result.subjectValidationResult = subjectValidationResult;
138
+ }
139
+ return result;
140
+ }
141
+ /**
142
+ * Determines if this is a simple schema assertion eligible for optimization.
143
+ *
144
+ * Returns true when the assertion has:
145
+ *
146
+ * - Exactly one subject slot (unknown/any type)
147
+ * - Only phrase literal slots after the subject
148
+ * - No complex argument processing
149
+ *
150
+ * @returns True if optimization can be applied
151
+ */
152
+ isSimpleSchemaAssertion() {
153
+ const hasSubjectSlot = this.slots.length > 0 &&
154
+ (this.slots[0]?.def.type === 'unknown' ||
155
+ this.slots[0]?.def.type === 'any');
156
+ const allOtherSlotsAreLiterals = this.slots.slice(1).every((slot) => {
157
+ const meta = metadata_js_1.BupkisRegistry.get(slot) ?? {};
158
+ return constant_js_1.kStringLiteral in meta;
159
+ });
160
+ return hasSubjectSlot && allOtherSlotsAreLiterals;
161
+ }
162
+ }
163
+ exports.BupkisAssertionStandardSchemaSync = BupkisAssertionStandardSchemaSync;
164
+ //# sourceMappingURL=assertion-standard-schema-sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertion-standard-schema-sync.js","sourceRoot":"","sources":["../../../src/assertion/assertion-standard-schema-sync.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"assertion-sync.d.ts","sourceRoot":"","sources":["../../../src/assertion/assertion-sync.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAkBH,OAAO,EACL,KAAK,qBAAqB,EAE1B,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,YAAY,EAEjB,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAIjD;;;;GAIG;AACH,8BAAsB,mBAAmB,CACrC,KAAK,SAAS,cAAc,EAC5B,IAAI,SAAS,iBAAiB,CAAC,KAAK,CAAC,EACrC,KAAK,SAAS,cAAc,CAAC,KAAK,CAAC,CAErC,SAAQ,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAC1C,YAAW,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;IAE5C;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CACd,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC,EACjC,IAAI,EAAE,OAAO,EAAE,EACf,YAAY,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACrC,WAAW,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,GAChC,IAAI;IAEP;;;;;;;;;;;;;;OAcG;IACH,WAAW,CAAC,IAAI,SAAS,SAAS,OAAO,EAAE,EACzC,IAAI,EAAE,IAAI,GACT,YAAY,CAAC,KAAK,CAAC;CA4CvB;AAED,qBAAa,2BAA2B,CACpC,KAAK,SAAS,cAAc,EAC5B,IAAI,SAAS,mBAAmB,CAAC,KAAK,CAAC,EACvC,KAAK,SAAS,cAAc,CAAC,KAAK,CAAC,CAErC,SAAQ,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAC9C,YAAW,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;IAE3C,OAAO,CACd,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC,EACjC,IAAI,EAAE,OAAO,EAAE,EACf,YAAY,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACrC,YAAY,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,GACjC,IAAI;CAuER;AAED;;;;;;;;;;;GAWG;AAEH,qBAAa,yBAAyB,CAClC,KAAK,SAAS,cAAc,EAC5B,IAAI,SAAS,uBAAuB,CAAC,KAAK,CAAC,EAC3C,KAAK,SAAS,cAAc,CAAC,KAAK,CAAC,CAErC,SAAQ,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAC9C,YAAW,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;IAEzC,OAAO,CACd,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC,EACjC,KAAK,EAAE,OAAO,EAAE,EAChB,YAAY,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACrC,WAAW,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,GAChC,IAAI;IA2BE,WAAW,CAAC,IAAI,SAAS,SAAS,OAAO,EAAE,EAClD,IAAI,EAAE,IAAI,GACT,YAAY,CAAC,KAAK,CAAC;IAqEtB;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;CAehC"}
1
+ {"version":3,"file":"assertion-sync.d.ts","sourceRoot":"","sources":["../../../src/assertion/assertion-sync.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAwBH,OAAO,EACL,KAAK,qBAAqB,EAE1B,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,YAAY,EAEjB,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAIjD;;;;GAIG;AACH,8BAAsB,mBAAmB,CACrC,KAAK,SAAS,cAAc,EAC5B,IAAI,SAAS,iBAAiB,CAAC,KAAK,CAAC,EACrC,KAAK,SAAS,cAAc,CAAC,KAAK,CAAC,CAErC,SAAQ,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAC1C,YAAW,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;IAE5C;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CACd,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC,EACjC,IAAI,EAAE,OAAO,EAAE,EACf,YAAY,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACrC,WAAW,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,GAChC,IAAI;IAEP;;;;;;;;;;;;;;OAcG;IACH,WAAW,CAAC,IAAI,SAAS,SAAS,OAAO,EAAE,EACzC,IAAI,EAAE,IAAI,GACT,YAAY,CAAC,KAAK,CAAC;CA4CvB;AAED,qBAAa,2BAA2B,CACpC,KAAK,SAAS,cAAc,EAC5B,IAAI,SAAS,mBAAmB,CAAC,KAAK,CAAC,EACvC,KAAK,SAAS,cAAc,CAAC,KAAK,CAAC,CAErC,SAAQ,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAC9C,YAAW,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;IAE3C,OAAO,CACd,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC,EACjC,IAAI,EAAE,OAAO,EAAE,EACf,YAAY,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACrC,YAAY,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,GACjC,IAAI;CAiHR;AAED;;;;;;;;;;;GAWG;AAEH,qBAAa,yBAAyB,CAClC,KAAK,SAAS,cAAc,EAC5B,IAAI,SAAS,uBAAuB,CAAC,KAAK,CAAC,EAC3C,KAAK,SAAS,cAAc,CAAC,KAAK,CAAC,CAErC,SAAQ,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAC9C,YAAW,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;IAEzC,OAAO,CACd,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC,EACjC,KAAK,EAAE,OAAO,EAAE,EAChB,YAAY,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACrC,WAAW,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,GAChC,IAAI;IAkCE,WAAW,CAAC,IAAI,SAAS,SAAS,OAAO,EAAE,EAClD,IAAI,EAAE,IAAI,GACT,YAAY,CAAC,KAAK,CAAC;IAqEtB;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;CAehC"}
@@ -113,6 +113,18 @@ class BupkisAssertionFunctionSync extends BupkisAssertionSync {
113
113
  throw this.fromZodError(zodResult.error, stackStartFn, parsedValues);
114
114
  }
115
115
  }
116
+ else if ((0, guards_js_1.isStandardSchema)(result)) {
117
+ const validationResult = result['~standard'].validate(parsedValues[0]);
118
+ if (validationResult instanceof Promise) {
119
+ validationResult.catch(() => {
120
+ /* prevent unhandled rejection */
121
+ });
122
+ throw new error_js_1.UnexpectedAsyncError(`Standard Schema returned a Promise; use expectAsync() instead of expect()`);
123
+ }
124
+ if (validationResult.issues) {
125
+ throw this.fromStandardSchemaIssues(validationResult.issues, stackStartFn, parsedValues);
126
+ }
127
+ }
116
128
  else if ((0, guards_js_1.isBoolean)(result)) {
117
129
  if (!result) {
118
130
  throw new error_js_1.AssertionError({
@@ -129,9 +141,26 @@ class BupkisAssertionFunctionSync extends BupkisAssertionSync {
129
141
  if (asyncSchema) {
130
142
  throw new error_js_1.AssertionImplementationError(`Sync assertion ${this} returned an async schema in its AssertionParseRequest`);
131
143
  }
132
- const zodResult = schema.safeParse(subject);
133
- if (!zodResult.success) {
134
- throw this.fromZodError(zodResult.error, stackStartFn, subject);
144
+ if (!schema) {
145
+ throw new error_js_1.AssertionImplementationError(`Sync assertion ${this} returned AssertionParseRequest without schema`);
146
+ }
147
+ if ((0, guards_js_1.isZodType)(schema)) {
148
+ const zodResult = schema.safeParse(subject);
149
+ if (!zodResult.success) {
150
+ throw this.fromZodError(zodResult.error, stackStartFn, subject);
151
+ }
152
+ }
153
+ else if ((0, guards_js_1.isStandardSchema)(schema)) {
154
+ const validationResult = schema['~standard'].validate(subject);
155
+ if (validationResult instanceof Promise) {
156
+ validationResult.catch(() => {
157
+ /* prevent unhandled rejection */
158
+ });
159
+ throw new error_js_1.AssertionImplementationError(`Sync assertion ${this} returned a schema with async validation in AssertionParseRequest`);
160
+ }
161
+ if (validationResult.issues) {
162
+ throw this.fromStandardSchemaIssues(validationResult.issues, stackStartFn, subject);
163
+ }
135
164
  }
136
165
  }
137
166
  else if ((0, internal_schema_js_1.isAssertionFailure)(result)) {
@@ -169,8 +198,12 @@ class BupkisAssertionSchemaSync extends BupkisAssertionSync {
169
198
  : undefined;
170
199
  if (cachedValidation) {
171
200
  if (!cachedValidation.success) {
172
- // Subject validation failed during parseValues, throw the cached error
173
- throw this.fromZodError(cachedValidation.error, stackStartFn, parsedValues);
201
+ if ('error' in cachedValidation) {
202
+ throw this.fromZodError(cachedValidation.error, stackStartFn, parsedValues);
203
+ }
204
+ else if ('issues' in cachedValidation) {
205
+ throw this.fromStandardSchemaIssues(cachedValidation.issues, stackStartFn, parsedValues);
206
+ }
174
207
  }
175
208
  // Subject validation passed, nothing more to do
176
209
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"assertion-sync.js","sourceRoot":"","sources":["../../../src/assertion/assertion-sync.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;AAEH,kDAAgC;AAChC,+BAA+B;AAC/B,+BAA2B;AAE3B,gDAAgD;AAChD,0CAIqB;AACrB,4CAA4E;AAC5E,8DAG+B;AAC/B,gDAAgD;AAehD,iDAAiD;AAEjD,MAAM,KAAK,GAAG,IAAA,eAAW,EAAC,uBAAuB,CAAC,CAAC;AAEnD;;;;GAIG;AACH,MAAsB,mBAKpB,SAAQ,8BAAmC;IAiB3C;;;;;;;;;;;;;;OAcG;IACH,WAAW,CACT,IAAU;QAEV,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QACvB,MAAM,YAAY,GAAU,EAAE,CAAC;QAE/B,MAAM,QAAQ,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,IAAI,UAAU,GAAG,IAAI,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAEpB,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YACnE,IAAI,mBAAmB,KAAK,IAAI,EAAE,CAAC;gBACjC,SAAS;YACX,CAAC;iBAAM,IAAI,mBAAmB,KAAK,KAAK,EAAE,CAAC;gBACzC,OAAO,mBAAmB,CAAC;YAC7B,CAAC;YAED,8BAA8B;YAC9B,0CAA0C;YAC1C,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC3D,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvB,UAAU,GAAG,KAAK,CAAC;gBACnB,SAAS;YACX,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO;oBACL,OAAO,EAAE,KAAK;iBACf,CAAC;YACJ,CAAC;YAED,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,OAAO;YACL,UAAU;YACV,YAAY,EAAE,YAA8C;YAC5D,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;CACF;AAnFD,kDAmFC;AAED,MAAa,2BAKX,SAAQ,mBAAuC;IAGtC,OAAO,CACd,YAAiC,EACjC,IAAe,EACf,YAAqC,EACrC,YAAkC;QAElC,IAAI,MAAwC,CAAC;QAC7C,IAAI,CAAC;YACH,MAAM,GAAI,IAAI,CAAC,IAAmC,CAAC,IAAI,CACrD,IAAI;YACJ,iEAAiE;YACjE,GAAI,YAAoB,CACzB,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,yBAAc,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzC,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,IAAI,IAAA,mBAAO,EAAC,GAAG,CAAC,IAAI,GAAG,YAAY,MAAC,CAAC,QAAQ,EAAE,CAAC;gBAC9C,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;YAC3D,CAAC;YACD,MAAM,IAAI,uCAA4B,CACpC,0CAA0C,IAAI,KAAK,GAAG,EAAE,EACxD,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;QACJ,CAAC;QACD,IAAI,IAAA,yBAAa,EAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,oCAAoC;YACpC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACpC,KAAK,CAAC,kDAAkD,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YACvE,CAAC,CAAC,CAAC;YAEH,MAAM,IAAI,+BAAoB,CAC5B,aAAa,IAAI,4DAA4D,CAC9E,CAAC;QACJ,CAAC;QACD,IAAI,IAAA,qBAAS,EAAC,MAAM,CAAC,EAAE,CAAC;YACtB,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YACpD,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBACvB,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;aAAM,IAAI,IAAA,qBAAS,EAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,yBAAc,CAAC;oBACvB,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,OAAO,EAAE,aAAa,IAAI,0BAA0B,IAAA,cAAO,EAAC,IAAI,CAAC,EAAE;iBACpE,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,IAAI,IAAA,mBAAO,EAAC,MAAM,CAAC,IAAI,MAAM,YAAY,MAAC,CAAC,QAAQ,EAAE,CAAC;YAC3D,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;QAC9D,CAAC;aAAM,IAAI,IAAA,4CAAuB,EAAC,MAAM,CAAC,EAAE,CAAC;YAC3C,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;YAChD,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,IAAI,uCAA4B,CACpC,kBAAkB,IAAI,wDAAwD,CAC/E,CAAC;YACJ,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;gBACvB,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;aAAM,IAAI,IAAA,uCAAkB,EAAC,MAAM,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,yBAAc,CAAC;gBACvB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,OAAO,EACL,MAAM,CAAC,OAAO;oBACd,aAAa,IAAI,0BAA0B,IAAA,cAAO,EAAC,IAAI,CAAC,EAAE;aAC7D,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,MAAiB,EAAE,CAAC;YAC7B,MAAM,IAAI,uCAA4B,CACpC,sCAAsC,IAAI,kDAAkD,EAC5F,EAAE,MAAM,EAAE,CACX,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AApFD,kEAoFC;AAED;;;;;;;;;;;GAWG;AAEH,MAAa,yBAKX,SAAQ,mBAAuC;IAGtC,OAAO,CACd,YAAiC,EACjC,KAAgB,EAChB,YAAqC,EACrC,WAAiC;QAEjC,6DAA6D;QAC7D,MAAM,gBAAgB,GAAG,WAAW,EAAE,OAAO;YAC3C,CAAC,CAAC,WAAW,CAAC,uBAAuB;YACrC,CAAC,CAAC,SAAS,CAAC;QAEd,IAAI,gBAAgB,EAAE,CAAC;YACrB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;gBAC9B,uEAAuE;gBACvE,MAAM,IAAI,CAAC,YAAY,CACrB,gBAAgB,CAAC,KAAK,EACtB,YAAY,EACZ,YAAY,CACb,CAAC;YACJ,CAAC;YACD,gDAAgD;YAChD,OAAO;QACT,CAAC;QAED,uDAAuD;QACvD,MAAM,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAEQ,WAAW,CAClB,IAAU;QAEV,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QACvB,MAAM,YAAY,GAAU,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,IAAI,UAAU,GAAG,IAAI,CAAC;QACtB,IAAI,uBAA8E,CAAC;QAEnF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YACnE,IAAI,mBAAmB,KAAK,IAAI,EAAE,CAAC;gBACjC,SAAS;YACX,CAAC;iBAAM,IAAI,mBAAmB,KAAK,KAAK,EAAE,CAAC;gBACzC,OAAO,mBAAmB,CAAC;YAC7B,CAAC;YAED,kFAAkF;YAClF,IACE,CAAC,KAAK,CAAC;gBACP,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC;gBACxD,IAAI,CAAC,uBAAuB,EAAE,EAC9B,CAAC;gBACD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACxC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,uBAAuB,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;oBAC/D,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB;gBACvD,CAAC;qBAAM,CAAC;oBACN,uBAAuB,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;oBAClE,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,oCAAoC;gBAC9D,CAAC;gBACD,UAAU,GAAG,KAAK,CAAC,CAAC,mDAAmD;gBACvE,SAAS;YACX,CAAC;YAED,mDAAmD;YACnD,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC3D,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvB,UAAU,GAAG,KAAK,CAAC;gBACnB,SAAS;YACX,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO;oBACL,OAAO,EAAE,KAAK;iBACf,CAAC;YACJ,CAAC;YACD,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QAED,MAAM,MAAM,GAA+B;YACzC,UAAU;YACV,YAAY,EAAE,YAA8C;YAC5D,OAAO,EAAE,IAAI;SACd,CAAC;QAEF,4DAA4D;QAC5D,IAAI,uBAAuB,EAAE,CAAC;YAC5B,MAAM,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QAC3D,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACK,uBAAuB;QAC7B,2EAA2E;QAC3E,qCAAqC;QACrC,MAAM,cAAc,GAClB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YACrB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,SAAS;gBACpC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;QAEvC,MAAM,wBAAwB,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE;YAClE,MAAM,IAAI,GAAG,4BAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5C,OAAO,4BAAc,IAAI,IAAI,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,OAAO,cAAc,IAAI,wBAAwB,CAAC;IACpD,CAAC;CACF;AAnID,8DAmIC"}
1
+ {"version":3,"file":"assertion-sync.js","sourceRoot":"","sources":["../../../src/assertion/assertion-sync.ts"],"names":[],"mappings":"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"}