@pact-foundation/pact-core 13.12.1 → 13.13.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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,25 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [13.13.0](https://github.com/pact-foundation/pact-js-core/compare/v13.12.2...v13.13.0) (2022-12-02)
6
+
7
+
8
+ ### Features
9
+
10
+ * new content mismatch types for plugins ([7cebccd](https://github.com/pact-foundation/pact-js-core/commit/7cebccdd412262011ae8fa33fbe1a0c26c65f10d))
11
+
12
+
13
+ ### Fixes and Improvements
14
+
15
+ * pactffi_create_mock_server_for_transport returns uint32 ([8d85a81](https://github.com/pact-foundation/pact-js-core/commit/8d85a8186d1c960af780bc039bbf4793dc389e0d))
16
+
17
+ ### [13.12.2](https://github.com/pact-foundation/pact-js-core/compare/v13.12.1...v13.12.2) (2022-11-28)
18
+
19
+
20
+ ### Fixes and Improvements
21
+
22
+ * upgrade to ffi 0.3.15 ([0da476d](https://github.com/pact-foundation/pact-js-core/commit/0da476dbd342f64234515572408fd43b28b5085b))
23
+
5
24
  ### [13.12.1](https://github.com/pact-foundation/pact-js-core/compare/v13.12.0...v13.12.1) (2022-11-24)
6
25
 
7
26
 
@@ -1 +1 @@
1
- {"version":3,"file":"pact-broker.js","sourceRoot":"","sources":["pact-broker.ts"],"names":[],"mappings":";;;;;;AAEA,6EAAgD;AAChD,8CAA+C;AAE/C,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CACnC,yBAAU,CAAC,cAAc,EACzB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EACrB;IACE,KAAK,EAAE,SAAS;CACjB,CACF,CAAC,MAAM,CAAC;AACT,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"pact-broker.js","sourceRoot":"","sources":["pact-broker.ts"],"names":[],"mappings":";;;;;;AAEA,6EAAgD;AAChD,8CAA+C;AAE/C,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CACnC,yBAAU,CAAC,cAAc,EACzB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EACrB;IACE,KAAK,EAAE,SAAS;CACjB,CACF,CAAC,MAAM,CAAC;AACT,OAAO,CAAC,IAAI,CAAC,MAAgB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pact-message.js","sourceRoot":"","sources":["pact-message.ts"],"names":[],"mappings":";;;;;;AAEA,6EAAgD;AAChD,8CAA+C;AAE/C,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CACnC,yBAAU,CAAC,eAAe,EAC1B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EACrB;IACE,KAAK,EAAE,SAAS;CACjB,CACF,CAAC,MAAM,CAAC;AACT,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"pact-message.js","sourceRoot":"","sources":["pact-message.ts"],"names":[],"mappings":";;;;;;AAEA,6EAAgD;AAChD,8CAA+C;AAE/C,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CACnC,yBAAU,CAAC,eAAe,EAC1B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EACrB;IACE,KAAK,EAAE,SAAS;CACjB,CACF,CAAC,MAAM,CAAC;AACT,OAAO,CAAC,IAAI,CAAC,MAAgB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pact-mock-service.js","sourceRoot":"","sources":["pact-mock-service.ts"],"names":[],"mappings":";;;;;;AAEA,6EAAgD;AAChD,8CAA+C;AAE/C,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CACnC,yBAAU,CAAC,mBAAmB,EAC9B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EACrB,EAAE,KAAK,EAAE,SAAS,EAAE,CACrB,CAAC,MAAM,CAAC;AACT,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"pact-mock-service.js","sourceRoot":"","sources":["pact-mock-service.ts"],"names":[],"mappings":";;;;;;AAEA,6EAAgD;AAChD,8CAA+C;AAE/C,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CACnC,yBAAU,CAAC,mBAAmB,EAC9B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EACrB,EAAE,KAAK,EAAE,SAAS,EAAE,CACrB,CAAC,MAAM,CAAC;AACT,OAAO,CAAC,IAAI,CAAC,MAAgB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pact-provider-verifier.js","sourceRoot":"","sources":["pact-provider-verifier.ts"],"names":[],"mappings":";;;;;;AAEA,6EAAgD;AAChD,8CAA+C;AAE/C,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CACnC,yBAAU,CAAC,gBAAgB,EAC3B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EACrB;IACE,KAAK,EAAE,SAAS;CACjB,CACF,CAAC,MAAM,CAAC;AACT,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"pact-provider-verifier.js","sourceRoot":"","sources":["pact-provider-verifier.ts"],"names":[],"mappings":";;;;;;AAEA,6EAAgD;AAChD,8CAA+C;AAE/C,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CACnC,yBAAU,CAAC,gBAAgB,EAC3B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EACrB;IACE,KAAK,EAAE,SAAS;CACjB,CACF,CAAC,MAAM,CAAC;AACT,OAAO,CAAC,IAAI,CAAC,MAAgB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pact-stub-service.js","sourceRoot":"","sources":["pact-stub-service.ts"],"names":[],"mappings":";;;;;;AAEA,6EAAgD;AAChD,8CAA+C;AAE/C,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CACnC,yBAAU,CAAC,YAAY,EACvB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EACrB;IACE,KAAK,EAAE,SAAS;CACjB,CACF,CAAC,MAAM,CAAC;AACT,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"pact-stub-service.js","sourceRoot":"","sources":["pact-stub-service.ts"],"names":[],"mappings":";;;;;;AAEA,6EAAgD;AAChD,8CAA+C;AAE/C,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CACnC,yBAAU,CAAC,YAAY,EACvB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EACrB;IACE,KAAK,EAAE,SAAS;CACjB,CACF,CAAC,MAAM,CAAC;AACT,OAAO,CAAC,IAAI,CAAC,MAAgB,CAAC,CAAC"}
package/bin/pact.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pact.js","sourceRoot":"","sources":["pact.ts"],"names":[],"mappings":";;;;;;AAEA,6EAAgD;AAChD,8CAA+C;AAE/C,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CACnC,yBAAU,CAAC,YAAY,EACvB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EACrB;IACE,KAAK,EAAE,SAAS;CACjB,CACF,CAAC,MAAM,CAAC;AACT,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"pact.js","sourceRoot":"","sources":["pact.ts"],"names":[],"mappings":";;;;;;AAEA,6EAAgD;AAChD,8CAA+C;AAE/C,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CACnC,yBAAU,CAAC,YAAY,EACvB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EACrB;IACE,KAAK,EAAE,SAAS;CACjB,CACF,CAAC,MAAM,CAAC;AACT,OAAO,CAAC,IAAI,CAAC,MAAgB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pactflow.js","sourceRoot":"","sources":["pactflow.ts"],"names":[],"mappings":";;;;;;AAEA,6EAAgD;AAChD,8CAA+C;AAE/C,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CACnC,yBAAU,CAAC,gBAAgB,EAC3B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EACrB;IACE,KAAK,EAAE,SAAS;CACjB,CACF,CAAC,MAAM,CAAC;AACT,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"pactflow.js","sourceRoot":"","sources":["pactflow.ts"],"names":[],"mappings":";;;;;;AAEA,6EAAgD;AAChD,8CAA+C;AAE/C,MAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CACnC,yBAAU,CAAC,gBAAgB,EAC3B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EACrB;IACE,KAAK,EAAE,SAAS;CACjB,CACF,CAAC,MAAM,CAAC;AACT,OAAO,CAAC,IAAI,CAAC,MAAgB,CAAC,CAAC"}
package/build/Makefile CHANGED
@@ -318,8 +318,8 @@ ifeq ($(strip $(foreach prefix,$(NO_LOAD),\
318
318
  endif
319
319
 
320
320
  quiet_cmd_regen_makefile = ACTION Regenerating $@
321
- cmd_regen_makefile = cd $(srcdir); /opt/hostedtoolcache/node/16.18.0/x64/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py -fmake --ignore-environment "-Dlibrary=shared_library" "-Dvisibility=default" "-Dnode_root_dir=/home/runner/.cache/node-gyp/16.18.0" "-Dnode_gyp_dir=/opt/hostedtoolcache/node/16.18.0/x64/lib/node_modules/npm/node_modules/node-gyp" "-Dnode_lib_file=/home/runner/.cache/node-gyp/16.18.0/<(target_arch)/node.lib" "-Dmodule_root_dir=/home/runner/work/pact-js-core/pact-js-core" "-Dnode_engine=v8" "--depth=." "-Goutput_dir=." "--generator-output=build" -I/home/runner/work/pact-js-core/pact-js-core/build/config.gypi -I/opt/hostedtoolcache/node/16.18.0/x64/lib/node_modules/npm/node_modules/node-gyp/addon.gypi -I/home/runner/.cache/node-gyp/16.18.0/include/node/common.gypi "--toplevel-dir=." binding.gyp
322
- Makefile: $(srcdir)/binding.gyp $(srcdir)/build/config.gypi $(srcdir)/../../../../../opt/hostedtoolcache/node/16.18.0/x64/lib/node_modules/npm/node_modules/node-gyp/addon.gypi $(srcdir)/../../../.cache/node-gyp/16.18.0/include/node/common.gypi
321
+ cmd_regen_makefile = cd $(srcdir); /opt/hostedtoolcache/node/16.18.1/x64/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py -fmake --ignore-environment "-Dlibrary=shared_library" "-Dvisibility=default" "-Dnode_root_dir=/home/runner/.cache/node-gyp/16.18.1" "-Dnode_gyp_dir=/opt/hostedtoolcache/node/16.18.1/x64/lib/node_modules/npm/node_modules/node-gyp" "-Dnode_lib_file=/home/runner/.cache/node-gyp/16.18.1/<(target_arch)/node.lib" "-Dmodule_root_dir=/home/runner/work/pact-js-core/pact-js-core" "-Dnode_engine=v8" "--depth=." "-Goutput_dir=." "--generator-output=build" -I/home/runner/work/pact-js-core/pact-js-core/build/config.gypi -I/opt/hostedtoolcache/node/16.18.1/x64/lib/node_modules/npm/node_modules/node-gyp/addon.gypi -I/home/runner/.cache/node-gyp/16.18.1/include/node/common.gypi "--toplevel-dir=." binding.gyp
322
+ Makefile: $(srcdir)/binding.gyp $(srcdir)/build/config.gypi $(srcdir)/../../../../../opt/hostedtoolcache/node/16.18.1/x64/lib/node_modules/npm/node_modules/node-gyp/addon.gypi $(srcdir)/../../../.cache/node-gyp/16.18.1/include/node/common.gypi
323
323
  $(call do_cmd,regen_makefile)
324
324
 
325
325
  # "all" is a concatenation of the "all" targets from all the included
@@ -42,13 +42,13 @@ CFLAGS_CC_Debug := \
42
42
  -Werror
43
43
 
44
44
  INCS_Debug := \
45
- -I/home/runner/.cache/node-gyp/16.18.0/include/node \
46
- -I/home/runner/.cache/node-gyp/16.18.0/src \
47
- -I/home/runner/.cache/node-gyp/16.18.0/deps/openssl/config \
48
- -I/home/runner/.cache/node-gyp/16.18.0/deps/openssl/openssl/include \
49
- -I/home/runner/.cache/node-gyp/16.18.0/deps/uv/include \
50
- -I/home/runner/.cache/node-gyp/16.18.0/deps/zlib \
51
- -I/home/runner/.cache/node-gyp/16.18.0/deps/v8/include \
45
+ -I/home/runner/.cache/node-gyp/16.18.1/include/node \
46
+ -I/home/runner/.cache/node-gyp/16.18.1/src \
47
+ -I/home/runner/.cache/node-gyp/16.18.1/deps/openssl/config \
48
+ -I/home/runner/.cache/node-gyp/16.18.1/deps/openssl/openssl/include \
49
+ -I/home/runner/.cache/node-gyp/16.18.1/deps/uv/include \
50
+ -I/home/runner/.cache/node-gyp/16.18.1/deps/zlib \
51
+ -I/home/runner/.cache/node-gyp/16.18.1/deps/v8/include \
52
52
  -I$(srcdir)/node_modules/node-addon-api \
53
53
  -I/home/runner/work/pact-js-core/pact-js-core/native \
54
54
  -I/home/runner/work/pact-js-core/pact-js-core/ffi
@@ -90,13 +90,13 @@ CFLAGS_CC_Release := \
90
90
  -Werror
91
91
 
92
92
  INCS_Release := \
93
- -I/home/runner/.cache/node-gyp/16.18.0/include/node \
94
- -I/home/runner/.cache/node-gyp/16.18.0/src \
95
- -I/home/runner/.cache/node-gyp/16.18.0/deps/openssl/config \
96
- -I/home/runner/.cache/node-gyp/16.18.0/deps/openssl/openssl/include \
97
- -I/home/runner/.cache/node-gyp/16.18.0/deps/uv/include \
98
- -I/home/runner/.cache/node-gyp/16.18.0/deps/zlib \
99
- -I/home/runner/.cache/node-gyp/16.18.0/deps/v8/include \
93
+ -I/home/runner/.cache/node-gyp/16.18.1/include/node \
94
+ -I/home/runner/.cache/node-gyp/16.18.1/src \
95
+ -I/home/runner/.cache/node-gyp/16.18.1/deps/openssl/config \
96
+ -I/home/runner/.cache/node-gyp/16.18.1/deps/openssl/openssl/include \
97
+ -I/home/runner/.cache/node-gyp/16.18.1/deps/uv/include \
98
+ -I/home/runner/.cache/node-gyp/16.18.1/deps/zlib \
99
+ -I/home/runner/.cache/node-gyp/16.18.1/deps/v8/include \
100
100
  -I$(srcdir)/node_modules/node-addon-api \
101
101
  -I/home/runner/work/pact-js-core/pact-js-core/native \
102
102
  -I/home/runner/work/pact-js-core/pact-js-core/ffi
Binary file
Binary file
Binary file
Binary file
Binary file
package/ffi/pact-cpp.h CHANGED
@@ -17,6 +17,36 @@
17
17
  #include <ostream>
18
18
  #include <new>
19
19
 
20
+ /**
21
+ * The type of value detected after parsing the expression
22
+ */
23
+ enum class ExpressionValueType {
24
+ /**
25
+ * If the type is unknown
26
+ */
27
+ ExpressionValueType_Unknown,
28
+ /**
29
+ * String type
30
+ */
31
+ ExpressionValueType_String,
32
+ /**
33
+ * Numeric type
34
+ */
35
+ ExpressionValueType_Number,
36
+ /**
37
+ * Integer numeric type (no significant figures after the decimal point)
38
+ */
39
+ ExpressionValueType_Integer,
40
+ /**
41
+ * Decimal numeric type (at least one significant figure after the decimal point)
42
+ */
43
+ ExpressionValueType_Decimal,
44
+ /**
45
+ * Boolean type
46
+ */
47
+ ExpressionValueType_Boolean,
48
+ };
49
+
20
50
  /**
21
51
  * Request or Response enum
22
52
  */
@@ -81,6 +111,26 @@ enum class PactSpecification {
81
111
  */
82
112
  struct Consumer;
83
113
 
114
+ /**
115
+ * Trait to represent a generator
116
+ */
117
+ struct Generator;
118
+
119
+ /**
120
+ * Set of all matching rules
121
+ */
122
+ struct MatchingRule;
123
+
124
+ /**
125
+ * Result of parsing a matching rule definition
126
+ */
127
+ struct MatchingRuleDefinitionResult;
128
+
129
+ /**
130
+ * An iterator over the matching rules from a matching definition expression.
131
+ */
132
+ struct MatchingRuleIterator;
133
+
84
134
  /**
85
135
  * Struct that defines a message.
86
136
  */
@@ -129,6 +179,11 @@ struct Mismatches;
129
179
  */
130
180
  struct MismatchesIterator;
131
181
 
182
+ /**
183
+ * Opaque type for use as a pointer to a Pact model
184
+ */
185
+ struct Pact;
186
+
132
187
  /**
133
188
  * An iterator over messages in a pact.
134
189
  */
@@ -228,6 +283,65 @@ struct ProviderStateParamPair {
228
283
  const char *value;
229
284
  };
230
285
 
286
+ /**
287
+ * The matching rule or reference from parsing the matching definition expression.
288
+ *
289
+ * For matching rules, the ID corresponds to the following rules:
290
+ * | Rule | ID |
291
+ * | ---- | -- |
292
+ * | Equality | 1 |
293
+ * | Regex | 2 |
294
+ * | Type | 3 |
295
+ * | MinType | 4 |
296
+ * | MaxType | 5 |
297
+ * | MinMaxType | 6 |
298
+ * | Timestamp | 7 |
299
+ * | Time | 8 |
300
+ * | Date | 9 |
301
+ * | Include | 10 |
302
+ * | Number | 11 |
303
+ * | Integer | 12 |
304
+ * | Decimal | 13 |
305
+ * | Null | 14 |
306
+ * | ContentType | 15 |
307
+ * | ArrayContains | 16 |
308
+ * | Values | 17 |
309
+ * | Boolean | 18 |
310
+ * | StatusCode | 19 |
311
+ * | NotEmpty | 20 |
312
+ * | Semver | 21 |
313
+ * | EachKey | 22 |
314
+ * | EachValue | 23 |
315
+ */
316
+ struct MatchingRuleResult {
317
+ enum class Tag {
318
+ /**
319
+ * The matching rule from the expression.
320
+ */
321
+ MatchingRuleResult_MatchingRule,
322
+ /**
323
+ * A reference to a named item.
324
+ */
325
+ MatchingRuleResult_MatchingReference,
326
+ };
327
+
328
+ struct MatchingRuleResult_MatchingRule_Body {
329
+ uint16_t _0;
330
+ const char *_1;
331
+ const MatchingRule *_2;
332
+ };
333
+
334
+ struct MatchingRuleResult_MatchingReference_Body {
335
+ const char *_0;
336
+ };
337
+
338
+ Tag tag;
339
+ union {
340
+ MatchingRuleResult_MatchingRule_Body matching_rule;
341
+ MatchingRuleResult_MatchingReference_Body matching_reference;
342
+ };
343
+ };
344
+
231
345
  /**
232
346
  * Wraps a Pact model struct
233
347
  */
@@ -529,6 +643,21 @@ int pactffi_logger_apply();
529
643
  */
530
644
  const char *pactffi_fetch_log_buffer(const char *log_id);
531
645
 
646
+ /**
647
+ * Parses the provided JSON into a Pact model. The returned Pact model must be freed with the
648
+ * `pactffi_pact_model_delete` function when no longer needed.
649
+ *
650
+ * # Error Handling
651
+ *
652
+ * This function will return a NULL pointer if passed a NULL pointer or if an error occurs.
653
+ */
654
+ Pact *pactffi_parse_pact_json(const char *json);
655
+
656
+ /**
657
+ * Frees the memory used by the Pact model
658
+ */
659
+ void pactffi_pact_model_delete(Pact *pact);
660
+
532
661
  /**
533
662
  * Get a copy of this consumer's name.
534
663
  *
@@ -1766,6 +1895,144 @@ const ProviderState *pactffi_sync_http_get_provider_state(const SynchronousHttp
1766
1895
  */
1767
1896
  ProviderStateIterator *pactffi_sync_http_get_provider_state_iter(SynchronousHttp *interaction);
1768
1897
 
1898
+ /**
1899
+ * Parse a matcher definition string into a MatchingRuleDefinition containing the example value,
1900
+ * and matching rules and any generator.
1901
+ *
1902
+ * The following are examples of matching rule definitions:
1903
+ * * `matching(type,'Name')` - type matcher with string value 'Name'
1904
+ * * `matching(number,100)` - number matcher
1905
+ * * `matching(datetime, 'yyyy-MM-dd','2000-01-01')` - datetime matcher with format string
1906
+ *
1907
+ * See [Matching Rule definition expressions](https://docs.rs/pact_models/latest/pact_models/matchingrules/expressions/index.html).
1908
+ *
1909
+ * The returned value needs to be freed up with the `pactffi_matcher_definition_delete` function.
1910
+ *
1911
+ * # Errors
1912
+ * If the expression is invalid, the MatchingRuleDefinition error will be set. You can check for
1913
+ * this value with the `pactffi_matcher_definition_error` function.
1914
+ *
1915
+ * # Safety
1916
+ *
1917
+ * This function is safe if the expression is a valid NULL terminated string pointer.
1918
+ */
1919
+ const MatchingRuleDefinitionResult *pactffi_parse_matcher_definition(const char *expression);
1920
+
1921
+ /**
1922
+ * Returns any error message from parsing a matching definition expression. If there is no error,
1923
+ * it will return a NULL pointer, otherwise returns the error message as a NULL-terminated string.
1924
+ * The returned string must be freed using the `pactffi_string_delete` function once done with it.
1925
+ */
1926
+ const char *pactffi_matcher_definition_error(const MatchingRuleDefinitionResult *definition);
1927
+
1928
+ /**
1929
+ * Returns the value from parsing a matching definition expression. If there was an error,
1930
+ * it will return a NULL pointer, otherwise returns the value as a NULL-terminated string.
1931
+ * The returned string must be freed using the `pactffi_string_delete` function once done with it.
1932
+ *
1933
+ * Note that different expressions values can have types other than a string. Use
1934
+ * `pactffi_matcher_definition_value_type` to get the actual type of the value. This function
1935
+ * will always return the string representation of the value.
1936
+ */
1937
+ const char *pactffi_matcher_definition_value(const MatchingRuleDefinitionResult *definition);
1938
+
1939
+ /**
1940
+ * Frees the memory used by the result of parsing the matching definition expression
1941
+ */
1942
+ void pactffi_matcher_definition_delete(const MatchingRuleDefinitionResult *definition);
1943
+
1944
+ /**
1945
+ * Returns the generator from parsing a matching definition expression. If there was an error or
1946
+ * there is no associated generator, it will return a NULL pointer, otherwise returns the generator
1947
+ * as a pointer.
1948
+ *
1949
+ * The generator pointer will be a valid pointer as long as `pactffi_matcher_definition_delete`
1950
+ * has not been called on the definition. Using the generator pointer after the definition
1951
+ * has been deleted will result in undefined behaviour.
1952
+ */
1953
+ const Generator *pactffi_matcher_definition_generator(const MatchingRuleDefinitionResult *definition);
1954
+
1955
+ /**
1956
+ * Returns the type of the value from parsing a matching definition expression. If there was an
1957
+ * error parsing the expression, it will return Unknown.
1958
+ */
1959
+ ExpressionValueType pactffi_matcher_definition_value_type(const MatchingRuleDefinitionResult *definition);
1960
+
1961
+ /**
1962
+ * Free the iterator when you're done using it.
1963
+ */
1964
+ void pactffi_matching_rule_iter_delete(MatchingRuleIterator *iter);
1965
+
1966
+ /**
1967
+ * Returns an iterator over the matching rules from the parsed definition. The iterator needs to
1968
+ * be deleted with the `pactffi_matching_rule_iter_delete` function once done with it.
1969
+ *
1970
+ * If there was an error parsing the expression, this function will return a NULL pointer.
1971
+ */
1972
+ MatchingRuleIterator *pactffi_matcher_definition_iter(const MatchingRuleDefinitionResult *definition);
1973
+
1974
+ /**
1975
+ * Get the next matching rule or reference from the iterator. As the values returned are owned
1976
+ * by the iterator, they do not need to be deleted but will be cleaned up when the iterator is
1977
+ * deleted.
1978
+ *
1979
+ * Will return a NULL pointer when the iterator has advanced past the end of the list.
1980
+ *
1981
+ * # Safety
1982
+ *
1983
+ * This function is safe.
1984
+ *
1985
+ * # Error Handling
1986
+ *
1987
+ * This function will return a NULL pointer if passed a NULL pointer or if an error occurs.
1988
+ */
1989
+ const MatchingRuleResult *pactffi_matching_rule_iter_next(MatchingRuleIterator *iter);
1990
+
1991
+ /**
1992
+ * Get the JSON form of the matching rule.
1993
+ *
1994
+ * The returned string must be deleted with `pactffi_string_delete`.
1995
+ *
1996
+ * # Safety
1997
+ *
1998
+ * This function will fail if it is passed a NULL pointer, or the iterator that owns the
1999
+ * value of the matching rule has been deleted.
2000
+ */
2001
+ const char *pactffi_matching_rule_to_json(const MatchingRule *rule);
2002
+
2003
+ /**
2004
+ * Get the JSON form of the generator.
2005
+ *
2006
+ * The returned string must be deleted with `pactffi_string_delete`.
2007
+ *
2008
+ * # Safety
2009
+ *
2010
+ * This function will fail if it is passed a NULL pointer, or the owner of the generator has
2011
+ * been deleted.
2012
+ */
2013
+ const char *pactffi_generator_to_json(const Generator *generator);
2014
+
2015
+ /**
2016
+ * Generate a string value using the provided generator and an optional JSON payload containing
2017
+ * any generator context. The context value is used for generators like `MockServerURL` (which
2018
+ * should contain details about the running mock server) and `ProviderStateGenerator` (which
2019
+ * should be the values returned from the Provider State callback function).
2020
+ *
2021
+ * If anything goes wrong, it will return a NULL pointer.
2022
+ */
2023
+ const char *pactffi_generator_generate_string(const Generator *generator, const char *context_json);
2024
+
2025
+ /**
2026
+ * Generate an integer value using the provided generator and an optional JSON payload containing
2027
+ * any generator context. The context value is used for generators like `ProviderStateGenerator`
2028
+ * (which should be the values returned from the Provider State callback function).
2029
+ *
2030
+ * If anything goes wrong or the generator is not a type that can generate an integer value, it
2031
+ * will return a zero value.
2032
+ */
2033
+ unsigned short pactffi_generator_generate_integer(const Generator *generator,
2034
+ const char *context_json);
2035
+
1769
2036
  /**
1770
2037
  * Delete a string previously returned by this FFI.
1771
2038
  *
package/ffi/pact.h CHANGED
@@ -16,6 +16,36 @@
16
16
  #include <stdint.h>
17
17
  #include <stdlib.h>
18
18
 
19
+ /**
20
+ * The type of value detected after parsing the expression
21
+ */
22
+ typedef enum ExpressionValueType {
23
+ /**
24
+ * If the type is unknown
25
+ */
26
+ ExpressionValueType_Unknown,
27
+ /**
28
+ * String type
29
+ */
30
+ ExpressionValueType_String,
31
+ /**
32
+ * Numeric type
33
+ */
34
+ ExpressionValueType_Number,
35
+ /**
36
+ * Integer numeric type (no significant figures after the decimal point)
37
+ */
38
+ ExpressionValueType_Integer,
39
+ /**
40
+ * Decimal numeric type (at least one significant figure after the decimal point)
41
+ */
42
+ ExpressionValueType_Decimal,
43
+ /**
44
+ * Boolean type
45
+ */
46
+ ExpressionValueType_Boolean,
47
+ } ExpressionValueType;
48
+
19
49
  /**
20
50
  * Request or Response enum
21
51
  */
@@ -80,6 +110,26 @@ typedef enum PactSpecification {
80
110
  */
81
111
  typedef struct Consumer Consumer;
82
112
 
113
+ /**
114
+ * Trait to represent a generator
115
+ */
116
+ typedef struct Generator Generator;
117
+
118
+ /**
119
+ * Set of all matching rules
120
+ */
121
+ typedef struct MatchingRule MatchingRule;
122
+
123
+ /**
124
+ * Result of parsing a matching rule definition
125
+ */
126
+ typedef struct MatchingRuleDefinitionResult MatchingRuleDefinitionResult;
127
+
128
+ /**
129
+ * An iterator over the matching rules from a matching definition expression.
130
+ */
131
+ typedef struct MatchingRuleIterator MatchingRuleIterator;
132
+
83
133
  /**
84
134
  * Struct that defines a message.
85
135
  */
@@ -128,6 +178,11 @@ typedef struct Mismatches Mismatches;
128
178
  */
129
179
  typedef struct MismatchesIterator MismatchesIterator;
130
180
 
181
+ /**
182
+ * Opaque type for use as a pointer to a Pact model
183
+ */
184
+ typedef struct Pact Pact;
185
+
131
186
  /**
132
187
  * An iterator over messages in a pact.
133
188
  */
@@ -227,6 +282,63 @@ typedef struct ProviderStateParamPair {
227
282
  const char *value;
228
283
  } ProviderStateParamPair;
229
284
 
285
+ /**
286
+ * The matching rule or reference from parsing the matching definition expression.
287
+ *
288
+ * For matching rules, the ID corresponds to the following rules:
289
+ * | Rule | ID |
290
+ * | ---- | -- |
291
+ * | Equality | 1 |
292
+ * | Regex | 2 |
293
+ * | Type | 3 |
294
+ * | MinType | 4 |
295
+ * | MaxType | 5 |
296
+ * | MinMaxType | 6 |
297
+ * | Timestamp | 7 |
298
+ * | Time | 8 |
299
+ * | Date | 9 |
300
+ * | Include | 10 |
301
+ * | Number | 11 |
302
+ * | Integer | 12 |
303
+ * | Decimal | 13 |
304
+ * | Null | 14 |
305
+ * | ContentType | 15 |
306
+ * | ArrayContains | 16 |
307
+ * | Values | 17 |
308
+ * | Boolean | 18 |
309
+ * | StatusCode | 19 |
310
+ * | NotEmpty | 20 |
311
+ * | Semver | 21 |
312
+ * | EachKey | 22 |
313
+ * | EachValue | 23 |
314
+ */
315
+ typedef enum MatchingRuleResult_Tag {
316
+ /**
317
+ * The matching rule from the expression.
318
+ */
319
+ MatchingRuleResult_MatchingRule,
320
+ /**
321
+ * A reference to a named item.
322
+ */
323
+ MatchingRuleResult_MatchingReference,
324
+ } MatchingRuleResult_Tag;
325
+
326
+ typedef struct MatchingRuleResult_MatchingRule_Body {
327
+ uint16_t _0;
328
+ const char *_1;
329
+ const struct MatchingRule *_2;
330
+ } MatchingRuleResult_MatchingRule_Body;
331
+
332
+ typedef struct MatchingRuleResult {
333
+ MatchingRuleResult_Tag tag;
334
+ union {
335
+ MatchingRuleResult_MatchingRule_Body matching_rule;
336
+ struct {
337
+ const char *matching_reference;
338
+ };
339
+ };
340
+ } MatchingRuleResult;
341
+
230
342
  /**
231
343
  * Wraps a Pact model struct
232
344
  */
@@ -523,6 +635,21 @@ int pactffi_logger_apply(void);
523
635
  */
524
636
  const char *pactffi_fetch_log_buffer(const char *log_id);
525
637
 
638
+ /**
639
+ * Parses the provided JSON into a Pact model. The returned Pact model must be freed with the
640
+ * `pactffi_pact_model_delete` function when no longer needed.
641
+ *
642
+ * # Error Handling
643
+ *
644
+ * This function will return a NULL pointer if passed a NULL pointer or if an error occurs.
645
+ */
646
+ struct Pact *pactffi_parse_pact_json(const char *json);
647
+
648
+ /**
649
+ * Frees the memory used by the Pact model
650
+ */
651
+ void pactffi_pact_model_delete(struct Pact *pact);
652
+
526
653
  /**
527
654
  * Get a copy of this consumer's name.
528
655
  *
@@ -1764,6 +1891,145 @@ const struct ProviderState *pactffi_sync_http_get_provider_state(const struct Sy
1764
1891
  */
1765
1892
  struct ProviderStateIterator *pactffi_sync_http_get_provider_state_iter(struct SynchronousHttp *interaction);
1766
1893
 
1894
+ /**
1895
+ * Parse a matcher definition string into a MatchingRuleDefinition containing the example value,
1896
+ * and matching rules and any generator.
1897
+ *
1898
+ * The following are examples of matching rule definitions:
1899
+ * * `matching(type,'Name')` - type matcher with string value 'Name'
1900
+ * * `matching(number,100)` - number matcher
1901
+ * * `matching(datetime, 'yyyy-MM-dd','2000-01-01')` - datetime matcher with format string
1902
+ *
1903
+ * See [Matching Rule definition expressions](https://docs.rs/pact_models/latest/pact_models/matchingrules/expressions/index.html).
1904
+ *
1905
+ * The returned value needs to be freed up with the `pactffi_matcher_definition_delete` function.
1906
+ *
1907
+ * # Errors
1908
+ * If the expression is invalid, the MatchingRuleDefinition error will be set. You can check for
1909
+ * this value with the `pactffi_matcher_definition_error` function.
1910
+ *
1911
+ * # Safety
1912
+ *
1913
+ * This function is safe if the expression is a valid NULL terminated string pointer.
1914
+ */
1915
+ const struct MatchingRuleDefinitionResult *pactffi_parse_matcher_definition(const char *expression);
1916
+
1917
+ /**
1918
+ * Returns any error message from parsing a matching definition expression. If there is no error,
1919
+ * it will return a NULL pointer, otherwise returns the error message as a NULL-terminated string.
1920
+ * The returned string must be freed using the `pactffi_string_delete` function once done with it.
1921
+ */
1922
+ const char *pactffi_matcher_definition_error(const struct MatchingRuleDefinitionResult *definition);
1923
+
1924
+ /**
1925
+ * Returns the value from parsing a matching definition expression. If there was an error,
1926
+ * it will return a NULL pointer, otherwise returns the value as a NULL-terminated string.
1927
+ * The returned string must be freed using the `pactffi_string_delete` function once done with it.
1928
+ *
1929
+ * Note that different expressions values can have types other than a string. Use
1930
+ * `pactffi_matcher_definition_value_type` to get the actual type of the value. This function
1931
+ * will always return the string representation of the value.
1932
+ */
1933
+ const char *pactffi_matcher_definition_value(const struct MatchingRuleDefinitionResult *definition);
1934
+
1935
+ /**
1936
+ * Frees the memory used by the result of parsing the matching definition expression
1937
+ */
1938
+ void pactffi_matcher_definition_delete(const struct MatchingRuleDefinitionResult *definition);
1939
+
1940
+ /**
1941
+ * Returns the generator from parsing a matching definition expression. If there was an error or
1942
+ * there is no associated generator, it will return a NULL pointer, otherwise returns the generator
1943
+ * as a pointer.
1944
+ *
1945
+ * The generator pointer will be a valid pointer as long as `pactffi_matcher_definition_delete`
1946
+ * has not been called on the definition. Using the generator pointer after the definition
1947
+ * has been deleted will result in undefined behaviour.
1948
+ */
1949
+ const struct Generator *pactffi_matcher_definition_generator(const struct MatchingRuleDefinitionResult *definition);
1950
+
1951
+ /**
1952
+ * Returns the type of the value from parsing a matching definition expression. If there was an
1953
+ * error parsing the expression, it will return Unknown.
1954
+ */
1955
+ enum ExpressionValueType pactffi_matcher_definition_value_type(const struct MatchingRuleDefinitionResult *definition);
1956
+
1957
+ /**
1958
+ * Free the iterator when you're done using it.
1959
+ */
1960
+ void pactffi_matching_rule_iter_delete(struct MatchingRuleIterator *iter);
1961
+
1962
+ /**
1963
+ * Returns an iterator over the matching rules from the parsed definition. The iterator needs to
1964
+ * be deleted with the `pactffi_matching_rule_iter_delete` function once done with it.
1965
+ *
1966
+ * If there was an error parsing the expression, this function will return a NULL pointer.
1967
+ */
1968
+ struct MatchingRuleIterator *pactffi_matcher_definition_iter(const struct MatchingRuleDefinitionResult *definition);
1969
+
1970
+ /**
1971
+ * Get the next matching rule or reference from the iterator. As the values returned are owned
1972
+ * by the iterator, they do not need to be deleted but will be cleaned up when the iterator is
1973
+ * deleted.
1974
+ *
1975
+ * Will return a NULL pointer when the iterator has advanced past the end of the list.
1976
+ *
1977
+ * # Safety
1978
+ *
1979
+ * This function is safe.
1980
+ *
1981
+ * # Error Handling
1982
+ *
1983
+ * This function will return a NULL pointer if passed a NULL pointer or if an error occurs.
1984
+ */
1985
+ const struct MatchingRuleResult *pactffi_matching_rule_iter_next(struct MatchingRuleIterator *iter);
1986
+
1987
+ /**
1988
+ * Get the JSON form of the matching rule.
1989
+ *
1990
+ * The returned string must be deleted with `pactffi_string_delete`.
1991
+ *
1992
+ * # Safety
1993
+ *
1994
+ * This function will fail if it is passed a NULL pointer, or the iterator that owns the
1995
+ * value of the matching rule has been deleted.
1996
+ */
1997
+ const char *pactffi_matching_rule_to_json(const struct MatchingRule *rule);
1998
+
1999
+ /**
2000
+ * Get the JSON form of the generator.
2001
+ *
2002
+ * The returned string must be deleted with `pactffi_string_delete`.
2003
+ *
2004
+ * # Safety
2005
+ *
2006
+ * This function will fail if it is passed a NULL pointer, or the owner of the generator has
2007
+ * been deleted.
2008
+ */
2009
+ const char *pactffi_generator_to_json(const struct Generator *generator);
2010
+
2011
+ /**
2012
+ * Generate a string value using the provided generator and an optional JSON payload containing
2013
+ * any generator context. The context value is used for generators like `MockServerURL` (which
2014
+ * should contain details about the running mock server) and `ProviderStateGenerator` (which
2015
+ * should be the values returned from the Provider State callback function).
2016
+ *
2017
+ * If anything goes wrong, it will return a NULL pointer.
2018
+ */
2019
+ const char *pactffi_generator_generate_string(const struct Generator *generator,
2020
+ const char *context_json);
2021
+
2022
+ /**
2023
+ * Generate an integer value using the provided generator and an optional JSON payload containing
2024
+ * any generator context. The context value is used for generators like `ProviderStateGenerator`
2025
+ * (which should be the values returned from the Provider State callback function).
2026
+ *
2027
+ * If anything goes wrong or the generator is not a type that can generate an integer value, it
2028
+ * will return a zero value.
2029
+ */
2030
+ unsigned short pactffi_generator_generate_integer(const struct Generator *generator,
2031
+ const char *context_json);
2032
+
1767
2033
  /**
1768
2034
  * Delete a string previously returned by this FFI.
1769
2035
  *
package/ffi/pact_ffi.dll CHANGED
Binary file
Binary file
@@ -309,7 +309,7 @@ Napi::Value PactffiCreateMockServerForTransport(const Napi::CallbackInfo& info)
309
309
  std::string transport = info[3].As<Napi::String>().Utf8Value();
310
310
  std::string config = info[4].As<Napi::String>().Utf8Value();
311
311
 
312
- uint16_t result = pactffi_create_mock_server_for_transport(pact, addr.c_str(), port, transport.c_str(), config.c_str());
312
+ uint32_t result = pactffi_create_mock_server_for_transport(pact, addr.c_str(), port, transport.c_str(), config.c_str());
313
313
 
314
314
  return Number::New(env, result);
315
315
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pact-foundation/pact-core",
3
- "version": "13.12.1",
3
+ "version": "13.13.0",
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",
@@ -83,7 +83,7 @@
83
83
  "@types/express": "4.11.1",
84
84
  "@types/mkdirp": "^0.5.2",
85
85
  "@types/mocha": "9.0.0",
86
- "@types/node": "9.4.6",
86
+ "@types/node": "^18.11.10",
87
87
  "@types/promise-timeout": "^1.3.0",
88
88
  "@types/rimraf": "^2.0.2",
89
89
  "@types/sinon": "^9.0.11",
package/src/can-deploy.js CHANGED
@@ -94,8 +94,10 @@ class CanDeploy {
94
94
  ...CanDeploy.convertForSpawnBinary(this.options),
95
95
  ], this.__argMapping);
96
96
  const output = [];
97
- instance.stdout.on('data', (l) => output.push(l));
98
- instance.stderr.on('data', (l) => output.push(l));
97
+ if (instance.stdout && instance.stderr) {
98
+ instance.stdout.on('data', (l) => output.push(l));
99
+ instance.stderr.on('data', (l) => output.push(l));
100
+ }
99
101
  instance.once('close', (code) => {
100
102
  const result = output.join('\n');
101
103
  if (this.options.output === 'json') {
@@ -1 +1 @@
1
- {"version":3,"file":"can-deploy.js","sourceRoot":"","sources":["can-deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"can-deploy.js","sourceRoot":"","sources":["can-deploy.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="node" />
2
- export declare type MatchingResult = MatchingResultSuccess | MatchingResultRequestMismatch | MatchingResultRequestNotFound | MatchingResultMissingRequest;
2
+ export declare type MatchingResult = MatchingResultSuccess | MatchingResultRequestMismatch | MatchingResultRequestNotFound | MatchingResultMissingRequest | MatchingResultPlugin;
3
3
  export declare type MatchingResultSuccess = {
4
4
  type: 'request-match';
5
5
  };
@@ -21,7 +21,12 @@ export declare type MatchingResultMissingRequest = {
21
21
  path: string;
22
22
  request: RequestMismatch;
23
23
  };
24
- export declare type Mismatch = MethodMismatch | PathMismatch | StatusMismatch | QueryMismatch | HeaderMismatch | BodyTypeMismatch | BodyMismatch | MetadataMismatch;
24
+ export declare type MatchingResultPlugin = {
25
+ error: string;
26
+ path?: string;
27
+ mismatches: PluginContentMismatch[];
28
+ };
29
+ export declare type Mismatch = MethodMismatch | PathMismatch | StatusMismatch | QueryMismatch | HeaderMismatch | BodyTypeMismatch | BodyMismatch | MetadataMismatch | PluginContentMismatch;
25
30
  export declare type MethodMismatch = {
26
31
  type: 'MethodMismatch';
27
32
  expected: string;
@@ -82,6 +87,13 @@ export declare type RequestMismatch = {
82
87
  query?: Record<string, Array<string>>;
83
88
  body?: string;
84
89
  };
90
+ export declare type PluginContentMismatch = {
91
+ path: string;
92
+ expected?: string;
93
+ actual?: string;
94
+ mismatch: string;
95
+ diff?: string;
96
+ };
85
97
  export declare type PluginInteraction = RequestPluginInteraction & ResponsePluginInteraction & RequestResponsePluginInteraction;
86
98
  export declare type RequestPluginInteraction = {
87
99
  withPluginRequestInteractionContents: (contentType: string, contents: string) => boolean;
@@ -1,7 +1,7 @@
1
1
  import { LogLevel } from '../logger/types';
2
2
  import { Ffi } from './types';
3
3
  declare const ffiLib: Ffi;
4
- export declare const PACT_FFI_VERSION = "0.3.14";
4
+ export declare const PACT_FFI_VERSION = "0.3.15";
5
5
  declare let ffi: typeof ffiLib;
6
6
  export declare const getFfiLib: (logLevel?: LogLevel) => typeof ffi;
7
7
  export {};
package/src/ffi/index.js CHANGED
@@ -23,7 +23,7 @@ exports.getFfiLib = exports.PACT_FFI_VERSION = void 0;
23
23
  const logger_1 = __importStar(require("../logger"));
24
24
  const bindings = require("bindings");
25
25
  const ffiLib = bindings('pact.node');
26
- exports.PACT_FFI_VERSION = '0.3.14';
26
+ exports.PACT_FFI_VERSION = '0.3.15';
27
27
  let ffi;
28
28
  let ffiLogLevel;
29
29
  const initialiseFfi = (logLevel) => {
@@ -1,2 +1,2 @@
1
1
  /// <reference types="node" />
2
- export declare const libName: (library: string, version: string, processArch?: string, processPlatform?: NodeJS.Platform) => string;
2
+ export declare const libName: (library: string, version: string, processArch?: NodeJS.Architecture, processPlatform?: NodeJS.Platform) => string;
package/src/message.js CHANGED
@@ -64,10 +64,12 @@ class Message {
64
64
  const { pactFileWriteMode, content, ...restOptions } = this.options;
65
65
  const instance = spawn_1.default.spawnBinary(pact_standalone_1.default.messageFullPath, [{ pactFileWriteMode }, restOptions], this.__argMapping);
66
66
  const output = [];
67
- instance.stdout.on('data', (l) => output.push(l));
68
- instance.stderr.on('data', (l) => output.push(l));
69
- instance.stdin.write(content);
70
- instance.stdin.end();
67
+ if (instance.stdout && instance.stderr && instance.stdin) {
68
+ instance.stdout.on('data', (l) => output.push(l));
69
+ instance.stderr.on('data', (l) => output.push(l));
70
+ instance.stdin.write(content);
71
+ instance.stdin.end();
72
+ }
71
73
  instance.once('close', (code) => {
72
74
  const o = output.join('\n');
73
75
  logger_1.default.info(o);
@@ -1 +1 @@
1
- {"version":3,"file":"message.js","sourceRoot":"","sources":["message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["message.ts"],"names":[],"mappings":"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"}
package/src/publisher.js CHANGED
@@ -96,8 +96,10 @@ class Publisher {
96
96
  return promise_timeout_1.timeout(new Promise((resolve, reject) => {
97
97
  const instance = spawn_1.default.spawnBinary(pact_standalone_1.default.brokerFullPath, [{ cliVerb: 'publish' }, this.options], this.__argMapping);
98
98
  const output = [];
99
- instance.stdout.on('data', (l) => output.push(l));
100
- instance.stderr.on('data', (l) => output.push(l));
99
+ if (instance.stderr && instance.stdout) {
100
+ instance.stdout.on('data', (l) => output.push(l));
101
+ instance.stderr.on('data', (l) => output.push(l));
102
+ }
101
103
  instance.once('close', (code) => {
102
104
  const o = output.join('\n');
103
105
  const pactUrls = /https?:\/\/.*\/pacts\/.*$/gim.exec(o);
@@ -1 +1 @@
1
- {"version":3,"file":"publisher.js","sourceRoot":"","sources":["publisher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publisher.js","sourceRoot":"","sources":["publisher.ts"],"names":[],"mappings":"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"}
package/src/service.js CHANGED
@@ -125,15 +125,19 @@ class AbstractService extends events.EventEmitter {
125
125
  const match = data.match(/port=([0-9]+)/);
126
126
  if (match && match[1]) {
127
127
  this.options.port = parseInt(match[1], 10);
128
- if (this.__instance) {
128
+ if (this?.__instance?.stdout) {
129
129
  this.__instance.stdout.removeListener('data', catchPort);
130
130
  }
131
131
  logger_1.default.info(`Pact running on port ${this.options.port}`);
132
132
  }
133
133
  };
134
- this.__instance.stdout.on('data', catchPort);
134
+ if (this?.__instance?.stdout) {
135
+ this.__instance.stdout.on('data', catchPort);
136
+ }
137
+ }
138
+ if (this?.__instance?.stderr) {
139
+ this.__instance.stderr.on('data', (data) => logger_1.default.error(`Pact Binary Error: ${data}`));
135
140
  }
136
- this.__instance.stderr.on('data', (data) => logger_1.default.error(`Pact Binary Error: ${data}`));
137
141
  return promise_timeout_1.timeout(this.__waitForServiceUp(), getTimeout(this.options))
138
142
  .then(() => {
139
143
  this.__running = true;
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6BAA8B;AAC9B,yBAA0B;AAC1B,iCAAkC;AAClC,mDAA+C;AAE/C,oDAAgD;AAEhD,qDAAwD;AACxD,iCAAkC;AAClC,0CAA2C;AAC3C,iCAAkC;AAGlC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAErC,MAAM,YAAY,GAAG,EAAE,CAAC;AAExB,MAAM,UAAU,GAAG,CAAC,OAAuB,EAAU,EAAE,CACrD,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;AAE3B,MAAM,gBAAgB,GAAG,CAAC,OAAuB,EAAU,EAAE,CAC3D,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,CAAC;AAQjD,MAAsB,eAAgB,SAAQ,MAAM,CAAC,YAAY;IAkB/D,YACE,OAAe,EACf,OAAuB,EAEvB,UAAe,EACf,OAAwB;QAExB,KAAK,EAAE,CAAC;QAGR,IAAI,OAAO,CAAC,QAAQ,EAAE;YACpB,oBAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAG9B,IAAK,OAAO,CAAC,QAAmB,KAAK,OAAO,EAAE;gBAC5C,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC;aAC5B;iBAAM,IAAK,OAAO,CAAC,QAAmB,KAAK,OAAO,EAAE;gBACnD,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC;aAC5B;YAGD,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAc,CAAC;SAC/D;QAED,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC;QACnC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC;QACrC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC;QAG3C,IAAI,OAAO,CAAC,IAAI,EAAE;YAChB,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACvC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACxC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE;gBAC/C,MAAM,IAAI,KAAK,CACb,eAAe,OAAO,CAAC,IAAI,8BAA8B,CAC1D,CAAC;aACH;YAED,IAAI,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE;gBACrD,gBAAM,CAAC,IAAI,CACT,gHAAgH,CACjH,CAAC;aACH;SACF;QAGD,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAGvC,IACE,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YACpC,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,EACpC;YACA,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;SACH;QAGD,IAAI,OAAO,CAAC,OAAO,EAAE;YACnB,IAAI;gBACF,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACvD;YAAC,OAAO,CAAC,EAAE;gBACV,MAAM,IAAI,KAAK,CACb,6CAA6C,OAAO,CAAC,OAAO,EAAE,CAC/D,CAAC;aACH;SACF;QAED,IAAI,OAAO,CAAC,MAAM,EAAE;YAClB,IAAI;gBACF,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACtD;YAAC,OAAO,CAAC,EAAE;gBACV,MAAM,IAAI,KAAK,CAAC,qCAAqC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;aACxE;SACF;QAGD,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE;YACrC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;SACpB;QAGD,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAGxC,IAAI,OAAO,CAAC,GAAG,EAAE;YACf,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YACxD,IAAI;gBACF,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;aACxC;YAAC,OAAO,CAAC,EAAE;gBAEV,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;aAC1B;SACF;QAGD,IAAI,OAAO,CAAC,IAAI,EAAE;YAChB,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACxC;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;QACzB,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC;IACjC,CAAC;IA5HM,MAAM,KAAK,MAAM;QACtB,OAAO;YACL,WAAW,EAAE,OAAO;YACpB,UAAU,EAAE,MAAM;YAClB,YAAY,EAAE,QAAQ;SACvB,CAAC;IACJ,CAAC;IAwHM,KAAK;QACV,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YAChD,gBAAM,CAAC,IAAI,CACT,gDAAgD,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CACtE,CAAC;YACF,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC9B;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAEjD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YAGtB,MAAM,SAAS,GAAG,CAAC,IAAS,EAAQ,EAAE;gBACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;gBAC1C,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;oBACrB,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC3C,IAAI,IAAI,CAAC,UAAU,EAAE;wBAGnB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;qBAC1D;oBACD,gBAAM,CAAC,IAAI,CAAC,wBAAwB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;iBAC1D;YACH,CAAC,CAAC;YAEF,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;SAC9C;QAED,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CACzC,gBAAM,CAAC,KAAK,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAC3C,CAAC;QAGF,OAAO,yBAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAChE,IAAI,CAAC,GAAG,EAAE;YACT,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACpD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;YACpB,IAAI,GAAG,YAAY,8BAAY,EAAE;gBAC/B,MAAM,IAAI,KAAK,CACb,iDACE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,aAC1C,EAAE,CACH,CAAC;aACH;YACD,MAAM,GAAG,CAAC;QACZ,CAAC,CAAC,CAAC;IACP,CAAC;IAGM,IAAI;QACT,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,OAAO,yBAAO,CACZ,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;aAC7B,IAAI,CAAC,eAAK,CAAC,UAAU,CAAC;aACtB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,EAC1C,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CACzB;aACE,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;YACpB,IAAI,GAAG,YAAY,8BAAY,EAAE;gBAC/B,MAAM,IAAI,KAAK,CACb,gDAAgD,GAAG,GAAG,CACvD,CAAC;aACH;YACD,MAAM,GAAG,CAAC;QACZ,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,EAAE;YACT,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACnD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC;IAGM,MAAM;QACX,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YAErD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAGS,WAAW;QACnB,OAAO,eAAK,CAAC,WAAW,CACtB,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAChE,IAAI,CAAC,YAAY,CAClB,CAAC;IACJ,CAAC;IAGS,kBAAkB;QAC1B,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,MAAM,WAAW,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxD,MAAM,KAAK,GAAG,GAAS,EAAE;gBACvB,IAAI,MAAM,IAAI,YAAY,EAAE;oBAC1B,MAAM,CACJ,IAAI,KAAK,CACP,8CAA8C,YAAY,wBAAwB,CACnF,CACF,CAAC;iBACH;gBAED,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAC/D,CAAC,CAAC;YAEF,MAAM,KAAK,GAAG,GAAS,EAAE;gBACvB,MAAM,EAAE,CAAC;gBACT,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;oBACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;iBACnE;qBAAM;oBACL,KAAK,EAAE,CAAC;iBACT;YACH,CAAC,CAAC;YAEF,KAAK,EAAE,CAAC;QACV,CAAC,CAAC,CAAC;QACH,OAAO,WAAW,CAAC;IACrB,CAAC;IAES,oBAAoB;QAC5B,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,MAAM,YAAY,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACzD,MAAM,KAAK,GAAG,GAAS,EAAE;gBACvB,MAAM,EAAE,CAAC;gBACT,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;oBACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAC5B,GAAG,EAAE;wBACH,IAAI,MAAM,IAAI,YAAY,EAAE;4BAC1B,MAAM,CACJ,IAAI,KAAK,CACP,2CAA2C,YAAY,wBAAwB,CAChF,CACF,CAAC;4BACF,OAAO;yBACR;wBACD,UAAU,CAAC,KAAK,EAAE,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;oBACpD,CAAC,EACD,GAAG,EAAE,CAAC,OAAO,EAAE,CAChB,CAAC;iBACH;qBAAM;oBACL,OAAO,EAAE,CAAC;iBACX;YACH,CAAC,CAAC;YACF,KAAK,EAAE,CAAC;QACV,CAAC,CAAC,CAAC;QAEH,OAAO,YAAY,CAAC;IACtB,CAAC;IAEO,MAAM,CAAC,OAAuB;QACpC,MAAM,MAAM,GAAe;YACzB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,qBAAqB,EAAE,MAAM;gBAC7B,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC;QAEF,IAAI,OAAO,CAAC,GAAG,EAAE;YACf,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,GAAG,CAAC;YAC/C,MAAM,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAClC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;SACtB;QAED,OAAO,MAAM,CACX,KAAK,EACL,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,EACjE,MAAM,CACP,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE;gBAC1B,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aACzD;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AArTD,0CAqTC"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["service.ts"],"names":[],"mappings":"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"}
@@ -50,10 +50,12 @@ class Spawn {
50
50
  logger_1.default.debug(`Starting pact binary '${command}', with arguments [${spawnArgs.join(' ')}]`);
51
51
  logger_1.default.trace(`Environment: ${JSON.stringify(opts)}`);
52
52
  const instance = spawn(command, spawnArgs, opts);
53
- instance.stdout.setEncoding('utf8');
54
- instance.stderr.setEncoding('utf8');
55
- instance.stdout.on('data', logger_1.default.debug.bind(logger_1.default));
56
- instance.stderr.on('data', logger_1.default.debug.bind(logger_1.default));
53
+ if (instance.stderr && instance.stdout) {
54
+ instance.stdout.on('data', logger_1.default.debug.bind(logger_1.default));
55
+ instance.stdout.setEncoding('utf8');
56
+ instance.stderr.setEncoding('utf8');
57
+ instance.stderr.on('data', logger_1.default.debug.bind(logger_1.default));
58
+ }
57
59
  instance.on('error', logger_1.default.error.bind(logger_1.default));
58
60
  instance.once('close', (code) => {
59
61
  if (code !== 0) {
@@ -69,9 +71,11 @@ class Spawn {
69
71
  logger_1.default.info(`Removing Pact process with PID: ${pid}`);
70
72
  binary.removeAllListeners();
71
73
  try {
72
- pact_environment_1.default.isWindows()
73
- ? cp.execSync(`taskkill /f /t /pid ${pid}`)
74
- : process.kill(-pid, 'SIGINT');
74
+ if (pid) {
75
+ pact_environment_1.default.isWindows()
76
+ ? cp.execSync(`taskkill /f /t /pid ${pid}`)
77
+ : process.kill(-pid, 'SIGINT');
78
+ }
75
79
  }
76
80
  catch (e) {
77
81
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"spawn.js","sourceRoot":"","sources":["spawn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spawn.js","sourceRoot":"","sources":["spawn.ts"],"names":[],"mappings":"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"}