@pact-foundation/pact 16.4.0 → 16.5.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 (205) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +22 -12
  3. package/package.json +15 -28
  4. package/scripts/ci/build-and-test.sh +0 -3
  5. package/scripts/install-plugins.js +104 -0
  6. package/src/common/graphQL/graphQL.js +1 -1
  7. package/src/common/graphQL/graphQL.js.map +1 -1
  8. package/src/common/matchingRules.d.ts +7 -1
  9. package/src/common/matchingRules.js +21 -1
  10. package/src/common/matchingRules.js.map +1 -1
  11. package/src/common/net.spec.js +27 -63
  12. package/src/common/net.spec.js.map +1 -1
  13. package/src/common/request.js +1 -1
  14. package/src/common/request.js.map +1 -1
  15. package/src/common/request.spec.js +14 -58
  16. package/src/common/request.spec.js.map +1 -1
  17. package/src/dsl/apolloGraphql.spec.js +3 -43
  18. package/src/dsl/apolloGraphql.spec.js.map +1 -1
  19. package/src/dsl/graphql.d.ts +1 -1
  20. package/src/dsl/graphql.js +4 -4
  21. package/src/dsl/graphql.js.map +1 -1
  22. package/src/dsl/graphql.spec.js +22 -62
  23. package/src/dsl/graphql.spec.js.map +1 -1
  24. package/src/dsl/interaction.d.ts +2 -2
  25. package/src/dsl/interaction.js +1 -1
  26. package/src/dsl/interaction.js.map +1 -1
  27. package/src/dsl/interaction.spec.js +40 -70
  28. package/src/dsl/interaction.spec.js.map +1 -1
  29. package/src/dsl/matchers.d.ts +1 -2
  30. package/src/dsl/matchers.js.map +1 -1
  31. package/src/dsl/matchers.spec.js +95 -96
  32. package/src/dsl/matchers.spec.js.map +1 -1
  33. package/src/dsl/message.d.ts +1 -1
  34. package/src/dsl/options.d.ts +1 -1
  35. package/src/dsl/verifier/proxy/hooks.spec.js +16 -14
  36. package/src/dsl/verifier/proxy/hooks.spec.js.map +1 -1
  37. package/src/dsl/verifier/proxy/messages.js +1 -1
  38. package/src/dsl/verifier/proxy/messages.js.map +1 -1
  39. package/src/dsl/verifier/proxy/parseBody.js +1 -1
  40. package/src/dsl/verifier/proxy/parseBody.js.map +1 -1
  41. package/src/dsl/verifier/proxy/parseBody.spec.js +14 -47
  42. package/src/dsl/verifier/proxy/parseBody.spec.js.map +1 -1
  43. package/src/dsl/verifier/proxy/proxy.js +4 -4
  44. package/src/dsl/verifier/proxy/proxy.js.map +1 -1
  45. package/src/dsl/verifier/proxy/proxy.spec.js +6 -48
  46. package/src/dsl/verifier/proxy/proxy.spec.js.map +1 -1
  47. package/src/dsl/verifier/proxy/proxyRequest.d.ts +1 -1
  48. package/src/dsl/verifier/proxy/proxyRequest.js +1 -1
  49. package/src/dsl/verifier/proxy/proxyRequest.js.map +1 -1
  50. package/src/dsl/verifier/proxy/proxyRequest.spec.js +17 -52
  51. package/src/dsl/verifier/proxy/proxyRequest.spec.js.map +1 -1
  52. package/src/dsl/verifier/proxy/stateHandler/setupStates.d.ts +1 -1
  53. package/src/dsl/verifier/proxy/stateHandler/setupStates.js.map +1 -1
  54. package/src/dsl/verifier/proxy/stateHandler/setupStates.spec.js +16 -50
  55. package/src/dsl/verifier/proxy/stateHandler/setupStates.spec.js.map +1 -1
  56. package/src/dsl/verifier/proxy/stateHandler/stateHandler.js +1 -1
  57. package/src/dsl/verifier/proxy/stateHandler/stateHandler.js.map +1 -1
  58. package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js +12 -49
  59. package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js.map +1 -1
  60. package/src/dsl/verifier/proxy/types.d.ts +2 -2
  61. package/src/dsl/verifier/verifier.d.ts +4 -0
  62. package/src/dsl/verifier/verifier.js +6 -6
  63. package/src/dsl/verifier/verifier.js.map +1 -1
  64. package/src/dsl/verifier/verifier.spec.js +46 -96
  65. package/src/dsl/verifier/verifier.spec.js.map +1 -1
  66. package/src/httpPact/ffi.d.ts +1 -1
  67. package/src/httpPact/ffi.js +1 -1
  68. package/src/httpPact/ffi.js.map +1 -1
  69. package/src/httpPact/ffi.spec.js +18 -60
  70. package/src/httpPact/ffi.spec.js.map +1 -1
  71. package/src/httpPact/index.d.ts +1 -1
  72. package/src/httpPact/index.js +7 -7
  73. package/src/httpPact/index.js.map +1 -1
  74. package/src/httpPact/index.spec.js +46 -89
  75. package/src/httpPact/index.spec.js.map +1 -1
  76. package/src/index.d.ts +25 -25
  77. package/src/index.js +28 -28
  78. package/src/index.js.map +1 -1
  79. package/src/messageConsumerPact.d.ts +3 -3
  80. package/src/messageConsumerPact.js +12 -5
  81. package/src/messageConsumerPact.js.map +1 -1
  82. package/src/messageConsumerPact.spec.js +15 -58
  83. package/src/messageConsumerPact.spec.js.map +1 -1
  84. package/src/messageProviderPact.js +3 -3
  85. package/src/messageProviderPact.js.map +1 -1
  86. package/src/messageProviderPact.spec.js +48 -84
  87. package/src/messageProviderPact.spec.js.map +1 -1
  88. package/src/pact.integration.spec.js +12 -51
  89. package/src/pact.integration.spec.js.map +1 -1
  90. package/src/v3/display.d.ts +1 -1
  91. package/src/v3/display.js.map +1 -1
  92. package/src/v3/ffi.js +5 -1
  93. package/src/v3/ffi.js.map +1 -1
  94. package/src/v3/ffi.spec.js +1 -36
  95. package/src/v3/ffi.spec.js.map +1 -1
  96. package/src/v3/graphql/graphQL.d.ts +2 -2
  97. package/src/v3/graphql/graphQL.js +2 -2
  98. package/src/v3/graphql/graphQL.js.map +1 -1
  99. package/src/v3/graphql/index.d.ts +1 -1
  100. package/src/v3/graphql/index.js +1 -1
  101. package/src/v3/graphql/index.js.map +1 -1
  102. package/src/v3/index.d.ts +4 -12
  103. package/src/v3/index.js +4 -12
  104. package/src/v3/index.js.map +1 -1
  105. package/src/v3/matchers.d.ts +14 -2
  106. package/src/v3/matchers.js +19 -1
  107. package/src/v3/matchers.js.map +1 -1
  108. package/src/v3/matchers.spec.js +125 -57
  109. package/src/v3/matchers.spec.js.map +1 -1
  110. package/src/v3/pact.js +10 -5
  111. package/src/v3/pact.js.map +1 -1
  112. package/src/v3/pact.spec.js +94 -0
  113. package/src/v3/pact.spec.js.map +1 -0
  114. package/src/v3/types.d.ts +18 -2
  115. package/src/v3/types.js +22 -1
  116. package/src/v3/types.js.map +1 -1
  117. package/src/v4/graphql/graphQLInteractionWithRequest.d.ts +2 -2
  118. package/src/v4/graphql/graphQLInteractionWithRequest.js +1 -1
  119. package/src/v4/graphql/graphQLInteractionWithRequest.js.map +1 -1
  120. package/src/v4/graphql/graphQLRequestBuilder.d.ts +1 -1
  121. package/src/v4/graphql/index.d.ts +3 -3
  122. package/src/v4/graphql/index.js +1 -1
  123. package/src/v4/graphql/index.js.map +1 -1
  124. package/src/v4/graphql/types.d.ts +1 -1
  125. package/src/v4/http/index.js +7 -2
  126. package/src/v4/http/index.js.map +1 -1
  127. package/src/v4/http/index.spec.d.ts +1 -0
  128. package/src/v4/http/index.spec.js +73 -0
  129. package/src/v4/http/index.spec.js.map +1 -0
  130. package/src/v4/http/interactionWithCompleteRequest.d.ts +2 -2
  131. package/src/v4/http/interactionWithPlugin.d.ts +2 -2
  132. package/src/v4/http/interactionWithPlugin.js +2 -2
  133. package/src/v4/http/interactionWithPlugin.js.map +1 -1
  134. package/src/v4/http/interactionWithPluginRequest.d.ts +4 -3
  135. package/src/v4/http/interactionWithPluginRequest.js +6 -1
  136. package/src/v4/http/interactionWithPluginRequest.js.map +1 -1
  137. package/src/v4/http/interactionWithPluginResponse.d.ts +1 -1
  138. package/src/v4/http/interactionWithRequest.d.ts +4 -3
  139. package/src/v4/http/interactionWithRequest.js +6 -1
  140. package/src/v4/http/interactionWithRequest.js.map +1 -1
  141. package/src/v4/http/interactionWithRequest.spec.d.ts +1 -0
  142. package/src/v4/http/interactionWithRequest.spec.js +82 -0
  143. package/src/v4/http/interactionWithRequest.spec.js.map +1 -0
  144. package/src/v4/http/interactionWithResponse.d.ts +1 -1
  145. package/src/v4/http/requestBuilder.d.ts +2 -1
  146. package/src/v4/http/requestBuilder.js +5 -1
  147. package/src/v4/http/requestBuilder.js.map +1 -1
  148. package/src/v4/http/requestBuilder.spec.d.ts +1 -0
  149. package/src/v4/http/requestBuilder.spec.js +42 -0
  150. package/src/v4/http/requestBuilder.spec.js.map +1 -0
  151. package/src/v4/http/requestWithPluginBuilder.d.ts +1 -0
  152. package/src/v4/http/requestWithPluginBuilder.js +4 -0
  153. package/src/v4/http/requestWithPluginBuilder.js.map +1 -1
  154. package/src/v4/http/requestWithPluginBuilder.spec.d.ts +1 -0
  155. package/src/v4/http/requestWithPluginBuilder.spec.js +34 -0
  156. package/src/v4/http/requestWithPluginBuilder.spec.js.map +1 -0
  157. package/src/v4/http/responseBuilder.d.ts +2 -1
  158. package/src/v4/http/responseBuilder.js +6 -2
  159. package/src/v4/http/responseBuilder.js.map +1 -1
  160. package/src/v4/http/responseBuilder.spec.d.ts +1 -0
  161. package/src/v4/http/responseBuilder.spec.js +42 -0
  162. package/src/v4/http/responseBuilder.spec.js.map +1 -0
  163. package/src/v4/http/responseWithPluginBuilder.d.ts +1 -1
  164. package/src/v4/http/responseWithPluginBuilder.spec.d.ts +1 -0
  165. package/src/v4/http/responseWithPluginBuilder.spec.js +34 -0
  166. package/src/v4/http/responseWithPluginBuilder.spec.js.map +1 -0
  167. package/src/v4/http/types.d.ts +11 -3
  168. package/src/v4/http/unconfiguredInteraction.d.ts +2 -2
  169. package/src/v4/http/unconfiguredInteraction.js +2 -2
  170. package/src/v4/http/unconfiguredInteraction.js.map +1 -1
  171. package/src/v4/index.d.ts +4 -3
  172. package/src/v4/index.js +3 -2
  173. package/src/v4/index.js.map +1 -1
  174. package/src/v4/message/asynchronousMessage.d.ts +4 -4
  175. package/src/v4/message/asynchronousMessage.js +2 -2
  176. package/src/v4/message/asynchronousMessage.js.map +1 -1
  177. package/src/v4/message/index.d.ts +4 -4
  178. package/src/v4/message/index.js +2 -2
  179. package/src/v4/message/index.js.map +1 -1
  180. package/src/v4/types.d.ts +1 -1
  181. package/src/xml/index.d.ts +4 -0
  182. package/src/xml/index.js +21 -0
  183. package/src/xml/index.js.map +1 -0
  184. package/src/xml/xmlBuilder.js.map +1 -0
  185. package/src/{v3/xml → xml}/xmlElement.d.ts +1 -1
  186. package/src/{v3/xml → xml}/xmlElement.js +1 -1
  187. package/src/xml/xmlElement.js.map +1 -0
  188. package/src/xml/xmlElement.spec.d.ts +1 -0
  189. package/src/{v3/xml → xml}/xmlElement.spec.js +41 -45
  190. package/src/xml/xmlElement.spec.js.map +1 -0
  191. package/src/xml/xmlNode.js.map +1 -0
  192. package/src/{v3/xml → xml}/xmlText.d.ts +1 -1
  193. package/src/xml/xmlText.js.map +1 -0
  194. package/scripts/install-plugins +0 -106
  195. package/src/v3/xml/xmlBuilder.js.map +0 -1
  196. package/src/v3/xml/xmlElement.js.map +0 -1
  197. package/src/v3/xml/xmlElement.spec.js.map +0 -1
  198. package/src/v3/xml/xmlNode.js.map +0 -1
  199. package/src/v3/xml/xmlText.js.map +0 -1
  200. /package/src/v3/{xml/xmlElement.spec.d.ts → pact.spec.d.ts} +0 -0
  201. /package/src/{v3/xml → xml}/xmlBuilder.d.ts +0 -0
  202. /package/src/{v3/xml → xml}/xmlBuilder.js +0 -0
  203. /package/src/{v3/xml → xml}/xmlNode.d.ts +0 -0
  204. /package/src/{v3/xml → xml}/xmlNode.js +0 -0
  205. /package/src/{v3/xml → xml}/xmlText.js +0 -0
@@ -33,9 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- const chai = __importStar(require("chai"));
37
36
  const MatchersV3 = __importStar(require("./matchers"));
38
- const { expect } = chai;
39
37
  describe('V3 Matchers', () => {
40
38
  it('compiles with nested examples from issue 1054', () => {
41
39
  const f = { a: 'working example' };
@@ -53,7 +51,7 @@ describe('V3 Matchers', () => {
53
51
  const result = MatchersV3.like({
54
52
  a: 'b',
55
53
  });
56
- expect(result).to.deep.equal({
54
+ expect(result).toEqual({
57
55
  'pact:matcher:type': 'type',
58
56
  value: {
59
57
  a: 'b',
@@ -66,7 +64,7 @@ describe('V3 Matchers', () => {
66
64
  const result = MatchersV3.eachKeyLike('004', {
67
65
  id: '004',
68
66
  });
69
- expect(result).to.deep.equal({
67
+ expect(result).toEqual({
70
68
  'pact:matcher:type': 'values',
71
69
  value: {
72
70
  '004': {
@@ -82,7 +80,7 @@ describe('V3 Matchers', () => {
82
80
  const result = MatchersV3.eachLike({
83
81
  a: 'b',
84
82
  });
85
- expect(result).to.deep.equal({
83
+ expect(result).toEqual({
86
84
  min: 1,
87
85
  'pact:matcher:type': 'type',
88
86
  value: [
@@ -98,7 +96,7 @@ describe('V3 Matchers', () => {
98
96
  const result = MatchersV3.eachLike({
99
97
  a: 'b',
100
98
  }, 3);
101
- expect(result).to.deep.equal({
99
+ expect(result).toEqual({
102
100
  min: 3,
103
101
  'pact:matcher:type': 'type',
104
102
  value: [
@@ -122,7 +120,7 @@ describe('V3 Matchers', () => {
122
120
  const result = MatchersV3.atLeastOneLike({
123
121
  a: 'b',
124
122
  });
125
- expect(result).to.deep.equal({
123
+ expect(result).toEqual({
126
124
  'pact:matcher:type': 'type',
127
125
  min: 1,
128
126
  value: [
@@ -138,7 +136,7 @@ describe('V3 Matchers', () => {
138
136
  const result = MatchersV3.atLeastOneLike({
139
137
  a: 'b',
140
138
  }, 4);
141
- expect(result).to.deep.equal({
139
+ expect(result).toEqual({
142
140
  'pact:matcher:type': 'type',
143
141
  min: 1,
144
142
  value: [{ a: 'b' }, { a: 'b' }, { a: 'b' }, { a: 'b' }],
@@ -152,7 +150,7 @@ describe('V3 Matchers', () => {
152
150
  const result = MatchersV3.atLeastLike({
153
151
  a: 'b',
154
152
  }, 2);
155
- expect(result).to.deep.equal({
153
+ expect(result).toEqual({
156
154
  'pact:matcher:type': 'type',
157
155
  min: 2,
158
156
  value: [{ a: 'b' }, { a: 'b' }],
@@ -164,7 +162,7 @@ describe('V3 Matchers', () => {
164
162
  const result = MatchersV3.atLeastLike({
165
163
  a: 'b',
166
164
  }, 2, 4);
167
- expect(result).to.deep.equal({
165
+ expect(result).toEqual({
168
166
  'pact:matcher:type': 'type',
169
167
  min: 2,
170
168
  value: [{ a: 'b' }, { a: 'b' }, { a: 'b' }, { a: 'b' }],
@@ -172,7 +170,7 @@ describe('V3 Matchers', () => {
172
170
  });
173
171
  });
174
172
  it('throws an error if the number of examples is less than the minimum', () => {
175
- expect(() => MatchersV3.atLeastLike({ a: 'b' }, 4, 2)).to.throw('atLeastLike has a minimum of 4 but 2 elements were requested. Make sure the count is greater than or equal to the min.');
173
+ expect(() => MatchersV3.atLeastLike({ a: 'b' }, 4, 2)).toThrow('atLeastLike has a minimum of 4 but 2 elements were requested. Make sure the count is greater than or equal to the min.');
176
174
  });
177
175
  });
178
176
  describe('#atMostLike', () => {
@@ -181,7 +179,7 @@ describe('V3 Matchers', () => {
181
179
  const result = MatchersV3.atMostLike({
182
180
  a: 'b',
183
181
  }, 2);
184
- expect(result).to.deep.equal({
182
+ expect(result).toEqual({
185
183
  'pact:matcher:type': 'type',
186
184
  max: 2,
187
185
  value: [{ a: 'b' }],
@@ -193,7 +191,7 @@ describe('V3 Matchers', () => {
193
191
  const result = MatchersV3.atMostLike({
194
192
  a: 'b',
195
193
  }, 4, 4);
196
- expect(result).to.deep.equal({
194
+ expect(result).toEqual({
197
195
  'pact:matcher:type': 'type',
198
196
  max: 4,
199
197
  value: [{ a: 'b' }, { a: 'b' }, { a: 'b' }, { a: 'b' }],
@@ -201,7 +199,7 @@ describe('V3 Matchers', () => {
201
199
  });
202
200
  });
203
201
  it('throws an error if the number of examples is more than the maximum', () => {
204
- expect(() => MatchersV3.atMostLike({ a: 'b' }, 2, 4)).to.throw('atMostLike has a maximum of 2 but 4 elements where requested. Make sure the count is less than or equal to the max.');
202
+ expect(() => MatchersV3.atMostLike({ a: 'b' }, 2, 4)).toThrow('atMostLike has a maximum of 2 but 4 elements where requested. Make sure the count is less than or equal to the max.');
205
203
  });
206
204
  });
207
205
  describe('#constrainedArrayLike', () => {
@@ -210,7 +208,7 @@ describe('V3 Matchers', () => {
210
208
  const result = MatchersV3.constrainedArrayLike({
211
209
  a: 'b',
212
210
  }, 2, 4);
213
- expect(result).to.deep.equal({
211
+ expect(result).toEqual({
214
212
  'pact:matcher:type': 'type',
215
213
  min: 2,
216
214
  max: 4,
@@ -223,7 +221,7 @@ describe('V3 Matchers', () => {
223
221
  const result = MatchersV3.constrainedArrayLike({
224
222
  a: 'b',
225
223
  }, 2, 4, 3);
226
- expect(result).to.deep.equal({
224
+ expect(result).toEqual({
227
225
  'pact:matcher:type': 'type',
228
226
  min: 2,
229
227
  max: 4,
@@ -232,16 +230,16 @@ describe('V3 Matchers', () => {
232
230
  });
233
231
  });
234
232
  it('throws an error if the number of examples is less than the minimum', () => {
235
- expect(() => MatchersV3.constrainedArrayLike({ a: 'b' }, 4, 6, 2)).to.throw('constrainedArrayLike has a minimum of 4 but 2 elements where requested. Make sure the count is greater than or equal to the min.');
233
+ expect(() => MatchersV3.constrainedArrayLike({ a: 'b' }, 4, 6, 2)).toThrow('constrainedArrayLike has a minimum of 4 but 2 elements where requested. Make sure the count is greater than or equal to the min.');
236
234
  });
237
235
  it('throws an error if the number of examples is more than the maximum', () => {
238
- expect(() => MatchersV3.constrainedArrayLike({ a: 'b' }, 4, 6, 8)).to.throw('constrainedArrayLike has a maximum of 6 but 8 elements where requested. Make sure the count is less than or equal to the max.');
236
+ expect(() => MatchersV3.constrainedArrayLike({ a: 'b' }, 4, 6, 8)).toThrow('constrainedArrayLike has a maximum of 6 but 8 elements where requested. Make sure the count is less than or equal to the max.');
239
237
  });
240
238
  });
241
239
  describe('#integer', () => {
242
240
  it('returns a JSON representation of an integer matcher', () => {
243
241
  const result = MatchersV3.integer(100);
244
- expect(result).to.deep.equal({
242
+ expect(result).toEqual({
245
243
  'pact:matcher:type': 'integer',
246
244
  value: 100,
247
245
  });
@@ -249,7 +247,7 @@ describe('V3 Matchers', () => {
249
247
  describe('when the example is zero', () => {
250
248
  it('returns a JSON representation of an integer matcher', () => {
251
249
  const result = MatchersV3.integer(0);
252
- expect(result).to.deep.equal({
250
+ expect(result).toEqual({
253
251
  'pact:matcher:type': 'integer',
254
252
  value: 0,
255
253
  });
@@ -258,7 +256,7 @@ describe('V3 Matchers', () => {
258
256
  describe('when no example is given', () => {
259
257
  it('also includes a random integer generator', () => {
260
258
  const result = MatchersV3.integer();
261
- expect(result).to.deep.equal({
259
+ expect(result).toEqual({
262
260
  'pact:matcher:type': 'integer',
263
261
  'pact:generator:type': 'RandomInt',
264
262
  value: 101,
@@ -269,7 +267,7 @@ describe('V3 Matchers', () => {
269
267
  describe('#decimal', () => {
270
268
  it('returns a JSON representation of an decimal matcher', () => {
271
269
  const result = MatchersV3.decimal(100.3);
272
- expect(result).to.deep.equal({
270
+ expect(result).toEqual({
273
271
  'pact:matcher:type': 'decimal',
274
272
  value: 100.3,
275
273
  });
@@ -277,7 +275,7 @@ describe('V3 Matchers', () => {
277
275
  describe('when the example is zero', () => {
278
276
  it('returns a JSON representation of an integer matcher', () => {
279
277
  const result = MatchersV3.decimal(0.0);
280
- expect(result).to.deep.equal({
278
+ expect(result).toEqual({
281
279
  'pact:matcher:type': 'decimal',
282
280
  value: 0.0,
283
281
  });
@@ -286,7 +284,7 @@ describe('V3 Matchers', () => {
286
284
  describe('when no example is given', () => {
287
285
  it('also includes a random decimal generator', () => {
288
286
  const result = MatchersV3.decimal();
289
- expect(result).to.deep.equal({
287
+ expect(result).toEqual({
290
288
  'pact:matcher:type': 'decimal',
291
289
  'pact:generator:type': 'RandomDecimal',
292
290
  value: 12.34,
@@ -297,7 +295,7 @@ describe('V3 Matchers', () => {
297
295
  describe('#number', () => {
298
296
  it('returns a JSON representation of an number matcher', () => {
299
297
  const result = MatchersV3.number(100.3);
300
- expect(result).to.deep.equal({
298
+ expect(result).toEqual({
301
299
  'pact:matcher:type': 'number',
302
300
  value: 100.3,
303
301
  });
@@ -305,7 +303,7 @@ describe('V3 Matchers', () => {
305
303
  describe('when no example is given', () => {
306
304
  it('also includes a random integer generator', () => {
307
305
  const result = MatchersV3.number();
308
- expect(result).to.deep.equal({
306
+ expect(result).toEqual({
309
307
  'pact:matcher:type': 'number',
310
308
  'pact:generator:type': 'RandomInt',
311
309
  value: 1234,
@@ -316,7 +314,7 @@ describe('V3 Matchers', () => {
316
314
  describe('#boolean', () => {
317
315
  it('returns a JSON representation of a like matcher', () => {
318
316
  const result = MatchersV3.boolean(true);
319
- expect(result).to.deep.equal({
317
+ expect(result).toEqual({
320
318
  'pact:matcher:type': 'type',
321
319
  value: true,
322
320
  });
@@ -325,7 +323,7 @@ describe('V3 Matchers', () => {
325
323
  describe('#string', () => {
326
324
  it('returns a JSON representation of a like matcher', () => {
327
325
  const result = MatchersV3.string('true');
328
- expect(result).to.deep.equal({
326
+ expect(result).toEqual({
329
327
  'pact:matcher:type': 'type',
330
328
  value: 'true',
331
329
  });
@@ -334,7 +332,7 @@ describe('V3 Matchers', () => {
334
332
  describe('#regex', () => {
335
333
  it('returns a JSON representation of a regex matcher', () => {
336
334
  const result = MatchersV3.regex('\\d+', '1234');
337
- expect(result).to.deep.equal({
335
+ expect(result).toEqual({
338
336
  'pact:matcher:type': 'regex',
339
337
  regex: '\\d+',
340
338
  value: '1234',
@@ -343,7 +341,7 @@ describe('V3 Matchers', () => {
343
341
  describe('when given a regular expression', () => {
344
342
  it('returns a JSON representation of a regex matcher', () => {
345
343
  const result = MatchersV3.regex(/\d+/, '1234');
346
- expect(result).to.deep.equal({
344
+ expect(result).toEqual({
347
345
  'pact:matcher:type': 'regex',
348
346
  regex: '\\d+',
349
347
  value: '1234',
@@ -354,7 +352,7 @@ describe('V3 Matchers', () => {
354
352
  describe('#equal', () => {
355
353
  it('returns a JSON representation of an equality matcher', () => {
356
354
  const result = MatchersV3.equal('true');
357
- expect(result).to.deep.equal({
355
+ expect(result).toEqual({
358
356
  'pact:matcher:type': 'equality',
359
357
  value: 'true',
360
358
  });
@@ -364,7 +362,7 @@ describe('V3 Matchers', () => {
364
362
  describe('when an example is given', () => {
365
363
  it('returns a JSON representation of a datetime matcher', () => {
366
364
  const result = MatchersV3.datetime("yyyy-MM-dd'T'HH:mm:ss.SSSX", '2016-02-11T09:46:56.023Z');
367
- expect(result).to.deep.equal({
365
+ expect(result).toEqual({
368
366
  'pact:matcher:type': 'timestamp',
369
367
  format: "yyyy-MM-dd'T'HH:mm:ss.SSSX",
370
368
  value: '2016-02-11T09:46:56.023Z',
@@ -373,7 +371,7 @@ describe('V3 Matchers', () => {
373
371
  });
374
372
  describe('when example is an empty string', () => {
375
373
  it('throws an error', () => {
376
- expect(() => MatchersV3.datetime("yyyy-MM-dd'T'HH:mm:ss.SSSX", '')).to.throw('you must provide an example datetime');
374
+ expect(() => MatchersV3.datetime("yyyy-MM-dd'T'HH:mm:ss.SSSX", '')).toThrow('you must provide an example datetime');
377
375
  });
378
376
  });
379
377
  });
@@ -381,7 +379,7 @@ describe('V3 Matchers', () => {
381
379
  describe('when an example is given', () => {
382
380
  it('returns a JSON representation of a time matcher', () => {
383
381
  const result = MatchersV3.time('HH:mm:ss', '09:46:56');
384
- expect(result).to.deep.equal({
382
+ expect(result).toEqual({
385
383
  'pact:matcher:type': 'time',
386
384
  format: 'HH:mm:ss',
387
385
  value: '09:46:56',
@@ -390,7 +388,7 @@ describe('V3 Matchers', () => {
390
388
  });
391
389
  describe('when example is an empty string', () => {
392
390
  it('throws an error', () => {
393
- expect(() => MatchersV3.time('HH:mm:ss', '')).to.throw('you must provide an example time');
391
+ expect(() => MatchersV3.time('HH:mm:ss', '')).toThrow('you must provide an example time');
394
392
  });
395
393
  });
396
394
  });
@@ -398,7 +396,7 @@ describe('V3 Matchers', () => {
398
396
  describe('when an example is given', () => {
399
397
  it('returns a JSON representation of a date matcher', () => {
400
398
  const result = MatchersV3.date('yyyy-MM-dd', '2016-02-11');
401
- expect(result).to.deep.equal({
399
+ expect(result).toEqual({
402
400
  'pact:matcher:type': 'date',
403
401
  format: 'yyyy-MM-dd',
404
402
  value: '2016-02-11',
@@ -407,14 +405,14 @@ describe('V3 Matchers', () => {
407
405
  });
408
406
  describe('when example is an empty string', () => {
409
407
  it('throws an error', () => {
410
- expect(() => MatchersV3.date('yyyy-MM-dd', '')).to.throw('you must provide an example date');
408
+ expect(() => MatchersV3.date('yyyy-MM-dd', '')).toThrow('you must provide an example date');
411
409
  });
412
410
  });
413
411
  });
414
412
  describe('#includes', () => {
415
413
  it('returns a JSON representation of an include matcher', () => {
416
414
  const result = MatchersV3.includes('true');
417
- expect(result).to.deep.equal({
415
+ expect(result).toEqual({
418
416
  'pact:matcher:type': 'include',
419
417
  value: 'true',
420
418
  });
@@ -423,7 +421,7 @@ describe('V3 Matchers', () => {
423
421
  describe('#nullValue', () => {
424
422
  it('returns a JSON representation of an null matcher', () => {
425
423
  const result = MatchersV3.nullValue();
426
- expect(result).to.deep.equal({
424
+ expect(result).toEqual({
427
425
  'pact:matcher:type': 'null',
428
426
  value: null,
429
427
  });
@@ -437,7 +435,7 @@ describe('V3 Matchers', () => {
437
435
  'posts',
438
436
  'latest',
439
437
  ]);
440
- expect(result).to.deep.equal({
438
+ expect(result).toEqual({
441
439
  'pact:matcher:type': 'regex',
442
440
  regex: '.*(\\/users\\/1234\\/posts\\/latest)$',
443
441
  value: 'http://localhost:8080/users/1234/posts/latest',
@@ -451,7 +449,7 @@ describe('V3 Matchers', () => {
451
449
  'posts',
452
450
  'latest',
453
451
  ]);
454
- expect(result).to.deep.equal({
452
+ expect(result).toEqual({
455
453
  'pact:matcher:type': 'regex',
456
454
  regex: '.*(\\/users\\/\\d+\\/posts\\/latest)$',
457
455
  value: 'http://localhost:8080/users/1234/posts/latest',
@@ -466,11 +464,11 @@ describe('V3 Matchers', () => {
466
464
  'posts',
467
465
  'latest',
468
466
  ]);
469
- expect(result).to.deep.contain({
467
+ expect(result).toMatchObject({
470
468
  'pact:matcher:type': 'regex',
471
469
  regex: '.*(\\/users\\/\\d+\\/posts\\/latest)$',
472
470
  });
473
- expect(result.value).to.match(/\/users\/\d+\/posts\/latest$/);
471
+ expect(result.value).toMatch(/\/users\/\d+\/posts\/latest$/);
474
472
  });
475
473
  });
476
474
  describe('when no base URL is provided', () => {
@@ -481,7 +479,7 @@ describe('V3 Matchers', () => {
481
479
  'posts',
482
480
  'latest',
483
481
  ]);
484
- expect(result).to.deep.equal({
482
+ expect(result).toEqual({
485
483
  'pact:matcher:type': 'regex',
486
484
  'pact:generator:type': 'MockServerURL',
487
485
  regex: '.*(\\/users\\/\\d+\\/posts\\/latest)$',
@@ -494,20 +492,20 @@ describe('V3 Matchers', () => {
494
492
  describe('#uuid', () => {
495
493
  it('returns a JSON representation of an regex matcher for UUIDs', () => {
496
494
  const result = MatchersV3.uuid('ba4bd1bc-5556-11eb-9286-d71bc5b507be');
497
- expect(result).to.deep.equal({
495
+ expect(result).toEqual({
498
496
  'pact:matcher:type': 'regex',
499
497
  regex: '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}',
500
498
  value: 'ba4bd1bc-5556-11eb-9286-d71bc5b507be',
501
499
  });
502
500
  });
503
501
  it('throws an exception if the example value does not match the UUID regex', () => {
504
- expect(() => MatchersV3.uuid('not a uuid')).to.throw();
505
- expect(() => MatchersV3.uuid('ba4bd1bc-5556-11eb-9286')).to.throw();
506
- expect(() => MatchersV3.uuid('ba4bd1bc-5556-11eb-9286-d71bc5b507be-1234')).to.throw();
502
+ expect(() => MatchersV3.uuid('not a uuid')).toThrow();
503
+ expect(() => MatchersV3.uuid('ba4bd1bc-5556-11eb-9286')).toThrow();
504
+ expect(() => MatchersV3.uuid('ba4bd1bc-5556-11eb-9286-d71bc5b507be-1234')).toThrow();
507
505
  });
508
506
  it('if no example is provided, it sets up a generator', () => {
509
507
  const result = MatchersV3.uuid();
510
- expect(result).to.deep.equal({
508
+ expect(result).toEqual({
511
509
  'pact:matcher:type': 'regex',
512
510
  'pact:generator:type': 'Uuid',
513
511
  regex: '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}',
@@ -518,7 +516,7 @@ describe('V3 Matchers', () => {
518
516
  describe('#reify', () => {
519
517
  describe('when given an object with no matchers', () => {
520
518
  const object = {
521
- value: 'data', // field name of value should not be only determination of isMatcher()
519
+ value: 'data',
522
520
  more: 'strings',
523
521
  an: ['array'],
524
522
  someObject: {
@@ -527,7 +525,7 @@ describe('V3 Matchers', () => {
527
525
  },
528
526
  };
529
527
  it('returns just that object', () => {
530
- expect(MatchersV3.reify(object)).to.deep.equal(object);
528
+ expect(MatchersV3.reify(object)).toEqual(object);
531
529
  });
532
530
  });
533
531
  describe('when given an object with null values', () => {
@@ -542,7 +540,7 @@ describe('V3 Matchers', () => {
542
540
  },
543
541
  };
544
542
  it('returns just that object', () => {
545
- expect(MatchersV3.reify(object)).to.deep.equal(object);
543
+ expect(MatchersV3.reify(object)).toEqual(object);
546
544
  });
547
545
  });
548
546
  describe('when given an object with some matchers', () => {
@@ -573,15 +571,15 @@ describe('V3 Matchers', () => {
573
571
  },
574
572
  };
575
573
  it('returns without matching guff', () => {
576
- expect(MatchersV3.reify(someMatchers)).to.deep.equal(expected);
574
+ expect(MatchersV3.reify(someMatchers)).toEqual(expected);
577
575
  });
578
576
  });
579
577
  describe('when given a simple matcher', () => {
580
578
  it('removes all matching guff', () => {
581
579
  const expected = 'myawesomeword';
582
580
  const matcher = MatchersV3.regex('\\w+', 'myawesomeword');
583
- expect(MatchersV3.isMatcher(matcher)).to.eq(true);
584
- expect(MatchersV3.reify(matcher)).to.eql(expected);
581
+ expect(MatchersV3.isMatcher(matcher)).toBe(true);
582
+ expect(MatchersV3.reify(matcher)).toEqual(expected);
585
583
  });
586
584
  });
587
585
  describe('when given a complex nested object with matchers', () => {
@@ -636,7 +634,7 @@ describe('V3 Matchers', () => {
636
634
  ],
637
635
  },
638
636
  };
639
- expect(MatchersV3.reify(o)).to.deep.equal(expected);
637
+ expect(MatchersV3.reify(o)).toEqual(expected);
640
638
  });
641
639
  });
642
640
  describe('when given a matcher and field named "value"', () => {
@@ -646,12 +644,82 @@ describe('V3 Matchers', () => {
646
644
  c: MatchersV3.atLeastOneLike({ value: '1', a: 'b', aa: 'bb' }),
647
645
  });
648
646
  const result = MatchersV3.reify(resultMatcher);
649
- expect(result).to.deep.equal({
647
+ expect(result).toEqual({
650
648
  a: 'b',
651
649
  c: [{ value: '1', a: 'b', aa: 'bb' }],
652
650
  });
653
651
  });
654
652
  });
655
653
  });
654
+ describe('matchStatus', () => {
655
+ it('creates a StatusCodeMatcher for an HTTPResponseStatusClass', () => {
656
+ const matcher = MatchersV3.matchStatus(200, MatchersV3.HTTPResponseStatusClass.Success);
657
+ expect(matcher).toEqual({
658
+ 'pact:matcher:type': 'statusCode',
659
+ status: 'success',
660
+ value: 200,
661
+ });
662
+ });
663
+ it('creates a StatusCodeMatcher for a list of status codes', () => {
664
+ const matcher = MatchersV3.matchStatus(200, [200, 201]);
665
+ expect(matcher).toEqual({
666
+ 'pact:matcher:type': 'statusCode',
667
+ status: [200, 201],
668
+ value: 200,
669
+ });
670
+ });
671
+ it('creates a StatusCodeMatcher for ClientError class', () => {
672
+ const matcher = MatchersV3.matchStatus(400, MatchersV3.HTTPResponseStatusClass.ClientError);
673
+ expect(matcher).toEqual({
674
+ 'pact:matcher:type': 'statusCode',
675
+ status: 'clientError',
676
+ value: 400,
677
+ });
678
+ });
679
+ it('creates a StatusCodeMatcher for ServerError class', () => {
680
+ const matcher = MatchersV3.matchStatus(500, MatchersV3.HTTPResponseStatusClass.ServerError);
681
+ expect(matcher).toEqual({
682
+ 'pact:matcher:type': 'statusCode',
683
+ status: 'serverError',
684
+ value: 500,
685
+ });
686
+ });
687
+ it('creates a StatusCodeMatcher for Redirect class', () => {
688
+ const matcher = MatchersV3.matchStatus(301, MatchersV3.HTTPResponseStatusClass.Redirect);
689
+ expect(matcher).toEqual({
690
+ 'pact:matcher:type': 'statusCode',
691
+ status: 'redirect',
692
+ value: 301,
693
+ });
694
+ });
695
+ it('creates a StatusCodeMatcher for Information class', () => {
696
+ const matcher = MatchersV3.matchStatus(100, MatchersV3.HTTPResponseStatusClass.Information);
697
+ expect(matcher).toEqual({
698
+ 'pact:matcher:type': 'statusCode',
699
+ status: 'information',
700
+ value: 100,
701
+ });
702
+ });
703
+ it('creates a StatusCodeMatcher for NonError class', () => {
704
+ const matcher = MatchersV3.matchStatus(200, MatchersV3.HTTPResponseStatusClass.NonError);
705
+ expect(matcher).toEqual({
706
+ 'pact:matcher:type': 'statusCode',
707
+ status: 'nonError',
708
+ value: 200,
709
+ });
710
+ });
711
+ it('creates a StatusCodeMatcher for Error class', () => {
712
+ const matcher = MatchersV3.matchStatus(400, MatchersV3.HTTPResponseStatusClass.Error);
713
+ expect(matcher).toEqual({
714
+ 'pact:matcher:type': 'statusCode',
715
+ status: 'error',
716
+ value: 400,
717
+ });
718
+ });
719
+ it('reify returns the example value from a StatusCodeMatcher', () => {
720
+ const matcher = MatchersV3.matchStatus(201, MatchersV3.HTTPResponseStatusClass.Success);
721
+ expect(MatchersV3.reify(matcher)).toEqual(201);
722
+ });
723
+ });
656
724
  });
657
725
  //# sourceMappingURL=matchers.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"matchers.spec.js","sourceRoot":"","sources":["../../../src/v3/matchers.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAC7B,uDAAyC;AAEzC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;AAExB,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QAKvD,MAAM,CAAC,GAAQ,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC;QAExC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1B,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAOlC,MAAM,CAAC,GAAS,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC;QAE3D,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1B,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QACrB,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC;gBAC7B,CAAC,EAAE,GAAG;aACP,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC3B,mBAAmB,EAAE,MAAM;gBAC3B,KAAK,EAAE;oBACL,CAAC,EAAE,GAAG;iBACP;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;YACjE,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE;gBAC3C,EAAE,EAAE,KAAK;aACV,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC3B,mBAAmB,EAAE,QAAQ;gBAC7B,KAAK,EAAE;oBACL,KAAK,EAAE;wBACL,EAAE,EAAE,KAAK;qBACV;iBACF;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACzB,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;YAC3B,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;gBAC9D,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC;oBACjC,CAAC,EAAE,GAAG;iBACP,CAAC,CAAC;gBACH,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC3B,GAAG,EAAE,CAAC;oBACN,mBAAmB,EAAE,MAAM;oBAC3B,KAAK,EAAE;wBACL;4BACE,CAAC,EAAE,GAAG;yBACP;qBACF;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;YACxB,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;gBAC9D,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAChC;oBACE,CAAC,EAAE,GAAG;iBACP,EACD,CAAC,CACF,CAAC;gBACF,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC3B,GAAG,EAAE,CAAC;oBACN,mBAAmB,EAAE,MAAM;oBAC3B,KAAK,EAAE;wBACL;4BACE,CAAC,EAAE,GAAG;yBACP;wBACD;4BACE,CAAC,EAAE,GAAG;yBACP;wBACD;4BACE,CAAC,EAAE,GAAG;yBACP;qBACF;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;YAChC,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;gBACpE,MAAM,MAAM,GAAG,UAAU,CAAC,cAAc,CAAC;oBACvC,CAAC,EAAE,GAAG;iBACP,CAAC,CAAC;gBACH,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC3B,mBAAmB,EAAE,MAAM;oBAC3B,GAAG,EAAE,CAAC;oBACN,KAAK,EAAE;wBACL;4BACE,CAAC,EAAE,GAAG;yBACP;qBACF;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;YACtC,EAAE,CAAC,gGAAgG,EAAE,GAAG,EAAE;gBACxG,MAAM,MAAM,GAAG,UAAU,CAAC,cAAc,CACtC;oBACE,CAAC,EAAE,GAAG;iBACP,EACD,CAAC,CACF,CAAC;gBACF,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC3B,mBAAmB,EAAE,MAAM;oBAC3B,GAAG,EAAE,CAAC;oBACN,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;iBACxD,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;YAChC,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;gBACjE,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CACnC;oBACE,CAAC,EAAE,GAAG;iBACP,EACD,CAAC,CACF,CAAC;gBACF,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC3B,mBAAmB,EAAE,MAAM;oBAC3B,GAAG,EAAE,CAAC;oBACN,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;iBAChC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;YACtC,EAAE,CAAC,6FAA6F,EAAE,GAAG,EAAE;gBACrG,MAAM,MAAM,GAAG,UAAU,CAAC,WAAW,CACnC;oBACE,CAAC,EAAE,GAAG;iBACP,EACD,CAAC,EACD,CAAC,CACF,CAAC;gBACF,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC3B,mBAAmB,EAAE,MAAM;oBAC3B,GAAG,EAAE,CAAC;oBACN,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;iBACxD,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;YAC5E,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAC7D,wHAAwH,CACzH,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;YAChC,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;gBAChE,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAClC;oBACE,CAAC,EAAE,GAAG;iBACP,EACD,CAAC,CACF,CAAC;gBACF,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC3B,mBAAmB,EAAE,MAAM;oBAC3B,GAAG,EAAE,CAAC;oBACN,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;iBACpB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;YACtC,EAAE,CAAC,4FAA4F,EAAE,GAAG,EAAE;gBACpG,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAClC;oBACE,CAAC,EAAE,GAAG;iBACP,EACD,CAAC,EACD,CAAC,CACF,CAAC;gBACF,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC3B,mBAAmB,EAAE,MAAM;oBAC3B,GAAG,EAAE,CAAC;oBACN,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;iBACxD,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;YAC5E,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAC5D,qHAAqH,CACtH,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;YAChC,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;gBAC1E,MAAM,MAAM,GAAG,UAAU,CAAC,oBAAoB,CAC5C;oBACE,CAAC,EAAE,GAAG;iBACP,EACD,CAAC,EACD,CAAC,CACF,CAAC;gBACF,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC3B,mBAAmB,EAAE,MAAM;oBAC3B,GAAG,EAAE,CAAC;oBACN,GAAG,EAAE,CAAC;oBACN,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;iBAChC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;YACtC,EAAE,CAAC,sGAAsG,EAAE,GAAG,EAAE;gBAC9G,MAAM,MAAM,GAAG,UAAU,CAAC,oBAAoB,CAC5C;oBACE,CAAC,EAAE,GAAG;iBACP,EACD,CAAC,EACD,CAAC,EACD,CAAC,CACF,CAAC;gBACF,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC3B,mBAAmB,EAAE,MAAM;oBAC3B,GAAG,EAAE,CAAC;oBACN,GAAG,EAAE,CAAC;oBACN,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;iBAC5C,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;YAC5E,MAAM,CAAC,GAAG,EAAE,CACV,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CACrD,CAAC,EAAE,CAAC,KAAK,CACR,kIAAkI,CACnI,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;YAC5E,MAAM,CAAC,GAAG,EAAE,CACV,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CACrD,CAAC,EAAE,CAAC,KAAK,CACR,+HAA+H,CAChI,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACvC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC3B,mBAAmB,EAAE,SAAS;gBAC9B,KAAK,EAAE,GAAG;aACX,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;YACxC,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;gBAC7D,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACrC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC3B,mBAAmB,EAAE,SAAS;oBAC9B,KAAK,EAAE,CAAC;iBACT,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;YACxC,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;gBAClD,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;gBACpC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC3B,mBAAmB,EAAE,SAAS;oBAC9B,qBAAqB,EAAE,WAAW;oBAClC,KAAK,EAAE,GAAG;iBACX,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACzC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC3B,mBAAmB,EAAE,SAAS;gBAC9B,KAAK,EAAE,KAAK;aACb,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;YACxC,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;gBAC7D,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACvC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC3B,mBAAmB,EAAE,SAAS;oBAC9B,KAAK,EAAE,GAAG;iBACX,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;YACxC,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;gBAClD,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;gBACpC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC3B,mBAAmB,EAAE,SAAS;oBAC9B,qBAAqB,EAAE,eAAe;oBACtC,KAAK,EAAE,KAAK;iBACb,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC3B,mBAAmB,EAAE,QAAQ;gBAC7B,KAAK,EAAE,KAAK;aACb,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;YACxC,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;gBAClD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;gBACnC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC3B,mBAAmB,EAAE,QAAQ;oBAC7B,qBAAqB,EAAE,WAAW;oBAClC,KAAK,EAAE,IAAI;iBACZ,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC3B,mBAAmB,EAAE,MAAM;gBAC3B,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACzC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC3B,mBAAmB,EAAE,MAAM;gBAC3B,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC3B,mBAAmB,EAAE,OAAO;gBAC5B,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;YAC/C,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;gBAC1D,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC3B,mBAAmB,EAAE,OAAO;oBAC5B,KAAK,EAAE,MAAM;oBACb,KAAK,EAAE,MAAM;iBACd,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC9D,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC3B,mBAAmB,EAAE,UAAU;gBAC/B,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACzB,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;YACxC,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;gBAC7D,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAChC,4BAA4B,EAC5B,0BAA0B,CAC3B,CAAC;gBACF,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC3B,mBAAmB,EAAE,WAAW;oBAChC,MAAM,EAAE,4BAA4B;oBACpC,KAAK,EAAE,0BAA0B;iBAClC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;YAC/C,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;gBACzB,MAAM,CAAC,GAAG,EAAE,CACV,UAAU,CAAC,QAAQ,CAAC,4BAA4B,EAAE,EAAE,CAAC,CACtD,CAAC,EAAE,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QACrB,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;YACxC,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;gBACzD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;gBACvD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC3B,mBAAmB,EAAE,MAAM;oBAC3B,MAAM,EAAE,UAAU;oBAClB,KAAK,EAAE,UAAU;iBAClB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;YAC/C,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;gBACzB,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CACpD,kCAAkC,CACnC,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QACrB,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;YACxC,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;gBACzD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;gBAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC3B,mBAAmB,EAAE,MAAM;oBAC3B,MAAM,EAAE,YAAY;oBACpB,KAAK,EAAE,YAAY;iBACpB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;YAC/C,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;gBACzB,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CACtD,kCAAkC,CACnC,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC3B,mBAAmB,EAAE,SAAS;gBAC9B,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC3B,mBAAmB,EAAE,MAAM;gBAC3B,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;QACpB,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;YACtE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,uBAAuB,EAAE;gBACtD,OAAO;gBACP,MAAM;gBACN,OAAO;gBACP,QAAQ;aACT,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC3B,mBAAmB,EAAE,OAAO;gBAC5B,KAAK,EAAE,uCAAuC;gBAC9C,KAAK,EAAE,+CAA+C;aACvD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAClD,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;gBACtE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,uBAAuB,EAAE;oBACtD,OAAO;oBACP,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC;oBAChC,OAAO;oBACP,QAAQ;iBACT,CAAC,CAAC;gBACH,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC3B,mBAAmB,EAAE,OAAO;oBAC5B,KAAK,EAAE,uCAAuC;oBAC9C,KAAK,EAAE,+CAA+C;iBACvD,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACvD,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;gBACtE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,uBAAuB,EAAE;oBACtD,OAAO;oBACP,KAAK;oBACL,OAAO;oBACP,QAAQ;iBACT,CAAC,CAAC;gBACH,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;oBAC7B,mBAAmB,EAAE,OAAO;oBAC5B,KAAK,EAAE,uCAAuC;iBAC/C,CAAC,CAAC;gBACH,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAChE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;YAC5C,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;gBAC7D,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC;oBAC5B,OAAO;oBACP,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC;oBAChC,OAAO;oBACP,QAAQ;iBACT,CAAC,CAAC;gBACH,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC3B,mBAAmB,EAAE,OAAO;oBAC5B,qBAAqB,EAAE,eAAe;oBACtC,KAAK,EAAE,uCAAuC;oBAC9C,KAAK,EAAE,+CAA+C;oBACtD,OAAO,EAAE,+CAA+C;iBACzD,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;QACrB,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACrE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;YACvE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC3B,mBAAmB,EAAE,OAAO;gBAC5B,KAAK,EAAE,8DAA8D;gBACrE,KAAK,EAAE,sCAAsC;aAC9C,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;YAChF,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YACvD,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YACpE,MAAM,CAAC,GAAG,EAAE,CACV,UAAU,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAC7D,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC3B,mBAAmB,EAAE,OAAO;gBAC5B,qBAAqB,EAAE,MAAM;gBAC7B,KAAK,EAAE,8DAA8D;gBACrE,KAAK,EAAE,sCAAsC;aAC9C,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;YACrD,MAAM,MAAM,GAAG;gBACb,KAAK,EAAE,MAAM,EAAE,sEAAsE;gBACrF,IAAI,EAAE,SAAS;gBACf,EAAE,EAAE,CAAC,OAAO,CAAC;gBACb,UAAU,EAAE;oBACV,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC;iBACd;aACF,CAAC;YAEF,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;gBAClC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACzD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;YACrD,MAAM,MAAM,GAAG;gBACb,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI;gBACV,EAAE,EAAE,CAAC,IAAI,CAAC;gBACV,UAAU,EAAE;oBACV,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC;oBACb,OAAO,EAAE,IAAI;iBACd;aACF,CAAC;YAEF,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;gBAClC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACzD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACvD,MAAM,YAAY,GAAG;gBACnB,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC7B,IAAI,EAAE,SAAS;gBACf,EAAE,EAAE,CAAC,OAAO,CAAC;gBACb,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACpC,IAAI,EAAE,UAAU,CAAC,SAAS,EAAE;gBAC5B,UAAU,EAAE;oBACV,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;oBAC/B,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC;oBAC/C,UAAU,EAAE,CAAC;oBACb,iBAAiB,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;iBACtC;aACF,CAAC;YAEF,MAAM,QAAQ,GAAG;gBACf,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,SAAS;gBACf,EAAE,EAAE,CAAC,OAAO,CAAC;gBACb,OAAO,EAAE,CAAC,MAAM,CAAC;gBACjB,IAAI,EAAE,IAAI;gBACV,UAAU,EAAE;oBACV,QAAQ,EAAE,IAAI;oBACd,QAAQ,EAAE,MAAM;oBAChB,UAAU,EAAE,CAAC;oBACb,iBAAiB,EAAE,CAAC;iBACrB;aACF,CAAC;YAEF,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;gBACvC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACjE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;YAC3C,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;gBACnC,MAAM,QAAQ,GAAG,eAAe,CAAC;gBAEjC,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;gBAE1D,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBAClD,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAChE,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;gBACnC,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC;oBACxB,aAAa,EAAE;wBACb,cAAc,EAAE,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;qBAC5C;oBACD,oBAAoB,EAAE;wBACpB,aAAa,EAAE;4BACb,8BAA8B,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;yBACtD;wBACD,cAAc,EAAE,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC;qBACtD;oBACD,YAAY,EAAE;wBACZ,gBAAgB,EAAE,UAAU,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;qBACzD;oBACD,mBAAmB,EAAE;wBACnB,gBAAgB,EAAE,UAAU,CAAC,cAAc,CACzC;4BACE,GAAG,EAAE,KAAK;4BACV,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;yBAC5B,EACD,CAAC,CACF;qBACF;iBACF,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG;oBACf,aAAa,EAAE;wBACb,cAAc,EAAE,UAAU;qBAC3B;oBACD,oBAAoB,EAAE;wBACpB,aAAa,EAAE;4BACb,8BAA8B,EAAE,IAAI;yBACrC;wBACD,cAAc,EAAE,MAAM;qBACvB;oBACD,YAAY,EAAE;wBACZ,gBAAgB,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;qBACjD;oBACD,mBAAmB,EAAE;wBACnB,gBAAgB,EAAE;4BAChB;gCACE,GAAG,EAAE,KAAK;gCACV,GAAG,EAAE,KAAK;6BACX;4BACD;gCACE,GAAG,EAAE,KAAK;gCACV,GAAG,EAAE,KAAK;6BACX;4BACD;gCACE,GAAG,EAAE,KAAK;gCACV,GAAG,EAAE,KAAK;6BACX;yBACF;qBACF;iBACF,CAAC;gBAEF,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,8CAA8C,EAAE,GAAG,EAAE;YAC5D,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;gBAClC,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC;oBACpC,CAAC,EAAE,GAAG;oBACN,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;iBAC/D,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC3B,CAAC,EAAE,GAAG;oBACN,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;iBACtC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"matchers.spec.js","sourceRoot":"","sources":["../../../src/v3/matchers.spec.ts"],"names":[],"mappings":"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"}