@pact-foundation/pact-core 19.1.0 → 20.0.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 (91) hide show
  1. package/.editorconfig +13 -0
  2. package/CHANGELOG.md +16 -0
  3. package/biome.jsonc +28 -0
  4. package/{src → dist}/consumer/checkErrors.js +1 -1
  5. package/dist/consumer/checkErrors.js.map +1 -0
  6. package/{src → dist}/consumer/index.d.ts +2 -2
  7. package/{src → dist}/consumer/index.js +13 -1
  8. package/dist/consumer/index.js.map +1 -0
  9. package/{src → dist}/consumer/internals.d.ts +2 -2
  10. package/dist/consumer/internals.js.map +1 -0
  11. package/{src → dist}/consumer/types.d.ts +52 -0
  12. package/dist/consumer/types.js.map +1 -0
  13. package/{src → dist}/ffi/index.d.ts +3 -3
  14. package/{src → dist}/ffi/index.js +18 -2
  15. package/dist/ffi/index.js.map +1 -0
  16. package/{src → dist}/ffi/types.d.ts +6 -5
  17. package/{src → dist}/ffi/types.js +16 -0
  18. package/dist/ffi/types.js.map +1 -0
  19. package/{src → dist}/index.js +4 -5
  20. package/dist/index.js.map +1 -0
  21. package/dist/logger/crashMessage.js.map +1 -0
  22. package/{src → dist}/logger/index.d.ts +1 -1
  23. package/{src → dist}/logger/index.js +2 -0
  24. package/dist/logger/index.js.map +1 -0
  25. package/dist/logger/pino.d.ts +3 -0
  26. package/{src → dist}/logger/pino.js +3 -0
  27. package/dist/logger/pino.js.map +1 -0
  28. package/dist/logger/types.js.map +1 -0
  29. package/{src → dist}/pact-environment.js +1 -1
  30. package/dist/pact-environment.js.map +1 -0
  31. package/{src → dist}/pact.d.ts +2 -2
  32. package/{src → dist}/pact.js +3 -2
  33. package/dist/pact.js.map +1 -0
  34. package/{src → dist}/verifier/argumentMapper/arguments.d.ts +3 -3
  35. package/{src → dist}/verifier/argumentMapper/arguments.js +5 -5
  36. package/dist/verifier/argumentMapper/arguments.js.map +1 -0
  37. package/{src → dist}/verifier/argumentMapper/index.d.ts +2 -2
  38. package/{src → dist}/verifier/argumentMapper/index.js +1 -1
  39. package/dist/verifier/argumentMapper/index.js.map +1 -0
  40. package/{src → dist}/verifier/argumentMapper/types.d.ts +1 -1
  41. package/dist/verifier/argumentMapper/types.js.map +1 -0
  42. package/{src → dist}/verifier/index.d.ts +1 -1
  43. package/{src → dist}/verifier/index.js +4 -0
  44. package/dist/verifier/index.js.map +1 -0
  45. package/{src → dist}/verifier/nativeVerifier.d.ts +1 -1
  46. package/{src → dist}/verifier/nativeVerifier.js +4 -1
  47. package/dist/verifier/nativeVerifier.js.map +1 -0
  48. package/{src → dist}/verifier/types.d.ts +4 -1
  49. package/dist/verifier/types.js.map +1 -0
  50. package/{src → dist}/verifier/validateOptions.d.ts +1 -1
  51. package/{src → dist}/verifier/validateOptions.js +3 -0
  52. package/dist/verifier/validateOptions.js.map +1 -0
  53. package/junit.xml +526 -0
  54. package/package.json +33 -52
  55. package/eslint.config.mjs +0 -68
  56. package/src/consumer/checkErrors.js.map +0 -1
  57. package/src/consumer/index.js.map +0 -1
  58. package/src/consumer/internals.js.map +0 -1
  59. package/src/consumer/types.js.map +0 -1
  60. package/src/ffi/index.js.map +0 -1
  61. package/src/ffi/node-gyp-build.d.ts +0 -1
  62. package/src/ffi/node-gyp-build.js +0 -2
  63. package/src/ffi/node-gyp-build.js.map +0 -1
  64. package/src/ffi/types.js.map +0 -1
  65. package/src/index.js.map +0 -1
  66. package/src/logger/crashMessage.js.map +0 -1
  67. package/src/logger/index.js.map +0 -1
  68. package/src/logger/pino.d.ts +0 -3
  69. package/src/logger/pino.js.map +0 -1
  70. package/src/logger/types.js.map +0 -1
  71. package/src/pact-environment.js.map +0 -1
  72. package/src/pact.js.map +0 -1
  73. package/src/verifier/argumentMapper/arguments.js.map +0 -1
  74. package/src/verifier/argumentMapper/index.js.map +0 -1
  75. package/src/verifier/argumentMapper/types.js.map +0 -1
  76. package/src/verifier/index.js.map +0 -1
  77. package/src/verifier/nativeVerifier.js.map +0 -1
  78. package/src/verifier/types.js.map +0 -1
  79. package/src/verifier/validateOptions.js.map +0 -1
  80. package/tsconfig.test.json +0 -13
  81. package/{src → dist}/consumer/checkErrors.d.ts +0 -0
  82. package/{src → dist}/consumer/internals.js +0 -0
  83. package/{src → dist}/consumer/types.js +0 -0
  84. package/{src → dist}/index.d.ts +4 -4
  85. /package/{src → dist}/logger/crashMessage.d.ts +0 -0
  86. /package/{src → dist}/logger/crashMessage.js +0 -0
  87. /package/{src → dist}/logger/types.d.ts +0 -0
  88. /package/{src → dist}/logger/types.js +0 -0
  89. /package/{src → dist}/pact-environment.d.ts +0 -0
  90. /package/{src → dist}/verifier/argumentMapper/types.js +0 -0
  91. /package/{src → dist}/verifier/types.js +0 -0
package/.editorconfig ADDED
@@ -0,0 +1,13 @@
1
+ # EditorConfig is awesome: http://EditorConfig.org
2
+
3
+ # top-most EditorConfig file
4
+ root = true
5
+
6
+ # Unix-style newlines with a newline ending every file
7
+ [*]
8
+ charset = utf-8
9
+ end_of_line = lf
10
+ insert_final_newline = true
11
+ trim_trailing_whitespace = true
12
+ indent_style = space
13
+ indent_size = 2
package/CHANGELOG.md CHANGED
@@ -2,6 +2,22 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
4
4
 
5
+ ## [20.0.0](https://github.com/pact-foundation/pact-js-core/compare/v19.2.0...v20.0.0) (2026-05-29)
6
+
7
+
8
+ ### ⚠ BREAKING CHANGES
9
+
10
+ * drop Node 18/20 support, target Node 22+ (#885)
11
+
12
+ * drop Node 18/20 support, target Node 22+ ([#885](https://github.com/pact-foundation/pact-js-core/issues/885)) ([60313ee](https://github.com/pact-foundation/pact-js-core/commit/60313ee47a5c4264c140c171bd37510fca78daba))
13
+
14
+ ## [19.2.0](https://github.com/pact-foundation/pact-js-core/compare/v19.1.0...v19.2.0) (2026-05-01)
15
+
16
+
17
+ ### Features
18
+
19
+ * Update FFI lib to 0.5.4 and add the addInteractionReference function ([#861](https://github.com/pact-foundation/pact-js-core/issues/861)) ([e5035cc](https://github.com/pact-foundation/pact-js-core/commit/e5035cc9dbebda04527848f4192f5f39605d64a0))
20
+
5
21
  ## [19.1.0](https://github.com/pact-foundation/pact-js-core/compare/v19.0.0...v19.1.0) (2026-03-10)
6
22
 
7
23
 
package/biome.jsonc ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "assist": { "actions": { "source": { "organizeImports": "on" } } },
3
+ "linter": {
4
+ "enabled": true,
5
+ "rules": {
6
+ "recommended": true,
7
+ "complexity": {
8
+ // Conflicts with TypeScript's noPropertyAccessFromIndexSignature
9
+ "useLiteralKeys": "off"
10
+ }
11
+ }
12
+ },
13
+ "formatter": {
14
+ "useEditorconfig": true,
15
+ "indentStyle": "space",
16
+ "indentWidth": 2
17
+ },
18
+ "javascript": {
19
+ "formatter": {
20
+ "quoteStyle": "single"
21
+ }
22
+ },
23
+ "vcs": {
24
+ "enabled": true,
25
+ "clientKind": "git",
26
+ "useIgnoreFile": true
27
+ }
28
+ }
@@ -18,6 +18,6 @@ const wrapAllWithCheck = (o) => Object.keys(o)
18
18
  .map((key) => ({
19
19
  [key]: (0, exports.wrapWithCheck)(o[key], String(key)),
20
20
  }))
21
- .reduce((acc, curr) => ({ ...acc, ...curr }), {});
21
+ .reduce((acc, curr) => Object.assign(acc, curr), {});
22
22
  exports.wrapAllWithCheck = wrapAllWithCheck;
23
23
  //# sourceMappingURL=checkErrors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkErrors.js","sourceRoot":"","sources":["../../src/consumer/checkErrors.ts"],"names":[],"mappings":";;;;;;AAAA,uDAA+B;AAExB,MAAM,aAAa,GACxB,CACE,CAAuB,EACvB,cAAsB,EACtB,EAAE,CACJ,CAAC,GAAG,IAAmB,EAAiB,EAAE;IACxC,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1B,MAAM,MAAM,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACnE,IAAI,MAAM,EAAE,CAAC;QACX,gBAAM,CAAC,SAAS,CACd,6CAA6C,cAAc,2EAA2E,CACvI,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAdS,QAAA,aAAa,iBActB;AAUG,MAAM,gBAAgB,GAAG,CAC9B,CAAI,EACmB,EAAE,CACxB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAoB;KAC/B,GAAG,CAAC,CAAC,GAAY,EAAE,EAAE,CAAC,CAAC;IACtB,CAAC,GAAG,CAAC,EAAE,IAAA,qBAAa,EAClB,CAAC,CAAC,GAAG,CAAkC,EACvC,MAAM,CAAC,GAAG,CAAC,CACZ;CACF,CAAC,CAAC;KACF,MAAM,CACL,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,EACvC,EAA2B,CACvB,CAAC;AAbE,QAAA,gBAAgB,oBAalB"}
@@ -1,5 +1,5 @@
1
- import { FfiSpecificationVersion } from '../ffi/types';
2
- import { ConsumerMessagePact, ConsumerPact } from './types';
1
+ import { type FfiSpecificationVersion } from '../ffi/types';
2
+ import type { ConsumerMessagePact, ConsumerPact } from './types';
3
3
  export declare const makeConsumerPact: (consumer: string, provider: string, version?: FfiSpecificationVersion, logLevel?: import("..").LogLevel, logFile?: string) => ConsumerPact;
4
4
  export declare const makeConsumerMessagePact: (consumer: string, provider: string, version?: FfiSpecificationVersion, logLevel?: import("..").LogLevel, logFile?: string) => ConsumerMessagePact;
5
5
  export declare const makeConsumerAsyncMessagePact: (consumer: string, provider: string, version?: FfiSpecificationVersion, logLevel?: import("..").LogLevel, logFile?: string) => ConsumerMessagePact;
@@ -1,12 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeConsumerAsyncMessagePact = exports.makeConsumerMessagePact = exports.makeConsumerPact = void 0;
4
+ const ffi_1 = require("../ffi");
4
5
  const types_1 = require("../ffi/types");
5
6
  const logger_1 = require("../logger");
6
7
  const checkErrors_1 = require("./checkErrors");
7
- const ffi_1 = require("../ffi");
8
8
  const internals_1 = require("./internals");
9
9
  const asyncMessage = (ffi, interactionPtr, pactPtr, messageCount, index) => ({
10
+ // todo count the number of messages (and ref them?)
11
+ // Required to get contents
10
12
  withPluginRequestInteractionContents: (contentType, contents) => {
11
13
  ffi.pactffiPluginInteractionContents(interactionPtr, types_1.INTERACTION_PART_REQUEST, contentType, contents);
12
14
  return true;
@@ -18,6 +20,7 @@ const asyncMessage = (ffi, interactionPtr, pactPtr, messageCount, index) => ({
18
20
  setPending: (pending) => ffi.pactffiSetPending(interactionPtr, pending),
19
21
  setComment: (key, value) => ffi.pactffiSetComment(interactionPtr, key, value),
20
22
  addTextComment: (comment) => ffi.pactffiAddTextComment(interactionPtr, comment),
23
+ addInteractionReference: (group, name, value) => ffi.pactffiAddInteractionReference(interactionPtr, group, name, value),
21
24
  setInteractionTestName: (name) => ffi.pactffiInteractionTestName(interactionPtr, name),
22
25
  withContents: (body, contentType) => ffi.pactffiMessageWithContents(interactionPtr, contentType, body),
23
26
  withBinaryContents: (body, contentType) => ffi.pactffiMessageWithBinaryContents(interactionPtr, contentType, body, body.length),
@@ -31,6 +34,8 @@ const makeConsumerPact = (consumer, provider, version = 3, logLevel = (0, logger
31
34
  (0, logger_1.setLogLevel)(logLevel);
32
35
  }
33
36
  const ffi = (0, ffi_1.getFfiLib)(logLevel, logFile);
37
+ // We need to track the number of messages so that we can
38
+ // correctly reference them when extracting contents
34
39
  let messageCount = 0;
35
40
  const pactPtr = ffi.pactffiNewPact(consumer, provider);
36
41
  if (!ffi.pactffiWithSpecification(pactPtr, version)) {
@@ -95,6 +100,7 @@ const makeConsumerPact = (consumer, provider, version = 3, logLevel = (0, logger
95
100
  setPending: (pending) => ffi.pactffiSetPending(interactionPtr, pending),
96
101
  setComment: (key, value) => ffi.pactffiSetComment(interactionPtr, key, value),
97
102
  addTextComment: (comment) => ffi.pactffiAddTextComment(interactionPtr, comment),
103
+ addInteractionReference: (group, name, value) => ffi.pactffiAddInteractionReference(interactionPtr, group, name, value),
98
104
  setInteractionTestName: (name) => ffi.pactffiInteractionTestName(interactionPtr, name),
99
105
  withRequestContents: (body, contentType) => ffi.pactffiWithBody(interactionPtr, types_1.INTERACTION_PART_REQUEST, contentType, body),
100
106
  withResponseContents: (body, contentType) => ffi.pactffiWithBody(interactionPtr, types_1.INTERACTION_PART_RESPONSE, contentType, body),
@@ -120,6 +126,7 @@ const makeConsumerPact = (consumer, provider, version = 3, logLevel = (0, logger
120
126
  setPending: (pending) => ffi.pactffiSetPending(interactionPtr, pending),
121
127
  setComment: (key, value) => ffi.pactffiSetComment(interactionPtr, key, value),
122
128
  addTextComment: (comment) => ffi.pactffiAddTextComment(interactionPtr, comment),
129
+ addInteractionReference: (group, name, value) => ffi.pactffiAddInteractionReference(interactionPtr, group, name, value),
123
130
  setInteractionTestName: (name) => ffi.pactffiInteractionTestName(interactionPtr, name),
124
131
  withRequest: (method, path) => ffi.pactffiWithRequest(interactionPtr, method, path),
125
132
  withQuery: (name, index, value) => ffi.pactffiWithQueryParameter(interactionPtr, name, index, value),
@@ -164,6 +171,8 @@ const makeConsumerMessagePact = (consumer, provider, version = 4, logLevel = (0,
164
171
  (0, logger_1.setLogLevel)(logLevel);
165
172
  }
166
173
  const ffi = (0, ffi_1.getFfiLib)(logLevel, logFile);
174
+ // We need to track the number of messages so that we can
175
+ // correctly reference them when extracting contents
167
176
  let messageCount = 0;
168
177
  const pactPtr = ffi.pactffiNewPact(consumer, provider);
169
178
  if (!ffi.pactffiWithSpecification(pactPtr, version) || version < 4) {
@@ -180,6 +189,7 @@ const makeConsumerMessagePact = (consumer, provider, version = 4, logLevel = (0,
180
189
  writePactFile: (dir, merge = true) => (0, internals_1.writePact)(ffi, pactPtr, dir, merge),
181
190
  writePactFileForPluginServer: (port, dir, merge = true) => (0, internals_1.writePact)(ffi, pactPtr, dir, merge, port),
182
191
  addMetadata: (namespace, name, value) => ffi.pactffiWithPactMetadata(pactPtr, namespace, name, value),
192
+ // Alias for newAsynchronousMessage
183
193
  newMessage: (description) => {
184
194
  const interactionPtr = ffi.pactffiNewAsyncMessage(pactPtr, description);
185
195
  const index = messageCount;
@@ -195,6 +205,7 @@ const makeConsumerMessagePact = (consumer, provider, version = 4, logLevel = (0,
195
205
  newSynchronousMessage: (description) => {
196
206
  const index = messageCount;
197
207
  messageCount += 1;
208
+ // TODO: will this automatically set the correct spec version?
198
209
  const interactionPtr = ffi.pactffiNewSyncMessage(pactPtr, description);
199
210
  return {
200
211
  withPluginRequestInteractionContents: (contentType, contents) => {
@@ -215,6 +226,7 @@ const makeConsumerMessagePact = (consumer, provider, version = 4, logLevel = (0,
215
226
  setPending: (pending) => ffi.pactffiSetPending(interactionPtr, pending),
216
227
  setComment: (key, value) => ffi.pactffiSetComment(interactionPtr, key, value),
217
228
  addTextComment: (comment) => ffi.pactffiAddTextComment(interactionPtr, comment),
229
+ addInteractionReference: (group, name, value) => ffi.pactffiAddInteractionReference(interactionPtr, group, name, value),
218
230
  setInteractionTestName: (name) => ffi.pactffiInteractionTestName(interactionPtr, name),
219
231
  withRequestContents: (body, contentType) => ffi.pactffiWithBody(interactionPtr, types_1.INTERACTION_PART_REQUEST, contentType, body),
220
232
  withResponseContents: (body, contentType) => ffi.pactffiWithBody(interactionPtr, types_1.INTERACTION_PART_RESPONSE, contentType, body),
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/consumer/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Ffi, FfiPactHandle } from '../ffi/types';
2
- import { MatchingResult } from './types';
1
+ import { type Ffi, type FfiPactHandle } from '../ffi/types';
2
+ import type { MatchingResult } from './types';
3
3
  export declare const mockServerMismatches: (ffi: Ffi, port: number) => MatchingResult[];
4
4
  export declare const writePact: (ffi: Ffi, pactPtr: FfiPactHandle, dir: string, merge?: boolean, port?: number) => void;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internals.js","sourceRoot":"","sources":["../../src/consumer/internals.ts"],"names":[],"mappings":";;;AAAA,wCAIsB;AACtB,sCAA+D;AAGxD,MAAM,oBAAoB,GAAG,CAClC,GAAQ,EACR,IAAY,EACM,EAAE;IACpB,MAAM,OAAO,GAAqB,IAAI,CAAC,KAAK,CAC1C,GAAG,CAAC,2BAA2B,CAAC,IAAI,CAAC,CACtC,CAAC;IACF,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAsB,EAAE,EAAE,CAAC,CAAC;QAC9C,GAAG,MAAM;QACT,GAAG,CAAC,YAAY,IAAI,MAAM;YACxB,CAAC,CAAC;gBACE,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAoB,EAAE,EAAE,CACzD,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC1C;aACF;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC,CAAC;AACN,CAAC,CAAC;AAjBW,QAAA,oBAAoB,wBAiB/B;AAEK,MAAM,SAAS,GAAG,CACvB,GAAQ,EACR,OAAsB,EACtB,GAAW,EACX,KAAK,GAAG,IAAI,EACZ,IAAI,GAAG,CAAC,EACF,EAAE;IACR,IAAI,MAA4B,CAAC;IAEjC,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,GAAG,GAAG,CAAC,0BAA0B,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,GAAG,CAAC,oBAAoB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IAC1D,CAAC;IAED,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,4BAAoB,CAAC,SAAS,CAAC;YAClC,OAAO;QACT,KAAK,4BAAoB,CAAC,2BAA2B,CAAC;YACpD,IAAA,yBAAgB,EAAC,iDAAiD,CAAC,CAAC;YACpE,MAAM;QACR,KAAK,4BAAoB,CAAC,eAAe,CAAC;YACxC,IAAA,yBAAgB,EAAC,oDAAoD,CAAC,CAAC;YACvE,MAAM;QACR,KAAK,4BAAoB,CAAC,uBAAuB,CAAC;YAChD,IAAA,yBAAgB,EACd,2FAA2F,CAC5F,CAAC;YACF,MAAM;QACR;YACE,IAAA,yBAAgB,EACd,iDAAiD,MAAM,+BAA+B,CACvF,CAAC;IACN,CAAC;AACH,CAAC,CAAC;AAlCW,QAAA,SAAS,aAkCpB"}
@@ -116,6 +116,7 @@ export type ConsumerInteraction = PluginInteraction & {
116
116
  setPending: (pending: boolean) => boolean;
117
117
  setComment: (key: string, value: string) => boolean;
118
118
  addTextComment: (comment: string) => boolean;
119
+ addInteractionReference: (group: string, name: string, value: string) => boolean;
119
120
  setInteractionTestName: (name: string) => number;
120
121
  withRequest: (method: string, path: string) => boolean;
121
122
  withQuery: (name: string, index: number, value: string) => boolean;
@@ -139,8 +140,33 @@ export type ConsumerPact = PluginPact & {
139
140
  createMockServer: (address: string, port?: number, tls?: boolean) => number;
140
141
  mockServerMismatches: (port: number) => MatchingResult[];
141
142
  cleanupMockServer: (port: number) => boolean;
143
+ /**
144
+ * This function writes the pact file, regardless of whether or not the test was successful.
145
+ * Do not call it without checking that the tests were successful, unless you want to write the wrong pact contents.
146
+ *
147
+ * @param port the port number the mock server is running on.
148
+ * @param dir the directory to write the pact file to
149
+ * @param merge whether or not to merge the pact file contents (default true)
150
+ */
142
151
  writePactFile: (dir: string, merge?: boolean) => void;
152
+ /**
153
+ * This function writes the pact file, using the given plugin transport port.
154
+ * If you are using plugins in your test, you must use this method
155
+ *
156
+ * @param port The port that identifies the custom mock server
157
+ * @param dir The directory to write the pact file to
158
+ * @param merge whether or not to merge the pact file contents with previous test runs (default true)
159
+ * @returns
160
+ */
143
161
  writePactFileForPluginServer: (port: number, dir: string, merge?: boolean) => void;
162
+ /**
163
+ * Check if a mock server has matched all its requests.
164
+ *
165
+ * @param port the port number the mock server is running on.
166
+ * @returns {boolean} true if all requests have been matched. False if there
167
+ * is no mock server on the given port, or if any request has not been successfully matched, or
168
+ * the method panics.
169
+ */
144
170
  mockServerMatchedSuccessfully: (port: number) => boolean;
145
171
  addMetadata: (namespace: string, name: string, value: string) => boolean;
146
172
  };
@@ -151,6 +177,7 @@ export type AsynchronousMessage = RequestPluginInteraction & {
151
177
  setPending: (pending: boolean) => void;
152
178
  setComment: (key: string, value: string) => boolean;
153
179
  addTextComment: (comment: string) => boolean;
180
+ addInteractionReference: (group: string, name: string, value: string) => boolean;
154
181
  setInteractionTestName: (name: string) => number;
155
182
  expectsToReceive: (description: string) => void;
156
183
  withMetadata: (name: string, value: string) => void;
@@ -168,6 +195,7 @@ export type SynchronousMessage = PluginInteraction & {
168
195
  setPending: (pending: boolean) => void;
169
196
  setComment: (key: string, value: string) => boolean;
170
197
  addTextComment: (comment: string) => boolean;
198
+ addInteractionReference: (group: string, name: string, value: string) => boolean;
171
199
  setInteractionTestName: (name: string) => number;
172
200
  withMetadata: (name: string, value: string) => void;
173
201
  withRequestContents: (body: string, contentType: string) => void;
@@ -184,9 +212,33 @@ export type ConsumerMessagePact = PluginPact & {
184
212
  newAsynchronousMessage: (description: string) => AsynchronousMessage;
185
213
  newSynchronousMessage: (description: string) => SynchronousMessage;
186
214
  pactffiCreateMockServerForTransport: (address: string, transport: string, config: string, port?: number) => number;
215
+ /**
216
+ * This function writes the pact file, regardless of whether or not the test was successful.
217
+ * Do not call it without checking that the tests were successful, unless you want to write the wrong pact contents.
218
+ *
219
+ * @param dir the directory to write the pact file to
220
+ * @param merge whether or not to merge the pact file contents with previous test runs (default true)
221
+ */
187
222
  writePactFile: (dir: string, merge?: boolean) => void;
223
+ /**
224
+ * This function writes the pact file, using the given plugin transport port.
225
+ * If you are using plugins in your test, you must use this method
226
+ *
227
+ * @param port The port that identifies the custom mock server
228
+ * @param dir The directory to write the pact file to
229
+ * @param merge whether or not to merge the pact file contents with previous test runs (default true)
230
+ * @returns
231
+ */
188
232
  writePactFileForPluginServer: (port: number, dir: string, merge?: boolean) => void;
189
233
  addMetadata: (namespace: string, name: string, value: string) => boolean;
190
234
  mockServerMismatches: (port: number) => MatchingResult[];
235
+ /**
236
+ * Check if a mock server has matched all its requests.
237
+ *
238
+ * @param port the port number the mock server is running on.
239
+ * @returns {boolean} true if all requests have been matched. False if there
240
+ * is no mock server on the given port, or if any request has not been successfully matched, or
241
+ * the method panics.
242
+ */
191
243
  mockServerMatchedSuccessfully: (port: number) => boolean;
192
244
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/consumer/types.ts"],"names":[],"mappings":""}
@@ -1,6 +1,6 @@
1
- import { LogLevel } from '../logger/types';
2
- import { Ffi } from './types';
3
- export declare const PACT_FFI_VERSION = "0.5.3";
1
+ import type { LogLevel } from '../logger/types';
2
+ import { type Ffi } from './types';
3
+ export declare const PACT_FFI_VERSION = "0.5.4";
4
4
  declare let ffiLib: Ffi;
5
5
  declare let ffi: typeof ffiLib;
6
6
  export declare const getFfiLib: (logLevel?: LogLevel, logFile?: string | undefined) => typeof ffi;
@@ -38,11 +38,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.getFfiLib = exports.PACT_FFI_VERSION = void 0;
40
40
  const node_path_1 = __importDefault(require("node:path"));
41
- const bindings = require("node-gyp-build");
42
41
  const detect_libc_1 = require("detect-libc");
43
42
  const logger_1 = __importStar(require("../logger"));
44
43
  const types_1 = require("./types");
45
- exports.PACT_FFI_VERSION = '0.5.3';
44
+ const bindings = require('node-gyp-build');
45
+ exports.PACT_FFI_VERSION = '0.5.4';
46
+ /**
47
+ * Returns the library path which is located inside `node_modules`
48
+ * The naming convention is @pact-foundation/pact-core-${os}-${arch}<-${libc}>
49
+ * - "-${libc}" is optional for linux only
50
+ * @see https://nodejs.org/api/os.html#osarch
51
+ * @see https://nodejs.org/api/os.html#osplatform
52
+ * @example "x/xx/node_modules/@pact-foundation/pact-core-darwin-arm64"
53
+ */
46
54
  function getPlatformArchSpecificPackage() {
47
55
  const { arch } = process;
48
56
  let os = process.platform;
@@ -72,6 +80,12 @@ function getPlatformArchSpecificPackage() {
72
80
  throw new Error(`Couldn't find npm package ${platformArchSpecificPackage} \n 💡 you can tell Pact where the npm package is located with env var $PACT_PREBUILD_PACKAGE_LOCATION`);
73
81
  }
74
82
  }
83
+ // supported prebuilds
84
+ // darwin-arm64
85
+ // darwin-x64
86
+ // linux-arm64
87
+ // linux-x64
88
+ // win32-x64
75
89
  const supportedPlatforms = [
76
90
  'darwin-arm64',
77
91
  'darwin-x64',
@@ -116,7 +130,9 @@ const renderBinaryErrorMessage = (error) => {
116
130
  };
117
131
  let ffi;
118
132
  const initialiseFfi = () => {
133
+ // @ts-expect-error
119
134
  if (process.stdout._handle) {
135
+ // @ts-expect-error
120
136
  process.stdout._handle.setBlocking(true);
121
137
  }
122
138
  try {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ffi/index.ts"],"names":[],"mappings":"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"}
@@ -37,11 +37,11 @@ export declare enum FfiFunctionResult {
37
37
  RESULT_FAILED = 1
38
38
  }
39
39
  export declare enum FfiLogLevelFilter {
40
- 'error' = 1,
41
- 'warn' = 2,
42
- 'info' = 3,
43
- 'debug' = 4,
44
- 'trace' = 5
40
+ error = 1,
41
+ warn = 2,
42
+ info = 3,
43
+ debug = 4,
44
+ trace = 5
45
45
  }
46
46
  export type Ffi = {
47
47
  pactffiInit(logLevel: string): string;
@@ -60,6 +60,7 @@ export type FfiConsumerFunctions = {
60
60
  pactffiSetPending(handle: FfiInteractionHandle, pending: boolean): boolean;
61
61
  pactffiSetComment(handle: FfiInteractionHandle, key: string, value: string): boolean;
62
62
  pactffiAddTextComment(handle: FfiInteractionHandle, comment: string): boolean;
63
+ pactffiAddInteractionReference(handle: FfiInteractionHandle, group: string, name: string, value: string): boolean;
63
64
  pactffiInteractionTestName(handle: FfiInteractionHandle, name: string): number;
64
65
  pactffiWithRequest(handle: FfiInteractionHandle, method: string, path: string): boolean;
65
66
  pactffiWithQueryParameter(handle: FfiInteractionHandle, name: string, index: number, value: string): boolean;
@@ -45,6 +45,14 @@ exports.CREATE_MOCK_SERVER_ERRORS = {
45
45
  ADDRESS_NOT_VALID: -5,
46
46
  TLS_CONFIG: -6,
47
47
  };
48
+ /*
49
+ -1 A null pointer was received
50
+ -2 The pact JSON could not be parsed
51
+ -3 The mock server could not be started
52
+ -4 The method panicked
53
+ -5 The address is not valid
54
+ -6 Could not create the TLS configuration with the self-signed certificate
55
+ */
48
56
  var VERIFY_PROVIDER_RESPONSE;
49
57
  (function (VERIFY_PROVIDER_RESPONSE) {
50
58
  VERIFY_PROVIDER_RESPONSE[VERIFY_PROVIDER_RESPONSE["VERIFICATION_SUCCESSFUL"] = 0] = "VERIFICATION_SUCCESSFUL";
@@ -53,6 +61,14 @@ var VERIFY_PROVIDER_RESPONSE;
53
61
  VERIFY_PROVIDER_RESPONSE[VERIFY_PROVIDER_RESPONSE["METHOD_PANICKED"] = 3] = "METHOD_PANICKED";
54
62
  VERIFY_PROVIDER_RESPONSE[VERIFY_PROVIDER_RESPONSE["INVALID_ARGUMENTS"] = 4] = "INVALID_ARGUMENTS";
55
63
  })(VERIFY_PROVIDER_RESPONSE || (exports.VERIFY_PROVIDER_RESPONSE = VERIFY_PROVIDER_RESPONSE = {}));
64
+ /*
65
+ * | Error | Description |
66
+ * |-------|-------------|
67
+ * | 1 | The verification process failed, see output for errors |
68
+ * | 2 | A null pointer was received |
69
+ * | 3 | The method panicked |
70
+ * | 4 | Invalid arguments were provided to the verification process |
71
+ */
56
72
  var FfiFunctionResult;
57
73
  (function (FfiFunctionResult) {
58
74
  FfiFunctionResult[FfiFunctionResult["RESULT_OK"] = 0] = "RESULT_OK";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ffi/types.ts"],"names":[],"mappings":";;;AAWa,QAAA,uBAAuB,GAClC;IACE,6BAA6B,EAAE,CAAC;IAChC,wBAAwB,EAAE,CAAC;IAC3B,0BAA0B,EAAE,CAAC;IAC7B,wBAAwB,EAAE,CAAC;IAC3B,wBAAwB,EAAE,CAAC;IAC3B,wBAAwB,EAAE,CAAC;CAC5B,CAAC;AAIS,QAAA,oBAAoB,GAAyC;IACxE,OAAO,EAAE,CAAC;IACV,aAAa,EAAE,CAAC;IAChB,yBAAyB,EAAE,CAAC;IAC5B,qBAAqB,EAAE,CAAC;CACzB,CAAC;AAIW,QAAA,2BAA2B,GAGpC;IACF,OAAO,EAAE,CAAC;IACV,yBAAyB,EAAE,CAAC;IAC5B,sBAAsB,EAAE,CAAC;CAC1B,CAAC;AAIW,QAAA,0BAA0B,GAGnC;IACF,OAAO,EAAE,CAAC;IACV,aAAa,EAAE,CAAC;IAChB,qBAAqB,EAAE,CAAC;IACxB,mBAAmB,EAAE,CAAC;CACvB,CAAC;AAIW,QAAA,4BAA4B,GAGrC;IACF,OAAO,EAAE,CAAC;IACV,0BAA0B,EAAE,CAAC;IAC7B,oCAAoC,EAAE,CAAC;IACvC,6BAA6B,EAAE,CAAC;IAChC,yBAAyB,EAAE,CAAC;IAC5B,+BAA+B,EAAE,CAAC;IAClC,wBAAwB,EAAE,CAAC;CAC5B,CAAC;AAIW,QAAA,wBAAwB,GAAuB,CAAC,CAAC;AACjD,QAAA,yBAAyB,GAAuB,CAAC,CAAC;AAElD,QAAA,yBAAyB,GAAG;IACvC,YAAY,EAAE,CAAC,CAAC;IAChB,gBAAgB,EAAE,CAAC,CAAC;IACpB,sBAAsB,EAAE,CAAC,CAAC;IAC1B,UAAU,EAAE,CAAC,CAAC;IACd,iBAAiB,EAAE,CAAC,CAAC;IACrB,UAAU,EAAE,CAAC,CAAC;CACf,CAAC;AACF;;;;;;;EAOE;AAEF,IAAY,wBAMX;AAND,WAAY,wBAAwB;IAClC,6GAA2B,CAAA;IAC3B,qGAAmB,CAAA;IACnB,yGAAqB,CAAA;IACrB,6FAAe,CAAA;IACf,iGAAiB,CAAA;AACnB,CAAC,EANW,wBAAwB,wCAAxB,wBAAwB,QAMnC;AACD;;;;;;;GAOG;AAEH,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC3B,mEAAa,CAAA;IACb,2EAAa,CAAA;AACf,CAAC,EAHW,iBAAiB,iCAAjB,iBAAiB,QAG5B;AAED,IAAY,iBAMX;AAND,WAAY,iBAAiB;IAC3B,2DAAS,CAAA;IACT,yDAAQ,CAAA;IACR,yDAAQ,CAAA;IACR,2DAAS,CAAA;IACT,2DAAS,CAAA;AACX,CAAC,EANW,iBAAiB,iCAAjB,iBAAiB,QAM5B"}
@@ -18,13 +18,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
20
  const pact_1 = __importDefault(require("./pact"));
21
- module.exports = exports = pact_1.default;
22
21
  exports.default = pact_1.default;
23
- __exportStar(require("./verifier"), exports);
24
- __exportStar(require("./verifier/types"), exports);
25
- __exportStar(require("./logger"), exports);
26
- __exportStar(require("./logger/types"), exports);
27
22
  __exportStar(require("./consumer"), exports);
28
23
  __exportStar(require("./consumer/types"), exports);
29
24
  __exportStar(require("./ffi"), exports);
25
+ __exportStar(require("./logger"), exports);
26
+ __exportStar(require("./logger/types"), exports);
27
+ __exportStar(require("./verifier"), exports);
28
+ __exportStar(require("./verifier/types"), exports);
30
29
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAE1B,kBAAe,cAAI,CAAC;AAEpB,6CAA2B;AAC3B,mDAAiC;AACjC,wCAAsB;AACtB,2CAAyB;AACzB,iDAA+B;AAC/B,6CAA2B;AAC3B,mDAAiC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crashMessage.js","sourceRoot":"","sources":["../../src/logger/crashMessage.ts"],"names":[],"mappings":";;;AAAO,MAAM,gBAAgB,GAAG,CAC9B,YAAoB,EACZ,EAAE,CAAC;;EAEX,YAAY;;;;;;;;;;;;;;;CAeb,CAAC;AAnBW,QAAA,gBAAgB,oBAmB3B"}
@@ -1,4 +1,4 @@
1
- import { LogLevel } from './types';
1
+ import type { LogLevel } from './types';
2
2
  export declare const DEFAULT_LOG_LEVEL: LogLevel;
3
3
  export declare const setLogLevel: (level?: LogLevel) => void;
4
4
  export declare const getLogLevel: () => LogLevel;
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.logCrashAndThrow = exports.logErrorAndThrow = exports.verboseIsImplied = exports.getLogLevel = exports.setLogLevel = exports.DEFAULT_LOG_LEVEL = void 0;
4
4
  const crashMessage_1 = require("./crashMessage");
5
5
  const pino_1 = require("./pino");
6
+ // TODO: Replace this hack with https://www.npmjs.com/package/@npmcli/package-json
7
+ // TODO: abstract this so it's not repeated in src/verifier/nativeVerifier.ts
6
8
  const pkg = require('../../package.json');
7
9
  const logContext = `pact-core@${pkg.version}`;
8
10
  let currentLogLevel = process.env['LOG_LEVEL']
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":";;;AAAA,iDAAkD;AAClD,iCAAsC;AAGtC,kFAAkF;AAClF,6EAA6E;AAE7E,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAE1C,MAAM,UAAU,GAAG,aAAa,GAAG,CAAC,OAAO,EAAE,CAAC;AAC9C,IAAI,eAAe,GAAa,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IACtD,CAAC,CAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAc;IACxC,CAAC,CAAC,MAAM,CAAC;AACX,IAAI,MAAM,GAAG,IAAA,mBAAY,EAAC,eAAe,CAAC,CAAC;AAE9B,QAAA,iBAAiB,GAAa,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IACjE,CAAC,CAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAc;IACxC,CAAC,CAAC,MAAM,CAAC;AAEJ,MAAM,WAAW,GAAG,CAAC,QAAkB,MAAM,EAAQ,EAAE;IAC5D,eAAe,GAAG,KAAK,CAAC;IACxB,MAAM,GAAG,IAAA,mBAAY,EAAC,eAAe,CAAC,CAAC;AACzC,CAAC,CAAC;AAHW,QAAA,WAAW,eAGtB;AAEK,MAAM,WAAW,GAAG,GAAa,EAAE,CAAC,eAAe,CAAC;AAA9C,QAAA,WAAW,eAAmC;AAEpD,MAAM,gBAAgB,GAAG,GAAY,EAAE,CAC5C,eAAe,KAAK,OAAO,IAAI,eAAe,KAAK,OAAO,CAAC;AADhD,QAAA,gBAAgB,oBACgC;AAE7D,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,OAAe,EAAE,EAAE,CACtD,GAAG,OAAO,KAAK,OAAO,EAAE,CAAC;AAE3B,MAAM,YAAY,GAAG;IACnB,SAAS,EAAE,CAAC,OAAe,EAAE,UAAkB,UAAU,EAAQ,EAAE,CACjE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,IAAA,+BAAgB,EAAC,OAAO,CAAC,CAAC,CAAC;IAC9D,KAAK,EAAE,CAAC,OAAe,EAAE,UAAkB,UAAU,EAAQ,EAAE,CAC7D,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5C,IAAI,EAAE,CAAC,OAAe,EAAE,UAAkB,UAAU,EAAQ,EAAE,CAC5D,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3C,IAAI,EAAE,CAAC,OAAe,EAAE,UAAkB,UAAU,EAAQ,EAAE,CAC5D,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC3C,KAAK,EAAE,CAAC,OAAe,EAAE,UAAkB,UAAU,EAAQ,EAAE,CAC7D,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5C,KAAK,EAAE,CAAC,OAAe,EAAE,UAAkB,UAAU,EAAQ,EAAE,CAC7D,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;CAC7C,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAE,OAAgB,EAAS,EAAE;IAC3E,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAA+B,CAAC,CAAC;IACvD,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AAC3B,CAAC,CAAC;AAHW,QAAA,gBAAgB,oBAG3B;AAEK,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAE,OAAgB,EAAS,EAAE;IAC3E,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AAC3B,CAAC,CAAC;AAHW,QAAA,gBAAgB,oBAG3B;AAEF,kBAAe,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type Logger } from 'pino';
2
+ import type { LogLevel } from './types';
3
+ export declare const createLogger: (level: LogLevel) => Logger;
@@ -5,6 +5,9 @@ const pino_1 = require("pino");
5
5
  const pino_pretty_1 = require("pino-pretty");
6
6
  const createLogger = (level) => {
7
7
  const prettify = (0, pino_pretty_1.prettyFactory)({ sync: true });
8
+ // Configure custom stream that forwards pretty message to console
9
+ // to address issues with pino pretty and Jest
10
+ // Thanks to https://github.com/pinojs/pino-pretty/issues/480#issuecomment-2271709217 for the solution
8
11
  return (0, pino_1.pino)({
9
12
  level: level.toLowerCase(),
10
13
  }, {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pino.js","sourceRoot":"","sources":["../../src/logger/pino.ts"],"names":[],"mappings":";;;AAAA,+BAAyC;AACzC,6CAA4C;AAIrC,MAAM,YAAY,GAAG,CAAC,KAAe,EAAU,EAAE;IACtD,MAAM,QAAQ,GAAG,IAAA,2BAAa,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,kEAAkE;IAClE,8CAA8C;IAC9C,sGAAsG;IACtG,OAAO,IAAA,WAAI,EACT;QACE,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE;KAC3B,EACD;QACE,KAAK,CAAC,IAAa;YACjB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9B,CAAC;KACF,CACF,CAAC;AACJ,CAAC,CAAC;AAfW,QAAA,YAAY,gBAevB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/logger/types.ts"],"names":[],"mappings":""}
@@ -34,7 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.PactEnvironment = void 0;
37
- const path = __importStar(require("path"));
37
+ const path = __importStar(require("node:path"));
38
38
  class PactEnvironment {
39
39
  get cwd() {
40
40
  return path.resolve(__dirname, '..');
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pact-environment.js","sourceRoot":"","sources":["../src/pact-environment.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkC;AAElC,MAAa,eAAe;IAC1B,IAAW,GAAG;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAEM,SAAS,CAAC,WAAmB,OAAO,CAAC,QAAQ;QAClD,OAAO,QAAQ,KAAK,OAAO,CAAC;IAC9B,CAAC;CACF;AARD,0CAQC;AAED,kBAAe,IAAI,eAAe,EAAE,CAAC"}
@@ -1,5 +1,5 @@
1
- import { VerifierOptions } from './verifier/types';
2
- import { LogLevel } from './logger/types';
1
+ import type { LogLevel } from './logger/types';
2
+ import type { VerifierOptions } from './verifier/types';
3
3
  export declare class Pact {
4
4
  logLevel(level?: LogLevel): void;
5
5
  verifyPacts(options: VerifierOptions): Promise<string>;
@@ -37,12 +37,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.Pact = void 0;
40
- const verifier_1 = __importDefault(require("./verifier"));
41
40
  const logger_1 = __importStar(require("./logger"));
41
+ const verifier_1 = __importDefault(require("./verifier"));
42
42
  class Pact {
43
43
  logLevel(level) {
44
- return (0, logger_1.setLogLevel)(level);
44
+ (0, logger_1.setLogLevel)(level);
45
45
  }
46
+ // Run the Pact Verification process
46
47
  verifyPacts(options) {
47
48
  logger_1.default.info('Verifying Pacts.');
48
49
  return (0, verifier_1.default)(options).verify();
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pact.js","sourceRoot":"","sources":["../src/pact.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAA+C;AAE/C,0DAAyC;AAGzC,MAAa,IAAI;IACR,QAAQ,CAAC,KAAgB;QAC9B,IAAA,oBAAW,EAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,oCAAoC;IAC7B,WAAW,CAAC,OAAwB;QACzC,gBAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAChC,OAAO,IAAA,kBAAe,EAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;IAC3C,CAAC;CACF;AAVD,oBAUC;AAED,kBAAe,IAAI,IAAI,EAAE,CAAC"}
@@ -1,6 +1,6 @@
1
- import { FnMapping } from './types';
2
- import { InternalPactVerifierOptions } from '../types';
3
- import { FfiVerificationFunctions } from '../../ffi/types';
1
+ import type { FfiVerificationFunctions } from '../../ffi/types';
2
+ import type { InternalPactVerifierOptions } from '../types';
3
+ import { type FnMapping } from './types';
4
4
  type IgnoredFfiFunctions = {
5
5
  pactffiVerifierNewForApplication: 1;
6
6
  pactffiVerifierExecute: 1;
@@ -4,9 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ffiFnMapping = exports.orderOfExecution = void 0;
7
- const fs = require("fs");
8
- const url = require("url");
9
- const url_1 = require("url");
7
+ const fs = require("node:fs");
8
+ const url = require("node:url");
9
+ const node_url_1 = require("node:url");
10
10
  const logger_1 = __importDefault(require("../../logger"));
11
11
  const types_1 = require("./types");
12
12
  const DEFAULT_TIMEOUT = 30000;
@@ -64,7 +64,7 @@ exports.ffiFnMapping = {
64
64
  logger_1.default.debug(`checking source type of given pactUrl: ${file}`);
65
65
  if (/https?:/.test(url.parse(file).protocol || '')) {
66
66
  try {
67
- const u = new url_1.URL(file);
67
+ const u = new node_url_1.URL(file);
68
68
  if (u.hostname) {
69
69
  logger_1.default.debug(`adding ${file} as a Url source`);
70
70
  ffi.pactffiVerifierUrlSource(handle, file, options.pactBrokerUsername ||
@@ -172,7 +172,7 @@ exports.ffiFnMapping = {
172
172
  },
173
173
  pactffiVerifierSetProviderInfo: {
174
174
  validateAndExecute(ffi, handle, options) {
175
- const uri = new url_1.URL(options.providerBaseUrl);
175
+ const uri = new node_url_1.URL(options.providerBaseUrl);
176
176
  ffi.pactffiVerifierSetProviderInfo(handle, options.provider || '', uri.protocol.split(':')[0], uri.hostname, parseInt(uri.port, 10), uri.pathname);
177
177
  return { status: types_1.FnValidationStatus.SUCCESS };
178
178
  },