@pact-foundation/pact-core 13.4.1-beta.8 → 13.4.1-beta.9

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.
package/build/Makefile CHANGED
@@ -337,7 +337,7 @@ endif
337
337
 
338
338
  quiet_cmd_regen_makefile = ACTION Regenerating $@
339
339
  cmd_regen_makefile = cd $(srcdir); /Users/matthewfellows/.nvm/versions/node/v16.9.1/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py -fmake --ignore-environment "-Dlibrary=shared_library" "-Dvisibility=default" "-Dnode_root_dir=/Users/matthewfellows/Library/Caches/node-gyp/16.9.1" "-Dnode_gyp_dir=/Users/matthewfellows/.nvm/versions/node/v16.9.1/lib/node_modules/npm/node_modules/node-gyp" "-Dnode_lib_file=/Users/matthewfellows/Library/Caches/node-gyp/16.9.1/<(target_arch)/node.lib" "-Dmodule_root_dir=/Users/matthewfellows/development/public/pact-js-core" "-Dnode_engine=v8" "--depth=." "-Goutput_dir=." "--generator-output=build" -I/Users/matthewfellows/development/public/pact-js-core/build/config.gypi -I/Users/matthewfellows/.nvm/versions/node/v16.9.1/lib/node_modules/npm/node_modules/node-gyp/addon.gypi -I/Users/matthewfellows/Library/Caches/node-gyp/16.9.1/include/node/common.gypi "--toplevel-dir=." binding.gyp
340
- Makefile: $(srcdir)/binding.gyp $(srcdir)/build/config.gypi $(srcdir)/../../../Library/Caches/node-gyp/16.9.1/include/node/common.gypi $(srcdir)/../../../.nvm/versions/node/v16.9.1/lib/node_modules/npm/node_modules/node-gyp/addon.gypi
340
+ Makefile: $(srcdir)/binding.gyp $(srcdir)/build/config.gypi $(srcdir)/../../../.nvm/versions/node/v16.9.1/lib/node_modules/npm/node_modules/node-gyp/addon.gypi $(srcdir)/../../../Library/Caches/node-gyp/16.9.1/include/node/common.gypi
341
341
  $(call do_cmd,regen_makefile)
342
342
 
343
343
  # "all" is a concatenation of the "all" targets from all the included
Binary file
Binary file
Binary file
package/ffi/pact_ffi.dll CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pact-foundation/pact-core",
3
- "version": "13.4.1-beta.8",
3
+ "version": "13.4.1-beta.9",
4
4
  "description": "Core of @pact-foundation/pact. You almost certainly don't want to depend on this directly.",
5
5
  "main": "src/index.js",
6
6
  "homepage": "https://github.com/pact-foundation/pact-js-core#readme",
@@ -71,178 +71,12 @@
71
71
  },
72
72
  "status": 200
73
73
  }
74
- },
75
- {
76
- "description": "a request to get a dog with binary data",
77
- "providerStates": [
78
- {
79
- "name": "fido exists"
80
- }
81
- ],
82
- "request": {
83
- "body": "H4sIAAAAAAAAAyvJyCxWAKLEPIXUvOT8lNQUheKSosy8dADqFSK8GQAAAA==",
84
- "headers": {
85
- "Content-Type": "application/octet-stream",
86
- "x-special-header": "header"
87
- },
88
- "matchingRules": {
89
- "body": {
90
- "$": {
91
- "combine": "AND",
92
- "matchers": [
93
- {
94
- "match": "contentType",
95
- "value": "application/gzip"
96
- }
97
- ]
98
- }
99
- },
100
- "header": {},
101
- "query": {}
102
- },
103
- "method": "POST",
104
- "path": "/dogs/1234",
105
- "query": {
106
- "someParam": [
107
- "someValue"
108
- ]
109
- }
110
- },
111
- "response": {
112
- "body": {
113
- "age": 23,
114
- "alive": true,
115
- "name": "fido"
116
- },
117
- "headers": {
118
- "Content-Type": "application/json",
119
- "x-special-response-header": "header"
120
- },
121
- "matchingRules": {
122
- "body": {
123
- "$.age": {
124
- "combine": "AND",
125
- "matchers": [
126
- {
127
- "match": "type"
128
- }
129
- ]
130
- },
131
- "$.alive": {
132
- "combine": "AND",
133
- "matchers": [
134
- {
135
- "match": "type"
136
- }
137
- ]
138
- },
139
- "$.name": {
140
- "combine": "AND",
141
- "matchers": [
142
- {
143
- "match": "type"
144
- }
145
- ]
146
- }
147
- },
148
- "header": {}
149
- },
150
- "status": 200
151
- }
152
- },
153
- {
154
- "description": "a request to get a dog with multipart data",
155
- "providerStates": [
156
- {
157
- "name": "fido exists"
158
- }
159
- ],
160
- "request": {
161
- "body": "--zl2Uq2EK7o3uWRtL\r\nContent-Disposition: form-data; name=\"my_file\"; filename=\"monkeypatch.rb\"\r\nContent-Type: application/octet-stream\r\n\r\ndef Filelock(lockname, options = {}, &block)\n puts \"Opening file without filelock\"\n File.open(lockname, File::RDWR|File::CREAT, 0644) do |file|\n Timeout::timeout(options.fetch(:timeout, 60), Filelock::ExecTimeout) { yield file }\n end\nend\n\r\n--zl2Uq2EK7o3uWRtL--\r\n",
162
- "headers": {
163
- "Content-Type": "multipart/form-data; boundary=zl2Uq2EK7o3uWRtL",
164
- "x-special-header": "header"
165
- },
166
- "matchingRules": {
167
- "body": {
168
- "$.my_file": {
169
- "combine": "AND",
170
- "matchers": [
171
- {
172
- "match": "contentType",
173
- "value": "text/plain"
174
- }
175
- ]
176
- }
177
- },
178
- "header": {
179
- "Content-Type": {
180
- "combine": "AND",
181
- "matchers": [
182
- {
183
- "match": "regex",
184
- "regex": "multipart/form-data;(\\s*charset=[^;]*;)?\\s*boundary=.*"
185
- }
186
- ]
187
- }
188
- },
189
- "query": {}
190
- },
191
- "method": "POST",
192
- "path": "/dogs/1234",
193
- "query": {
194
- "someParam": [
195
- "someValue"
196
- ]
197
- }
198
- },
199
- "response": {
200
- "body": {
201
- "age": 23,
202
- "alive": true,
203
- "name": "fido"
204
- },
205
- "headers": {
206
- "Content-Type": "application/json",
207
- "x-special-header": "header"
208
- },
209
- "matchingRules": {
210
- "body": {
211
- "$.age": {
212
- "combine": "AND",
213
- "matchers": [
214
- {
215
- "match": "type"
216
- }
217
- ]
218
- },
219
- "$.alive": {
220
- "combine": "AND",
221
- "matchers": [
222
- {
223
- "match": "type"
224
- }
225
- ]
226
- },
227
- "$.name": {
228
- "combine": "AND",
229
- "matchers": [
230
- {
231
- "match": "type"
232
- }
233
- ]
234
- }
235
- },
236
- "header": {}
237
- },
238
- "status": 200
239
- }
240
74
  }
241
75
  ],
242
76
  "metadata": {
243
77
  "pactRust": {
244
- "ffi": "0.1.5",
245
- "mockserver": "0.8.5",
78
+ "ffi": "0.1.6",
79
+ "mockserver": "0.8.6",
246
80
  "models": "0.2.6"
247
81
  },
248
82
  "pactSpecification": {
@@ -25,23 +25,22 @@ exports.makeConsumerPact = void 0;
25
25
  var types_1 = require("../ffi/types");
26
26
  var logger_1 = require("../logger");
27
27
  var checkErrors_1 = require("./checkErrors");
28
- var bindings = require("bindings");
28
+ var ffi_1 = require("../ffi");
29
29
  var makeConsumerPact = function (consumer, provider, version, logLevel) {
30
30
  if (version === void 0) { version = 3; }
31
31
  if (logLevel === void 0) { logLevel = logger_1.getLogLevel(); }
32
- var lib = bindings('pact.node');
33
- lib.pactffiInitWithLogLevel(logLevel);
32
+ var ffi = ffi_1.getFfiLib(logLevel);
34
33
  if (logLevel) {
35
34
  logger_1.setLogLevel(logLevel);
36
35
  }
37
- var pactPtr = lib.pactffiNewPact(consumer, provider);
38
- if (!lib.pactffiWithSpecification(pactPtr, version)) {
36
+ var pactPtr = ffi.pactffiNewPact(consumer, provider);
37
+ if (!ffi.pactffiWithSpecification(pactPtr, version)) {
39
38
  throw new Error("Unable to set core spec version. The pact FfiSpecificationVersion '" + version + "' may be invalid (note this is not the same as the pact spec version)");
40
39
  }
41
40
  return {
42
41
  createMockServer: function (address, requestedPort, tls) {
43
42
  if (tls === void 0) { tls = false; }
44
- var port = lib.pactffiCreateMockServerForPact(pactPtr, address + ":" + (requestedPort ? requestedPort : 0), tls);
43
+ var port = ffi.pactffiCreateMockServerForPact(pactPtr, address + ":" + (requestedPort ? requestedPort : 0), tls);
45
44
  var error = Object.keys(types_1.CREATE_MOCK_SERVER_ERRORS).find(function (key) { return types_1.CREATE_MOCK_SERVER_ERRORS[key] === port; });
46
45
  if (error) {
47
46
  if (error === 'ADDRESS_NOT_VALID') {
@@ -58,10 +57,10 @@ var makeConsumerPact = function (consumer, provider, version, logLevel) {
58
57
  return port;
59
58
  },
60
59
  mockServerMatchedSuccessfully: function (port) {
61
- return lib.pactffiMockServerMatched(port);
60
+ return ffi.pactffiMockServerMatched(port);
62
61
  },
63
62
  mockServerMismatches: function (port) {
64
- var results = JSON.parse(lib.pactffiMockServerMismatches(port));
63
+ var results = JSON.parse(ffi.pactffiMockServerMismatches(port));
65
64
  return results.map(function (result) { return (__assign(__assign({}, result), ('mismatches' in result
66
65
  ? {
67
66
  mismatches: result.mismatches.map(function (m) {
@@ -71,11 +70,11 @@ var makeConsumerPact = function (consumer, provider, version, logLevel) {
71
70
  : {}))); });
72
71
  },
73
72
  cleanupMockServer: function (port) {
74
- return checkErrors_1.wrapWithCheck(function (port) { return lib.pactffiCleanupMockServer(port); }, 'cleanupMockServer')(port);
73
+ return checkErrors_1.wrapWithCheck(function (port) { return ffi.pactffiCleanupMockServer(port); }, 'cleanupMockServer')(port);
75
74
  },
76
75
  writePactFile: function (port, dir, merge) {
77
76
  if (merge === void 0) { merge = true; }
78
- var result = lib.pactffiWritePactFile(port, dir, !merge);
77
+ var result = ffi.pactffiWritePactFile(port, dir, !merge);
79
78
  switch (result) {
80
79
  case types_1.FfiWritePactResponse.SUCCESS:
81
80
  return;
@@ -90,52 +89,52 @@ var makeConsumerPact = function (consumer, provider, version, logLevel) {
90
89
  }
91
90
  },
92
91
  addMetadata: function (namespace, name, value) {
93
- return lib.pactffiWithPactMetadata(pactPtr, namespace, name, value);
92
+ return ffi.pactffiWithPactMetadata(pactPtr, namespace, name, value);
94
93
  },
95
94
  newInteraction: function (description) {
96
- var interactionPtr = lib.pactffiNewInteraction(pactPtr, description);
95
+ var interactionPtr = ffi.pactffiNewInteraction(pactPtr, description);
97
96
  return checkErrors_1.wrapAllWithCheck({
98
97
  uponReceiving: function (description) {
99
- return lib.pactffiUponReceiving(interactionPtr, description);
98
+ return ffi.pactffiUponReceiving(interactionPtr, description);
100
99
  },
101
100
  given: function (state) {
102
- return lib.pactffiGiven(interactionPtr, state);
101
+ return ffi.pactffiGiven(interactionPtr, state);
103
102
  },
104
103
  givenWithParam: function (state, name, value) {
105
- return lib.pactffiGivenWithParam(interactionPtr, state, name, value);
104
+ return ffi.pactffiGivenWithParam(interactionPtr, state, name, value);
106
105
  },
107
106
  withRequest: function (method, path) {
108
- return lib.pactffiWithRequest(interactionPtr, method, path);
107
+ return ffi.pactffiWithRequest(interactionPtr, method, path);
109
108
  },
110
109
  withQuery: function (name, index, value) {
111
- return lib.pactffiWithQueryParameter(interactionPtr, name, index, value);
110
+ return ffi.pactffiWithQueryParameter(interactionPtr, name, index, value);
112
111
  },
113
112
  withRequestHeader: function (name, index, value) {
114
- return lib.pactffiWithHeader(interactionPtr, types_1.INTERACTION_PART_REQUEST, name, index, value);
113
+ return ffi.pactffiWithHeader(interactionPtr, types_1.INTERACTION_PART_REQUEST, name, index, value);
115
114
  },
116
115
  withRequestBody: function (body, contentType) {
117
- return lib.pactffiWithBody(interactionPtr, types_1.INTERACTION_PART_REQUEST, contentType, body);
116
+ return ffi.pactffiWithBody(interactionPtr, types_1.INTERACTION_PART_REQUEST, contentType, body);
118
117
  },
119
118
  withRequestBinaryBody: function (body, contentType) {
120
- return lib.pactffiWithBinaryFile(interactionPtr, types_1.INTERACTION_PART_REQUEST, contentType, body, body.length);
119
+ return ffi.pactffiWithBinaryFile(interactionPtr, types_1.INTERACTION_PART_REQUEST, contentType, body, body.length);
121
120
  },
122
121
  withRequestMultipartBody: function (contentType, filename, mimePartName) {
123
- return (lib.pactffiWithMultipartFile(interactionPtr, types_1.INTERACTION_PART_REQUEST, contentType, filename, mimePartName) === undefined);
122
+ return (ffi.pactffiWithMultipartFile(interactionPtr, types_1.INTERACTION_PART_REQUEST, contentType, filename, mimePartName) === undefined);
124
123
  },
125
124
  withResponseHeader: function (name, index, value) {
126
- return lib.pactffiWithHeader(interactionPtr, types_1.INTERACTION_PART_RESPONSE, name, index, value);
125
+ return ffi.pactffiWithHeader(interactionPtr, types_1.INTERACTION_PART_RESPONSE, name, index, value);
127
126
  },
128
127
  withResponseBody: function (body, contentType) {
129
- return lib.pactffiWithBody(interactionPtr, types_1.INTERACTION_PART_RESPONSE, contentType, body);
128
+ return ffi.pactffiWithBody(interactionPtr, types_1.INTERACTION_PART_RESPONSE, contentType, body);
130
129
  },
131
130
  withResponseBinaryBody: function (body, contentType) {
132
- return lib.pactffiWithBinaryFile(interactionPtr, types_1.INTERACTION_PART_RESPONSE, contentType, body, body.length);
131
+ return ffi.pactffiWithBinaryFile(interactionPtr, types_1.INTERACTION_PART_RESPONSE, contentType, body, body.length);
133
132
  },
134
133
  withResponseMultipartBody: function (contentType, filename, mimePartName) {
135
- return (lib.pactffiWithMultipartFile(interactionPtr, types_1.INTERACTION_PART_RESPONSE, contentType, filename, mimePartName) === undefined);
134
+ return (ffi.pactffiWithMultipartFile(interactionPtr, types_1.INTERACTION_PART_RESPONSE, contentType, filename, mimePartName) === undefined);
136
135
  },
137
136
  withStatus: function (status) {
138
- return lib.pactffiResponseStatus(interactionPtr, status);
137
+ return ffi.pactffiResponseStatus(interactionPtr, status);
139
138
  },
140
139
  });
141
140
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}
@@ -1 +1,6 @@
1
- export declare const PACT_FFI_VERSION = "0.1.5";
1
+ import { LogLevel } from '../logger/types';
2
+ import { Ffi } from './types';
3
+ declare const ffiLib: Ffi;
4
+ export declare const PACT_FFI_VERSION = "0.1.6";
5
+ export declare const getFfiLib: (logLevel?: LogLevel) => typeof ffiLib;
6
+ export {};
package/src/ffi/index.js CHANGED
@@ -1,5 +1,32 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PACT_FFI_VERSION = void 0;
4
- exports.PACT_FFI_VERSION = '0.1.5';
3
+ exports.getFfiLib = exports.PACT_FFI_VERSION = void 0;
4
+ var logger_1 = require("../logger");
5
+ var bindings = require("bindings");
6
+ var ffiLib = bindings('pact.node');
7
+ exports.PACT_FFI_VERSION = '0.1.6';
8
+ var ffi;
9
+ var ffiLogLevel;
10
+ var initialiseFfi = function (logLevel) {
11
+ logger_1.default.debug("Initalising native core at log level '" + logLevel + "'");
12
+ ffiLogLevel = logLevel;
13
+ ffiLib.pactffiInitWithLogLevel(logLevel);
14
+ return ffiLib;
15
+ };
16
+ var getFfiLib = function (logLevel) {
17
+ if (logLevel === void 0) { logLevel = logger_1.DEFAULT_LOG_LEVEL; }
18
+ if (!ffi) {
19
+ logger_1.default.trace('Initiliasing ffi for the first time');
20
+ ffi = initialiseFfi(logLevel);
21
+ }
22
+ else {
23
+ logger_1.default.trace('Ffi has already been initialised, no need to repeat it');
24
+ if (logLevel !== ffiLogLevel) {
25
+ logger_1.default.warn("The pact native core has already been initialised at log level '" + ffiLogLevel + "'");
26
+ logger_1.default.warn("The new requested log level '" + logLevel + "' will be ignored");
27
+ }
28
+ }
29
+ return ffi;
30
+ };
31
+ exports.getFfiLib = getFfiLib;
5
32
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AASa,QAAA,gBAAgB,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAAA,oCAAsD;AAGtD,mCAAsC;AAEtC,IAAM,MAAM,GAAQ,QAAQ,CAAC,WAAW,CAAC,CAAC;AAE7B,QAAA,gBAAgB,GAAG,OAAO,CAAC;AAGxC,IAAI,GAAkB,CAAC;AACvB,IAAI,WAAqB,CAAC;AAI1B,IAAM,aAAa,GAAG,UAAC,QAAkB;IACvC,gBAAM,CAAC,KAAK,CAAC,2CAAyC,QAAQ,MAAG,CAAC,CAAC;IACnE,WAAW,GAAG,QAAQ,CAAC;IACvB,MAAM,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAEzC,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEK,IAAM,SAAS,GAAG,UACvB,QAAsC;IAAtC,yBAAA,EAAA,WAAqB,0BAAiB;IAGtC,IAAI,CAAC,GAAG,EAAE;QACR,gBAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACpD,GAAG,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;KAC/B;SAAM;QACL,gBAAM,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;QACvE,IAAI,QAAQ,KAAK,WAAW,EAAE;YAC5B,gBAAM,CAAC,IAAI,CACT,qEAAmE,WAAW,MAAG,CAClF,CAAC;YACF,gBAAM,CAAC,IAAI,CAAC,kCAAgC,QAAQ,sBAAmB,CAAC,CAAC;SAC1E;KACF;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAjBW,QAAA,SAAS,aAiBpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAQA,IAAM,eAAe,GAAG;IACtB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,SAAS;CACjB,CAAC;AAIF,IAAM,qBAAqB,GAAG;IAC5B,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,EAAE;CACV,CAAC;AAIF,IAAM,WAAW,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;AAIrE,IAAM,gBAAgB,GAAG;IACvB,YAAY,EAAE,OAAO;IACrB,0BAA0B,EAAE,OAAO;IACnC,cAAc,EAAE,IAAI;IACpB,gBAAgB,EAAE,KAAK;CACxB,CAAC;AAmBK,IAAM,OAAO,GAAG,UACrB,OAAe,EACf,OAAe,EACf,WAA0B,EAC1B,eAAkC;IADlC,4BAAA,EAAA,cAAc,OAAO,CAAC,IAAI;IAC1B,gCAAA,EAAA,kBAAkB,OAAO,CAAC,QAAQ;IAElC,IAAM,IAAI,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;IACtC,IAAM,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;IAElD,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;QACtB,MAAM,IAAI,KAAK,CACb,wFAAsF,eAAe,SAAI,WAAW,MAAG,CACxH,CAAC;KACH;IAED,IAAM,MAAM,GAAM,QAAQ,SAAI,IAAM,CAAC;IAErC,IAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,CAAC,SAAS,EAAE;QACd,MAAM,IAAI,KAAK,CACb,gGAA8F,MAAM,MAAG,CACxG,CAAC;KACH;IAED,IAAM,aAAa,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC;IAC7D,IAAI,aAAa,KAAK,SAAS,EAAE;QAC/B,MAAM,IAAI,KAAK,CACb,gEAA8D,eAAe,MAAG,CACjF,CAAC;KACH;IAED,OAAU,OAAO,SAAI,aAAa,GAAG,OAAO,SAAI,MAAM,SAAI,SAAW,CAAC;AACxE,CAAC,CAAC;AAhCW,QAAA,OAAO,WAgClB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAEA,IAAM,eAAe,GAAG;IACtB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,SAAS;CACjB,CAAC;AAIF,IAAM,qBAAqB,GAAG;IAC5B,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,EAAE;CACV,CAAC;AAIF,IAAM,WAAW,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;AAIrE,IAAM,gBAAgB,GAAG;IACvB,YAAY,EAAE,OAAO;IACrB,0BAA0B,EAAE,OAAO;IACnC,cAAc,EAAE,IAAI;IACpB,gBAAgB,EAAE,KAAK;CACxB,CAAC;AAEK,IAAM,OAAO,GAAG,UACrB,OAAe,EACf,OAAe,EACf,WAA0B,EAC1B,eAAkC;IADlC,4BAAA,EAAA,cAAc,OAAO,CAAC,IAAI;IAC1B,gCAAA,EAAA,kBAAkB,OAAO,CAAC,QAAQ;IAElC,IAAM,IAAI,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;IACtC,IAAM,QAAQ,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;IAElD,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;QACtB,MAAM,IAAI,KAAK,CACb,wFAAsF,eAAe,SAAI,WAAW,MAAG,CACxH,CAAC;KACH;IAED,IAAM,MAAM,GAAM,QAAQ,SAAI,IAAM,CAAC;IAErC,IAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,CAAC,SAAS,EAAE;QACd,MAAM,IAAI,KAAK,CACb,gGAA8F,MAAM,MAAG,CACxG,CAAC;KACH;IAED,IAAM,aAAa,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC;IAC7D,IAAI,aAAa,KAAK,SAAS,EAAE;QAC/B,MAAM,IAAI,KAAK,CACb,gEAA8D,eAAe,MAAG,CACjF,CAAC;KACH;IAED,OAAU,OAAO,SAAI,aAAa,GAAG,OAAO,SAAI,MAAM,SAAI,SAAW,CAAC;AACxE,CAAC,CAAC;AAhCW,QAAA,OAAO,WAgClB"}
@@ -1,3 +1,6 @@
1
+ /// <reference types="node" />
2
+ export declare type FfiPactHandle = number;
3
+ export declare type FfiInteractionHandle = number;
1
4
  export declare type FfiSpecificationVersion = 0 | 1 | 2 | 3 | 4 | 5;
2
5
  export declare const FfiSpecificationVersion: Record<string, FfiSpecificationVersion>;
3
6
  export declare type FfiWritePactResponse = 0 | 1 | 2 | 3;
@@ -13,6 +16,13 @@ export declare const CREATE_MOCK_SERVER_ERRORS: {
13
16
  ADDRESS_NOT_VALID: number;
14
17
  TLS_CONFIG: number;
15
18
  };
19
+ export declare enum VERIFY_PROVIDER_RESPONSE {
20
+ VERIFICATION_SUCCESSFUL = 0,
21
+ VERIFICATION_FAILED = 1,
22
+ NULL_POINTER_RECEIVED = 2,
23
+ METHOD_PANICKED = 3,
24
+ INVALID_ARGUMENTS = 4
25
+ }
16
26
  export declare enum FfiFunctionResult {
17
27
  RESULT_OK = 0,
18
28
  RESULT_FAILED = 1
@@ -25,3 +35,34 @@ export declare enum FfiLogLevelFilter {
25
35
  LOG_LEVEL_DEBUG = 4,
26
36
  LOG_LEVEL_TRACE = 5
27
37
  }
38
+ export declare type Ffi = {
39
+ pactffiInit(logLevel: string): string;
40
+ pactffiVersion(): string;
41
+ pactffiVerify(args: string, callback: (e: Error, res: number) => void): number;
42
+ pactffiCreateMockServerForPact(handle: FfiPactHandle, address: string, tls: boolean): number;
43
+ pactffiNewPact(consumer: string, provider: string): FfiPactHandle;
44
+ pactffiWithSpecification(handle: FfiPactHandle, specification: FfiSpecificationVersion): boolean;
45
+ pactffiWithPactMetadata(handle: FfiPactHandle, namespace_: string, name: string, value: string): boolean;
46
+ pactffiNewInteraction(handle: FfiPactHandle, description: string): FfiInteractionHandle;
47
+ pactffiUponReceiving(handle: FfiInteractionHandle, description: string): boolean;
48
+ pactffiGiven(handle: FfiInteractionHandle, providerState: string): boolean;
49
+ pactffiGivenWithParam(handle: FfiInteractionHandle, description: string, name: string, value: string): boolean;
50
+ pactffiWithRequest(handle: FfiInteractionHandle, method: string, path: string): boolean;
51
+ pactffiWithQueryParameter(handle: FfiInteractionHandle, name: string, index: number, value: string): boolean;
52
+ pactffiWithHeader(handle: FfiInteractionHandle, part: FfiInteractionPart, name: string, index: number, value: string): boolean;
53
+ pactffiWithBody(handle: FfiInteractionHandle, part: FfiInteractionPart, contentType: string, body: string): boolean;
54
+ pactffiWithBinaryFile(handle: FfiInteractionHandle, part: FfiInteractionPart, contentType: string, body: Buffer, size: number): boolean;
55
+ pactffiWithMultipartFile(handle: FfiInteractionHandle, part: FfiInteractionPart, contentType: string, file: string, partName: string): void;
56
+ pactffiResponseStatus(handle: FfiInteractionHandle, status: number): boolean;
57
+ pactffiWritePactFile(port: number, dir: string, overwrite: boolean): number;
58
+ pactffiCleanupMockServer(port: number): boolean;
59
+ pactffiMockServerMatched(port: number): boolean;
60
+ pactffiMockServerMismatches(port: number): string;
61
+ pactffiGetTlsCaCertificate(): string;
62
+ pactffiLogMessage(source: string, logLevel: string, message: string): void;
63
+ pactffiLogToBuffer(level: FfiLogLevelFilter): number;
64
+ pactffiInitWithLogLevel(level: string): void;
65
+ pactffiLogToStdout(level: FfiLogLevelFilter): number;
66
+ pactffiLogToFile(fileName: string, level: FfiLogLevelFilter): number;
67
+ pactffiFetchLogBuffer(logId: number): string;
68
+ };
package/src/ffi/types.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FfiLogLevelFilter = exports.FfiFunctionResult = exports.CREATE_MOCK_SERVER_ERRORS = exports.INTERACTION_PART_RESPONSE = exports.INTERACTION_PART_REQUEST = exports.FfiWritePactResponse = exports.FfiSpecificationVersion = void 0;
3
+ exports.FfiLogLevelFilter = exports.FfiFunctionResult = exports.VERIFY_PROVIDER_RESPONSE = exports.CREATE_MOCK_SERVER_ERRORS = exports.INTERACTION_PART_RESPONSE = exports.INTERACTION_PART_REQUEST = exports.FfiWritePactResponse = exports.FfiSpecificationVersion = void 0;
4
4
  exports.FfiSpecificationVersion = {
5
5
  SPECIFICATION_VERSION_UNKNOWN: 0,
6
6
  SPECIFICATION_VERSION_V1: 1,
@@ -25,6 +25,14 @@ exports.CREATE_MOCK_SERVER_ERRORS = {
25
25
  ADDRESS_NOT_VALID: -5,
26
26
  TLS_CONFIG: -6,
27
27
  };
28
+ var VERIFY_PROVIDER_RESPONSE;
29
+ (function (VERIFY_PROVIDER_RESPONSE) {
30
+ VERIFY_PROVIDER_RESPONSE[VERIFY_PROVIDER_RESPONSE["VERIFICATION_SUCCESSFUL"] = 0] = "VERIFICATION_SUCCESSFUL";
31
+ VERIFY_PROVIDER_RESPONSE[VERIFY_PROVIDER_RESPONSE["VERIFICATION_FAILED"] = 1] = "VERIFICATION_FAILED";
32
+ VERIFY_PROVIDER_RESPONSE[VERIFY_PROVIDER_RESPONSE["NULL_POINTER_RECEIVED"] = 2] = "NULL_POINTER_RECEIVED";
33
+ VERIFY_PROVIDER_RESPONSE[VERIFY_PROVIDER_RESPONSE["METHOD_PANICKED"] = 3] = "METHOD_PANICKED";
34
+ VERIFY_PROVIDER_RESPONSE[VERIFY_PROVIDER_RESPONSE["INVALID_ARGUMENTS"] = 4] = "INVALID_ARGUMENTS";
35
+ })(VERIFY_PROVIDER_RESPONSE = exports.VERIFY_PROVIDER_RESPONSE || (exports.VERIFY_PROVIDER_RESPONSE = {}));
28
36
  var FfiFunctionResult;
29
37
  (function (FfiFunctionResult) {
30
38
  FfiFunctionResult[FfiFunctionResult["RESULT_OK"] = 0] = "RESULT_OK";
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":";;;AAEa,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,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;AAUF,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC3B,mEAAa,CAAA;IACb,2EAAa,CAAA;AACf,CAAC,EAHW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAG5B;AAED,IAAY,iBAOX;AAPD,WAAY,iBAAiB;IAC3B,2EAAiB,CAAA;IACjB,+EAAe,CAAA;IACf,6EAAc,CAAA;IACd,6EAAc,CAAA;IACd,+EAAe,CAAA;IACf,+EAAe,CAAA;AACjB,CAAC,EAPW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAO5B"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":";;;AAKa,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,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;AAUF,IAAY,wBAMX;AAND,WAAY,wBAAwB;IAClC,6GAA2B,CAAA;IAC3B,qGAAmB,CAAA;IACnB,yGAAqB,CAAA;IACrB,6FAAe,CAAA;IACf,iGAAiB,CAAA;AACnB,CAAC,EANW,wBAAwB,GAAxB,gCAAwB,KAAxB,gCAAwB,QAMnC;AAUD,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC3B,mEAAa,CAAA;IACb,2EAAa,CAAA;AACf,CAAC,EAHW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAG5B;AAED,IAAY,iBAOX;AAPD,WAAY,iBAAiB;IAC3B,2EAAiB,CAAA;IACjB,+EAAe,CAAA;IACf,6EAAc,CAAA;IACd,6EAAc,CAAA;IACd,+EAAe,CAAA;IACf,+EAAe,CAAA;AACjB,CAAC,EAPW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAO5B"}
@@ -3,13 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.verify = void 0;
4
4
  var logger_1 = require("../logger");
5
5
  var argumentMapper_1 = require("./argumentMapper");
6
- var bindings = require("bindings");
7
- var ffiLib = bindings('pact.node');
8
- var VERIFICATION_SUCCESSFUL = 0;
9
- var VERIFICATION_FAILED = 1;
10
- var INVALID_ARGUMENTS = 4;
6
+ var ffi_1 = require("../ffi");
7
+ var types_1 = require("../ffi/types");
11
8
  var verify = function (opts) {
12
- ffiLib.pactffiInitWithLogLevel(opts.logLevel);
9
+ var ffi = ffi_1.getFfiLib(opts.logLevel);
13
10
  if (opts.logLevel) {
14
11
  logger_1.setLogLevel(opts.logLevel);
15
12
  }
@@ -19,7 +16,7 @@ var verify = function (opts) {
19
16
  .join('\n');
20
17
  logger_1.default.debug('sending arguments to FFI:');
21
18
  logger_1.default.debug(request);
22
- ffiLib.pactffiVerify(request, function (err, res) {
19
+ ffi.pactffiVerify(request, function (err, res) {
23
20
  logger_1.default.debug("response from verifier: " + err + ", " + res);
24
21
  if (err) {
25
22
  if (typeof err === 'string') {
@@ -33,15 +30,15 @@ var verify = function (opts) {
33
30
  }
34
31
  else {
35
32
  switch (res) {
36
- case VERIFICATION_SUCCESSFUL:
33
+ case types_1.VERIFY_PROVIDER_RESPONSE.VERIFICATION_SUCCESSFUL:
37
34
  logger_1.default.info('Verification successful');
38
35
  resolve("finished: " + res);
39
36
  break;
40
- case VERIFICATION_FAILED:
37
+ case types_1.VERIFY_PROVIDER_RESPONSE.VERIFICATION_FAILED:
41
38
  logger_1.default.error('Verification unsuccessful');
42
39
  reject(new Error('Verfication failed'));
43
40
  break;
44
- case INVALID_ARGUMENTS:
41
+ case types_1.VERIFY_PROVIDER_RESPONSE.INVALID_ARGUMENTS:
45
42
  logger_1.default.pactCrash('The underlying pact core was invoked incorrectly.');
46
43
  reject(new Error('Verification was unable to run'));
47
44
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"nativeVerifier.js","sourceRoot":"","sources":["nativeVerifier.ts"],"names":[],"mappings":";;;AACA,oCAAgD;AAChD,mDAAkD;AAClD,mCAAsC;AAEtC,IAAM,MAAM,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;AAErC,IAAM,uBAAuB,GAAG,CAAC,CAAC;AAClC,IAAM,mBAAmB,GAAG,CAAC,CAAC;AAG9B,IAAM,iBAAiB,GAAG,CAAC,CAAC;AAErB,IAAM,MAAM,GAAG,UAAC,IAAqB;IAC1C,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,IAAI,CAAC,QAAQ,EAAE;QACjB,oBAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC5B;IAGD,OAAO,IAAI,OAAO,CAAS,UAAC,OAAO,EAAE,MAAM;QACzC,IAAM,OAAO,GAAG,+BAAc,CAAC,IAAI,CAAC;aACjC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAnB,CAAmB,CAAC;aAC/B,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,gBAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC1C,gBAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEtB,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,UAAC,GAAU,EAAE,GAAW;YACpD,gBAAM,CAAC,KAAK,CAAC,6BAA2B,GAAG,UAAK,GAAK,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,uBAAuB;wBAC1B,gBAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;wBACvC,OAAO,CAAC,eAAa,GAAK,CAAC,CAAC;wBAC5B,MAAM;oBACR,KAAK,mBAAmB;wBACtB,gBAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;wBAC1C,MAAM,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;wBACxC,MAAM;oBACR,KAAK,iBAAiB;wBACpB,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;AAtDW,QAAA,MAAM,UAsDjB"}
1
+ {"version":3,"file":"nativeVerifier.js","sourceRoot":"","sources":["nativeVerifier.ts"],"names":[],"mappings":";;;AACA,oCAAgD;AAChD,mDAAkD;AAClD,8BAAmC;AACnC,sCAAwD;AAEjD,IAAM,MAAM,GAAG,UAAC,IAAqB;IAC1C,IAAM,GAAG,GAAG,eAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,IAAI,IAAI,CAAC,QAAQ,EAAE;QACjB,oBAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC5B;IAGD,OAAO,IAAI,OAAO,CAAS,UAAC,OAAO,EAAE,MAAM;QACzC,IAAM,OAAO,GAAG,+BAAc,CAAC,IAAI,CAAC;aACjC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAnB,CAAmB,CAAC;aAC/B,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,gBAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC1C,gBAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEtB,GAAG,CAAC,aAAa,CAAC,OAAO,EAAE,UAAC,GAAU,EAAE,GAAW;YACjD,gBAAM,CAAC,KAAK,CAAC,6BAA2B,GAAG,UAAK,GAAK,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,eAAa,GAAK,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;AAtDW,QAAA,MAAM,UAsDjB"}