bupkis 0.7.2 → 0.9.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 (215) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +19 -2
  3. package/dist/commonjs/assertion/assertion-async.d.ts.map +1 -1
  4. package/dist/commonjs/assertion/assertion-async.js +37 -7
  5. package/dist/commonjs/assertion/assertion-async.js.map +1 -1
  6. package/dist/commonjs/assertion/assertion-sync.d.ts.map +1 -1
  7. package/dist/commonjs/assertion/assertion-sync.js +32 -8
  8. package/dist/commonjs/assertion/assertion-sync.js.map +1 -1
  9. package/dist/commonjs/assertion/assertion-types.d.ts +37 -31
  10. package/dist/commonjs/assertion/assertion-types.d.ts.map +1 -1
  11. package/dist/commonjs/assertion/assertion-types.js +0 -32
  12. package/dist/commonjs/assertion/assertion-types.js.map +1 -1
  13. package/dist/commonjs/assertion/assertion.d.ts +3 -21
  14. package/dist/commonjs/assertion/assertion.d.ts.map +1 -1
  15. package/dist/commonjs/assertion/assertion.js +42 -27
  16. package/dist/commonjs/assertion/assertion.js.map +1 -1
  17. package/dist/commonjs/assertion/create.d.ts +2 -0
  18. package/dist/commonjs/assertion/create.d.ts.map +1 -1
  19. package/dist/commonjs/assertion/create.js +38 -42
  20. package/dist/commonjs/assertion/create.js.map +1 -1
  21. package/dist/commonjs/assertion/impl/assertion-util.d.ts +16 -4
  22. package/dist/commonjs/assertion/impl/assertion-util.d.ts.map +1 -1
  23. package/dist/commonjs/assertion/impl/assertion-util.js +20 -15
  24. package/dist/commonjs/assertion/impl/assertion-util.js.map +1 -1
  25. package/dist/commonjs/assertion/impl/async-parametric.d.ts +63 -11
  26. package/dist/commonjs/assertion/impl/async-parametric.d.ts.map +1 -1
  27. package/dist/commonjs/assertion/impl/async-parametric.js +89 -52
  28. package/dist/commonjs/assertion/impl/async-parametric.js.map +1 -1
  29. package/dist/commonjs/assertion/impl/async.d.ts +116 -12
  30. package/dist/commonjs/assertion/impl/async.d.ts.map +1 -1
  31. package/dist/commonjs/assertion/impl/async.js +1 -1
  32. package/dist/commonjs/assertion/impl/sync-basic.d.ts.map +1 -1
  33. package/dist/commonjs/assertion/impl/sync-basic.js +6 -4
  34. package/dist/commonjs/assertion/impl/sync-basic.js.map +1 -1
  35. package/dist/commonjs/assertion/impl/sync-collection.d.ts.map +1 -1
  36. package/dist/commonjs/assertion/impl/sync-collection.js +24 -14
  37. package/dist/commonjs/assertion/impl/sync-collection.js.map +1 -1
  38. package/dist/commonjs/assertion/impl/sync-esoteric.d.ts +1 -5
  39. package/dist/commonjs/assertion/impl/sync-esoteric.d.ts.map +1 -1
  40. package/dist/commonjs/assertion/impl/sync-esoteric.js +11 -13
  41. package/dist/commonjs/assertion/impl/sync-esoteric.js.map +1 -1
  42. package/dist/commonjs/assertion/impl/sync-parametric.d.ts +27 -7
  43. package/dist/commonjs/assertion/impl/sync-parametric.d.ts.map +1 -1
  44. package/dist/commonjs/assertion/impl/sync-parametric.js +75 -51
  45. package/dist/commonjs/assertion/impl/sync-parametric.js.map +1 -1
  46. package/dist/commonjs/assertion/impl/sync.d.ts +54 -22
  47. package/dist/commonjs/assertion/impl/sync.d.ts.map +1 -1
  48. package/dist/commonjs/assertion/impl/sync.js +1 -1
  49. package/dist/commonjs/assertion/impl/sync.js.map +1 -1
  50. package/dist/commonjs/assertion/index.d.ts +1 -1
  51. package/dist/commonjs/assertion/index.d.ts.map +1 -1
  52. package/dist/commonjs/assertion/index.js +0 -1
  53. package/dist/commonjs/assertion/index.js.map +1 -1
  54. package/dist/commonjs/assertion/slotify.d.ts +1 -13
  55. package/dist/commonjs/assertion/slotify.d.ts.map +1 -1
  56. package/dist/commonjs/assertion/slotify.js +49 -16
  57. package/dist/commonjs/assertion/slotify.js.map +1 -1
  58. package/dist/commonjs/bootstrap.d.ts +85 -17
  59. package/dist/commonjs/bootstrap.d.ts.map +1 -1
  60. package/dist/commonjs/bootstrap.js +1 -0
  61. package/dist/commonjs/bootstrap.js.map +1 -1
  62. package/dist/commonjs/diff.d.ts +51 -0
  63. package/dist/commonjs/diff.d.ts.map +1 -0
  64. package/dist/commonjs/diff.js +279 -0
  65. package/dist/commonjs/diff.js.map +1 -0
  66. package/dist/commonjs/error.d.ts +37 -18
  67. package/dist/commonjs/error.d.ts.map +1 -1
  68. package/dist/commonjs/error.js +44 -30
  69. package/dist/commonjs/error.js.map +1 -1
  70. package/dist/commonjs/expect.d.ts.map +1 -1
  71. package/dist/commonjs/expect.js +131 -78
  72. package/dist/commonjs/expect.js.map +1 -1
  73. package/dist/commonjs/guards.d.ts +24 -10
  74. package/dist/commonjs/guards.d.ts.map +1 -1
  75. package/dist/commonjs/guards.js +56 -39
  76. package/dist/commonjs/guards.js.map +1 -1
  77. package/dist/commonjs/index.d.ts +85 -17
  78. package/dist/commonjs/index.d.ts.map +1 -1
  79. package/dist/commonjs/internal-schema.d.ts +25 -0
  80. package/dist/commonjs/internal-schema.d.ts.map +1 -0
  81. package/dist/commonjs/internal-schema.js +209 -0
  82. package/dist/commonjs/internal-schema.js.map +1 -0
  83. package/dist/commonjs/schema.d.ts.map +1 -1
  84. package/dist/commonjs/schema.js +3 -2
  85. package/dist/commonjs/schema.js.map +1 -1
  86. package/dist/commonjs/use.js +22 -8
  87. package/dist/commonjs/use.js.map +1 -1
  88. package/dist/commonjs/util.d.ts +1 -0
  89. package/dist/commonjs/util.d.ts.map +1 -1
  90. package/dist/commonjs/util.js +14 -10
  91. package/dist/commonjs/util.js.map +1 -1
  92. package/dist/commonjs/value-to-schema.d.ts +1 -0
  93. package/dist/commonjs/value-to-schema.d.ts.map +1 -1
  94. package/dist/commonjs/value-to-schema.js +19 -12
  95. package/dist/commonjs/value-to-schema.js.map +1 -1
  96. package/dist/esm/assertion/assertion-async.d.ts.map +1 -1
  97. package/dist/esm/assertion/assertion-async.js +37 -7
  98. package/dist/esm/assertion/assertion-async.js.map +1 -1
  99. package/dist/esm/assertion/assertion-sync.d.ts.map +1 -1
  100. package/dist/esm/assertion/assertion-sync.js +32 -8
  101. package/dist/esm/assertion/assertion-sync.js.map +1 -1
  102. package/dist/esm/assertion/assertion-types.d.ts +37 -31
  103. package/dist/esm/assertion/assertion-types.d.ts.map +1 -1
  104. package/dist/esm/assertion/assertion-types.js +1 -31
  105. package/dist/esm/assertion/assertion-types.js.map +1 -1
  106. package/dist/esm/assertion/assertion.d.ts +3 -21
  107. package/dist/esm/assertion/assertion.d.ts.map +1 -1
  108. package/dist/esm/assertion/assertion.js +42 -27
  109. package/dist/esm/assertion/assertion.js.map +1 -1
  110. package/dist/esm/assertion/create.d.ts +2 -0
  111. package/dist/esm/assertion/create.d.ts.map +1 -1
  112. package/dist/esm/assertion/create.js +37 -41
  113. package/dist/esm/assertion/create.js.map +1 -1
  114. package/dist/esm/assertion/impl/assertion-util.d.ts +16 -4
  115. package/dist/esm/assertion/impl/assertion-util.d.ts.map +1 -1
  116. package/dist/esm/assertion/impl/assertion-util.js +20 -15
  117. package/dist/esm/assertion/impl/assertion-util.js.map +1 -1
  118. package/dist/esm/assertion/impl/async-parametric.d.ts +63 -11
  119. package/dist/esm/assertion/impl/async-parametric.d.ts.map +1 -1
  120. package/dist/esm/assertion/impl/async-parametric.js +89 -52
  121. package/dist/esm/assertion/impl/async-parametric.js.map +1 -1
  122. package/dist/esm/assertion/impl/async.d.ts +116 -12
  123. package/dist/esm/assertion/impl/async.d.ts.map +1 -1
  124. package/dist/esm/assertion/impl/async.js +2 -2
  125. package/dist/esm/assertion/impl/async.js.map +1 -1
  126. package/dist/esm/assertion/impl/sync-basic.d.ts.map +1 -1
  127. package/dist/esm/assertion/impl/sync-basic.js +6 -4
  128. package/dist/esm/assertion/impl/sync-basic.js.map +1 -1
  129. package/dist/esm/assertion/impl/sync-collection.d.ts.map +1 -1
  130. package/dist/esm/assertion/impl/sync-collection.js +24 -14
  131. package/dist/esm/assertion/impl/sync-collection.js.map +1 -1
  132. package/dist/esm/assertion/impl/sync-esoteric.d.ts +1 -5
  133. package/dist/esm/assertion/impl/sync-esoteric.d.ts.map +1 -1
  134. package/dist/esm/assertion/impl/sync-esoteric.js +11 -13
  135. package/dist/esm/assertion/impl/sync-esoteric.js.map +1 -1
  136. package/dist/esm/assertion/impl/sync-parametric.d.ts +27 -7
  137. package/dist/esm/assertion/impl/sync-parametric.d.ts.map +1 -1
  138. package/dist/esm/assertion/impl/sync-parametric.js +75 -51
  139. package/dist/esm/assertion/impl/sync-parametric.js.map +1 -1
  140. package/dist/esm/assertion/impl/sync.d.ts +54 -22
  141. package/dist/esm/assertion/impl/sync.d.ts.map +1 -1
  142. package/dist/esm/assertion/impl/sync.js +2 -2
  143. package/dist/esm/assertion/impl/sync.js.map +1 -1
  144. package/dist/esm/assertion/index.d.ts +1 -1
  145. package/dist/esm/assertion/index.d.ts.map +1 -1
  146. package/dist/esm/assertion/index.js +0 -1
  147. package/dist/esm/assertion/index.js.map +1 -1
  148. package/dist/esm/assertion/slotify.d.ts +1 -13
  149. package/dist/esm/assertion/slotify.d.ts.map +1 -1
  150. package/dist/esm/assertion/slotify.js +50 -17
  151. package/dist/esm/assertion/slotify.js.map +1 -1
  152. package/dist/esm/bootstrap.d.ts +85 -17
  153. package/dist/esm/bootstrap.d.ts.map +1 -1
  154. package/dist/esm/bootstrap.js +1 -0
  155. package/dist/esm/bootstrap.js.map +1 -1
  156. package/dist/esm/diff.d.ts +51 -0
  157. package/dist/esm/diff.d.ts.map +1 -0
  158. package/dist/esm/diff.js +273 -0
  159. package/dist/esm/diff.js.map +1 -0
  160. package/dist/esm/error.d.ts +37 -18
  161. package/dist/esm/error.d.ts.map +1 -1
  162. package/dist/esm/error.js +41 -27
  163. package/dist/esm/error.js.map +1 -1
  164. package/dist/esm/expect.d.ts.map +1 -1
  165. package/dist/esm/expect.js +133 -80
  166. package/dist/esm/expect.js.map +1 -1
  167. package/dist/esm/guards.d.ts +24 -10
  168. package/dist/esm/guards.d.ts.map +1 -1
  169. package/dist/esm/guards.js +52 -36
  170. package/dist/esm/guards.js.map +1 -1
  171. package/dist/esm/index.d.ts +85 -17
  172. package/dist/esm/index.d.ts.map +1 -1
  173. package/dist/esm/internal-schema.d.ts +25 -0
  174. package/dist/esm/internal-schema.d.ts.map +1 -0
  175. package/dist/esm/internal-schema.js +203 -0
  176. package/dist/esm/internal-schema.js.map +1 -0
  177. package/dist/esm/schema.d.ts.map +1 -1
  178. package/dist/esm/schema.js +3 -2
  179. package/dist/esm/schema.js.map +1 -1
  180. package/dist/esm/use.js +19 -6
  181. package/dist/esm/use.js.map +1 -1
  182. package/dist/esm/util.d.ts +1 -0
  183. package/dist/esm/util.d.ts.map +1 -1
  184. package/dist/esm/util.js +14 -10
  185. package/dist/esm/util.js.map +1 -1
  186. package/dist/esm/value-to-schema.d.ts +1 -0
  187. package/dist/esm/value-to-schema.d.ts.map +1 -1
  188. package/dist/esm/value-to-schema.js +20 -13
  189. package/dist/esm/value-to-schema.js.map +1 -1
  190. package/package.json +29 -11
  191. package/src/assertion/assertion-async.ts +42 -14
  192. package/src/assertion/assertion-sync.ts +40 -17
  193. package/src/assertion/assertion-types.ts +55 -45
  194. package/src/assertion/assertion.ts +49 -32
  195. package/src/assertion/create.ts +46 -65
  196. package/src/assertion/impl/assertion-util.ts +31 -18
  197. package/src/assertion/impl/async-parametric.ts +93 -52
  198. package/src/assertion/impl/async.ts +2 -2
  199. package/src/assertion/impl/sync-basic.ts +7 -4
  200. package/src/assertion/impl/sync-collection.ts +34 -14
  201. package/src/assertion/impl/sync-esoteric.ts +17 -13
  202. package/src/assertion/impl/sync-parametric.ts +79 -52
  203. package/src/assertion/impl/sync.ts +2 -2
  204. package/src/assertion/index.ts +1 -1
  205. package/src/assertion/slotify.ts +67 -21
  206. package/src/bootstrap.ts +1 -0
  207. package/src/diff.ts +343 -0
  208. package/src/error.ts +66 -31
  209. package/src/expect.ts +195 -129
  210. package/src/guards.ts +74 -48
  211. package/src/internal-schema.ts +246 -0
  212. package/src/schema.ts +4 -2
  213. package/src/use.ts +21 -7
  214. package/src/util.ts +15 -12
  215. package/src/value-to-schema.ts +21 -13
@@ -15,6 +15,7 @@ const use_js_1 = require("./use.js");
15
15
  * Factory function that creates both synchronous and asynchronous assertion
16
16
  * engines.
17
17
  *
18
+ * @function
18
19
  * @returns Object containing {@link expect} and {@link expectAsync} functions
19
20
  * @internal
20
21
  */
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/bootstrap.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,mDAAuE;AAEvE,qCAAqC;AAErC;;;;;;GAMG;AACH,MAAM,SAAS,GAAG,GAGhB,EAAE;IACF,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,kBAAS,EACvC,yBAAc,EACd,0BAAe,CAChB,CAAC,CAAC,GAAG,yBAAc,EAAE,GAAG,0BAAe,CAAC,CAAC,CAAC;IAE3C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AACjC,CAAC,CAAC;AAEF,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;AAExB,MAAM;AACJ;;;;;;GAMG;AACH,MAAM;AACN;;;;;;GAMG;AACH,WAAW,GACZ,GAAG,GAAG,CAAC;AAEC,wBAAM;AAAE,kCAAW"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/bootstrap.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,mDAAuE;AAEvE,qCAAqC;AAErC;;;;;;;GAOG;AACH,MAAM,SAAS,GAAG,GAGhB,EAAE;IACF,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,kBAAS,EACvC,yBAAc,EACd,0BAAe,CAChB,CAAC,CAAC,GAAG,yBAAc,EAAE,GAAG,0BAAe,CAAC,CAAC,CAAC;IAE3C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AACjC,CAAC,CAAC;AAEF,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;AAExB,MAAM;AACJ;;;;;;GAMG;AACH,MAAM;AACN;;;;;;GAMG;AACH,WAAW,GACZ,GAAG,GAAG,CAAC;AAEC,wBAAM;AAAE,kCAAW"}
@@ -0,0 +1,51 @@
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 type { DiffOptions } from 'jest-diff';
12
+ import type { z } from 'zod/v4';
13
+ export type { DiffOptions };
14
+ /**
15
+ * Result of extracting diff values from a `ZodError`
16
+ */
17
+ export interface DiffValues {
18
+ /** The actual value that was validated */
19
+ actual: unknown;
20
+ /** The expected value (corrected version) */
21
+ expected: unknown;
22
+ }
23
+ /**
24
+ * Extracts actual and expected values from a `ZodError` for meaningful diffs.
25
+ *
26
+ * @function
27
+ * @param zodError The `ZodError` to extract values from
28
+ * @param subject The original subject that failed validation
29
+ * @returns Object with actual and expected values for diff
30
+ */
31
+ export declare const extractDiffValues: (zodError: z.ZodError, subject: unknown) => DiffValues;
32
+ /**
33
+ * Generates a rich diff string using jest-diff for assertion failures.
34
+ *
35
+ * @function
36
+ * @param expected The expected value
37
+ * @param actual The actual value
38
+ * @param options Configuration options for diff generation
39
+ * @returns A formatted diff string, or null if values are identical
40
+ */
41
+ export declare const generateDiff: (expected: unknown, actual: unknown, options?: DiffOptions) => null | string;
42
+ /**
43
+ * Checks if two values should generate a meaningful diff.
44
+ *
45
+ * @function
46
+ * @param actual The actual value
47
+ * @param expected The expected value
48
+ * @returns True if a diff should be generated, false otherwise
49
+ */
50
+ export declare const shouldGenerateDiff: (actual: unknown, expected: unknown) => boolean;
51
+ //# sourceMappingURL=diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/diff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAGhC,YAAY,EAAE,WAAW,EAAE,CAAC;AAO5B;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,0CAA0C;IAC1C,MAAM,EAAE,OAAO,CAAC;IAChB,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAC5B,UAAU,CAAC,CAAC,QAAQ,EACpB,SAAS,OAAO,KACf,UA4GF,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GACvB,UAAU,OAAO,EACjB,QAAQ,OAAO,EACf,UAAS,WAAgB,KACxB,IAAI,GAAG,MAYT,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,OAAO,EACf,UAAU,OAAO,KAChB,OACoE,CAAC"}
@@ -0,0 +1,279 @@
1
+ "use strict";
2
+ /**
3
+ * Diff utilities for generating rich assertion failure output.
4
+ *
5
+ * This module provides utilities for extracting meaningful actual/expected
6
+ * values from Zod validation errors and generating high-quality diff output
7
+ * using `jest-diff` for assertion failures.
8
+ *
9
+ * @packageDocumentation
10
+ * @see {@link https://npm.im/jest-diff | jest-diff}
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.shouldGenerateDiff = exports.generateDiff = exports.extractDiffValues = void 0;
14
+ const jest_diff_1 = require("jest-diff");
15
+ const { isArray } = Array;
16
+ const { max } = Math;
17
+ const { stringify } = JSON;
18
+ const { entries } = Object;
19
+ /**
20
+ * Extracts actual and expected values from a `ZodError` for meaningful diffs.
21
+ *
22
+ * @function
23
+ * @param zodError The `ZodError` to extract values from
24
+ * @param subject The original subject that failed validation
25
+ * @returns Object with actual and expected values for diff
26
+ */
27
+ const extractDiffValues = (zodError, subject) => {
28
+ try {
29
+ // Start with the original subject as the actual value
30
+ const actual = subject;
31
+ // Create a copy to modify as the expected value
32
+ let expected = subject != null ? deepClone(subject) : subject;
33
+ // Process each issue to build the expected value
34
+ for (const issue of zodError.issues) {
35
+ try {
36
+ // Filter path to only string/number keys (symbols are rare in practice)
37
+ const filteredPath = issue.path.filter((key) => typeof key === 'string' || typeof key === 'number');
38
+ switch (issue.code) {
39
+ case 'invalid_type': {
40
+ const correctedValue = createCorrectValueForType(issue.expected, getValueAtPath(actual, filteredPath));
41
+ expected = setValueAtPath(expected, filteredPath, correctedValue);
42
+ break;
43
+ }
44
+ case 'invalid_value': {
45
+ // For literal/enum errors, use the first valid value
46
+ const correctedValue = issue.values && issue.values.length > 0
47
+ ? issue.values[0]
48
+ : '<valid value>';
49
+ expected = setValueAtPath(expected, filteredPath, correctedValue);
50
+ break;
51
+ }
52
+ case 'too_big': {
53
+ const actualValue = getValueAtPath(actual, filteredPath);
54
+ let correctedValue;
55
+ if (issue.origin === 'string' && typeof actualValue === 'string') {
56
+ correctedValue = actualValue.slice(0, Number(issue.maximum));
57
+ }
58
+ else if (issue.origin === 'array' && isArray(actualValue)) {
59
+ correctedValue = actualValue.slice(0, Number(issue.maximum));
60
+ }
61
+ else {
62
+ correctedValue = issue.maximum;
63
+ }
64
+ expected = setValueAtPath(expected, filteredPath, correctedValue);
65
+ break;
66
+ }
67
+ case 'too_small': {
68
+ const actualValue = getValueAtPath(actual, filteredPath);
69
+ let correctedValue;
70
+ if (issue.origin === 'string' && typeof actualValue === 'string') {
71
+ const needed = Number(issue.minimum) - actualValue.length;
72
+ correctedValue = actualValue + 'x'.repeat(max(0, needed));
73
+ }
74
+ else if (issue.origin === 'array' && isArray(actualValue)) {
75
+ const needed = Number(issue.minimum) - actualValue.length;
76
+ correctedValue = actualValue.concat(new Array(max(0, needed)).fill(null));
77
+ }
78
+ else {
79
+ correctedValue = issue.minimum;
80
+ }
81
+ expected = setValueAtPath(expected, filteredPath, correctedValue);
82
+ break;
83
+ }
84
+ case 'unrecognized_keys': {
85
+ // Remove unrecognized keys from expected
86
+ if (filteredPath.length === 0 &&
87
+ typeof expected === 'object' &&
88
+ expected !== null) {
89
+ const expectedCopy = {
90
+ ...expected,
91
+ };
92
+ for (const key of issue.keys) {
93
+ delete expectedCopy[key];
94
+ }
95
+ expected = expectedCopy;
96
+ }
97
+ break;
98
+ }
99
+ default: {
100
+ // For other error types, just mark that something should be different
101
+ // but don't try to guess what the correct value should be
102
+ break;
103
+ }
104
+ }
105
+ }
106
+ catch {
107
+ // If we can't process an individual issue, continue with others
108
+ continue;
109
+ }
110
+ }
111
+ return { actual, expected };
112
+ }
113
+ catch {
114
+ // If anything goes wrong, return undefined to fall back to pretty error
115
+ return { actual: undefined, expected: undefined };
116
+ }
117
+ };
118
+ exports.extractDiffValues = extractDiffValues;
119
+ /**
120
+ * Generates a rich diff string using jest-diff for assertion failures.
121
+ *
122
+ * @function
123
+ * @param expected The expected value
124
+ * @param actual The actual value
125
+ * @param options Configuration options for diff generation
126
+ * @returns A formatted diff string, or null if values are identical
127
+ */
128
+ const generateDiff = (expected, actual, options = {}) => {
129
+ if (!(0, exports.shouldGenerateDiff)(actual, expected)) {
130
+ return null;
131
+ }
132
+ return (0, jest_diff_1.diff)(expected, actual, {
133
+ aAnnotation: 'expected',
134
+ bAnnotation: 'actual',
135
+ expand: false,
136
+ includeChangeCounts: true,
137
+ ...options,
138
+ });
139
+ };
140
+ exports.generateDiff = generateDiff;
141
+ /**
142
+ * Checks if two values should generate a meaningful diff.
143
+ *
144
+ * @function
145
+ * @param actual The actual value
146
+ * @param expected The expected value
147
+ * @returns True if a diff should be generated, false otherwise
148
+ */
149
+ const shouldGenerateDiff = (actual, expected) => actual !== undefined && expected !== undefined && actual !== expected;
150
+ exports.shouldGenerateDiff = shouldGenerateDiff;
151
+ /**
152
+ * Creates a corrected value for a given type
153
+ *
154
+ * @function
155
+ */
156
+ const createCorrectValueForType = (expectedType, actualValue) => {
157
+ switch (expectedType) {
158
+ case 'array':
159
+ return isArray(actualValue) ? actualValue : [];
160
+ case 'boolean':
161
+ return typeof actualValue === 'boolean'
162
+ ? actualValue
163
+ : Boolean(actualValue);
164
+ case 'null':
165
+ return null;
166
+ case 'number':
167
+ return typeof actualValue === 'number'
168
+ ? actualValue
169
+ : Number(actualValue) || 0;
170
+ case 'object':
171
+ return typeof actualValue === 'object' && actualValue !== null
172
+ ? actualValue
173
+ : {};
174
+ case 'string':
175
+ if (typeof actualValue === 'string') {
176
+ return actualValue;
177
+ }
178
+ if (actualValue == null) {
179
+ return '';
180
+ }
181
+ if (typeof actualValue === 'object') {
182
+ return stringify(actualValue);
183
+ }
184
+ // For primitive types (number, boolean, etc.) - we know it's not an object here
185
+ // eslint-disable-next-line @typescript-eslint/no-base-to-string
186
+ return `${actualValue}`;
187
+ case 'undefined':
188
+ return undefined;
189
+ default:
190
+ return `<${expectedType}>`;
191
+ }
192
+ };
193
+ /**
194
+ * Custom deep clone implementation for values that structuredClone can't
195
+ * handle. Used as fallback when structuredClone fails.
196
+ *
197
+ * @function
198
+ */
199
+ const customDeepClone = (value) => {
200
+ if (value === null || typeof value !== 'object') {
201
+ return value;
202
+ }
203
+ if (isArray(value)) {
204
+ return value.map(customDeepClone);
205
+ }
206
+ // For objects, create a new object and copy properties
207
+ const cloned = {};
208
+ for (const [key, val] of entries(value)) {
209
+ cloned[key] = customDeepClone(val);
210
+ }
211
+ return cloned;
212
+ };
213
+ /**
214
+ * Deep clone a value to avoid mutating the original. Uses the native
215
+ * structuredClone API which handles more types and circular references better
216
+ * than a custom implementation. Falls back to custom implementation for values
217
+ * containing functions.
218
+ *
219
+ * @function
220
+ */
221
+ const deepClone = (value) => {
222
+ try {
223
+ return structuredClone(value);
224
+ }
225
+ catch (error) {
226
+ // Handle DataCloneError for values that can't be cloned (functions, symbols, etc.)
227
+ if (error instanceof Error && error.name === 'DataCloneError') {
228
+ return customDeepClone(value);
229
+ }
230
+ throw error;
231
+ }
232
+ };
233
+ /**
234
+ * Gets a value at a specific path in an object
235
+ *
236
+ * @function
237
+ */
238
+ const getValueAtPath = (obj, path) => {
239
+ if (path.length === 0) {
240
+ return obj;
241
+ }
242
+ let current = obj;
243
+ for (const key of path) {
244
+ if (current == null) {
245
+ return undefined;
246
+ }
247
+ current = current[key];
248
+ }
249
+ return current;
250
+ };
251
+ /**
252
+ * Returns a new object with the value at the specified path set to the given
253
+ * value.
254
+ *
255
+ * @function
256
+ */
257
+ const setValueAtPath = (obj, path, value) => {
258
+ if (path.length === 0) {
259
+ return value;
260
+ }
261
+ if (obj == null) {
262
+ // Need to create the structure
263
+ obj = typeof path[0] === 'number' ? [] : {};
264
+ }
265
+ const result = isArray(obj)
266
+ ? [...obj]
267
+ : { ...obj };
268
+ const [head, ...tail] = path;
269
+ if (head !== undefined) {
270
+ if (tail.length === 0) {
271
+ result[head] = value;
272
+ }
273
+ else {
274
+ result[head] = setValueAtPath(result[head], tail, value);
275
+ }
276
+ }
277
+ return result;
278
+ };
279
+ //# sourceMappingURL=diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/diff.ts"],"names":[],"mappings":"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"}
@@ -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
  *
@@ -30,7 +39,7 @@ export interface InvalidMetadataErrorOptions extends ErrorOptions {
30
39
  metadata?: unknown;
31
40
  }
32
41
  /**
33
- * Options for {@link InvalidSchemaError}
42
+ * Options for {@link InvalidObjectSchemaError}
34
43
  *
35
44
  * @group Error Options
36
45
  */
@@ -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
@@ -93,6 +110,7 @@ export declare class AssertionImplementationError extends BupkisError {
93
110
  name: string;
94
111
  readonly result: unknown;
95
112
  constructor(message: string, options?: AssertionImplementationErrorOptions);
113
+ static isAssertionImplementationError(err: unknown): err is AssertionImplementationError;
96
114
  }
97
115
  /**
98
116
  * Variant of an {@link AssertionError} that is thrown when
@@ -119,16 +137,31 @@ export declare class InvalidMetadataError extends BupkisError {
119
137
  constructor(message: string, options?: InvalidMetadataErrorOptions);
120
138
  }
121
139
  /**
122
- * Thrown from certain assertions when the result of `valueToSchema` is invalid.
140
+ * Thrown from certain assertions when a parameter cannot be used as an "object
141
+ * schema"
123
142
  *
124
143
  * @group Errors
125
144
  */
126
- export declare class InvalidSchemaError extends BupkisError {
127
- readonly code = "ERR_BUPKIS_INVALID_SCHEMA";
145
+ export declare class InvalidObjectSchemaError extends BupkisError {
146
+ readonly code = "ERR_BUPKIS_INVALID_OBJECT_SCHEMA";
128
147
  name: string;
129
148
  readonly schema?: unknown;
130
149
  constructor(message: string, options?: InvalidSchemaErrorOptions);
131
150
  }
151
+ /**
152
+ * Thrown when a value cannot be converted to a schema using `valueToSchema()`.
153
+ *
154
+ * @remarks
155
+ * Currently, this includes the presence of an own property `__proto__` or an
156
+ * empty object (because this will match anything; though maybe we should change
157
+ * that).
158
+ * @group Errors
159
+ */
160
+ export declare class SatisfactionError extends BupkisError {
161
+ readonly code = "ERR_BUPKIS_SATISFACTION";
162
+ name: string;
163
+ constructor(message: string, options?: ErrorOptions);
164
+ }
132
165
  /**
133
166
  * Thrown when `expect()` is called with something async.
134
167
  *
@@ -150,18 +183,4 @@ export declare class UnknownAssertionError<T extends readonly unknown[]> extends
150
183
  name: string;
151
184
  constructor(message: string, options: UnknownAssertionErrorOptions<T>);
152
185
  }
153
- /**
154
- * Thrown when a value cannot be converted to a schema using `valueToSchema()`.
155
- *
156
- * @remarks
157
- * Currently, this includes the presence of an own property `__proto__` or an
158
- * empty object (because this will match anything; though maybe we should change
159
- * that).
160
- * @group Errors
161
- */
162
- export declare class ValueToSchemaError extends BupkisError {
163
- readonly code = "ERR_BUPKIS_SATISFACTION";
164
- name: string;
165
- constructor(message: string, options?: ErrorOptions);
166
- }
167
186
  //# sourceMappingURL=error.d.ts.map
@@ -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;AAGvB;;;;GAIG;AACH,MAAM,WAAW,mCAAoC,SAAQ,YAAY;IACvE;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AACD;;;;GAIG;AACH,MAAM,WAAW,2BAA4B,SAAQ,YAAY;IAC/D;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAA0B,SAAQ,YAAY;IAC7D;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,4BAA4B,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,CACxE,SAAQ,YAAY;IACpB;;;OAGG;IACH,IAAI,EAAE,CAAC,CAAC;CACT;AAED;;;;;;GAMG;AACH,qBAAa,cAAe,SAAQ,kBAAkB;IAM3C,IAAI,SAAoB;IAEjC;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc;CAMjE;AAED;;;;;;;GAOG;AACH,qBAAa,WAAY,SAAQ,KAAK;IACpC,CAAC,YAAY,CAAC,UAAQ;IAEb,IAAI,SAAiB;IAE9B,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,WAAW;CAGvD;AAED;;;;;GAKG;AACH,qBAAa,4BAA6B,SAAQ,WAAW;IAC3D,QAAQ,CAAC,IAAI,+BAA+B;IAEnC,IAAI,SAAkC;IAE/C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;gBAGvB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,mCAAwC;CAMpD;AAED;;;;;GAKG;AACH,qBAAa,kBAAmB,SAAQ,cAAc;IAM3C,IAAI,SAAwB;IAErC,MAAM,CAAC,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,kBAAkB;CAMrE;AAED;;;;;;;GAOG;AACH,qBAAa,oBAAqB,SAAQ,WAAW;IACnD,QAAQ,CAAC,IAAI,iCAAiC;IAE9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,IAAI,SAA0B;gBAE3B,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,2BAAgC;CAKvE;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,QAAQ,CAAC,IAAI,+BAA+B;IAEnC,IAAI,SAAwB;IAErC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;gBAEd,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,yBAA8B;CAKrE;AAqBD;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,WAAW;IACnD,QAAQ,CAAC,IAAI,iCAAiC;IAErC,IAAI,SAA0B;CACxC;AAED;;;;;GAKG;AACH,qBAAa,qBAAqB,CAChC,CAAC,SAAS,SAAS,OAAO,EAAE,CAC5B,SAAQ,WAAW;IACnB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAEjB,QAAQ,CAAC,IAAI,kCAAkC;IAEtC,IAAI,SAA2B;gBAE5B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,4BAA4B,CAAC,CAAC,CAAC;CAKtE;AAED;;;;;;;;GAQG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,QAAQ,CAAC,IAAI,6BAA6B;IAEjC,IAAI,SAAuB;gBAExB,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB;CAGxD"}
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/error.ts"],"names":[],"mappings":"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"}
@@ -7,10 +7,11 @@
7
7
  * @packageDocumentation
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.ValueToSchemaError = exports.UnknownAssertionError = exports.UnexpectedAsyncError = exports.NegatedAssertionError = exports.InvalidSchemaError = exports.InvalidMetadataError = exports.FailAssertionError = exports.AssertionImplementationError = exports.BupkisError = exports.AssertionError = void 0;
10
+ exports.UnknownAssertionError = exports.UnexpectedAsyncError = exports.SatisfactionError = exports.NegatedAssertionError = exports.InvalidObjectSchemaError = exports.InvalidMetadataError = exports.FailAssertionError = exports.AssertionImplementationError = exports.BupkisError = exports.AssertionError = void 0;
11
11
  const node_assert_1 = require("node:assert");
12
12
  const constant_js_1 = require("./constant.js");
13
13
  const guards_js_1 = require("./guards.js");
14
+ const { hasOwn } = Object;
14
15
  /**
15
16
  * _BUPKIS_' s custom `AssertionError` class, which is just a thin wrapper
16
17
  * around Node.js' {@link NodeAssertionError AssertionError}.
@@ -24,6 +25,9 @@ class AssertionError extends node_assert_1.AssertionError {
24
25
  */
25
26
  [constant_js_1.kBupkisAssertionError] = true;
26
27
  name = 'AssertionError';
28
+ constructor(options) {
29
+ super(options);
30
+ }
27
31
  /**
28
32
  * Type guard for an instance of this error.
29
33
  *
@@ -31,8 +35,16 @@ class AssertionError extends node_assert_1.AssertionError {
31
35
  * @returns `true` if `value` is an instance of `AssertionError`
32
36
  */
33
37
  static isAssertionError(value) {
34
- return ((0, guards_js_1.isA)(value, node_assert_1.AssertionError) &&
35
- Object.hasOwn(value, constant_js_1.kBupkisAssertionError));
38
+ return ((0, guards_js_1.isA)(value, node_assert_1.AssertionError) && hasOwn(value, constant_js_1.kBupkisAssertionError));
39
+ }
40
+ toJSON() {
41
+ return {
42
+ actual: this.actual,
43
+ expected: this.expected,
44
+ message: this.message,
45
+ name: this.name,
46
+ stack: this.stack,
47
+ };
36
48
  }
37
49
  }
38
50
  exports.AssertionError = AssertionError;
@@ -48,7 +60,7 @@ class BupkisError extends Error {
48
60
  [constant_js_1.kBupkisError] = true;
49
61
  name = 'BupkisError';
50
62
  static isBupkisError(err) {
51
- return (0, guards_js_1.isA)(err, Error) && Object.hasOwn(err, constant_js_1.kBupkisError);
63
+ return (0, guards_js_1.isA)(err, Error) && hasOwn(err, constant_js_1.kBupkisError);
52
64
  }
53
65
  }
54
66
  exports.BupkisError = BupkisError;
@@ -67,6 +79,9 @@ class AssertionImplementationError extends BupkisError {
67
79
  super(message, rest);
68
80
  this.result = result;
69
81
  }
82
+ static isAssertionImplementationError(err) {
83
+ return (0, guards_js_1.isA)(err, AssertionImplementationError);
84
+ }
70
85
  }
71
86
  exports.AssertionImplementationError = AssertionImplementationError;
72
87
  /**
@@ -82,8 +97,7 @@ class FailAssertionError extends AssertionError {
82
97
  [constant_js_1.kBupkisFailAssertionError] = true;
83
98
  name = 'FailAssertionError';
84
99
  static isFailAssertionError(err) {
85
- return ((0, guards_js_1.isA)(err, FailAssertionError) &&
86
- Object.hasOwn(err, constant_js_1.kBupkisFailAssertionError));
100
+ return ((0, guards_js_1.isA)(err, FailAssertionError) && hasOwn(err, constant_js_1.kBupkisFailAssertionError));
87
101
  }
88
102
  }
89
103
  exports.FailAssertionError = FailAssertionError;
@@ -107,13 +121,14 @@ class InvalidMetadataError extends BupkisError {
107
121
  }
108
122
  exports.InvalidMetadataError = InvalidMetadataError;
109
123
  /**
110
- * Thrown from certain assertions when the result of `valueToSchema` is invalid.
124
+ * Thrown from certain assertions when a parameter cannot be used as an "object
125
+ * schema"
111
126
  *
112
127
  * @group Errors
113
128
  */
114
- class InvalidSchemaError extends BupkisError {
115
- code = 'ERR_BUPKIS_INVALID_SCHEMA';
116
- name = 'InvalidSchemaError';
129
+ class InvalidObjectSchemaError extends BupkisError {
130
+ code = 'ERR_BUPKIS_INVALID_OBJECT_SCHEMA';
131
+ name = 'InvalidObjectSchemaError';
117
132
  schema;
118
133
  constructor(message, options = {}) {
119
134
  const { schema, ...rest } = options;
@@ -121,7 +136,7 @@ class InvalidSchemaError extends BupkisError {
121
136
  this.schema = schema;
122
137
  }
123
138
  }
124
- exports.InvalidSchemaError = InvalidSchemaError;
139
+ exports.InvalidObjectSchemaError = InvalidObjectSchemaError;
125
140
  /**
126
141
  * Error type used internally to catch failed negated assertions.
127
142
  *
@@ -132,11 +147,27 @@ class NegatedAssertionError extends AssertionError {
132
147
  [constant_js_1.kBupkisNegatedAssertionError] = true;
133
148
  name = 'NegatedAssertionError';
134
149
  static isNegatedAssertionError(err) {
135
- return ((0, guards_js_1.isA)(err, AssertionError) &&
136
- Object.hasOwn(err, constant_js_1.kBupkisNegatedAssertionError));
150
+ return ((0, guards_js_1.isA)(err, AssertionError) && hasOwn(err, constant_js_1.kBupkisNegatedAssertionError));
137
151
  }
138
152
  }
139
153
  exports.NegatedAssertionError = NegatedAssertionError;
154
+ /**
155
+ * Thrown when a value cannot be converted to a schema using `valueToSchema()`.
156
+ *
157
+ * @remarks
158
+ * Currently, this includes the presence of an own property `__proto__` or an
159
+ * empty object (because this will match anything; though maybe we should change
160
+ * that).
161
+ * @group Errors
162
+ */
163
+ class SatisfactionError extends BupkisError {
164
+ code = 'ERR_BUPKIS_SATISFACTION';
165
+ name = 'SatisfactionError';
166
+ constructor(message, options = {}) {
167
+ super(message, options);
168
+ }
169
+ }
170
+ exports.SatisfactionError = SatisfactionError;
140
171
  /**
141
172
  * Thrown when `expect()` is called with something async.
142
173
  *
@@ -164,21 +195,4 @@ class UnknownAssertionError extends BupkisError {
164
195
  }
165
196
  }
166
197
  exports.UnknownAssertionError = UnknownAssertionError;
167
- /**
168
- * Thrown when a value cannot be converted to a schema using `valueToSchema()`.
169
- *
170
- * @remarks
171
- * Currently, this includes the presence of an own property `__proto__` or an
172
- * empty object (because this will match anything; though maybe we should change
173
- * that).
174
- * @group Errors
175
- */
176
- class ValueToSchemaError extends BupkisError {
177
- code = 'ERR_BUPKIS_SATISFACTION';
178
- name = 'SatisfactionError';
179
- constructor(message, options = {}) {
180
- super(message, options);
181
- }
182
- }
183
- exports.ValueToSchemaError = ValueToSchemaError;
184
198
  //# sourceMappingURL=error.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/error.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/error.ts"],"names":[],"mappings":"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"}
@@ -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;AAoH1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;AAkT9B;;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"}
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;AAUxC,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;AA0H1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;AA6W9B;;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"}