@pact-foundation/pact 16.3.1 → 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 (261) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/CONTRIBUTING.md +2 -2
  3. package/README.md +22 -12
  4. package/package.json +26 -47
  5. package/scripts/ci/build-and-test.sh +0 -3
  6. package/scripts/install-plugins.js +104 -0
  7. package/src/common/graphQL/configurationError.js +2 -22
  8. package/src/common/graphQL/configurationError.js.map +1 -1
  9. package/src/common/graphQL/graphQL.d.ts +2 -2
  10. package/src/common/graphQL/graphQL.js +11 -14
  11. package/src/common/graphQL/graphQL.js.map +1 -1
  12. package/src/common/graphQL/graphQLQueryError.js +2 -22
  13. package/src/common/graphQL/graphQLQueryError.js.map +1 -1
  14. package/src/common/logger.js +9 -9
  15. package/src/common/logger.js.map +1 -1
  16. package/src/common/matchingRules.d.ts +7 -1
  17. package/src/common/matchingRules.js +42 -22
  18. package/src/common/matchingRules.js.map +1 -1
  19. package/src/common/net.js +36 -42
  20. package/src/common/net.js.map +1 -1
  21. package/src/common/net.spec.js +39 -87
  22. package/src/common/net.spec.js.map +1 -1
  23. package/src/common/request.js +33 -82
  24. package/src/common/request.js.map +1 -1
  25. package/src/common/request.spec.js +29 -73
  26. package/src/common/request.spec.js.map +1 -1
  27. package/src/common/spec.js +3 -4
  28. package/src/common/spec.js.map +1 -1
  29. package/src/dsl/apolloGraphql.js +7 -25
  30. package/src/dsl/apolloGraphql.js.map +1 -1
  31. package/src/dsl/apolloGraphql.spec.js +21 -58
  32. package/src/dsl/apolloGraphql.spec.js.map +1 -1
  33. package/src/dsl/graphql.d.ts +2 -2
  34. package/src/dsl/graphql.js +29 -48
  35. package/src/dsl/graphql.js.map +1 -1
  36. package/src/dsl/graphql.spec.js +92 -117
  37. package/src/dsl/graphql.spec.js.map +1 -1
  38. package/src/dsl/interaction.d.ts +2 -2
  39. package/src/dsl/interaction.js +41 -48
  40. package/src/dsl/interaction.js.map +1 -1
  41. package/src/dsl/interaction.spec.js +109 -132
  42. package/src/dsl/interaction.spec.js.map +1 -1
  43. package/src/dsl/matchers.d.ts +2 -3
  44. package/src/dsl/matchers.js +19 -31
  45. package/src/dsl/matchers.js.map +1 -1
  46. package/src/dsl/matchers.spec.js +279 -289
  47. package/src/dsl/matchers.spec.js.map +1 -1
  48. package/src/dsl/message.d.ts +3 -3
  49. package/src/dsl/options.d.ts +3 -3
  50. package/src/dsl/verifier/proxy/hooks.d.ts +2 -2
  51. package/src/dsl/verifier/proxy/hooks.js +42 -112
  52. package/src/dsl/verifier/proxy/hooks.js.map +1 -1
  53. package/src/dsl/verifier/proxy/hooks.spec.js +86 -199
  54. package/src/dsl/verifier/proxy/hooks.spec.js.map +1 -1
  55. package/src/dsl/verifier/proxy/messages.d.ts +2 -2
  56. package/src/dsl/verifier/proxy/messages.js +88 -106
  57. package/src/dsl/verifier/proxy/messages.js.map +1 -1
  58. package/src/dsl/verifier/proxy/parseBody.d.ts +1 -1
  59. package/src/dsl/verifier/proxy/parseBody.js +3 -3
  60. package/src/dsl/verifier/proxy/parseBody.js.map +1 -1
  61. package/src/dsl/verifier/proxy/parseBody.spec.js +35 -113
  62. package/src/dsl/verifier/proxy/parseBody.spec.js.map +1 -1
  63. package/src/dsl/verifier/proxy/proxy.d.ts +2 -2
  64. package/src/dsl/verifier/proxy/proxy.js +22 -26
  65. package/src/dsl/verifier/proxy/proxy.js.map +1 -1
  66. package/src/dsl/verifier/proxy/proxy.spec.js +11 -53
  67. package/src/dsl/verifier/proxy/proxy.spec.js.map +1 -1
  68. package/src/dsl/verifier/proxy/proxyRequest.d.ts +3 -3
  69. package/src/dsl/verifier/proxy/proxyRequest.js +7 -7
  70. package/src/dsl/verifier/proxy/proxyRequest.js.map +1 -1
  71. package/src/dsl/verifier/proxy/proxyRequest.spec.js +54 -104
  72. package/src/dsl/verifier/proxy/proxyRequest.spec.js.map +1 -1
  73. package/src/dsl/verifier/proxy/stateHandler/setupStates.d.ts +3 -3
  74. package/src/dsl/verifier/proxy/stateHandler/setupStates.js +14 -18
  75. package/src/dsl/verifier/proxy/stateHandler/setupStates.js.map +1 -1
  76. package/src/dsl/verifier/proxy/stateHandler/setupStates.spec.js +76 -193
  77. package/src/dsl/verifier/proxy/stateHandler/setupStates.spec.js.map +1 -1
  78. package/src/dsl/verifier/proxy/stateHandler/stateHandler.d.ts +2 -2
  79. package/src/dsl/verifier/proxy/stateHandler/stateHandler.js +23 -72
  80. package/src/dsl/verifier/proxy/stateHandler/stateHandler.js.map +1 -1
  81. package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js +37 -122
  82. package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js.map +1 -1
  83. package/src/dsl/verifier/proxy/tracer.d.ts +1 -1
  84. package/src/dsl/verifier/proxy/tracer.js +42 -35
  85. package/src/dsl/verifier/proxy/tracer.js.map +1 -1
  86. package/src/dsl/verifier/proxy/types.d.ts +5 -5
  87. package/src/dsl/verifier/types.d.ts +3 -3
  88. package/src/dsl/verifier/verifier.d.ts +5 -1
  89. package/src/dsl/verifier/verifier.js +53 -60
  90. package/src/dsl/verifier/verifier.js.map +1 -1
  91. package/src/dsl/verifier/verifier.spec.js +84 -151
  92. package/src/dsl/verifier/verifier.spec.js.map +1 -1
  93. package/src/errors/configurationError.js +2 -22
  94. package/src/errors/configurationError.js.map +1 -1
  95. package/src/errors/graphQLQueryError.js +2 -22
  96. package/src/errors/graphQLQueryError.js.map +1 -1
  97. package/src/errors/matcherError.js +2 -22
  98. package/src/errors/matcherError.js.map +1 -1
  99. package/src/errors/verificationError.js +2 -22
  100. package/src/errors/verificationError.js.map +1 -1
  101. package/src/httpPact/ffi.d.ts +2 -2
  102. package/src/httpPact/ffi.js +28 -29
  103. package/src/httpPact/ffi.js.map +1 -1
  104. package/src/httpPact/ffi.spec.js +40 -83
  105. package/src/httpPact/ffi.spec.js.map +1 -1
  106. package/src/httpPact/index.d.ts +3 -3
  107. package/src/httpPact/index.js +92 -149
  108. package/src/httpPact/index.js.map +1 -1
  109. package/src/httpPact/index.spec.js +102 -195
  110. package/src/httpPact/index.spec.js.map +1 -1
  111. package/src/httpPact/tracing.js +20 -28
  112. package/src/httpPact/tracing.js.map +1 -1
  113. package/src/index.d.ts +25 -25
  114. package/src/index.js +29 -29
  115. package/src/index.js.map +1 -1
  116. package/src/messageConsumerPact.d.ts +5 -5
  117. package/src/messageConsumerPact.js +59 -53
  118. package/src/messageConsumerPact.js.map +1 -1
  119. package/src/messageConsumerPact.spec.js +55 -97
  120. package/src/messageConsumerPact.spec.js.map +1 -1
  121. package/src/messageProviderPact.d.ts +3 -3
  122. package/src/messageProviderPact.js +68 -85
  123. package/src/messageProviderPact.js.map +1 -1
  124. package/src/messageProviderPact.spec.js +96 -123
  125. package/src/messageProviderPact.spec.js.map +1 -1
  126. package/src/pact.integration.spec.js +242 -351
  127. package/src/pact.integration.spec.js.map +1 -1
  128. package/src/v3/display.d.ts +1 -1
  129. package/src/v3/display.js +44 -58
  130. package/src/v3/display.js.map +1 -1
  131. package/src/v3/ffi.js +20 -16
  132. package/src/v3/ffi.js.map +1 -1
  133. package/src/v3/ffi.spec.js +7 -42
  134. package/src/v3/ffi.spec.js.map +1 -1
  135. package/src/v3/graphql/graphQL.d.ts +4 -4
  136. package/src/v3/graphql/graphQL.js +50 -75
  137. package/src/v3/graphql/graphQL.js.map +1 -1
  138. package/src/v3/graphql/index.d.ts +1 -1
  139. package/src/v3/graphql/index.js +1 -1
  140. package/src/v3/graphql/index.js.map +1 -1
  141. package/src/v3/index.d.ts +4 -12
  142. package/src/v3/index.js +4 -12
  143. package/src/v3/index.js.map +1 -1
  144. package/src/v3/matchers.d.ts +15 -3
  145. package/src/v3/matchers.js +131 -148
  146. package/src/v3/matchers.js.map +1 -1
  147. package/src/v3/matchers.spec.js +281 -232
  148. package/src/v3/matchers.spec.js.map +1 -1
  149. package/src/v3/pact.d.ts +2 -2
  150. package/src/v3/pact.js +108 -151
  151. package/src/v3/pact.js.map +1 -1
  152. package/src/v3/pact.spec.js +94 -0
  153. package/src/v3/pact.spec.js.map +1 -0
  154. package/src/v3/types.d.ts +19 -3
  155. package/src/v3/types.js +22 -1
  156. package/src/v3/types.js.map +1 -1
  157. package/src/v4/graphql/graphQLInteractionWithRequest.d.ts +4 -4
  158. package/src/v4/graphql/graphQLInteractionWithRequest.js +21 -17
  159. package/src/v4/graphql/graphQLInteractionWithRequest.js.map +1 -1
  160. package/src/v4/graphql/graphQLRequestBuilder.d.ts +3 -3
  161. package/src/v4/graphql/graphQLRequestBuilder.js +18 -20
  162. package/src/v4/graphql/graphQLRequestBuilder.js.map +1 -1
  163. package/src/v4/graphql/index.d.ts +6 -6
  164. package/src/v4/graphql/index.js +21 -17
  165. package/src/v4/graphql/index.js.map +1 -1
  166. package/src/v4/graphql/types.d.ts +5 -5
  167. package/src/v4/http/index.d.ts +2 -2
  168. package/src/v4/http/index.js +53 -93
  169. package/src/v4/http/index.js.map +1 -1
  170. package/src/v4/http/index.spec.d.ts +1 -0
  171. package/src/v4/http/index.spec.js +73 -0
  172. package/src/v4/http/index.spec.js.map +1 -0
  173. package/src/v4/http/interactionWithCompleteRequest.d.ts +4 -7
  174. package/src/v4/http/interactionWithCompleteRequest.js +6 -10
  175. package/src/v4/http/interactionWithCompleteRequest.js.map +1 -1
  176. package/src/v4/http/interactionWithPlugin.d.ts +3 -3
  177. package/src/v4/http/interactionWithPlugin.js +14 -11
  178. package/src/v4/http/interactionWithPlugin.js.map +1 -1
  179. package/src/v4/http/interactionWithPluginRequest.d.ts +4 -3
  180. package/src/v4/http/interactionWithPluginRequest.js +17 -9
  181. package/src/v4/http/interactionWithPluginRequest.js.map +1 -1
  182. package/src/v4/http/interactionWithPluginResponse.d.ts +2 -2
  183. package/src/v4/http/interactionWithPluginResponse.js +10 -48
  184. package/src/v4/http/interactionWithPluginResponse.js.map +1 -1
  185. package/src/v4/http/interactionWithRequest.d.ts +4 -3
  186. package/src/v4/http/interactionWithRequest.js +17 -9
  187. package/src/v4/http/interactionWithRequest.js.map +1 -1
  188. package/src/v4/http/interactionWithRequest.spec.d.ts +1 -0
  189. package/src/v4/http/interactionWithRequest.spec.js +82 -0
  190. package/src/v4/http/interactionWithRequest.spec.js.map +1 -0
  191. package/src/v4/http/interactionWithResponse.d.ts +2 -2
  192. package/src/v4/http/interactionWithResponse.js +10 -48
  193. package/src/v4/http/interactionWithResponse.js.map +1 -1
  194. package/src/v4/http/requestBuilder.d.ts +4 -3
  195. package/src/v4/http/requestBuilder.js +36 -34
  196. package/src/v4/http/requestBuilder.js.map +1 -1
  197. package/src/v4/http/requestBuilder.spec.d.ts +1 -0
  198. package/src/v4/http/requestBuilder.spec.js +42 -0
  199. package/src/v4/http/requestBuilder.spec.js.map +1 -0
  200. package/src/v4/http/requestWithPluginBuilder.d.ts +3 -2
  201. package/src/v4/http/requestWithPluginBuilder.js +30 -46
  202. package/src/v4/http/requestWithPluginBuilder.js.map +1 -1
  203. package/src/v4/http/requestWithPluginBuilder.spec.d.ts +1 -0
  204. package/src/v4/http/requestWithPluginBuilder.spec.js +34 -0
  205. package/src/v4/http/requestWithPluginBuilder.spec.js.map +1 -0
  206. package/src/v4/http/responseBuilder.d.ts +4 -3
  207. package/src/v4/http/responseBuilder.js +28 -25
  208. package/src/v4/http/responseBuilder.js.map +1 -1
  209. package/src/v4/http/responseBuilder.spec.d.ts +1 -0
  210. package/src/v4/http/responseBuilder.spec.js +42 -0
  211. package/src/v4/http/responseBuilder.spec.js.map +1 -0
  212. package/src/v4/http/responseWithPluginBuilder.d.ts +1 -1
  213. package/src/v4/http/responseWithPluginBuilder.js +5 -25
  214. package/src/v4/http/responseWithPluginBuilder.js.map +1 -1
  215. package/src/v4/http/responseWithPluginBuilder.spec.d.ts +1 -0
  216. package/src/v4/http/responseWithPluginBuilder.spec.js +34 -0
  217. package/src/v4/http/responseWithPluginBuilder.spec.js.map +1 -0
  218. package/src/v4/http/types.d.ts +13 -4
  219. package/src/v4/http/unconfiguredInteraction.d.ts +6 -5
  220. package/src/v4/http/unconfiguredInteraction.js +31 -26
  221. package/src/v4/http/unconfiguredInteraction.js.map +1 -1
  222. package/src/v4/index.d.ts +6 -5
  223. package/src/v4/index.js +32 -35
  224. package/src/v4/index.js.map +1 -1
  225. package/src/v4/message/asynchronousMessage.d.ts +7 -6
  226. package/src/v4/message/asynchronousMessage.js +157 -190
  227. package/src/v4/message/asynchronousMessage.js.map +1 -1
  228. package/src/v4/message/index.d.ts +7 -6
  229. package/src/v4/message/index.js +188 -217
  230. package/src/v4/message/index.js.map +1 -1
  231. package/src/v4/message/types.d.ts +5 -3
  232. package/src/v4/types.d.ts +3 -3
  233. package/src/xml/index.d.ts +4 -0
  234. package/src/xml/index.js +21 -0
  235. package/src/xml/index.js.map +1 -0
  236. package/src/{v3/xml → xml}/xmlBuilder.d.ts +1 -3
  237. package/src/{v3/xml → xml}/xmlBuilder.js +7 -9
  238. package/src/xml/xmlBuilder.js.map +1 -0
  239. package/src/{v3/xml → xml}/xmlElement.d.ts +2 -2
  240. package/src/xml/xmlElement.js +73 -0
  241. package/src/xml/xmlElement.js.map +1 -0
  242. package/src/xml/xmlElement.spec.d.ts +1 -0
  243. package/src/xml/xmlElement.spec.js +107 -0
  244. package/src/xml/xmlElement.spec.js.map +1 -0
  245. package/src/xml/xmlNode.js +7 -0
  246. package/src/xml/xmlNode.js.map +1 -0
  247. package/src/{v3/xml → xml}/xmlText.d.ts +1 -1
  248. package/src/xml/xmlText.js +15 -0
  249. package/src/xml/xmlText.js.map +1 -0
  250. package/scripts/install-plugins +0 -106
  251. package/src/v3/xml/xmlBuilder.js.map +0 -1
  252. package/src/v3/xml/xmlElement.js +0 -90
  253. package/src/v3/xml/xmlElement.js.map +0 -1
  254. package/src/v3/xml/xmlElement.spec.js +0 -113
  255. package/src/v3/xml/xmlElement.spec.js.map +0 -1
  256. package/src/v3/xml/xmlNode.js +0 -10
  257. package/src/v3/xml/xmlNode.js.map +0 -1
  258. package/src/v3/xml/xmlText.js +0 -31
  259. package/src/v3/xml/xmlText.js.map +0 -1
  260. /package/src/v3/{xml/xmlElement.spec.d.ts → pact.spec.d.ts} +0 -0
  261. /package/src/{v3/xml → xml}/xmlNode.d.ts +0 -0
@@ -1,141 +1,56 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
- return new (P || (P = Promise))(function (resolve, reject) {
38
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
- step((generator = generator.apply(thisArg, _arguments || [])).next());
42
- });
43
- };
44
- var __generator = (this && this.__generator) || function (thisArg, body) {
45
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
46
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
47
- function verb(n) { return function (v) { return step([n, v]); }; }
48
- function step(op) {
49
- if (f) throw new TypeError("Generator is already executing.");
50
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
51
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
52
- if (y = 0, t) op = [op[0] & 2, t.value];
53
- switch (op[0]) {
54
- case 0: case 1: t = op; break;
55
- case 4: _.label++; return { value: op[1], done: false };
56
- case 5: _.label++; y = op[1]; op = [0]; continue;
57
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
58
- default:
59
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
60
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
61
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
62
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
63
- if (t[2]) _.ops.pop();
64
- _.trys.pop(); continue;
65
- }
66
- op = body.call(thisArg, _);
67
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
68
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
69
- }
70
- };
71
- var __importDefault = (this && this.__importDefault) || function (mod) {
72
- return (mod && mod.__esModule) ? mod : { "default": mod };
73
- };
74
2
  Object.defineProperty(exports, "__esModule", { value: true });
75
- var chai = __importStar(require("chai"));
76
- var chai_as_promised_1 = __importDefault(require("chai-as-promised"));
77
- var sinon_1 = __importDefault(require("sinon"));
78
- var stateHandler_1 = require("./stateHandler");
79
- chai.use(chai_as_promised_1.default);
80
- var expect = chai.expect;
81
- describe('#createProxyStateHandler', function () {
82
- var state = {
3
+ const vitest_1 = require("vitest");
4
+ const stateHandler_1 = require("./stateHandler");
5
+ describe('#createProxyStateHandler', () => {
6
+ const state = {
83
7
  state: 'thing exists',
84
8
  action: 'setup',
85
9
  };
86
- var res;
87
- var mockResponse = {
88
- status: function (status) {
10
+ let res;
11
+ const mockResponse = {
12
+ status: (status) => {
89
13
  res = status;
90
14
  return {
91
- send: function () { },
15
+ send: () => { },
92
16
  };
93
17
  },
94
- json: function (data) { return data; },
18
+ json: (data) => data,
95
19
  };
96
- context('when valid state handlers are provided', function () {
97
- it('returns a 200', function () { return __awaiter(void 0, void 0, void 0, function () {
98
- var stateHandlers, h;
99
- return __generator(this, function (_a) {
100
- stateHandlers = {
101
- 'thing exists': function () { return Promise.resolve(); },
102
- };
103
- h = (0, stateHandler_1.createProxyStateHandler)({
104
- stateHandlers: stateHandlers,
105
- });
106
- return [2 /*return*/, expect(h({
107
- body: state,
108
- }, mockResponse)).to.eventually.be.fulfilled];
20
+ afterEach(() => {
21
+ vitest_1.vi.restoreAllMocks();
22
+ });
23
+ describe('when valid state handlers are provided', () => {
24
+ it('returns a 200', async () => {
25
+ const stateHandlers = {
26
+ 'thing exists': () => Promise.resolve(),
27
+ };
28
+ const h = (0, stateHandler_1.createProxyStateHandler)({
29
+ stateHandlers,
109
30
  });
110
- }); });
31
+ await h({
32
+ body: state,
33
+ }, mockResponse);
34
+ });
111
35
  });
112
- context('when there is a problem with a state handler', function () {
113
- var badStateHandlers = {
36
+ describe('when there is a problem with a state handler', () => {
37
+ const badStateHandlers = {
114
38
  'thing exists': {
115
- setup: function () { return Promise.reject(new Error('bad')); },
39
+ setup: () => Promise.reject(new Error('bad')),
116
40
  },
117
41
  };
118
- it('returns a 200 and logs an error', function () { return __awaiter(void 0, void 0, void 0, function () {
119
- var spy, h;
120
- return __generator(this, function (_a) {
121
- switch (_a.label) {
122
- case 0:
123
- spy = sinon_1.default.spy(console, 'log');
124
- h = (0, stateHandler_1.createProxyStateHandler)({
125
- stateHandlers: badStateHandlers,
126
- });
127
- return [4 /*yield*/, h({
128
- body: state,
129
- }, mockResponse)];
130
- case 1:
131
- _a.sent();
132
- expect(res).to.eql(200);
133
- expect(spy.callCount).to.eql(3);
134
- expect(spy.getCall(0).args[0]).to.include("Error executing state handler for state 'thing exists' on 'setup'.");
135
- return [2 /*return*/];
136
- }
42
+ it('returns a 200 and logs an error', async () => {
43
+ const spy = vitest_1.vi.spyOn(console, 'log');
44
+ const h = (0, stateHandler_1.createProxyStateHandler)({
45
+ stateHandlers: badStateHandlers,
137
46
  });
138
- }); });
47
+ await h({
48
+ body: state,
49
+ }, mockResponse);
50
+ expect(res).toBe(200);
51
+ expect(spy).toHaveBeenCalledTimes(3);
52
+ expect(spy.mock.calls[0][0]).toContain("Error executing state handler for state 'thing exists' on 'setup'.");
53
+ });
139
54
  });
140
55
  });
141
56
  //# sourceMappingURL=stateHandler.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stateHandler.spec.js","sourceRoot":"","sources":["../../../../../../src/dsl/verifier/proxy/stateHandler/stateHandler.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA6B;AAC7B,sEAA8C;AAI9C,gDAA0B;AAC1B,+CAAyD;AAGzD,IAAI,CAAC,GAAG,CAAC,0BAAc,CAAC,CAAC;AAEjB,IAAA,MAAM,GAAK,IAAI,OAAT,CAAU;AAExB,QAAQ,CAAC,0BAA0B,EAAE;IACnC,IAAM,KAAK,GAAG;QACZ,KAAK,EAAE,cAAc;QACrB,MAAM,EAAE,OAAO;KAChB,CAAC;IAEF,IAAI,GAAQ,CAAC;IACb,IAAM,YAAY,GAAG;QACnB,MAAM,EAAE,UAAC,MAAc;YACrB,GAAG,GAAG,MAAM,CAAC;YACb,OAAO;gBACL,IAAI,EAAE,cAAO,CAAC;aACf,CAAC;QACJ,CAAC;QACD,IAAI,EAAE,UAAC,IAAS,IAAK,OAAA,IAAI,EAAJ,CAAI;KAC1B,CAAC;IAEF,OAAO,CAAC,wCAAwC,EAAE;QAChD,EAAE,CAAC,eAAe,EAAE;;;gBACZ,aAAa,GAAG;oBACpB,cAAc,EAAE,cAAM,OAAA,OAAO,CAAC,OAAO,EAAE,EAAjB,CAAiB;iBACxC,CAAC;gBAEI,CAAC,GAAG,IAAA,sCAAuB,EAAC;oBAChC,aAAa,eAAA;iBACE,CAAC,CAAC;gBACnB,sBAAO,MAAM,CACX,CAAC,CACC;wBACE,IAAI,EAAE,KAAK;qBACO,EACpB,YAAgC,CACjC,CACF,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAC;;aAC9B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,8CAA8C,EAAE;QACtD,IAAM,gBAAgB,GAAkB;YACtC,cAAc,EAAE;gBACd,KAAK,EAAE,cAAM,OAAA,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAhC,CAAgC;aAC9C;SACF,CAAC;QAEF,EAAE,CAAC,iCAAiC,EAAE;;;;;wBAC9B,GAAG,GAAG,eAAK,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;wBAChC,CAAC,GAAG,IAAA,sCAAuB,EAAC;4BAChC,aAAa,EAAE,gBAAgB;yBAChB,CAAC,CAAC;wBACnB,qBAAM,CAAC,CACL;gCACE,IAAI,EAAE,KAAK;6BACO,EACpB,YAAgC,CACjC,EAAA;;wBALD,SAKC,CAAC;wBAEF,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBACxB,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBAChC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CACvC,oEAAoE,CACrE,CAAC;;;;aACH,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"stateHandler.spec.js","sourceRoot":"","sources":["../../../../../../src/dsl/verifier/proxy/stateHandler/stateHandler.spec.ts"],"names":[],"mappings":";;AACA,mCAA4B;AAE5B,iDAAyD;AAEzD,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,MAAM,KAAK,GAAG;QACZ,KAAK,EAAE,cAAc;QACrB,MAAM,EAAE,OAAO;KAChB,CAAC;IAEF,IAAI,GAAW,CAAC;IAChB,MAAM,YAAY,GAAG;QACnB,MAAM,EAAE,CAAC,MAAc,EAAE,EAAE;YACzB,GAAG,GAAG,MAAM,CAAC;YACb,OAAO;gBACL,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;aACf,CAAC;QACJ,CAAC;QACD,IAAI,EAAE,CAAC,IAAa,EAAE,EAAE,CAAC,IAAI;KAC9B,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,WAAE,CAAC,eAAe,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wCAAwC,EAAE,GAAG,EAAE;QACtD,EAAE,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;YAC7B,MAAM,aAAa,GAAG;gBACpB,cAAc,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE;aACxC,CAAC;YAEF,MAAM,CAAC,GAAG,IAAA,sCAAuB,EAAC;gBAChC,aAAa;aACE,CAAC,CAAC;YACnB,MAAM,CAAC,CACL;gBACE,IAAI,EAAE,KAAK;aACO,EACpB,YAAgC,CACjC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,8CAA8C,EAAE,GAAG,EAAE;QAC5D,MAAM,gBAAgB,GAAkB;YACtC,cAAc,EAAE;gBACd,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;aAC9C;SACF,CAAC;QAEF,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;YAC/C,MAAM,GAAG,GAAG,WAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACrC,MAAM,CAAC,GAAG,IAAA,sCAAuB,EAAC;gBAChC,aAAa,EAAE,gBAAgB;aAChB,CAAC,CAAC;YACnB,MAAM,CAAC,CACL;gBACE,IAAI,EAAE,KAAK;aACO,EACpB,YAAgC,CACjC,CAAC;YAEF,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtB,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACrC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CACpC,oEAAoE,CACrE,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,3 +1,3 @@
1
- import express from 'express';
1
+ import type express from 'express';
2
2
  export declare const createResponseTracer: () => express.RequestHandler;
3
3
  export declare const createRequestTracer: () => express.RequestHandler;
@@ -4,49 +4,56 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.createRequestTracer = exports.createResponseTracer = void 0;
7
- var lodash_1 = require("lodash");
8
- var logger_1 = __importDefault(require("../../../common/logger"));
9
- var removeEmptyResponseProperties = function (body, res) {
10
- return (0, lodash_1.pickBy)({
11
- body: body,
12
- headers: (0, lodash_1.reduce)(res.getHeaders(), function (acc, val, index) {
13
- acc[index] = val;
14
- return acc;
15
- }, {}),
16
- status: res.statusCode,
17
- }, lodash_1.identity);
18
- };
19
- var removeEmptyRequestProperties = function (req) {
20
- return (0, lodash_1.pickBy)({
21
- body: req.body,
22
- headers: req.headers,
23
- method: req.method,
24
- path: req.path,
25
- }, lodash_1.identity);
26
- };
27
- var createResponseTracer = function () { return function (_, res, next) {
28
- var _a = [res.write, res.end], oldWrite = _a[0], oldEnd = _a[1];
29
- var chunks = [];
30
- res.write = function (chunk) {
7
+ const lodash_1 = require("lodash");
8
+ const logger_1 = __importDefault(require("../../../common/logger"));
9
+ const removeEmptyResponseProperties = (body, res) => (0, lodash_1.pickBy)({
10
+ body,
11
+ headers: (0, lodash_1.reduce)(res.getHeaders(), (acc, val, index) => {
12
+ acc[index] = val;
13
+ return acc;
14
+ }, {}),
15
+ status: res.statusCode,
16
+ }, lodash_1.identity);
17
+ const removeEmptyRequestProperties = (req) => (0, lodash_1.pickBy)({
18
+ body: req.body,
19
+ headers: req.headers,
20
+ method: req.method,
21
+ path: req.path,
22
+ }, lodash_1.identity);
23
+ const createResponseTracer = () => (_, res, next) => {
24
+ const oldWrite = res.write.bind(res);
25
+ const oldEnd = res.end.bind(res);
26
+ const chunks = [];
27
+ res.write = ((chunk, encodingOrCb, callback) => {
31
28
  chunks.push(Buffer.from(chunk));
32
- return oldWrite.apply(res, [chunk]);
33
- };
34
- res.end = function (chunk) {
29
+ if (typeof encodingOrCb === 'function') {
30
+ return oldWrite(chunk, encodingOrCb);
31
+ }
32
+ return oldWrite(chunk, encodingOrCb, callback);
33
+ });
34
+ res.end = ((chunkOrCb, encodingOrCb, cb) => {
35
+ const chunk = typeof chunkOrCb === 'function' ? undefined : chunkOrCb;
35
36
  if (chunk) {
36
37
  chunks.push(Buffer.from(chunk));
37
38
  }
38
- var body = Buffer.concat(chunks).toString('utf8');
39
- logger_1.default.debug("outgoing response: ".concat(JSON.stringify(removeEmptyResponseProperties(body, res))));
40
- return oldEnd.apply(res, [chunk]);
41
- };
39
+ const body = Buffer.concat(chunks).toString('utf8');
40
+ logger_1.default.debug(`outgoing response: ${JSON.stringify(removeEmptyResponseProperties(body, res))}`);
41
+ if (typeof chunkOrCb === 'function') {
42
+ return oldEnd(chunkOrCb);
43
+ }
44
+ if (typeof encodingOrCb === 'function') {
45
+ return oldEnd(chunkOrCb, encodingOrCb);
46
+ }
47
+ return oldEnd(chunkOrCb, encodingOrCb, cb);
48
+ });
42
49
  if (typeof next === 'function') {
43
50
  next();
44
51
  }
45
- }; };
52
+ };
46
53
  exports.createResponseTracer = createResponseTracer;
47
- var createRequestTracer = function () { return function (req, _, next) {
48
- logger_1.default.debug("incoming request: ".concat(JSON.stringify(removeEmptyRequestProperties(req))));
54
+ const createRequestTracer = () => (req, _, next) => {
55
+ logger_1.default.debug(`incoming request: ${JSON.stringify(removeEmptyRequestProperties(req))}`);
49
56
  next();
50
- }; };
57
+ };
51
58
  exports.createRequestTracer = createRequestTracer;
52
59
  //# sourceMappingURL=tracer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tracer.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/tracer.ts"],"names":[],"mappings":";;;;;;AACA,iCAA8D;AAE9D,kEAA4C;AAE5C,IAAM,6BAA6B,GAAG,UAAC,IAAY,EAAE,GAAqB;IACxE,OAAA,IAAA,eAAM,EACJ;QACE,IAAI,MAAA;QACJ,OAAO,EAAE,IAAA,eAAM,EACb,GAAG,CAAC,UAAU,EAAE,EAChB,UACE,GAAuD,EACvD,GAAG,EACH,KAAK;YAEL,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;YACjB,OAAO,GAAG,CAAC;QACb,CAAC,EACD,EAAE,CACH;QACD,MAAM,EAAE,GAAG,CAAC,UAAU;KACvB,EACD,iBAAQ,CACT;AAlBD,CAkBC,CAAC;AAEJ,IAAM,4BAA4B,GAAG,UAAC,GAAoB;IACxD,OAAA,IAAA,eAAM,EACJ;QACE,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,IAAI,EAAE,GAAG,CAAC,IAAI;KACf,EACD,iBAAQ,CACT;AARD,CAQC,CAAC;AAEG,IAAM,oBAAoB,GAC/B,cAA8B,OAAA,UAAC,CAAC,EAAE,GAAG,EAAE,IAAI;IACnC,IAAA,KAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,EAAxC,QAAQ,QAAA,EAAE,MAAM,QAAwB,CAAC;IAChD,IAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,GAAG,CAAC,KAAK,GAAG,UAAC,KAAsC;QACjD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAChC,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC;IAEF,GAAG,CAAC,GAAG,GAAG,UAAC,KAAsC;QAC/C,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,IAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACpD,gBAAM,CAAC,KAAK,CACV,6BAAsB,IAAI,CAAC,SAAS,CAClC,6BAA6B,CAAC,IAAI,EAAE,GAAG,CAAC,CACzC,CAAE,CACJ,CAAC;QACF,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC;IACF,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,IAAI,EAAE,CAAC;IACT,CAAC;AACH,CAAC,EAxB6B,CAwB7B,CAAC;AAzBS,QAAA,oBAAoB,wBAyB7B;AAEG,IAAM,mBAAmB,GAC9B,cAA8B,OAAA,UAAC,GAAG,EAAE,CAAC,EAAE,IAAI;IACzC,gBAAM,CAAC,KAAK,CACV,4BAAqB,IAAI,CAAC,SAAS,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC,CAAE,CACzE,CAAC;IACF,IAAI,EAAE,CAAC;AACT,CAAC,EAL6B,CAK7B,CAAC;AANS,QAAA,mBAAmB,uBAM5B"}
1
+ {"version":3,"file":"tracer.js","sourceRoot":"","sources":["../../../../../src/dsl/verifier/proxy/tracer.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import express from 'express';
2
- import { LogLevel } from '../../options';
3
- import { JsonMap, AnyJson } from '../../../common/jsonTypes';
4
- import { MessageProviders } from '../../message';
1
+ import type express from 'express';
2
+ import type { AnyJson, JsonMap } from '../../../common/jsonTypes';
3
+ import type { MessageProviders } from '../../message';
4
+ import type { LogLevel } from '../../options';
5
5
  export type Hook = () => Promise<unknown>;
6
6
  /**
7
7
  * State handlers map a state description to a function
@@ -26,7 +26,7 @@ export type StateAction = 'setup' | 'teardown';
26
26
  * Respond to the state setup event, optionally returning a map of provider
27
27
  * values to dynamically inject into the incoming request to test
28
28
  */
29
- export type StateFunc = (parameters?: AnyJson) => Promise<JsonMap | void>;
29
+ export type StateFunc = (parameters?: AnyJson) => Promise<JsonMap | undefined>;
30
30
  /**
31
31
  * Respond to the state setup event, with the ability to hook into the setup/teardown
32
32
  * phase of the state
@@ -1,6 +1,6 @@
1
- import { VerifierOptions as PactCoreVerifierOptions } from '@pact-foundation/pact-core';
2
- import { MessageProviderOptions } from '../options';
3
- import { ProxyOptions } from './proxy/types';
1
+ import type { VerifierOptions as PactCoreVerifierOptions } from '@pact-foundation/pact-core';
2
+ import type { MessageProviderOptions } from '../options';
3
+ import type { ProxyOptions } from './proxy/types';
4
4
  type ExcludedPactNodeVerifierKeys = Exclude<keyof PactCoreVerifierOptions, 'providerBaseUrl'>;
5
5
  export type PactNodeVerificationExcludedOptions = Pick<PactCoreVerifierOptions, ExcludedPactNodeVerifierKeys>;
6
6
  export type VerifierOptions = PactNodeVerificationExcludedOptions & ProxyOptions & Partial<MessageProviderOptions>;
@@ -1,4 +1,8 @@
1
- import { VerifierOptions } from './types';
1
+ /**
2
+ * Provider Verifier service
3
+ * @module ProviderVerifier
4
+ */
5
+ import type { VerifierOptions } from './types';
2
6
  export declare class Verifier {
3
7
  private address;
4
8
  private stateSetupPath;
@@ -1,15 +1,8 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
2
+ /**
3
+ * Provider Verifier service
4
+ * @module ProviderVerifier
5
+ */
13
6
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
7
  if (k2 === undefined) k2 = k;
15
8
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -48,51 +41,48 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
48
41
  };
49
42
  Object.defineProperty(exports, "__esModule", { value: true });
50
43
  exports.Verifier = void 0;
51
- /**
52
- * Provider Verifier service
53
- * @module ProviderVerifier
54
- */
55
- var pact_core_1 = __importDefault(require("@pact-foundation/pact-core"));
56
- var lodash_1 = require("lodash");
57
- var url_1 = __importDefault(require("url"));
58
- var logger_1 = __importStar(require("../../common/logger"));
59
- var configurationError_1 = __importDefault(require("../../errors/configurationError"));
60
- var net_1 = require("../../common/net");
61
- var proxy_1 = require("./proxy");
62
- var Verifier = /** @class */ (function () {
63
- function Verifier(config) {
64
- var _this = this;
65
- var _a;
66
- this.address = 'http://127.0.0.1';
67
- this.stateSetupPath = '/_pactSetup';
68
- this.messageTransportPath = '/_messages';
69
- this.deprecatedFields = ['providerStatesSetupUrl'];
44
+ const node_url_1 = __importDefault(require("node:url"));
45
+ const pact_core_1 = __importDefault(require("@pact-foundation/pact-core"));
46
+ const lodash_1 = require("lodash");
47
+ const logger_1 = __importStar(require("../../common/logger"));
48
+ const net_1 = require("../../common/net");
49
+ const configurationError_1 = __importDefault(require("../../errors/configurationError"));
50
+ const proxy_1 = require("./proxy");
51
+ class Verifier {
52
+ address = 'http://127.0.0.1';
53
+ stateSetupPath = '/_pactSetup';
54
+ messageTransportPath = '/_messages';
55
+ config;
56
+ deprecatedFields = [
57
+ 'providerStatesSetupUrl',
58
+ ];
59
+ constructor(config) {
70
60
  this.config = config;
71
61
  if (this.config.logLevel && !(0, lodash_1.isEmpty)(this.config.logLevel)) {
72
62
  pact_core_1.default.logLevel(this.config.logLevel);
73
63
  (0, logger_1.setLogLevel)(this.config.logLevel);
74
64
  }
75
- this.deprecatedFields.forEach(function (f) {
76
- if (_this.config[f]) {
77
- logger_1.default.warn("".concat(f, " is deprecated, and will be removed in future versions"));
65
+ this.deprecatedFields.forEach((f) => {
66
+ if (this.config[f]) {
67
+ logger_1.default.warn(`${f} is deprecated, and will be removed in future versions`);
78
68
  }
79
69
  });
80
70
  if (this.config.validateSSL === undefined) {
81
71
  this.config.validateSSL = true;
82
72
  }
83
73
  if (this.config.proxyHost) {
84
- this.address = "http://".concat(this.config.proxyHost);
74
+ this.address = `http://${this.config.proxyHost}`;
85
75
  }
86
76
  if (this.config.changeOrigin === undefined) {
87
77
  this.config.changeOrigin = false;
88
78
  if (!this.isLocalVerification()) {
89
79
  this.config.changeOrigin = true;
90
- logger_1.default.debug("non-local provider address ".concat(this.config.providerBaseUrl, " detected, setting 'changeOrigin' to 'true'. This property can be overridden."));
80
+ logger_1.default.debug(`non-local provider address ${this.config.providerBaseUrl} detected, setting 'changeOrigin' to 'true'. This property can be overridden.`);
91
81
  }
92
82
  }
93
83
  if (!this.config.providerBaseUrl &&
94
84
  !this.config.messageProviders &&
95
- !((_a = this === null || this === void 0 ? void 0 : this.config) === null || _a === void 0 ? void 0 : _a.transports)) {
85
+ !this?.config?.transports) {
96
86
  throw new configurationError_1.default("'providerBaseUrl' is mandatory if no 'messageProviders' or 'transports' given");
97
87
  }
98
88
  }
@@ -101,56 +91,59 @@ var Verifier = /** @class */ (function () {
101
91
  *
102
92
  * @param config
103
93
  */
104
- Verifier.prototype.verifyProvider = function () {
94
+ verifyProvider() {
105
95
  logger_1.default.info('Verifying provider');
106
96
  if ((0, lodash_1.isEmpty)(this.config)) {
107
97
  return Promise.reject(new configurationError_1.default('No configuration provided to verifier'));
108
98
  }
109
99
  // Start the verification CLI proxy server
110
- var server = (0, proxy_1.createProxy)(this.config, this.stateSetupPath, this.messageTransportPath);
111
- logger_1.default.trace("proxy created, waiting for startup");
100
+ const server = (0, proxy_1.createProxy)(this.config, this.stateSetupPath, this.messageTransportPath);
101
+ logger_1.default.trace(`proxy created, waiting for startup`);
112
102
  // Run the verification once the proxy server is available
113
103
  return (0, proxy_1.waitForServerReady)(server)
114
- .then(function (passOn) {
115
- logger_1.default.trace("Proxy is ready at ".concat(server.address().address));
104
+ .then((passOn) => {
105
+ logger_1.default.trace(`Proxy is ready at ${server.address().address}`);
116
106
  return passOn;
117
107
  })
118
108
  .then(this.runProviderVerification())
119
- .then(function (result) {
109
+ .then((result) => {
120
110
  logger_1.default.trace('Verification completed, closing server');
121
111
  server.close();
122
112
  return result;
123
113
  })
124
- .catch(function (e) {
125
- logger_1.default.trace("Verification failed(".concat(e.message, "), closing server"));
114
+ .catch((e) => {
115
+ logger_1.default.trace(`Verification failed(${e.message}), closing server`);
126
116
  server.close();
127
117
  throw e;
128
118
  });
129
- };
119
+ }
130
120
  // Run the Verification CLI process
131
- Verifier.prototype.runProviderVerification = function () {
132
- var _this = this;
133
- return function (server) {
134
- var port = server.address().port;
135
- var opts = __assign(__assign({ providerStatesSetupUrl: "".concat(_this.address, ":").concat(port).concat(_this.stateSetupPath) }, (0, lodash_1.omit)(_this.config, 'handlers')), { providerBaseUrl: "".concat(_this.address, ":").concat(port), transports: (_this.config.transports || []).concat([
121
+ runProviderVerification() {
122
+ return (server) => {
123
+ const { port } = server.address();
124
+ const opts = {
125
+ providerStatesSetupUrl: `${this.address}:${port}${this.stateSetupPath}`,
126
+ ...(0, lodash_1.omit)(this.config, 'handlers'),
127
+ providerBaseUrl: `${this.address}:${port}`,
128
+ transports: (this.config.transports || []).concat([
136
129
  {
137
- port: port,
138
- path: _this.messageTransportPath,
130
+ port,
131
+ path: this.messageTransportPath,
139
132
  protocol: 'message',
140
133
  },
141
- ]) });
142
- logger_1.default.trace("Verifying pacts with: ".concat(JSON.stringify(opts)));
134
+ ]),
135
+ };
136
+ logger_1.default.trace(`Verifying pacts with: ${JSON.stringify(opts)}`);
143
137
  return pact_core_1.default.verifyPacts(opts);
144
138
  };
145
- };
146
- Verifier.prototype.isLocalVerification = function () {
139
+ }
140
+ isLocalVerification() {
147
141
  if (!this.config.providerBaseUrl) {
148
142
  return true;
149
143
  }
150
- var u = new url_1.default.URL(this.config.providerBaseUrl);
144
+ const u = new node_url_1.default.URL(this.config.providerBaseUrl);
151
145
  return (net_1.localAddresses.includes(u.host) || net_1.localAddresses.includes(u.hostname));
152
- };
153
- return Verifier;
154
- }());
146
+ }
147
+ }
155
148
  exports.Verifier = Verifier;
156
149
  //# sourceMappingURL=verifier.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"verifier.js","sourceRoot":"","sources":["../../../../src/dsl/verifier/verifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verifier.js","sourceRoot":"","sources":["../../../../src/dsl/verifier/verifier.ts"],"names":[],"mappings":"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"}