@pact-foundation/pact-core 13.7.0 → 13.7.3

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 (87) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +4 -4
  3. package/bin/pact-broker.js +6 -3
  4. package/bin/pact-broker.js.map +1 -1
  5. package/bin/pact-message.js +6 -3
  6. package/bin/pact-message.js.map +1 -1
  7. package/bin/pact-mock-service.js +6 -3
  8. package/bin/pact-mock-service.js.map +1 -1
  9. package/bin/pact-provider-verifier.js +6 -3
  10. package/bin/pact-provider-verifier.js.map +1 -1
  11. package/bin/pact-stub-service.js +6 -3
  12. package/bin/pact-stub-service.js.map +1 -1
  13. package/bin/pact.js +6 -3
  14. package/bin/pact.js.map +1 -1
  15. package/bin/pactflow.js +6 -3
  16. package/bin/pactflow.js.map +1 -1
  17. package/build/Makefile +1 -1
  18. package/package.json +3 -2
  19. package/src/can-deploy.js +71 -78
  20. package/src/can-deploy.js.map +1 -1
  21. package/src/consumer/checkErrors.js +14 -33
  22. package/src/consumer/checkErrors.js.map +1 -1
  23. package/src/consumer/index.js +72 -94
  24. package/src/consumer/index.js.map +1 -1
  25. package/src/ffi/index.js +29 -11
  26. package/src/ffi/index.js.map +1 -1
  27. package/src/ffi/internals/index.js +14 -16
  28. package/src/ffi/internals/index.js.map +1 -1
  29. package/src/ffi/types.d.ts +5 -0
  30. package/src/ffi/types.js.map +1 -1
  31. package/src/index.js +4 -1
  32. package/src/index.js.map +1 -1
  33. package/src/logger/crashMessage.js +18 -1
  34. package/src/logger/crashMessage.js.map +1 -1
  35. package/src/logger/index.js +19 -42
  36. package/src/logger/index.js.map +1 -1
  37. package/src/logger/pino.js +7 -9
  38. package/src/logger/pino.js.map +1 -1
  39. package/src/message.js +25 -35
  40. package/src/message.js.map +1 -1
  41. package/src/pact-environment.js +26 -15
  42. package/src/pact-environment.js.map +1 -1
  43. package/src/pact-standalone.d.ts +2 -0
  44. package/src/pact-standalone.js +39 -14
  45. package/src/pact-standalone.js.map +1 -1
  46. package/src/pact.js +83 -67
  47. package/src/pact.js.map +1 -1
  48. package/src/publisher.js +52 -32
  49. package/src/publisher.js.map +1 -1
  50. package/src/server.js +18 -35
  51. package/src/server.js.map +1 -1
  52. package/src/service.js +115 -126
  53. package/src/service.js.map +1 -1
  54. package/src/spawn/arguments.js +17 -25
  55. package/src/spawn/arguments.js.map +1 -1
  56. package/src/spawn/index.js +4 -1
  57. package/src/spawn/index.js.map +1 -1
  58. package/src/spawn/spawn.js +50 -45
  59. package/src/spawn/spawn.js.map +1 -1
  60. package/src/stub.js +14 -30
  61. package/src/stub.js.map +1 -1
  62. package/src/verifier/argumentMapper/arguments.d.ts +14 -5
  63. package/src/verifier/argumentMapper/arguments.js +126 -87
  64. package/src/verifier/argumentMapper/arguments.js.map +1 -1
  65. package/src/verifier/argumentMapper/index.d.ts +3 -1
  66. package/src/verifier/argumentMapper/index.js +38 -57
  67. package/src/verifier/argumentMapper/index.js.map +1 -1
  68. package/src/verifier/argumentMapper/types.d.ts +20 -1
  69. package/src/verifier/argumentMapper/types.js +16 -0
  70. package/src/verifier/argumentMapper/types.js.map +1 -1
  71. package/src/verifier/index.js +16 -21
  72. package/src/verifier/index.js.map +1 -1
  73. package/src/verifier/nativeVerifier.js +33 -75
  74. package/src/verifier/nativeVerifier.js.map +1 -1
  75. package/src/verifier/types.d.ts +1 -0
  76. package/src/verifier/validateOptions.d.ts +12 -2
  77. package/src/verifier/validateOptions.js +157 -100
  78. package/src/verifier/validateOptions.js.map +1 -1
  79. package/standalone/install.js +16 -18
  80. package/standalone/install.js.map +1 -1
  81. package/tsconfig.json +1 -2
  82. package/src/verifier/filesystem/index.d.ts +0 -2
  83. package/src/verifier/filesystem/index.js +0 -24
  84. package/src/verifier/filesystem/index.js.map +0 -1
  85. package/src/verifier/filesystem/types.d.ts +0 -1
  86. package/src/verifier/filesystem/types.js +0 -3
  87. package/src/verifier/filesystem/types.js.map +0 -1
@@ -1,63 +1,44 @@
1
1
  "use strict";
2
- var __spreadArray = (this && this.__spreadArray) || function (to, from) {
3
- for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
4
- to[j] = from[i];
5
- return to;
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
6
20
  };
7
21
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.argumentMapper = void 0;
9
- var logger_1 = require("../../logger");
10
- var arguments_1 = require("./arguments");
11
- var argumentMapper = function (options) {
12
- return Object.keys(options)
13
- .filter(function (k) {
14
- var ignoreCondition = arguments_1.ignoreOptionCombinations[k];
15
- if (ignoreCondition !== undefined) {
16
- logger_1.default.trace("The argument mapper has an ignored combination for '" + k + "'");
17
- if (ignoreCondition.ifNotSet &&
18
- options[ignoreCondition.ifNotSet] === undefined) {
19
- logger_1.default.warn("Ignoring option '" + k + "' because it is invalid without '" + ignoreCondition.ifNotSet + "' also being set. This may indicate an error in your configuration");
20
- return false;
21
- }
22
- logger_1.default.trace("But it was not ignored: '" + k + "'");
22
+ exports.setupVerification = void 0;
23
+ const types_1 = require("./types");
24
+ const logger_1 = __importStar(require("../../logger"));
25
+ const arguments_1 = require("./arguments");
26
+ const setupVerification = (ffi, handle, options) => {
27
+ Object.keys(arguments_1.ffiFnMapping).map((k) => {
28
+ const validation = arguments_1.ffiFnMapping[k].validateAndExecute(ffi, handle, options);
29
+ switch (validation.status) {
30
+ case types_1.FnValidationStatus.FAIL:
31
+ logger_1.logErrorAndThrow(`the required ffi function '${k}' failed validation with errors: ${validation.messages || [].join(',')}`);
32
+ break;
33
+ case types_1.FnValidationStatus.IGNORE:
34
+ logger_1.default.debug(`the optional ffi function '${k}' was not executed as it had non-fatal validation errors: ${validation.messages || [].join(',')}`);
35
+ break;
36
+ case types_1.FnValidationStatus.SUCCESS:
37
+ break;
38
+ default:
39
+ logger_1.logCrashAndThrow(`the ffi function '${k}' returned the following unrecognised validation signal: '${validation.status}'`);
23
40
  }
24
- return true;
25
- })
26
- .map(function (key) {
27
- var thisMapping = arguments_1.argMapping[key];
28
- var thisValue = options[key];
29
- if (!thisMapping) {
30
- if (!arguments_1.ignoredArguments.includes(key)) {
31
- logger_1.default.error("Pact-core is ignoring unknown option '" + key + "'");
32
- }
33
- return [];
34
- }
35
- if (thisValue === undefined) {
36
- logger_1.default.warn("The Verifier option '" + key + "' was was explicitly set to undefined and will be ignored. This may indicate an error in your config. Remove the option entirely to prevent this warning");
37
- return [];
38
- }
39
- if ('warningMessage' in thisMapping) {
40
- logger_1.default.warn(thisMapping.warningMessage);
41
- return [];
42
- }
43
- if ('arg' in thisMapping) {
44
- switch (thisMapping.mapper) {
45
- case 'string':
46
- return [thisMapping.arg, "" + thisValue];
47
- case 'flag':
48
- return thisValue ? [thisMapping.arg] : [];
49
- default:
50
- logger_1.default.pactCrash("Option mapper for '" + key + "' maps to '" + thisMapping.arg + "' with unknown mapper type '" + thisMapping.mapper + "'");
51
- return [];
52
- }
53
- }
54
- if (typeof thisMapping === 'function') {
55
- return thisMapping(thisValue);
56
- }
57
- logger_1.default.pactCrash("The option mapper completely failed to find a mapping for '" + key + "'.");
58
- return [];
59
- })
60
- .reduce(function (acc, current) { return __spreadArray(__spreadArray([], acc), current); }, []);
41
+ });
61
42
  };
62
- exports.argumentMapper = argumentMapper;
43
+ exports.setupVerification = setupVerification;
63
44
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;;;;;AACA,uCAAkC;AAElC,yCAIqB;AAUd,IAAM,cAAc,GAAG,UAC5B,OAAoC;IAEpC,OAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAA8C;SAC/D,MAAM,CAAC,UAAC,CAAC;QACR,IAAM,eAAe,GAAG,oCAAwB,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,eAAe,KAAK,SAAS,EAAE;YACjC,gBAAM,CAAC,KAAK,CACV,yDAAuD,CAAC,MAAG,CAC5D,CAAC;YAEF,IACE,eAAe,CAAC,QAAQ;gBACxB,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,SAAS,EAC/C;gBACA,gBAAM,CAAC,IAAI,CACT,sBAAoB,CAAC,yCAAoC,eAAe,CAAC,QAAQ,uEAAoE,CACtJ,CAAC;gBACF,OAAO,KAAK,CAAC;aACd;YACD,gBAAM,CAAC,KAAK,CAAC,8BAA4B,CAAC,MAAG,CAAC,CAAC;SAChD;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;SACD,GAAG,CAAC,UAAC,GAAsC;QAK1C,IAAM,WAAW,GAAG,sBAAU,CAAC,GAAG,CAAC,CAAC;QACpC,IAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAE/B,IAAI,CAAC,WAAW,EAAE;YAChB,IAAI,CAAC,4BAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACnC,gBAAM,CAAC,KAAK,CAAC,2CAAyC,GAAG,MAAG,CAAC,CAAC;aAC/D;YACD,OAAO,EAAE,CAAC;SACX;QACD,IAAI,SAAS,KAAK,SAAS,EAAE;YAC3B,gBAAM,CAAC,IAAI,CACT,0BAAwB,GAAG,6JAA0J,CACtL,CAAC;YACF,OAAO,EAAE,CAAC;SACX;QACD,IAAI,gBAAgB,IAAI,WAAW,EAAE;YACnC,gBAAM,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;YACxC,OAAO,EAAE,CAAC;SACX;QACD,IAAI,KAAK,IAAI,WAAW,EAAE;YACxB,QAAQ,WAAW,CAAC,MAAM,EAAE;gBAC1B,KAAK,QAAQ;oBACX,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,KAAG,SAAW,CAAC,CAAC;gBAC3C,KAAK,MAAM;oBACT,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5C;oBACE,gBAAM,CAAC,SAAS,CACd,wBAAsB,GAAG,mBAAc,WAAW,CAAC,GAAG,oCAA+B,WAAW,CAAC,MAAM,MAAG,CAC3G,CAAC;oBACF,OAAO,EAAE,CAAC;aACb;SACF;QACD,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;YACrC,OAAQ,WAAwC,CAAC,SAAS,CAAC,CAAC;SAC7D;QACD,gBAAM,CAAC,SAAS,CACd,gEAA8D,GAAG,OAAI,CACtE,CAAC;QACF,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;SAED,MAAM,CAAC,UAAC,GAAa,EAAE,OAAiB,IAAK,uCAAI,GAAG,GAAK,OAAO,GAAnB,CAAoB,EAAE,EAAE,CAAC;AAnEzE,CAmEyE,CAAC;AAtE/D,QAAA,cAAc,kBAsEiD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,mCAA6C;AAC7C,uDAA0E;AAE1E,2CAA6E;AAGtE,MAAM,iBAAiB,GAAG,CAC/B,GAAQ,EACR,MAAyB,EACzB,OAAoC,EAC9B,EAAE;IAEN,MAAM,CAAC,IAAI,CAAC,wBAAY,CACzB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACV,MAAM,UAAU,GAAG,wBAAY,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAE5E,QAAQ,UAAU,CAAC,MAAM,EAAE;YACzB,KAAK,0BAAkB,CAAC,IAAI;gBAC1B,yBAAgB,CACd,8BAA8B,CAAC,oCAC7B,UAAU,CAAC,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CACpC,EAAE,CACH,CAAC;gBACF,MAAM;YACR,KAAK,0BAAkB,CAAC,MAAM;gBAC5B,gBAAM,CAAC,KAAK,CACV,8BAA8B,CAAC,6DAC7B,UAAU,CAAC,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CACpC,EAAE,CACH,CAAC;gBACF,MAAM;YACR,KAAK,0BAAkB,CAAC,OAAO;gBAC7B,MAAM;YACR;gBACE,yBAAgB,CACd,qBAAqB,CAAC,6DAA6D,UAAU,CAAC,MAAM,GAAG,CACxG,CAAC;SACL;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAjCW,QAAA,iBAAiB,qBAiC5B"}
@@ -1 +1,20 @@
1
- export {};
1
+ export declare const deprecatedFunction: (_: any, property: string) => boolean;
2
+ import { Ffi, FfiHandle } from '../../ffi/types';
3
+ export declare type FnObject = {
4
+ [key: string]: (...args: any) => any;
5
+ };
6
+ export declare type FnMapping<T extends FnObject, O> = {
7
+ [Key in keyof T]: FnArgumentMapping<Key, T, O>;
8
+ };
9
+ export declare enum FnValidationStatus {
10
+ SUCCESS = 0,
11
+ IGNORE = 1,
12
+ FAIL = 2
13
+ }
14
+ export declare type FnValidationResult = {
15
+ status: FnValidationStatus;
16
+ messages?: string[];
17
+ };
18
+ export declare type FnArgumentMapping<K extends keyof T, T extends FnObject, O> = {
19
+ validateAndExecute: (ffi: Ffi, handle: FfiHandle, options: O) => FnValidationResult;
20
+ };
@@ -1,3 +1,19 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FnValidationStatus = exports.deprecatedFunction = void 0;
7
+ const logger_1 = __importDefault(require("../../logger"));
8
+ const deprecatedFunction = (_, property) => {
9
+ logger_1.default.warn(`${property} is deprecated and no longer has any effect`);
10
+ return true;
11
+ };
12
+ exports.deprecatedFunction = deprecatedFunction;
13
+ var FnValidationStatus;
14
+ (function (FnValidationStatus) {
15
+ FnValidationStatus[FnValidationStatus["SUCCESS"] = 0] = "SUCCESS";
16
+ FnValidationStatus[FnValidationStatus["IGNORE"] = 1] = "IGNORE";
17
+ FnValidationStatus[FnValidationStatus["FAIL"] = 2] = "FAIL";
18
+ })(FnValidationStatus = exports.FnValidationStatus || (exports.FnValidationStatus = {}));
3
19
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAkC;AAE3B,MAAM,kBAAkB,GAAG,CAAC,CAAM,EAAE,QAAgB,EAAW,EAAE;IACtE,gBAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,6CAA6C,CAAC,CAAC;IAEtE,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAJW,QAAA,kBAAkB,sBAI7B;AAWF,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,iEAAW,CAAA;IACX,+DAAU,CAAA;IACV,2DAAQ,CAAA;AACV,CAAC,EAJW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAI7B"}
@@ -1,31 +1,26 @@
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);
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
12
4
  };
13
5
  Object.defineProperty(exports, "__esModule", { value: true });
14
6
  exports.Verifier = void 0;
15
- var logger_1 = require("../logger");
16
- var nativeVerifier_1 = require("./nativeVerifier");
17
- var validateOptions_1 = require("./validateOptions");
18
- var applyDefaults = function (options) { return (__assign({ timeout: 30000, logLevel: 'info' }, options)); };
19
- var Verifier = (function () {
20
- function Verifier(options) {
7
+ const logger_1 = __importDefault(require("../logger"));
8
+ const nativeVerifier_1 = require("./nativeVerifier");
9
+ const validateOptions_1 = require("./validateOptions");
10
+ const applyDefaults = (options) => ({
11
+ timeout: 30000,
12
+ logLevel: 'info',
13
+ ...options,
14
+ });
15
+ class Verifier {
16
+ constructor(options) {
21
17
  this.options = validateOptions_1.validateOptions(applyDefaults(options));
22
18
  }
23
- Verifier.prototype.verify = function () {
19
+ verify() {
24
20
  logger_1.default.info('Verifying Pact Files');
25
21
  return nativeVerifier_1.verify(this.options);
26
- };
27
- return Verifier;
28
- }());
22
+ }
23
+ }
29
24
  exports.Verifier = Verifier;
30
- exports.default = (function (options) { return new Verifier(options); });
25
+ exports.default = (options) => new Verifier(options);
31
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,oCAA+B;AAE/B,mDAA0C;AAC1C,qDAAoD;AAEpD,IAAM,aAAa,GAAG,UAAC,OAAwB,IAAsB,OAAA,YACnE,OAAO,EAAE,KAAK,EACd,QAAQ,EAAE,MAAM,IACb,OAAO,EACV,EAJmE,CAInE,CAAC;AAEH;IAGE,kBAAY,OAAwB;QAClC,IAAI,CAAC,OAAO,GAAG,iCAAe,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IACzD,CAAC;IAKM,yBAAM,GAAb;QACE,gBAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAEpC,OAAO,uBAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IACH,eAAC;AAAD,CAAC,AAfD,IAeC;AAfY,4BAAQ;AAkBrB,mBAAe,UAAC,OAAwB,IAAe,OAAA,IAAI,QAAQ,CAAC,OAAO,CAAC,EAArB,CAAqB,EAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;;;AAAA,uDAA+B;AAE/B,qDAA0C;AAC1C,uDAAoD;AAEpD,MAAM,aAAa,GAAG,CAAC,OAAwB,EAAmB,EAAE,CAAC,CAAC;IACpE,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,MAAM;IAChB,GAAG,OAAO;CACX,CAAC,CAAC;AAEH,MAAa,QAAQ;IAGnB,YAAY,OAAwB;QAClC,IAAI,CAAC,OAAO,GAAG,iCAAe,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IACzD,CAAC;IAKM,MAAM;QACX,gBAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAEpC,OAAO,uBAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;CACF;AAfD,4BAeC;AAGD,kBAAe,CAAC,OAAwB,EAAY,EAAE,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC"}
@@ -1,84 +1,42 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
2
21
  Object.defineProperty(exports, "__esModule", { value: true });
3
22
  exports.verify = void 0;
4
- var logger_1 = require("../logger");
5
- var ffi_1 = require("../ffi");
6
- var types_1 = require("../ffi/types");
7
- var url_1 = require("url");
8
- var pkg = require('../../package.json');
9
- var fs = require("fs");
10
- var objArrayToStringArray = function (obj) {
11
- return obj.map(function (o) { return JSON.stringify(o); });
12
- };
13
- var verify = function (opts) {
14
- var ffi = ffi_1.getFfiLib(opts.logLevel);
23
+ const logger_1 = __importStar(require("../logger"));
24
+ const ffi_1 = require("../ffi");
25
+ const types_1 = require("../ffi/types");
26
+ const pkg = require('../../package.json');
27
+ const argumentMapper_1 = require("./argumentMapper");
28
+ const verify = (opts) => {
29
+ const ffi = ffi_1.getFfiLib(opts.logLevel);
15
30
  if (opts.logLevel) {
16
31
  logger_1.setLogLevel(opts.logLevel);
17
32
  }
18
- var handle = ffi.pactffiVerifierNewForApplication(pkg.name.split('/')[1], pkg.version);
19
- var uri = new url_1.URL(opts.providerBaseUrl);
20
- ffi.pactffiVerifierSetProviderInfo(handle, opts.provider || '', uri.protocol.split(':')[0], uri.hostname, parseInt(uri.port, 10), uri.pathname);
21
- if (opts.providerStatesSetupUrl) {
22
- ffi.pactffiVerifierSetProviderState(handle, opts.providerStatesSetupUrl, opts.providerStatesSetupTeardown || true, opts.providerStatesSetupBody || true);
23
- }
24
- Object.keys(opts.customProviderHeaders || {}).forEach(function (key, _, obj) {
25
- return ffi.pactffiVerifierAddCustomHeader(handle, key, obj[key]);
26
- });
27
- var filterDescription = process.env.PACT_DESCRIPTION || '';
28
- var filterState = process.env.PACT_PROVIDER_STATE || '';
29
- var filterNoState = process.env.PACT_PROVIDER_NO_STATE ? true : false;
30
- ffi.pactffiVerifierSetFilterInfo(handle, filterDescription, filterState, filterNoState);
31
- if (opts.pactUrls) {
32
- opts.pactUrls.forEach(function (file) {
33
- logger_1.default.debug("checking source type of given pactUrl: " + file);
34
- try {
35
- var u = new url_1.URL(file);
36
- if (u.hostname) {
37
- logger_1.default.debug("adding " + file + " as a Url source");
38
- ffi.pactffiVerifierUrlSource(handle, file, opts.pactBrokerUsername || '', opts.pactBrokerPassword || '', opts.pactBrokerToken || '');
39
- }
40
- }
41
- catch (_a) {
42
- logger_1.default.debug(file + " is not a URI");
43
- }
44
- try {
45
- var f = fs.lstatSync(file);
46
- if (f.isDirectory()) {
47
- logger_1.default.debug("adding " + file + " as Directory source");
48
- ffi.pactffiVerifierAddDirectorySource(handle, file);
49
- }
50
- else if (f.isFile() || f.isSymbolicLink()) {
51
- logger_1.default.debug("adding " + file + " as File source");
52
- ffi.pactffiVerifierAddFileSource(handle, file);
53
- }
54
- }
55
- catch (_b) {
56
- logger_1.default.debug(file + " is not a file");
57
- }
58
- });
59
- }
60
- if (opts.disableSslVerification || opts.timeout) {
61
- ffi.pactffiVerifierSetVerificationOptions(handle, opts.disableSslVerification || false, opts.timeout || 30000);
62
- }
63
- if (opts.publishVerificationResult ||
64
- opts.providerVersion ||
65
- opts.buildUrl ||
66
- opts.disableSslVerification ||
67
- opts.timeout ||
68
- opts.providerVersionTags) {
69
- ffi.pactffiVerifierSetPublishOptions(handle, opts.providerVersion || '', opts.buildUrl || '', opts.providerVersionTags || [], opts.providerBranch || '');
70
- }
71
- var brokerUrl = opts.pactBrokerUrl || process.env.PACT_BROKER_BASE_URL;
72
- if (brokerUrl && opts.provider) {
73
- ffi.pactffiVerifierBrokerSourceWithSelectors(handle, brokerUrl, opts.pactBrokerUsername || process.env.PACT_BROKER_USERNAME || '', opts.pactBrokerPassword || process.env.PACT_BROKER_PASSWORD || '', opts.pactBrokerToken || process.env.PACT_BROKER_TOKEN || '', opts.enablePending || false, opts.includeWipPactsSince || '', opts.providerVersionTags || [], opts.providerBranch || '', opts.consumerVersionSelectors
74
- ? objArrayToStringArray(opts.consumerVersionSelectors)
75
- : [], opts.consumerVersionTags || []);
76
- }
77
- return new Promise(function (resolve, reject) {
78
- ffi.pactffiVerifierExecute(handle, function (err, res) {
79
- logger_1.default.debug("shutting down verifier with handle " + handle);
33
+ const handle = ffi.pactffiVerifierNewForApplication(pkg.name.split('/')[1], pkg.version);
34
+ argumentMapper_1.setupVerification(ffi, handle, opts);
35
+ return new Promise((resolve, reject) => {
36
+ ffi.pactffiVerifierExecute(handle, (err, res) => {
37
+ logger_1.default.debug(`shutting down verifier with handle ${handle}`);
80
38
  ffi.pactffiVerifierShutdown(handle);
81
- logger_1.default.debug("response from verifier: " + err + ", " + res);
39
+ logger_1.default.debug(`response from verifier: ${err}, ${res}`);
82
40
  if (err) {
83
41
  if (typeof err === 'string') {
84
42
  logger_1.default.error(err);
@@ -93,7 +51,7 @@ var verify = function (opts) {
93
51
  switch (res) {
94
52
  case types_1.VERIFY_PROVIDER_RESPONSE.VERIFICATION_SUCCESSFUL:
95
53
  logger_1.default.info('Verification successful');
96
- resolve("finished: " + res);
54
+ resolve(`finished: ${res}`);
97
55
  break;
98
56
  case types_1.VERIFY_PROVIDER_RESPONSE.VERIFICATION_FAILED:
99
57
  logger_1.default.error('Verification unsuccessful');
@@ -1 +1 @@
1
- {"version":3,"file":"nativeVerifier.js","sourceRoot":"","sources":["nativeVerifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nativeVerifier.js","sourceRoot":"","sources":["nativeVerifier.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AACA,oDAAgD;AAChD,gCAAmC;AACnC,wCAAwD;AAGxD,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAE1C,qDAAqD;AAE9C,MAAM,MAAM,GAAG,CAAC,IAAqB,EAAmB,EAAE;IAC/D,MAAM,GAAG,GAAG,eAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,IAAI,IAAI,CAAC,QAAQ,EAAE;QACjB,oBAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC5B;IAED,MAAM,MAAM,GAAG,GAAG,CAAC,gCAAgC,CACjD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EACtB,GAAG,CAAC,OAAO,CACZ,CAAC;IAEF,kCAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAErC,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7C,GAAG,CAAC,sBAAsB,CAAC,MAAM,EAAE,CAAC,GAAU,EAAE,GAAW,EAAE,EAAE;YAC7D,gBAAM,CAAC,KAAK,CAAC,sCAAsC,MAAM,EAAE,CAAC,CAAC;YAE7D,GAAG,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;YAEpC,gBAAM,CAAC,KAAK,CAAC,2BAA2B,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC;YACvD,IAAI,GAAG,EAAE;gBACP,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;oBAE3B,gBAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBACnB;qBAAM,IAAI,GAAG,CAAC,OAAO,EAAE;oBACtB,gBAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;iBAC3B;gBACD,gBAAM,CAAC,SAAS,CACd,sEAAsE,CACvE,CAAC;gBACF,MAAM,CAAC,GAAG,CAAC,CAAC;aACb;iBAAM;gBACL,QAAQ,GAAG,EAAE;oBACX,KAAK,gCAAwB,CAAC,uBAAuB;wBACnD,gBAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;wBACvC,OAAO,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC;wBAC5B,MAAM;oBACR,KAAK,gCAAwB,CAAC,mBAAmB;wBAC/C,gBAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;wBAC1C,MAAM,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;wBACxC,MAAM;oBACR,KAAK,gCAAwB,CAAC,iBAAiB;wBAC7C,gBAAM,CAAC,SAAS,CACd,mDAAmD,CACpD,CAAC;wBACF,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;wBACpD,MAAM;oBACR;wBACE,gBAAM,CAAC,SAAS,CACd,wDAAwD,CACzD,CAAC;wBACF,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;wBACvC,MAAM;iBACT;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAzDW,QAAA,MAAM,UAyDjB"}
@@ -39,4 +39,5 @@ export interface VerifierOptions {
39
39
  disableSslVerification?: boolean;
40
40
  buildUrl?: string;
41
41
  customProviderHeaders?: CustomHeaders;
42
+ consumerFilters?: string[];
42
43
  }
@@ -1,2 +1,12 @@
1
- import { VerifierOptions } from './types';
2
- export declare const validateOptions: (o: VerifierOptions) => VerifierOptions;
1
+ import { InternalPactVerifierOptions, VerifierOptions } from './types';
2
+ export declare const deprecatedFunction: (_: InternalPactVerifierOptions) => (_: any, property: string) => boolean;
3
+ export declare const incompatibleWith: (keys: (keyof InternalPactVerifierOptions)[]) => (options: InternalPactVerifierOptions) => (_: any, property: string) => boolean;
4
+ export declare const requires: (keys: (keyof InternalPactVerifierOptions)[]) => (options: InternalPactVerifierOptions) => (_: any, property: string) => boolean;
5
+ export declare const requiresOneOf: (keys: (keyof InternalPactVerifierOptions)[]) => (options: InternalPactVerifierOptions) => (_: any, property: string) => boolean;
6
+ export declare type AssertFunction = (a: any, ...args: any) => boolean;
7
+ export declare const wrapCheckType: (fn: AssertFunction) => (_: InternalPactVerifierOptions) => AssertFunction;
8
+ export declare type ArgumentValidationRules<T> = {
9
+ [Key in keyof T]-?: ((options: T) => AssertFunction)[];
10
+ };
11
+ export declare const validationRules: ArgumentValidationRules<InternalPactVerifierOptions>;
12
+ export declare const validateOptions: (options: VerifierOptions) => VerifierOptions;