@plugjs/expect5 0.4.5 → 0.4.7

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 (35) hide show
  1. package/dist/cli.mjs +1 -1
  2. package/dist/expectation/async.cjs +32 -20
  3. package/dist/expectation/async.cjs.map +1 -1
  4. package/dist/expectation/async.d.ts +51 -11
  5. package/dist/expectation/async.mjs +32 -20
  6. package/dist/expectation/async.mjs.map +1 -1
  7. package/dist/expectation/expect.cjs +3 -3
  8. package/dist/expectation/expect.cjs.map +1 -1
  9. package/dist/expectation/expect.d.ts +3 -3
  10. package/dist/expectation/expect.mjs +4 -4
  11. package/dist/expectation/expect.mjs.map +1 -1
  12. package/dist/expectation/expectations.cjs +27 -44
  13. package/dist/expectation/expectations.cjs.map +1 -1
  14. package/dist/expectation/expectations.d.ts +72 -14
  15. package/dist/expectation/expectations.mjs +27 -44
  16. package/dist/expectation/expectations.mjs.map +1 -1
  17. package/dist/expectation/matchers.cjs +24 -47
  18. package/dist/expectation/matchers.cjs.map +1 -1
  19. package/dist/expectation/matchers.d.ts +136 -93
  20. package/dist/expectation/matchers.mjs +23 -46
  21. package/dist/expectation/matchers.mjs.map +1 -1
  22. package/dist/expectation/types.cjs.map +1 -1
  23. package/dist/expectation/types.d.ts +2 -2
  24. package/dist/expectation/types.mjs.map +1 -1
  25. package/dist/test.cjs +6 -4
  26. package/dist/test.cjs.map +1 -1
  27. package/dist/test.mjs +7 -5
  28. package/dist/test.mjs.map +1 -1
  29. package/package.json +3 -3
  30. package/src/expectation/async.ts +95 -14
  31. package/src/expectation/expect.ts +6 -6
  32. package/src/expectation/expectations.ts +152 -27
  33. package/src/expectation/matchers.ts +207 -125
  34. package/src/expectation/types.ts +2 -2
  35. package/src/test.ts +9 -4
package/dist/cli.mjs CHANGED
@@ -8,7 +8,7 @@ var { $blu, $und, $gry, $wht } = logging;
8
8
  var $gnd = (s) => $gry($und(s));
9
9
  var $bnd = (s) => $blu($und(s));
10
10
  var $wnd = (s) => $wht($und(s));
11
- var version = true ? "0.4.5" : "0.0.0-dev";
11
+ var version = true ? "0.4.7" : "0.0.0-dev";
12
12
  function help() {
13
13
  console.log(`${$blu($und("Usage:"))}
14
14
 
@@ -24,6 +24,7 @@ __export(async_exports, {
24
24
  });
25
25
  module.exports = __toCommonJS(async_exports);
26
26
  var import_expectations = require("./expectations.cjs");
27
+ var import_types = require("./types.cjs");
27
28
  var AsyncExpectations = class extends import_expectations.Expectations {
28
29
  /**
29
30
  * Create an {@link AsyncExpectations} instance associated with the specified
@@ -32,52 +33,63 @@ var AsyncExpectations = class extends import_expectations.Expectations {
32
33
  constructor(value, remarks) {
33
34
  super(value, remarks);
34
35
  }
35
- /* ------------------------------------------------------------------------ */
36
- /**
37
- * Expects the value to be a _rejected_ {@link PromiseLike}, and (if
38
- * specified) further asserts the rejection reason with an
39
- * {@link AssertionFunction}.
40
- *
41
- * Negation: {@link Expectations.toBeResolved `toBeResolved(...)`}
42
- */
43
- toBeRejected(assertion) {
36
+ toBeRejected(assertionOrMatcher) {
44
37
  return Promise.resolve().then(() => {
45
38
  this.toHaveProperty("then", (assert) => assert.toBeA("function"));
46
39
  return Promise.allSettled([Promise.resolve(this.value)]);
47
40
  }).then(([settlement]) => {
48
41
  if (settlement.status === "rejected") {
49
- if (assertion)
50
- assertion(new import_expectations.Expectations(settlement.reason, this.remarks));
42
+ if ((0, import_types.isMatcher)(assertionOrMatcher)) {
43
+ assertionOrMatcher.expect(settlement.reason);
44
+ } else if (assertionOrMatcher) {
45
+ assertionOrMatcher(new import_expectations.Expectations(settlement.reason, this.remarks));
46
+ }
51
47
  return this;
52
48
  }
53
49
  this._fail("to be rejected");
54
50
  });
55
51
  }
56
- toBeRejectedWithError(constructorOrMessage, maybeMessage) {
57
- const [constructor, message] = typeof constructorOrMessage === "function" ? [constructorOrMessage, maybeMessage] : [Error, constructorOrMessage];
58
- return this.toBeRejected((assert) => assert.toBeError(constructor, message));
59
- }
60
52
  /* ------------------------------------------------------------------------ */
61
53
  /**
62
- * Expects the value to be a _resolved_ {@link PromiseLike}, and (if
63
- * specified) further asserts the resolved result with an
64
- * {@link AssertionFunction}.
54
+ * Expects the value to be a {@link PromiseLike} _rejected_ with an
55
+ * {@link Error} {@link Expectations.toStrictlyEqual _strictly equal_}
56
+ * to the one specified.
65
57
  *
66
- * Negation: {@link Expectations.toBeRejected `toBeRejected(...)`}
58
+ * Negation: {@link Expectations.toBeResolved `toBeResolved(...)`}
67
59
  */
60
+ toBeRejectedWith(expected) {
61
+ return this.toBeRejected((assert) => assert.toStrictlyEqual(expected));
62
+ }
63
+ toBeRejectedWithError(constructorOrMessage, maybeMessage) {
64
+ const [constructor, message] = typeof constructorOrMessage === "function" ? [constructorOrMessage, maybeMessage] : [Error, constructorOrMessage];
65
+ return this.toBeRejected((assert) => assert.toBeError(constructor, message));
66
+ }
68
67
  toBeResolved(assertion) {
69
68
  return Promise.resolve().then(() => {
70
69
  this.toHaveProperty("then", (assert) => assert.toBeA("function"));
71
70
  return Promise.allSettled([Promise.resolve(this.value)]);
72
71
  }).then(([settlement]) => {
73
72
  if (settlement.status === "fulfilled") {
74
- if (assertion)
73
+ if ((0, import_types.isMatcher)(assertion)) {
74
+ assertion.expect(settlement.value);
75
+ } else if (assertion) {
75
76
  assertion(new import_expectations.Expectations(settlement.value, this.remarks));
77
+ }
76
78
  return this;
77
79
  }
78
80
  this._fail("to be resolved");
79
81
  });
80
82
  }
83
+ /* ------------------------------------------------------------------------ */
84
+ /**
85
+ * Expects the value to be a {@link PromiseLike} _resolved_ with a value
86
+ * {@link Expectations.toEqual _deeply equal_} to the one specified.
87
+ *
88
+ * Negation: {@link Expectations.toBeRejected `toBeRejected(...)`}
89
+ */
90
+ toBeResolvedWith(expected) {
91
+ return this.toBeResolved((assert) => assert.toEqual(expected));
92
+ }
81
93
  };
82
94
  // Annotate the CommonJS export names for ESM import in node:
83
95
  0 && (module.exports = {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/expectation/async.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAIO;AAWA,IAAM,oBAAN,cAA6C,iCAAgB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKlE,YAAY,OAAU,SAA6B;AACjD,UAAM,OAAO,OAAO;AAAA,EACtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,aACI,WAC8C;AAChD,WAAO,QAAQ,QAAQ,EAClB,KAAK,MAAM;AACV,WAAK,eAAe,QAAQ,CAAC,WAAW,OAAO,MAAM,UAAU,CAAC;AAChE,aAAO,QAAQ,WAAW,CAAE,QAAQ,QAAQ,KAAK,KAAK,CAAE,CAAC;AAAA,IAC3D,CAAC,EACA,KAAK,CAAC,CAAE,UAAW,MAAM;AACxB,UAAI,WAAW,WAAW,YAAY;AACpC,YAAI;AAAW,oBAAU,IAAI,iCAAa,WAAW,QAAQ,KAAK,OAAO,CAAC;AAC1E,eAAO;AAAA,MACT;AAEA,WAAK,MAAM,gBAAgB;AAAA,IAC7B,CAAC;AAAA,EACP;AAAA,EAkCA,sBACI,sBACA,cACqB;AACvB,UAAM,CAAE,aAAa,OAAQ,IAC3B,OAAO,yBAAyB,aAC9B,CAAE,sBAAsB,YAAa,IACrC,CAAE,OAAO,oBAAqB;AAElC,WAAO,KAAK,aAAa,CAAC,WAAW,OAAO,UAAU,aAAa,OAAO,CAAC;AAAA,EAC7E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,aACI,WACoE;AACtE,WAAO,QAAQ,QAAQ,EAClB,KAAK,MAAM;AACV,WAAK,eAAe,QAAQ,CAAC,WAAW,OAAO,MAAM,UAAU,CAAC;AAChE,aAAO,QAAQ,WAAW,CAAE,QAAQ,QAAQ,KAAK,KAAK,CAAE,CAAC;AAAA,IAC3D,CAAC,EACA,KAAK,CAAC,CAAE,UAAW,MAAM;AACxB,UAAI,WAAW,WAAW,aAAa;AACrC,YAAI;AAAW,oBAAU,IAAI,iCAAa,WAAW,OAAO,KAAK,OAAO,CAAC;AACzE,eAAO;AAAA,MACT;AAEA,WAAK,MAAM,gBAAgB;AAAA,IAC7B,CAAC;AAAA,EACP;AACF;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAMO;AACP,mBAA4C;AAYrC,IAAM,oBAAN,cAA6C,iCAAgB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKlE,YAAY,OAAU,SAA6B;AACjD,UAAM,OAAO,OAAO;AAAA,EACtB;AAAA,EA+BA,aACI,oBACqB;AACvB,WAAO,QAAQ,QAAQ,EAClB,KAAK,MAAM;AACV,WAAK,eAAe,QAAQ,CAAC,WAAW,OAAO,MAAM,UAAU,CAAC;AAChE,aAAO,QAAQ,WAAW,CAAE,QAAQ,QAAQ,KAAK,KAAK,CAAE,CAAC;AAAA,IAC3D,CAAC,EACA,KAAK,CAAC,CAAE,UAAW,MAAM;AACxB,UAAI,WAAW,WAAW,YAAY;AACpC,gBAAI,wBAAU,kBAAkB,GAAG;AACjC,6BAAmB,OAAO,WAAW,MAAM;AAAA,QAC7C,WAAW,oBAAoB;AAC7B,6BAAmB,IAAI,iCAAa,WAAW,QAAQ,KAAK,OAAO,CAAC;AAAA,QACtE;AACA,eAAO;AAAA,MACT;AAEA,WAAK,MAAM,gBAAgB;AAAA,IAC7B,CAAC;AAAA,EACP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,iBACI,UAC8C;AAChD,WAAO,KAAK,aAAa,CAAC,WAAW,OAAO,gBAAgB,QAAQ,CAAC;AAAA,EACvE;AAAA,EAkCA,sBACI,sBACA,cACqB;AACvB,UAAM,CAAE,aAAa,OAAQ,IAC3B,OAAO,yBAAyB,aAC9B,CAAE,sBAAsB,YAAa,IACrC,CAAE,OAAO,oBAAqB;AAElC,WAAO,KAAK,aAAa,CAAC,WAAW,OAAO,UAAU,aAAa,OAAO,CAAC;AAAA,EAC7E;AAAA,EA+BA,aACI,WACqB;AACvB,WAAO,QAAQ,QAAQ,EAClB,KAAK,MAAM;AACV,WAAK,eAAe,QAAQ,CAAC,WAAW,OAAO,MAAM,UAAU,CAAC;AAChE,aAAO,QAAQ,WAAW,CAAE,QAAQ,QAAQ,KAAK,KAAK,CAAE,CAAC;AAAA,IAC3D,CAAC,EACA,KAAK,CAAC,CAAE,UAAW,MAAM;AACxB,UAAI,WAAW,WAAW,aAAa;AACrC,gBAAI,wBAAU,SAAS,GAAG;AACxB,oBAAU,OAAO,WAAW,KAAK;AAAA,QACnC,WAAW,WAAW;AACpB,oBAAU,IAAI,iCAAa,WAAW,OAAO,KAAK,OAAO,CAAC;AAAA,QAC5D;AACA,eAAO;AAAA,MACT;AAEA,WAAK,MAAM,gBAAgB;AAAA,IAC7B,CAAC;AAAA,EACP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,iBACI,UACsD;AACxD,WAAO,KAAK,aAAa,CAAC,WAAW,OAAO,QAAQ,QAAQ,CAAC;AAAA,EAC/D;AACF;",
5
5
  "names": []
6
6
  }
@@ -1,5 +1,6 @@
1
- import { Expectations, type AssertionFunction, type AssertedType } from './expectations';
2
- import type { Constructor } from './types';
1
+ import { Expectations, type AssertionFunction, type AssertedType, type InferToEqual, type InferMatcher } from './expectations';
2
+ import { type Constructor } from './types';
3
+ import type { Matcher } from './matchers';
3
4
  /**
4
5
  * Extension to {@link Expectations} adding support for {@link Promise}s.
5
6
  *
@@ -14,13 +15,33 @@ export declare class AsyncExpectations<T = unknown> extends Expectations<T> {
14
15
  */
15
16
  constructor(value: T, remarks: string | undefined);
16
17
  /**
17
- * Expects the value to be a _rejected_ {@link PromiseLike}, and (if
18
- * specified) further asserts the rejection reason with an
19
- * {@link AssertionFunction}.
18
+ * Expects the value to be a _rejected_ {@link PromiseLike}.
20
19
  *
21
20
  * Negation: {@link Expectations.toBeResolved `toBeResolved(...)`}
22
21
  */
23
- toBeRejected(assertion?: AssertionFunction): Promise<Expectations<PromiseLike<Awaited<T>>>>;
22
+ toBeRejected(): Promise<Expectations<PromiseLike<Awaited<T>>>>;
23
+ /**
24
+ * Expects the value to be a _rejected_ {@link PromiseLike}, and further
25
+ * validates the rejection with a {@link Matcher}.
26
+ *
27
+ * Negation: {@link Expectations.toBeResolved `toBeResolved(...)`}
28
+ */
29
+ toBeRejected(matcher: Matcher): Promise<Expectations<PromiseLike<Awaited<T>>>>;
30
+ /**
31
+ * Expects the value to be a _rejected_ {@link PromiseLike}, and further
32
+ * asserts the rejection reason with an {@link AssertionFunction}.
33
+ *
34
+ * Negation: {@link Expectations.toBeResolved `toBeResolved(...)`}
35
+ */
36
+ toBeRejected(assertion: AssertionFunction): Promise<Expectations<PromiseLike<Awaited<T>>>>;
37
+ /**
38
+ * Expects the value to be a {@link PromiseLike} _rejected_ with an
39
+ * {@link Error} {@link Expectations.toStrictlyEqual _strictly equal_}
40
+ * to the one specified.
41
+ *
42
+ * Negation: {@link Expectations.toBeResolved `toBeResolved(...)`}
43
+ */
44
+ toBeRejectedWith(expected: Error): Promise<Expectations<PromiseLike<Awaited<T>>>>;
24
45
  /**
25
46
  * Expect the value to be a _rejected_ {@link PromiseLike}, and further
26
47
  * asserts the rejection reason to be an {@link Error}.
@@ -43,13 +64,32 @@ export declare class AsyncExpectations<T = unknown> extends Expectations<T> {
43
64
  *
44
65
  * Negation: {@link Expectations.toBeResolved `toBeResolved(...)`}
45
66
  */
46
- toBeRejectedWithError(constructor: Constructor<Error>, message?: string | RegExp): Promise<Expectations<PromiseLike<T>>>;
67
+ toBeRejectedWithError(constructor: Constructor<Error>, message?: string | RegExp): Promise<Expectations<PromiseLike<Awaited<T>>>>;
68
+ /**
69
+ * Expects the value to be a _resolved_ {@link PromiseLike}.
70
+ *
71
+ * Negation: {@link Expectations.toBeRejected `toBeRejected(...)`}
72
+ */
73
+ toBeResolved(): Promise<Expectations<PromiseLike<Awaited<T>>>>;
74
+ /**
75
+ * Expects the value to be a _resolved_ {@link PromiseLike}, and further
76
+ * validates the resolved result with a {@link Matcher}.
77
+ *
78
+ * Negation: {@link Expectations.toBeRejected `toBeRejected(...)`}
79
+ */
80
+ toBeResolved<Match extends Matcher>(matcher: Match): Promise<Expectations<PromiseLike<InferMatcher<unknown, Match>>>>;
81
+ /**
82
+ * Expects the value to be a _resolved_ {@link PromiseLike}, and further
83
+ * asserts the resolved result with an {@link AssertionFunction}.
84
+ *
85
+ * Negation: {@link Expectations.toBeRejected `toBeRejected(...)`}
86
+ */
87
+ toBeResolved<Assert extends AssertionFunction<Awaited<T>>>(assertion: Assert): Promise<Expectations<PromiseLike<AssertedType<Awaited<T>, Assert>>>>;
47
88
  /**
48
- * Expects the value to be a _resolved_ {@link PromiseLike}, and (if
49
- * specified) further asserts the resolved result with an
50
- * {@link AssertionFunction}.
89
+ * Expects the value to be a {@link PromiseLike} _resolved_ with a value
90
+ * {@link Expectations.toEqual _deeply equal_} to the one specified.
51
91
  *
52
92
  * Negation: {@link Expectations.toBeRejected `toBeRejected(...)`}
53
93
  */
54
- toBeResolved<Assert extends AssertionFunction<Awaited<T>>>(assertion?: Assert): Promise<Expectations<PromiseLike<AssertedType<Awaited<T>, Assert>>>>;
94
+ toBeResolvedWith<Type>(expected: Type): Promise<Expectations<PromiseLike<InferToEqual<Type>>>>;
55
95
  }
@@ -2,6 +2,7 @@
2
2
  import {
3
3
  Expectations
4
4
  } from "./expectations.mjs";
5
+ import { isMatcher } from "./types.mjs";
5
6
  var AsyncExpectations = class extends Expectations {
6
7
  /**
7
8
  * Create an {@link AsyncExpectations} instance associated with the specified
@@ -10,52 +11,63 @@ var AsyncExpectations = class extends Expectations {
10
11
  constructor(value, remarks) {
11
12
  super(value, remarks);
12
13
  }
13
- /* ------------------------------------------------------------------------ */
14
- /**
15
- * Expects the value to be a _rejected_ {@link PromiseLike}, and (if
16
- * specified) further asserts the rejection reason with an
17
- * {@link AssertionFunction}.
18
- *
19
- * Negation: {@link Expectations.toBeResolved `toBeResolved(...)`}
20
- */
21
- toBeRejected(assertion) {
14
+ toBeRejected(assertionOrMatcher) {
22
15
  return Promise.resolve().then(() => {
23
16
  this.toHaveProperty("then", (assert) => assert.toBeA("function"));
24
17
  return Promise.allSettled([Promise.resolve(this.value)]);
25
18
  }).then(([settlement]) => {
26
19
  if (settlement.status === "rejected") {
27
- if (assertion)
28
- assertion(new Expectations(settlement.reason, this.remarks));
20
+ if (isMatcher(assertionOrMatcher)) {
21
+ assertionOrMatcher.expect(settlement.reason);
22
+ } else if (assertionOrMatcher) {
23
+ assertionOrMatcher(new Expectations(settlement.reason, this.remarks));
24
+ }
29
25
  return this;
30
26
  }
31
27
  this._fail("to be rejected");
32
28
  });
33
29
  }
34
- toBeRejectedWithError(constructorOrMessage, maybeMessage) {
35
- const [constructor, message] = typeof constructorOrMessage === "function" ? [constructorOrMessage, maybeMessage] : [Error, constructorOrMessage];
36
- return this.toBeRejected((assert) => assert.toBeError(constructor, message));
37
- }
38
30
  /* ------------------------------------------------------------------------ */
39
31
  /**
40
- * Expects the value to be a _resolved_ {@link PromiseLike}, and (if
41
- * specified) further asserts the resolved result with an
42
- * {@link AssertionFunction}.
32
+ * Expects the value to be a {@link PromiseLike} _rejected_ with an
33
+ * {@link Error} {@link Expectations.toStrictlyEqual _strictly equal_}
34
+ * to the one specified.
43
35
  *
44
- * Negation: {@link Expectations.toBeRejected `toBeRejected(...)`}
36
+ * Negation: {@link Expectations.toBeResolved `toBeResolved(...)`}
45
37
  */
38
+ toBeRejectedWith(expected) {
39
+ return this.toBeRejected((assert) => assert.toStrictlyEqual(expected));
40
+ }
41
+ toBeRejectedWithError(constructorOrMessage, maybeMessage) {
42
+ const [constructor, message] = typeof constructorOrMessage === "function" ? [constructorOrMessage, maybeMessage] : [Error, constructorOrMessage];
43
+ return this.toBeRejected((assert) => assert.toBeError(constructor, message));
44
+ }
46
45
  toBeResolved(assertion) {
47
46
  return Promise.resolve().then(() => {
48
47
  this.toHaveProperty("then", (assert) => assert.toBeA("function"));
49
48
  return Promise.allSettled([Promise.resolve(this.value)]);
50
49
  }).then(([settlement]) => {
51
50
  if (settlement.status === "fulfilled") {
52
- if (assertion)
51
+ if (isMatcher(assertion)) {
52
+ assertion.expect(settlement.value);
53
+ } else if (assertion) {
53
54
  assertion(new Expectations(settlement.value, this.remarks));
55
+ }
54
56
  return this;
55
57
  }
56
58
  this._fail("to be resolved");
57
59
  });
58
60
  }
61
+ /* ------------------------------------------------------------------------ */
62
+ /**
63
+ * Expects the value to be a {@link PromiseLike} _resolved_ with a value
64
+ * {@link Expectations.toEqual _deeply equal_} to the one specified.
65
+ *
66
+ * Negation: {@link Expectations.toBeRejected `toBeRejected(...)`}
67
+ */
68
+ toBeResolvedWith(expected) {
69
+ return this.toBeResolved((assert) => assert.toEqual(expected));
70
+ }
59
71
  };
60
72
  export {
61
73
  AsyncExpectations
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/expectation/async.ts"],
4
- "mappings": ";AAAA;AAAA,EACE;AAAA,OAGK;AAWA,IAAM,oBAAN,cAA6C,aAAgB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKlE,YAAY,OAAU,SAA6B;AACjD,UAAM,OAAO,OAAO;AAAA,EACtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,aACI,WAC8C;AAChD,WAAO,QAAQ,QAAQ,EAClB,KAAK,MAAM;AACV,WAAK,eAAe,QAAQ,CAAC,WAAW,OAAO,MAAM,UAAU,CAAC;AAChE,aAAO,QAAQ,WAAW,CAAE,QAAQ,QAAQ,KAAK,KAAK,CAAE,CAAC;AAAA,IAC3D,CAAC,EACA,KAAK,CAAC,CAAE,UAAW,MAAM;AACxB,UAAI,WAAW,WAAW,YAAY;AACpC,YAAI;AAAW,oBAAU,IAAI,aAAa,WAAW,QAAQ,KAAK,OAAO,CAAC;AAC1E,eAAO;AAAA,MACT;AAEA,WAAK,MAAM,gBAAgB;AAAA,IAC7B,CAAC;AAAA,EACP;AAAA,EAkCA,sBACI,sBACA,cACqB;AACvB,UAAM,CAAE,aAAa,OAAQ,IAC3B,OAAO,yBAAyB,aAC9B,CAAE,sBAAsB,YAAa,IACrC,CAAE,OAAO,oBAAqB;AAElC,WAAO,KAAK,aAAa,CAAC,WAAW,OAAO,UAAU,aAAa,OAAO,CAAC;AAAA,EAC7E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,aACI,WACoE;AACtE,WAAO,QAAQ,QAAQ,EAClB,KAAK,MAAM;AACV,WAAK,eAAe,QAAQ,CAAC,WAAW,OAAO,MAAM,UAAU,CAAC;AAChE,aAAO,QAAQ,WAAW,CAAE,QAAQ,QAAQ,KAAK,KAAK,CAAE,CAAC;AAAA,IAC3D,CAAC,EACA,KAAK,CAAC,CAAE,UAAW,MAAM;AACxB,UAAI,WAAW,WAAW,aAAa;AACrC,YAAI;AAAW,oBAAU,IAAI,aAAa,WAAW,OAAO,KAAK,OAAO,CAAC;AACzE,eAAO;AAAA,MACT;AAEA,WAAK,MAAM,gBAAgB;AAAA,IAC7B,CAAC;AAAA,EACP;AACF;",
4
+ "mappings": ";AAAA;AAAA,EACE;AAAA,OAKK;AACP,SAAS,iBAAmC;AAYrC,IAAM,oBAAN,cAA6C,aAAgB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKlE,YAAY,OAAU,SAA6B;AACjD,UAAM,OAAO,OAAO;AAAA,EACtB;AAAA,EA+BA,aACI,oBACqB;AACvB,WAAO,QAAQ,QAAQ,EAClB,KAAK,MAAM;AACV,WAAK,eAAe,QAAQ,CAAC,WAAW,OAAO,MAAM,UAAU,CAAC;AAChE,aAAO,QAAQ,WAAW,CAAE,QAAQ,QAAQ,KAAK,KAAK,CAAE,CAAC;AAAA,IAC3D,CAAC,EACA,KAAK,CAAC,CAAE,UAAW,MAAM;AACxB,UAAI,WAAW,WAAW,YAAY;AACpC,YAAI,UAAU,kBAAkB,GAAG;AACjC,6BAAmB,OAAO,WAAW,MAAM;AAAA,QAC7C,WAAW,oBAAoB;AAC7B,6BAAmB,IAAI,aAAa,WAAW,QAAQ,KAAK,OAAO,CAAC;AAAA,QACtE;AACA,eAAO;AAAA,MACT;AAEA,WAAK,MAAM,gBAAgB;AAAA,IAC7B,CAAC;AAAA,EACP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,iBACI,UAC8C;AAChD,WAAO,KAAK,aAAa,CAAC,WAAW,OAAO,gBAAgB,QAAQ,CAAC;AAAA,EACvE;AAAA,EAkCA,sBACI,sBACA,cACqB;AACvB,UAAM,CAAE,aAAa,OAAQ,IAC3B,OAAO,yBAAyB,aAC9B,CAAE,sBAAsB,YAAa,IACrC,CAAE,OAAO,oBAAqB;AAElC,WAAO,KAAK,aAAa,CAAC,WAAW,OAAO,UAAU,aAAa,OAAO,CAAC;AAAA,EAC7E;AAAA,EA+BA,aACI,WACqB;AACvB,WAAO,QAAQ,QAAQ,EAClB,KAAK,MAAM;AACV,WAAK,eAAe,QAAQ,CAAC,WAAW,OAAO,MAAM,UAAU,CAAC;AAChE,aAAO,QAAQ,WAAW,CAAE,QAAQ,QAAQ,KAAK,KAAK,CAAE,CAAC;AAAA,IAC3D,CAAC,EACA,KAAK,CAAC,CAAE,UAAW,MAAM;AACxB,UAAI,WAAW,WAAW,aAAa;AACrC,YAAI,UAAU,SAAS,GAAG;AACxB,oBAAU,OAAO,WAAW,KAAK;AAAA,QACnC,WAAW,WAAW;AACpB,oBAAU,IAAI,aAAa,WAAW,OAAO,KAAK,OAAO,CAAC;AAAA,QAC5D;AACA,eAAO;AAAA,MACT;AAEA,WAAK,MAAM,gBAAgB;AAAA,IAC7B,CAAC;AAAA,EACP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,iBACI,UACsD;AACxD,WAAO,KAAK,aAAa,CAAC,WAAW,OAAO,QAAQ,QAAQ,CAAC;AAAA,EAC/D;AACF;",
5
5
  "names": []
6
6
  }
@@ -28,14 +28,14 @@ var import_matchers = require("./matchers.cjs");
28
28
  var expect = (value, remarks) => {
29
29
  return new import_async.AsyncExpectations(value, remarks);
30
30
  };
31
- for (const key of Object.getOwnPropertyNames(import_matchers.Matchers.prototype)) {
31
+ for (const key of Object.getOwnPropertyNames(import_matchers.Matcher.prototype)) {
32
32
  if (!key.startsWith("to"))
33
33
  continue;
34
- const matcher = (...args) => new import_matchers.Matchers()[key](...args);
34
+ const matcher = (...args) => new import_matchers.Matcher()[key](...args);
35
35
  Object.defineProperty(matcher, "name", { value: key });
36
36
  Object.defineProperty(expect, key, { value: matcher });
37
37
  }
38
- Object.defineProperty(expect, "not", { get: () => new import_matchers.Matchers().not });
38
+ Object.defineProperty(expect, "not", { get: () => new import_matchers.Matcher().not });
39
39
  // Annotate the CommonJS export names for ESM import in node:
40
40
  0 && (module.exports = {
41
41
  expect
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/expectation/expect.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkC;AAClC,sBAAyB;AAgBlB,IAAM,SAAkB,CAAC,OAAY,YAAqB;AAC/D,SAAO,IAAI,+BAAkB,OAAO,OAAO;AAC7C;AAGA,WAAW,OAAO,OAAO,oBAAoB,yBAAS,SAAS,GAAG;AAChE,MAAI,CAAE,IAAI,WAAW,IAAI;AAAG;AAE5B,QAAM,UAAU,IAAI,SAAuB,IAAI,yBAAS,EAAU,GAAG,EAAE,GAAG,IAAI;AAC9E,SAAO,eAAe,SAAS,QAAQ,EAAE,OAAO,IAAI,CAAC;AACrD,SAAO,eAAe,QAAQ,KAAK,EAAE,OAAO,QAAQ,CAAC;AACvD;AAGA,OAAO,eAAe,QAAQ,OAAO,EAAE,KAAK,MAAM,IAAI,yBAAS,EAAE,IAAI,CAAC;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkC;AAClC,sBAAwB;AAgBjB,IAAM,SAAkB,CAAC,OAAY,YAAqB;AAC/D,SAAO,IAAI,+BAAkB,OAAO,OAAO;AAC7C;AAGA,WAAW,OAAO,OAAO,oBAAoB,wBAAQ,SAAS,GAAG;AAC/D,MAAI,CAAE,IAAI,WAAW,IAAI;AAAG;AAE5B,QAAM,UAAU,IAAI,SAAuB,IAAI,wBAAQ,EAAU,GAAG,EAAE,GAAG,IAAI;AAC7E,SAAO,eAAe,SAAS,QAAQ,EAAE,OAAO,IAAI,CAAC;AACrD,SAAO,eAAe,QAAQ,KAAK,EAAE,OAAO,QAAQ,CAAC;AACvD;AAGA,OAAO,eAAe,QAAQ,OAAO,EAAE,KAAK,MAAM,IAAI,wBAAQ,EAAE,IAAI,CAAC;",
5
5
  "names": []
6
6
  }
@@ -1,11 +1,11 @@
1
1
  import { AsyncExpectations } from './async';
2
- import { Matchers } from './matchers';
2
+ import { Matcher } from './matchers';
3
3
  export type { AsyncExpectations } from './async';
4
4
  export type { Expectations, NegativeExpectations } from './expectations';
5
- export type { Matchers, NegativeMatchers } from './matchers';
5
+ export type { Matcher as Matchers, NegativeMatchers } from './matchers';
6
6
  /** The `expect` function exposing expectations and matchers */
7
7
  export type Expect = {
8
8
  <T = unknown>(value: T, remarks?: string): AsyncExpectations<T>;
9
- } & Omit<Matchers, 'expect'>;
9
+ } & Omit<Matcher, 'expect'>;
10
10
  /** The `expect` function exposing expectations and matchers */
11
11
  export declare const expect: Expect;
@@ -1,17 +1,17 @@
1
1
  // expectation/expect.ts
2
2
  import { AsyncExpectations } from "./async.mjs";
3
- import { Matchers } from "./matchers.mjs";
3
+ import { Matcher } from "./matchers.mjs";
4
4
  var expect = (value, remarks) => {
5
5
  return new AsyncExpectations(value, remarks);
6
6
  };
7
- for (const key of Object.getOwnPropertyNames(Matchers.prototype)) {
7
+ for (const key of Object.getOwnPropertyNames(Matcher.prototype)) {
8
8
  if (!key.startsWith("to"))
9
9
  continue;
10
- const matcher = (...args) => new Matchers()[key](...args);
10
+ const matcher = (...args) => new Matcher()[key](...args);
11
11
  Object.defineProperty(matcher, "name", { value: key });
12
12
  Object.defineProperty(expect, key, { value: matcher });
13
13
  }
14
- Object.defineProperty(expect, "not", { get: () => new Matchers().not });
14
+ Object.defineProperty(expect, "not", { get: () => new Matcher().not });
15
15
  export {
16
16
  expect
17
17
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/expectation/expect.ts"],
4
- "mappings": ";AAAA,SAAS,yBAAyB;AAClC,SAAS,gBAAgB;AAgBlB,IAAM,SAAkB,CAAC,OAAY,YAAqB;AAC/D,SAAO,IAAI,kBAAkB,OAAO,OAAO;AAC7C;AAGA,WAAW,OAAO,OAAO,oBAAoB,SAAS,SAAS,GAAG;AAChE,MAAI,CAAE,IAAI,WAAW,IAAI;AAAG;AAE5B,QAAM,UAAU,IAAI,SAAuB,IAAI,SAAS,EAAU,GAAG,EAAE,GAAG,IAAI;AAC9E,SAAO,eAAe,SAAS,QAAQ,EAAE,OAAO,IAAI,CAAC;AACrD,SAAO,eAAe,QAAQ,KAAK,EAAE,OAAO,QAAQ,CAAC;AACvD;AAGA,OAAO,eAAe,QAAQ,OAAO,EAAE,KAAK,MAAM,IAAI,SAAS,EAAE,IAAI,CAAC;",
4
+ "mappings": ";AAAA,SAAS,yBAAyB;AAClC,SAAS,eAAe;AAgBjB,IAAM,SAAkB,CAAC,OAAY,YAAqB;AAC/D,SAAO,IAAI,kBAAkB,OAAO,OAAO;AAC7C;AAGA,WAAW,OAAO,OAAO,oBAAoB,QAAQ,SAAS,GAAG;AAC/D,MAAI,CAAE,IAAI,WAAW,IAAI;AAAG;AAE5B,QAAM,UAAU,IAAI,SAAuB,IAAI,QAAQ,EAAU,GAAG,EAAE,GAAG,IAAI;AAC7E,SAAO,eAAe,SAAS,QAAQ,EAAE,OAAO,IAAI,CAAC;AACrD,SAAO,eAAe,QAAQ,KAAK,EAAE,OAAO,QAAQ,CAAC;AACvD;AAGA,OAAO,eAAe,QAAQ,OAAO,EAAE,KAAK,MAAM,IAAI,QAAQ,EAAE,IAAI,CAAC;",
5
5
  "names": []
6
6
  }
@@ -46,19 +46,13 @@ var Expectations = class {
46
46
  _fail(details, diff2) {
47
47
  throw new import_types.ExpectationError(this, details, diff2);
48
48
  }
49
- /* ------------------------------------------------------------------------ *
50
- * BASIC *
51
- * ------------------------------------------------------------------------ */
52
- /**
53
- * Expects the value to be of the specified _extended_ {@link TypeName type},
54
- * and (if specified) further asserts it with an {@link AssertionFunction}.
55
- *
56
- * Negation: {@link NegativeExpectations.toBeA `not.toBeA(...)`}
57
- */
58
- toBeA(type, assertion) {
49
+ toBeA(type, assertionOrMatcher) {
59
50
  if ((0, import_types.typeOf)(this.value) === type) {
60
- if (assertion)
61
- assertion(this);
51
+ if ((0, import_types.isMatcher)(assertionOrMatcher)) {
52
+ assertionOrMatcher.expect(this.value);
53
+ } else if (assertionOrMatcher) {
54
+ assertionOrMatcher(this);
55
+ }
62
56
  return this;
63
57
  }
64
58
  this._fail(`to be ${(0, import_types.prefixType)(type)}`);
@@ -121,17 +115,13 @@ var Expectations = class {
121
115
  return this;
122
116
  this._fail(`to be greater than or equal to ${(0, import_types.stringifyValue)(value)}`);
123
117
  }
124
- /* ------------------------------------------------------------------------ */
125
- /**
126
- * Expects the value to be an instance of the specified {@link Constructor},
127
- * and (if specified) further asserts it with an {@link AssertionFunction}.
128
- *
129
- * Negation: {@link NegativeExpectations.toBeInstanceOf `not.toInstanceOf(...)`}
130
- */
131
- toBeInstanceOf(constructor, assertion) {
118
+ toBeInstanceOf(constructor, assertionOrMatcher) {
132
119
  if (this.value instanceof constructor) {
133
- if (assertion)
134
- assertion(this);
120
+ if ((0, import_types.isMatcher)(assertionOrMatcher)) {
121
+ assertionOrMatcher.expect(this.value);
122
+ } else if (assertionOrMatcher) {
123
+ assertionOrMatcher(this);
124
+ }
135
125
  return this;
136
126
  }
137
127
  this._fail(`to be an instance of ${(0, import_types.stringifyConstructor)(constructor)}`);
@@ -235,24 +225,21 @@ var Expectations = class {
235
225
  }
236
226
  return this;
237
227
  }
238
- /* ------------------------------------------------------------------------ */
239
- /**
240
- * Expects the value to have the specified _property_ and (if specified)
241
- * further asserts its value with an {@link AssertionFunction}.
242
- *
243
- * Negation: {@link NegativeExpectations.toHaveProperty `not.toHaveProperty(...)`}
244
- */
245
- toHaveProperty(property, assertion) {
228
+ toHaveProperty(property, assertionOrMatcher) {
246
229
  this.toBeDefined();
247
230
  const propertyValue = this.value[property];
248
231
  if (propertyValue === void 0) {
249
232
  this._fail(`to have property "${String(property)}"`);
250
233
  }
251
- if (assertion) {
234
+ if (assertionOrMatcher) {
235
+ const parent = { expectations: this, prop: property };
252
236
  try {
253
- const parent = { expectations: this, prop: property };
254
- const expectations = new Expectations(propertyValue, this.remarks, parent);
255
- assertion(expectations);
237
+ if ((0, import_types.isMatcher)(assertionOrMatcher)) {
238
+ assertionOrMatcher.expect(propertyValue, parent);
239
+ } else if (assertionOrMatcher) {
240
+ const expectations = new Expectations(propertyValue, this.remarks, parent);
241
+ assertionOrMatcher(expectations);
242
+ }
256
243
  } catch (error) {
257
244
  if (error instanceof import_types.ExpectationError && error.diff) {
258
245
  error.diff = {
@@ -322,22 +309,18 @@ var Expectations = class {
322
309
  const diff2 = { diff: true, value: this.value, expected };
323
310
  this._fail(`to strictly equal ${(0, import_types.stringifyValue)(expected)}`, diff2);
324
311
  }
325
- /* ------------------------------------------------------------------------ */
326
- /**
327
- * Expects the value to be a `function` throwing, and (if specified) further
328
- * asserts the thrown value with an {@link AssertionFunction}.
329
- *
330
- * Negation: {@link NegativeExpectations.toThrow `not.toThrow()`}
331
- */
332
- toThrow(assert) {
312
+ toThrow(assertionOrMatcher) {
333
313
  const func = this.toBeA("function");
334
314
  let passed = false;
335
315
  try {
336
316
  func.value();
337
317
  passed = true;
338
318
  } catch (thrown) {
339
- if (assert)
340
- assert(new Expectations(thrown, this.remarks));
319
+ if ((0, import_types.isMatcher)(assertionOrMatcher)) {
320
+ assertionOrMatcher.expect(thrown);
321
+ } else if (assertionOrMatcher) {
322
+ assertionOrMatcher(new Expectations(thrown, this.remarks));
323
+ }
341
324
  }
342
325
  if (passed)
343
326
  this._fail("to throw");
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/expectation/expectations.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAgC;AAChC,qBAA2C;AAE3C,mBAUO;AAmCA,IAAM,eAAN,MAAgC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUrC,YAEa,OAEA,SAKA,QACX;AARW;AAEA;AAKA;AAEX,SAAK,MAAM,IAAI,qBAAqB,IAAI;AAAA,EAC1C;AAAA;AAAA,EApBS;AAAA;AAAA,EAuBC,MAAM,SAAiBA,OAAoB;AACnD,UAAM,IAAI,8BAAiB,MAAM,SAASA,KAAI;AAAA,EAChD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MAKI,MACA,WAC0C;AAC5C,YAAI,qBAAO,KAAK,KAAK,MAAM,MAAM;AAC/B,UAAI;AAAW,kBAAU,IAAyB;AAClD,aAAO;AAAA,IACT;AAEA,SAAK,MAAM,aAAS,yBAAW,IAAI,GAAG;AAAA,EACxC;AAAA,EAoBA,YAAY,OAAwB,OAAsC;AACxE,UAAM,MAAO,QAAoB;AACjC,UAAM,MAAO,QAAoB;AACjC,WAAO,KAAK,gBAAgB,KAAK,GAAG;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,cAA+B;AAC7B,QAAK,KAAK,UAAU,QAAU,KAAK,UAAU;AAAY,aAAO;AAChE,SAAK,MAAM,qBAAiB,6BAAe,IAAI,aAAS,6BAAe,MAAS,GAAG;AAAA,EACrF;AAAA,EA0BA,UACI,sBACA,cACY;AACd,UAAM,CAAE,aAAa,OAAQ,IAC7B,OAAO,yBAAyB,aAC9B,CAAE,sBAAsB,YAAa,IACrC,CAAE,OAAO,oBAAqB;AAEhC,QAAI,YAAY;AAAW,aAAO,KAAK,eAAe,WAAW;AAEjE,WAAO,KAAK,eAAe,aAAa,CAAC,WAAW;AAClD,aAAO,eAAe,WAAW,CAAC,kBAAkB;AAClD,sBAAc,MAAM,QAAQ;AAC5B,YAAI,OAAO,YAAY;AAAU,wBAAc,gBAAgB,OAAO;AAAA;AACjE,wBAAc,QAAQ,OAAO;AAAA,MACpC,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAAA;AAAA;AAAA,EAKA,YAAiC;AAC/B,WAAO,KAAK,gBAAgB,KAAK;AAAA,EACnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,YAA6B;AAC3B,QAAI,CAAE,KAAK;AAAO,aAAO;AACzB,SAAK,MAAM,aAAa;AAAA,EAC1B;AAAA,EAoBA,gBAAgB,OAAsC;AACpD,SAAK,MAAM,OAAO,KAAK;AACvB,QAAK,KAAK,QAAgB;AAAO,aAAO;AACxC,SAAK,MAAM,0BAAsB,6BAAe,KAAK,GAAG;AAAA,EAC1D;AAAA,EAoBA,uBAAuB,OAAsC;AAC3D,SAAK,MAAM,OAAO,KAAK;AACvB,QAAK,KAAK,SAAiB;AAAO,aAAO;AACzC,SAAK,MAAM,sCAAkC,6BAAe,KAAK,GAAG;AAAA,EACtE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,eAII,aACA,WACuD;AACzD,QAAI,KAAK,iBAAiB,aAAa;AACrC,UAAI;AAAW,kBAAU,IAAyB;AAClD,aAAO;AAAA,IACT;AAEA,SAAK,MAAM,4BAAwB,mCAAqB,WAAW,GAAG;AAAA,EACxE;AAAA,EAkBA,aAAa,OAAsC;AACjD,SAAK,MAAM,OAAO,KAAK;AACvB,QAAK,KAAK,QAAgB;AAAO,aAAO;AACxC,SAAK,MAAM,uBAAmB,6BAAe,KAAK,GAAG;AAAA,EACvD;AAAA,EAoBA,oBAAoB,OAAsC;AACxD,SAAK,MAAM,OAAO,KAAK;AACvB,QAAK,KAAK,SAAiB;AAAO,aAAO;AACzC,SAAK,MAAM,mCAA+B,6BAAe,KAAK,GAAG;AAAA,EACnE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,UAAgC;AAC9B,UAAM,eAAe,KAAK,MAAM,QAAQ;AACxC,QAAI,MAAM,aAAa,KAAK;AAAG,aAAO;AACtC,SAAK,MAAM,aAAS,6BAAe,GAAG,GAAG;AAAA,EAC3C;AAAA;AAAA;AAAA,EAKA,WAA+B;AAC7B,WAAO,KAAK,gBAAgB,IAAI;AAAA,EAClC;AAAA;AAAA;AAAA,EAKA,WAA+B;AAC7B,WAAO,KAAK,gBAAgB,IAAI;AAAA,EAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,aAA8B;AAC5B,QAAI,KAAK;AAAO,aAAO;AACvB,SAAK,MAAM,cAAc;AAAA,EAC3B;AAAA;AAAA;AAAA,EAKA,gBAAyC;AACvC,WAAO,KAAK,gBAAgB,MAAS;AAAA,EACvC;AAAA,EAoBA,gBAAgB,KAAsB,KAAoC;AACxE,QAAI,MAAM,KAAK;AACb,YAAM,MAAM;AACZ,YAAM;AACN,YAAM;AAAA,IACR;AAEA,SAAK,MAAM,OAAO,GAAG;AAErB,QAAM,KAAK,QAAgB,OAAU,KAAK,QAAgB,KAAM;AAC9D,WAAK,MAAM,oBAAgB,6BAAe,GAAG,WAAO,6BAAe,GAAG,GAAG;AAAA,IAC3E;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,QAAc,UAAmD;AAC/D,QAAK,KAAK,UAAkB;AAAU,aAAO;AAE7C,UAAM,aAAS,kBAAK,KAAK,OAAO,QAAQ;AAExC,QAAI,OAAO,MAAM;AACf,cAAI,wBAAU,QAAQ,GAAG;AACvB,aAAK,MAAM,kCAAkC,MAAM;AAAA,MACrD,OAAO;AACL,aAAK,MAAM,gBAAY,6BAAe,QAAQ,KAAK,MAAM;AAAA,MAC3D;AAAA,IACF,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,aAAa,QAAsD;AACjE,SAAK,YAAY;AAEjB,UAAM,aAAc,KAAK,MAAc,QAAQ;AAC/C,QAAI,OAAO,eAAe,UAAU;AAClC,WAAK,MAAM,qCAAqC;AAAA,IAClD,WAAW,eAAe,QAAQ;AAChC,WAAK,MAAM,kBAAkB,QAAQ;AAAA,IACvC;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,eAII,UACA,WACoE;AACtE,SAAK,YAAY;AAEjB,UAAM,gBAAiB,KAAK,MAAc,QAAQ;AAElD,QAAI,kBAAkB,QAAW;AAC/B,WAAK,MAAM,qBAAqB,OAAO,QAAQ,IAAI;AAAA,IACrD;AAEA,QAAI,WAAW;AACb,UAAI;AACF,cAAM,SAA6B,EAAE,cAAc,MAAM,MAAM,SAAS;AACxE,cAAM,eAAe,IAAI,aAAa,eAAe,KAAK,SAAS,MAAM;AACzE,kBAAU,YAAY;AAAA,MACxB,SAAS,OAAP;AAEA,YAAK,iBAAiB,iCAAsB,MAAM,MAAO;AACvD,gBAAM,OAAO;AAAA,YACX,MAAM;AAAA,YACN,OAAO,KAAK;AAAA,YACZ,OAAO,EAAE,CAAC,QAAQ,GAAG,MAAM,KAAK;AAAA,UAClC;AAAA,QACF;AAGA,cAAM;AAAA,MACR;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,WAAW,MAAkD;AAC3D,SAAK,YAAY;AAEjB,UAAM,WAAY,KAAK,MAAc,MAAM;AAC3C,QAAI,OAAO,aAAa,UAAU;AAChC,WAAK,MAAM,mCAAmC;AAAA,IAChD,WAAW,aAAa,MAAM;AAC5B,WAAK,MAAM,gBAAgB,MAAM;AAAA,IACnC;AAEA,WAAO;AAAA,EACT;AAAA,EAqCA,UACI,UACY;AACd,kCAAU,MAAM,OAAO,QAAQ;AAC/B,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,QACI,SACoB;AACtB,UAAM,eAAe,KAAK,MAAM,QAAQ;AAExC,QAAI,aAAa,MAAM,MAAM,OAAO;AAAG,aAAO;AAE9C,SAAK,MAAM,gBAAY,6BAAe,OAAO,GAAG;AAAA,EAClD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,gBAAgB,UAA6C;AAC3D,wCAAgB,MAAM,QAAQ;AAC9B,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,gBAAsB,UAAoC;AACxD,QAAK,KAAK,UAAkB;AAAU,aAAO;AAE7C,UAAMA,QAAO,EAAE,MAAM,MAAM,OAAO,KAAK,OAAO,SAAS;AACvD,SAAK,MAAM,yBAAqB,6BAAe,QAAQ,KAAKA,KAAI;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,QAAQ,QAAqD;AAC3D,UAAM,OAAO,KAAK,MAAM,UAAU;AAElC,QAAI,SAAS;AACb,QAAI;AACF,WAAK,MAAM;AACX,eAAS;AAAA,IACX,SAAS,QAAP;AACA,UAAI;AAAQ,eAAO,IAAI,aAAa,QAAQ,KAAK,OAAO,CAAC;AAAA,IAC3D;AAEA,QAAI;AAAQ,WAAK,MAAM,UAAU;AACjC,WAAO;AAAA,EACT;AAAA,EAgCA,aACI,sBACA,cACY;AACd,UAAM,CAAE,aAAa,OAAQ,IAC5B,OAAO,yBAAyB,aAC9B,CAAE,sBAAsB,YAAa,IACrC,CAAE,OAAO,oBAAqB;AAEjC,WAAO,KAAK,QAAQ,CAAC,WACnB,OAAO,UAAU,aAAa,OAAO,CAAC;AAAA,EAC1C;AACF;AAOO,IAAM,uBAAN,MAAwC;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ7C,YAEqB,eACnB;AADmB;AAEnB,SAAK,SAAS,cAAc;AAAA,EAC9B;AAAA;AAAA,EAXiB;AAAA;AAAA,EAcT,MAAM,SAAiBA,OAAoB;AACjD,UAAM,IAAI,8BAAiB,KAAK,eAAe,SAASA,KAAI;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,MAAiC;AACrC,YAAI,qBAAO,KAAK,MAAM,MAAM;AAAM,aAAO,KAAK;AAC9C,SAAK,MAAM,iBAAa,yBAAW,IAAI,GAAG;AAAA,EAC5C;AAAA,EAoBA,YAAY,OAAwB,OAAsC;AACxE,UAAM,MAAO,QAAoB;AACjC,UAAM,MAAO,QAAoB;AACjC,WAAO,KAAK,gBAAgB,KAAK,GAAG;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,cAA8C;AAC5C,QAAK,KAAK,WAAW,QAAU,KAAK,WAAW,QAAY;AACzD,aAAO,KAAK;AAAA,IACd;AAEA,SAAK,MAAM,aAAS,6BAAe,IAAI,YAAQ,6BAAe,MAAS,GAAG;AAAA,EAC5E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,eAAe,aAA2C;AACxD,QAAI,KAAK,kBAAkB,aAAa;AACtC,WAAK,MAAM,gCAA4B,mCAAqB,WAAW,GAAG;AAAA,IAC5E;AACA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,UAAgC;AAC9B,UAAM,eAAe,KAAK,cAAc,MAAM,QAAQ;AACtD,QAAI,MAAM,aAAa,KAAK;AAAG,WAAK,MAAM,iBAAa,6BAAe,GAAG,GAAG;AAC5E,WAAO;AAAA,EACT;AAAA,EAoBA,gBAAgB,KAAsB,KAAoC;AACxE,QAAI,MAAM,KAAK;AACb,YAAM,MAAM;AACZ,YAAM;AACN,YAAM;AAAA,IACR;AAEA,SAAK,cAAc,MAAM,OAAO,GAAG;AAEnC,QAAM,KAAK,UAAkB,OAAU,KAAK,UAAkB,KAAM;AAClE,WAAK,MAAM,wBAAoB,6BAAe,GAAG,WAAO,6BAAe,GAAG,GAAG;AAAA,IAC/E;AAEA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,QAAQ,UAAgC;AACtC,QAAI,SAAe,EAAE,MAAM,OAAO,OAAO,KAAK,OAAO;AACrD,QAAI,KAAK,WAAW,UAAU;AAC5B,mBAAS,kBAAK,KAAK,QAAQ,QAAQ;AACnC,UAAI,OAAO;AAAM,eAAO,KAAK;AAAA,IAC/B;AAEA,YAAI,wBAAU,QAAQ,GAAG;AACvB,WAAK,MAAM,sCAAsC,MAAM;AAAA,IACzD,OAAO;AACL,WAAK,MAAM,oBAAgB,6BAAe,QAAQ,KAAK,MAAM;AAAA,IAC/D;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,aAAa,QAAsD;AACjE,SAAK,cAAc,YAAY;AAE/B,UAAM,aAAc,KAAK,OAAe,QAAQ;AAChD,QAAI,OAAO,eAAe,UAAU;AAClC,WAAK,MAAM,qCAAqC;AAAA,IAClD,WAAW,eAAe,QAAQ;AAChC,WAAK,MAAM,sBAAsB,QAAQ;AAAA,IAC3C;AAEA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,eAAe,UAAqD;AAClE,SAAK,cAAc,YAAY;AAE/B,UAAM,gBAAiB,KAAK,OAAe,QAAQ;AACnD,QAAI,kBAAkB;AAAW,aAAO,KAAK;AAC7C,SAAK,MAAM,yBAAyB,OAAO,QAAQ,IAAI;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,WAAW,MAAkD;AAC3D,SAAK,cAAc,YAAY;AAE/B,UAAM,WAAY,KAAK,OAAe,MAAM;AAC5C,QAAI,OAAO,aAAa,UAAU;AAChC,WAAK,MAAM,mCAAmC;AAAA,IAChD,WAAW,aAAa,MAAM;AAC5B,WAAK,MAAM,oBAAoB,MAAM;AAAA,IACvC;AAEA,WAAO,KAAK;AAAA,EACd;AAAA,EAuCA,UACI,UACY;AACd,kCAAU,KAAK,eAAe,MAAM,QAAQ;AAC5C,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,QAAQ,SAAgD;AACtD,UAAM,eAAe,KAAK,cAAc,MAAM,QAAQ;AAEtD,QAAI,CAAE,aAAa,MAAM,MAAM,OAAO;AAAG,aAAO;AAEhD,SAAK,MAAM,oBAAgB,6BAAe,OAAO,GAAG;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,UAAmC;AACjC,UAAM,eAAe,KAAK,cAAc,MAAM,UAAU;AAExD,QAAI;AACF,mBAAa,MAAM;AACnB,aAAO;AAAA,IACT,SAAS,QAAP;AACA,WAAK,MAAM,cAAc;AAAA,IAC3B;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,gBAAgB,UAAgC;AAC9C,QAAI,KAAK,WAAW;AAAU,aAAO,KAAK;AAC1C,SAAK,MAAM,6BAAyB,6BAAe,QAAQ,GAAG;AAAA,EAChE;AACF;",
4
+ "mappings": "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",
5
5
  "names": ["diff"]
6
6
  }