@pact-foundation/pact 10.0.0-beta.54 → 10.0.0-beta.57

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 (102) hide show
  1. package/CHANGELOG.md +578 -0
  2. package/CONTRIBUTING.md +1 -1
  3. package/MIGRATION.md +14 -0
  4. package/README.md +79 -29
  5. package/package.json +7 -10
  6. package/src/common/logger.js +2 -2
  7. package/src/common/logger.js.map +1 -1
  8. package/src/common/net.js +9 -7
  9. package/src/common/net.js.map +1 -1
  10. package/src/common/net.spec.js +5 -5
  11. package/src/common/net.spec.js.map +1 -1
  12. package/src/common/request.js +1 -1
  13. package/src/common/request.spec.js +7 -7
  14. package/src/common/request.spec.js.map +1 -1
  15. package/src/dsl/apolloGraphql.js +3 -1
  16. package/src/dsl/apolloGraphql.js.map +1 -1
  17. package/src/dsl/graphql.d.ts +16 -0
  18. package/src/dsl/graphql.js +39 -17
  19. package/src/dsl/graphql.js.map +1 -1
  20. package/src/dsl/graphql.spec.js +3 -3
  21. package/src/dsl/graphql.spec.js.map +1 -1
  22. package/src/dsl/interaction.d.ts +1 -1
  23. package/src/dsl/interaction.js +11 -11
  24. package/src/dsl/interaction.js.map +1 -1
  25. package/src/dsl/interaction.spec.js +2 -2
  26. package/src/dsl/interaction.spec.js.map +1 -1
  27. package/src/dsl/matchers.js +8 -8
  28. package/src/dsl/matchers.js.map +1 -1
  29. package/src/dsl/matchers.spec.js +146 -131
  30. package/src/dsl/matchers.spec.js.map +1 -1
  31. package/src/dsl/mockService.js +5 -5
  32. package/src/dsl/mockService.js.map +1 -1
  33. package/src/dsl/mockService.spec.js +9 -9
  34. package/src/dsl/mockService.spec.js.map +1 -1
  35. package/src/dsl/options.d.ts +1 -0
  36. package/src/dsl/publisher.spec.js +1 -1
  37. package/src/dsl/verifier/index.js +1 -1
  38. package/src/dsl/verifier/proxy/hooks.d.ts +0 -1
  39. package/src/dsl/verifier/proxy/hooks.js +10 -8
  40. package/src/dsl/verifier/proxy/hooks.js.map +1 -1
  41. package/src/dsl/verifier/proxy/index.js +1 -1
  42. package/src/dsl/verifier/proxy/proxy.js +13 -11
  43. package/src/dsl/verifier/proxy/proxy.js.map +1 -1
  44. package/src/dsl/verifier/proxy/proxy.spec.js +2 -2
  45. package/src/dsl/verifier/proxy/proxy.spec.js.map +1 -1
  46. package/src/dsl/verifier/proxy/stateHandler/index.js +1 -1
  47. package/src/dsl/verifier/proxy/stateHandler/setupStates.js +7 -6
  48. package/src/dsl/verifier/proxy/stateHandler/setupStates.js.map +1 -1
  49. package/src/dsl/verifier/proxy/stateHandler/setupStates.spec.js +5 -5
  50. package/src/dsl/verifier/proxy/stateHandler/setupStates.spec.js.map +1 -1
  51. package/src/dsl/verifier/proxy/stateHandler/stateHandler.js +3 -2
  52. package/src/dsl/verifier/proxy/stateHandler/stateHandler.js.map +1 -1
  53. package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js +3 -3
  54. package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js.map +1 -1
  55. package/src/dsl/verifier/proxy/tracer.js +9 -7
  56. package/src/dsl/verifier/proxy/tracer.js.map +1 -1
  57. package/src/dsl/verifier/verifier.js +12 -12
  58. package/src/dsl/verifier/verifier.js.map +1 -1
  59. package/src/dsl/verifier/verifier.spec.js +1 -1
  60. package/src/errors/configurationError.js +3 -1
  61. package/src/errors/configurationError.js.map +1 -1
  62. package/src/errors/graphQLQueryError.js +3 -1
  63. package/src/errors/graphQLQueryError.js.map +1 -1
  64. package/src/errors/matcherError.js +3 -1
  65. package/src/errors/matcherError.js.map +1 -1
  66. package/src/errors/verificationError.js +3 -1
  67. package/src/errors/verificationError.js.map +1 -1
  68. package/src/httpPact/index.js +35 -21
  69. package/src/httpPact/index.js.map +1 -1
  70. package/src/httpPact/tracing.js +5 -4
  71. package/src/httpPact/tracing.js.map +1 -1
  72. package/src/index.js +3 -3
  73. package/src/messageConsumerPact.js +8 -8
  74. package/src/messageConsumerPact.js.map +1 -1
  75. package/src/messageConsumerPact.spec.js +4 -4
  76. package/src/messageConsumerPact.spec.js.map +1 -1
  77. package/src/messageProviderPact.js +18 -15
  78. package/src/messageProviderPact.js.map +1 -1
  79. package/src/messageProviderPact.spec.js +6 -6
  80. package/src/messageProviderPact.spec.js.map +1 -1
  81. package/src/v3/index.js +3 -9
  82. package/src/v3/index.js.map +1 -1
  83. package/src/v3/matchers.d.ts +4 -4
  84. package/src/v3/matchers.js +74 -46
  85. package/src/v3/matchers.js.map +1 -1
  86. package/src/v3/matchers.spec.js +3 -47
  87. package/src/v3/matchers.spec.js.map +1 -1
  88. package/src/v3/pact.d.ts +22 -4
  89. package/src/v3/pact.js +197 -75
  90. package/src/v3/pact.js.map +1 -1
  91. package/src/v3/verifier.d.ts +3 -27
  92. package/src/v3/verifier.js +2 -19
  93. package/src/v3/verifier.js.map +1 -1
  94. package/src/v3/xml/xmlElement.js +3 -1
  95. package/src/v3/xml/xmlElement.js.map +1 -1
  96. package/src/v3/xml/xmlElement.spec.js +7 -7
  97. package/src/v3/xml/xmlElement.spec.js.map +1 -1
  98. package/src/v3/xml/xmlText.js +3 -1
  99. package/src/v3/xml/xmlText.js.map +1 -1
  100. package/test/helper.js +1 -1
  101. package/v3/index.js +1 -1
  102. package/ROADMAP.md +0 -20
package/README.md CHANGED
@@ -53,7 +53,9 @@ Read [Getting started with Pact] for more information for beginners.
53
53
  - [Modify Requests Prior to Verification (Request Filters)](#modify-requests-prior-to-verification-request-filters)
54
54
  - [Lifecycle of a provider verification](#lifecycle-of-a-provider-verification)
55
55
  - [Publishing Pacts to a Broker](#publishing-pacts-to-a-broker)
56
- - [Pact publishing options](#pact-publishing-options)
56
+ - [Publish in npm scripts](#publish-in-npm-scripts)
57
+ - [Publish in a custom script](#publish-in-a-custom-script)
58
+ - [Pact publishing options](#pact-publishing-options)
57
59
  - [Publishing Verification Results to a Pact Broker](#publishing-verification-results-to-a-pact-broker)
58
60
  - [Asynchronous API Testing](#asynchronous-api-testing)
59
61
  - [Consumer](#consumer)
@@ -80,7 +82,9 @@ Read [Getting started with Pact] for more information for beginners.
80
82
  - [Request Filters](#request-filters)
81
83
  - [Provider state callbacks](#provider-state-callbacks)
82
84
  - [Debugging issues with Pact-JS V3](#debugging-issues-with-pact-js-v3)
85
+ - [Debugging](#debugging)
83
86
  - [Troubleshooting / FAQs](#troubleshooting--faqs)
87
+ - [Corporate Proxies / Firewalls](#corporate-proxies--firewalls)
84
88
  - [Alpine + Docker](#alpine--docker)
85
89
  - [Parallel tests](#parallel-tests)
86
90
  - [Splitting tests across multiple files](#splitting-tests-across-multiple-files)
@@ -90,7 +94,6 @@ Read [Getting started with Pact] for more information for beginners.
90
94
  - [Timeout](#timeout)
91
95
  - [Usage with Jest](#usage-with-jest)
92
96
  - [Usage with Angular](#usage-with-angular)
93
- - [Debugging](#debugging)
94
97
  - [Contributing](#contributing)
95
98
  - [Contact](#contact)
96
99
 
@@ -101,6 +104,10 @@ Read [Getting started with Pact] for more information for beginners.
101
104
  ```
102
105
  npm i -S @pact-foundation/pact@latest
103
106
  ```
107
+ <<<<<<< HEAD
108
+ =======
109
+
110
+ >>>>>>> master
104
111
  Make sure the `ignore-scripts` option is disabled, pact uses npm scripts to download further dependencies.
105
112
 
106
113
  ### Do Not Track
@@ -182,6 +189,7 @@ The `Pact` class provides the following high-level APIs, they are listed in the
182
189
  | `spec` | no | number | Pact specification version (defaults to 2) |
183
190
  | `cors` | no | boolean | Allow CORS OPTION requests to be accepted, defaults to false |
184
191
  | `pactfileWriteMode` | no | string | Control how the Pact files are written. Choices: 'overwrite' 'update' or 'none'. Defaults to 'overwrite' |
192
+ | `timeout` | no | number | The time to wait for the mock server to start up in milliseconds. Defaults to 30 seconds (30000) |
185
193
 
186
194
  </details>
187
195
 
@@ -315,13 +323,13 @@ new Verifier(opts).verifyProvider().then(function () {
315
323
  <details><summary>Verification Options</summary>
316
324
 
317
325
  | Parameter | Required? | Type | Description |
318
- | --------------------------- | --------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
326
+ | --------------------------- | --------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | --------------------------------------------------- |
319
327
  | `providerBaseUrl` | true | string | Running API provider host endpoint. |
320
328
  | `pactBrokerUrl` | false | string | Base URL of the Pact Broker from which to retrieve the pacts. Required if `pactUrls` not given. |
321
329
  | `provider` | false | string | Name of the provider if fetching from a Broker |
322
330
  | `consumerVersionSelectors` | false | ConsumerVersionSelector\|array | Using [Selectors](https://docs.pact.io/pact_broker/advanced_topics/consumer_version_selectors/) is a way we specify which pacticipants and versions we want to use when configuring verifications. |
323
- | `consumerVersionTags` | false | array | Retrieve the latest pacts with given tag(s) |
324
- | `providerVersionTags` | false | array | Tag(s) to apply to the provider application |
331
+ | `consumerVersionTags` | false | string\|array | Retrieve the latest pacts with given tag(s) |
332
+ | `providerVersionTags` | false | string\|array | Tag(s) to apply to the provider application |
325
333
  | `includeWipPactsSince` | false | string | Includes pact marked as WIP since this date. String in the format %Y-%m-%d or %Y-%m-%dT%H:%M:%S.000%:z |
326
334
  | `pactUrls` | false | array | Array of local pact file paths or HTTP-based URLs. Required if _not_ using a Pact Broker. |
327
335
  | `providerStatesSetupUrl` | false | string | Deprecated (use URL to send PUT requests to setup a given provider state |
@@ -346,7 +354,7 @@ To dynamically retrieve pacts from a Pact Broker for a provider, provide the bro
346
354
  const opts = {
347
355
  pactBroker: "http://my-broker",
348
356
  provider: "Animal Profile Service",
349
- consumerVersionTag: ["master", "prod"],
357
+ consumerVersionTags: ["master", "test", "prod"],
350
358
  }
351
359
  ```
352
360
 
@@ -364,7 +372,7 @@ To publish the verification results back to the Pact Broker, you need to enable
364
372
  const opts = {
365
373
  publishVerificationResult: true, //generally you'd do something like `process.env.CI === 'true'`
366
374
  providerVersion: "version", //recommended to be the git sha
367
- providerVersionTag: "tag", //optional, recommended to be the git branch
375
+ providerVersionTags: ["tag"], //optional, recommended to be the git branch
368
376
  }
369
377
  ```
370
378
 
@@ -531,6 +539,28 @@ The Broker:
531
539
 
532
540
  [Host your own](https://github.com/pact-foundation/pact_broker), or signup for a free hosted [Pact Broker](https://pactflow.io).
533
541
 
542
+ #### Publish in npm scripts
543
+
544
+ The easiest way to publish pacts to the broker is via an npm script in your package.json:
545
+
546
+ ```
547
+
548
+ "test:publish": "./node_modules/.bin/pact-broker publish <YOUR_PACT_FILES_OR_DIR> --consumer-app-version=\"$(npx @pact-foundation/absolute-version)\" --auto-detect-version-properties --broker-base-url=https://your-broker-url.example.com"
549
+ ```
550
+
551
+ For a full list of the options, see the [CLI usage instructions](https://github.com/pact-foundation/pact-ruby-standalone/releases).
552
+ All CLI binaries are available in npm scripts when using pact-js.
553
+
554
+ If you want to pass your username and password to the broker without including
555
+ them in scripts, you can provide it via the environment variables
556
+ `PACT_BROKER_USERNAME` and `PACT_BROKER_PASSWORD`. If your broker supports an
557
+ access token instead of a password, use the environment variable
558
+ `PACT_BROKER_TOKEN`.
559
+
560
+ #### Publish in a custom script
561
+
562
+ If you require finer control over your pact publication, you can programatically publish in a custom script:
563
+
534
564
  ```js
535
565
  const { Publisher } = require("@pact-foundation/pact")
536
566
  const opts = {
@@ -552,7 +582,7 @@ new Publisher(opts)
552
582
  | -------------------- | :------: | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
553
583
  | `providerBaseUrl` | `false` | string | Running API provider host endpoint. |
554
584
  | `pactFilesOrDirs` | `true` | array of strings | Array of local Pact files or directories containing pact files. Path must be absolute. Required. |
555
- | `pactBroker` | `true` | string | The base URL of the Pact Broker. eg. https://test.pact.dius.com.au. Required. |
585
+ | `pactBroker` | `true` | string | The base URL of the Pact Broker. eg. https://test.pactflow.io. Required. |
556
586
  | `pactBrokerToken` | `false` | string | Bearer token for Pact Broker authentication. Optional. If using Pactflow, you likely need this option |
557
587
  | `pactBrokerUsername` | `false` | string | Username for Pact Broker basic authentication. Optional. If using Pactflow, you most likely need to use `pactBrokerToken` |
558
588
  | `pactBrokerPassword` | `false` | string | Password for Pact Broker basic authentication. Optional. If using Pactflow, you most likely need to use `pactBrokerToken` |
@@ -579,7 +609,7 @@ To publish the verification results back to the Pact Broker, you need to enable
579
609
  const opts = {
580
610
  publishVerificationResult: true, //recommended to only publish from CI by setting the value to `process.env.CI === 'true'`
581
611
  providerVersion: "version", //recommended to be the git sha eg. process.env.MY_CI_COMMIT
582
- providerVersionTag: "tag", //optional, recommended to be the git branch eg. process.env.MY_CI_BRANCH
612
+ providerVersionTags: ["tag"], //optional, recommended to be the git branch eg. process.env.MY_CI_BRANCH
583
613
  }
584
614
  ```
585
615
 
@@ -606,13 +636,14 @@ From a Pact testing point of view, Pact takes the place of the intermediary (MQ/
606
636
  The following test creates a contract for a Dog API handler:
607
637
 
608
638
  ```js
639
+ const path = require("path")
609
640
  const {
610
641
  MessageConsumerPact,
611
642
  synchronousBodyHandler,
612
643
  } = require("@pact-foundation/pact")
613
644
 
614
645
  // 1 Dog API Handler
615
- const dogApiHandler = function(dog) {
646
+ const dogApiHandler = function (dog) {
616
647
  if (!dog.id && !dog.name && !dog.type) {
617
648
  throw new Error("missing fields")
618
649
  }
@@ -672,6 +703,7 @@ A Provider (Producer in messaging parlance) is the system that will be putting a
672
703
  As per the Consumer case, Pact takes the position of the intermediary (MQ/broker) and checks to see whether or not the Provider sends a message that matches the Consumer's expectations.
673
704
 
674
705
  ```js
706
+ const path = require("path")
675
707
  const { MessageProviderPact } = require("@pact-foundation/pact")
676
708
 
677
709
  // 1 Messaging integration client
@@ -1107,7 +1139,7 @@ There is an `XmlBuilder` class that provides a DSL to help construct XML bodies
1107
1139
  for example:
1108
1140
 
1109
1141
  ```javascript
1110
- body: new XmlBuilder("1.0", "UTF-8", "ns1:projects").build(el => {
1142
+ body: new XmlBuilder("1.0", "UTF-8", "ns1:projects").build((el) => {
1111
1143
  el.setAttributes({
1112
1144
  id: "1234",
1113
1145
  "xmlns:ns1": "http://some.namespace/and/more/stuff",
@@ -1120,8 +1152,8 @@ body: new XmlBuilder("1.0", "UTF-8", "ns1:projects").build(el => {
1120
1152
  name: string("Project 1"),
1121
1153
  due: timestamp("yyyy-MM-dd'T'HH:mm:ss.SZ", "2016-02-11T09:46:56.023Z"),
1122
1154
  },
1123
- project => {
1124
- project.appendElement("ns1:tasks", {}, task => {
1155
+ (project) => {
1156
+ project.appendElement("ns1:tasks", {}, (task) => {
1125
1157
  task.eachLike(
1126
1158
  "ns1:task",
1127
1159
  {
@@ -1192,10 +1224,44 @@ stateHandlers: {
1192
1224
 
1193
1225
  You can change the log levels using the `LOG_LEVEL` environment variable.
1194
1226
 
1227
+ ### Debugging
1228
+
1229
+ If your standard tricks don't get you anywhere, setting the logLevel to `debug` and increasing the timeout doesn't help and you don't know where else to look, it could be that the binaries we use to do much of the Pact magic aren't starting as expected.
1230
+
1231
+ Try starting the mock service manually and seeing if it comes up. When submitting a bug report, it would be worth running these commands before hand as it will greatly help us:
1232
+
1233
+ ```
1234
+ ./node_modules/.bin/pact-mock-service
1235
+ ```
1236
+
1237
+ ...and also the verifier (it will whinge about missing params, but that means it works):
1238
+
1239
+ ```
1240
+ ./node_modules/.bin/pact-provider-verifier
1241
+ ```
1242
+
1195
1243
  ## Troubleshooting / FAQs
1196
1244
 
1197
1245
  If you are having issues, a good place to start is setting `logLevel: 'debug'` when configuring the `new Pact({...})` object. This will give you detailed in/out requests as far as Pact sees them during verification.
1198
1246
 
1247
+ ### Corporate Proxies / Firewalls
1248
+
1249
+ If you're on a corporate machine, it's common for all network calls to route through a proxy - even requests that go to your own machine!
1250
+
1251
+ The symptom presents as follows:
1252
+
1253
+ 1. The mock server starts up correctly, as shown by a debug level log message such as this:
1254
+
1255
+ ```
1256
+ [2021-11-22 11:16:01.214 +0000] DEBUG (3863 on Matts-iMac): pact-core@11.0.1: INFO WEBrick::HTTPServer#start: pid=3864 port=50337
1257
+ ```
1258
+
1259
+ 2. You receive a conflicting message such as "The pact mock service doesn't appear to be running" and the tests never run or any before all blocks fail to complete.
1260
+
1261
+ The problem is that the Pact framework attempts to ensure the mock service can be communicated with before the tests run. It does so via an HTTP call, which will be sent via any intermediate proxies if configured. The proxy is unlikely to know how send the request back to your machine, which results in a timeout or error.
1262
+
1263
+ This may be resolved by ensuring the `http_proxy` and `no_proxy` directives are correctly set (usually, by excluding the address of the mock server such as `localhost` or `127.0.0.1`).
1264
+
1199
1265
  ### Alpine + Docker
1200
1266
 
1201
1267
  See https://docs.pact.io/docker/.
@@ -1366,22 +1432,6 @@ You'll need to add the additional header `Access-Control-Expose-Headers`, this w
1366
1432
 
1367
1433
  See [this issue](https://github.com/angular/angular/issues/13554) for background.
1368
1434
 
1369
- ### Debugging
1370
-
1371
- If your standard tricks don't get you anywhere, setting the logLevel to `debug` and increasing the timeout doesn't help and you don't know where else to look, it could be that the binaries we use to do much of the Pact magic aren't starting as expected.
1372
-
1373
- Try starting the mock service manually and seeing if it comes up. When submitting a bug report, it would be worth running these commands before hand as it will greatly help us:
1374
-
1375
- ```
1376
- ./node_modules/.bin/pact-mock-service
1377
- ```
1378
-
1379
- ...and also the verifier (it will whinge about missing params, but that means it works):
1380
-
1381
- ```
1382
- ./node_modules/.bin/pact-provider-verifier
1383
- ```
1384
-
1385
1435
  ## Contributing
1386
1436
 
1387
1437
  1. Fork it
package/package.json CHANGED
@@ -1,13 +1,10 @@
1
1
  {
2
2
  "name": "@pact-foundation/pact",
3
- "version": "10.0.0-beta.54",
3
+ "version": "10.0.0-beta.57",
4
4
  "description": "Pact for all things Javascript",
5
5
  "main": "./src/index.js",
6
6
  "types": "./src/index.d.ts",
7
7
  "scripts": {
8
- "build": "npm run build:v2 && npm run build:v3",
9
- "build:v2": "npm run dist",
10
- "build:v3": "neon build --release",
11
8
  "compile": "rimraf dist && tsc",
12
9
  "clean": "rimraf docs dist coverage .nyc_output logs pacts",
13
10
  "clean:native": "rimraf native/target",
@@ -22,7 +19,6 @@
22
19
  "predist": "npm run clean && npm run format:check && npm run lint",
23
20
  "release": "standard-version -p beta",
24
21
  "test": "nyc --check-coverage --reporter=html --reporter=text-summary mocha",
25
- "postinstall": "node-pre-gyp install --fallback-to-build=false || neon build --release",
26
22
  "package": "npm run native:sha256 && node-pre-gyp package && node-pre-gyp testpackage",
27
23
  "native:sha256": "node ./scripts/calc-sha256.js"
28
24
  },
@@ -63,7 +59,7 @@
63
59
  "bugs": {
64
60
  "url": "https://github.com/pact-foundation/pact-js/issues"
65
61
  },
66
- "homepage": "http://docs.pact.io/documentation/javascript.html",
62
+ "homepage": "https://docs.pact.io/implementation_guides/javascript/",
67
63
  "standard-version": {
68
64
  "types": [
69
65
  {
@@ -101,7 +97,7 @@
101
97
  ]
102
98
  },
103
99
  "dependencies": {
104
- "@pact-foundation/pact-core": "13.3.0",
100
+ "@pact-foundation/pact-core": "13.4.1-beta.17",
105
101
  "@types/bluebird": "^3.5.20",
106
102
  "@types/express": "^4.17.11",
107
103
  "bluebird": "~3.5.1",
@@ -118,10 +114,11 @@
118
114
  "lodash.isundefined": "3.0.1",
119
115
  "lodash.omit": "^4.5.0",
120
116
  "lodash.omitby": "4.6.0",
121
- "@mapbox/node-pre-gyp": "1.0.5",
117
+ "pino-pretty": "^6.0.0",
122
118
  "pkginfo": "^0.4.1",
123
119
  "popsicle": "^9.2.0",
124
- "ramda": "^0.26.1"
120
+ "ramda": "^0.26.1",
121
+ "randexp": "^0.5.3"
125
122
  },
126
123
  "devDependencies": {
127
124
  "@babel/cli": "^7.14.5",
@@ -179,7 +176,7 @@
179
176
  "superagent": "^3.8.2",
180
177
  "ts-mock-imports": "^1.2.6",
181
178
  "ts-node": "^3.3.0",
182
- "typescript": "^3.8.3"
179
+ "typescript": "^4.2.4"
183
180
  },
184
181
  "binary": {
185
182
  "module_name": "index",
@@ -7,7 +7,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
7
7
  o[k2] = m[k];
8
8
  }));
9
9
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
11
  };
12
12
  var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -16,7 +16,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
16
16
  var logger_1 = __importDefault(require("@pact-foundation/pact-core/src/logger"));
17
17
  var package_json_1 = require("../../package.json");
18
18
  __exportStar(require("@pact-foundation/pact-core/src/logger"), exports);
19
- var context = "pact@" + package_json_1.version;
19
+ var context = "pact@".concat(package_json_1.version);
20
20
  exports.default = {
21
21
  pactCrash: function (message) { return logger_1.default.pactCrash(message, context); },
22
22
  error: function (message) { return logger_1.default.error(message, context); },
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/common/logger.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iFAA2D;AAE3D,mDAA6C;AAE7C,wEAAsD;AAEtD,IAAM,OAAO,GAAG,UAAQ,sBAAS,CAAC;AAElC,kBAAe;IACb,SAAS,EAAE,UAAC,OAAe,IAAW,OAAA,gBAAM,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,EAAlC,CAAkC;IACxE,KAAK,EAAE,UAAC,OAAe,IAAW,OAAA,gBAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,EAA9B,CAA8B;IAChE,IAAI,EAAE,UAAC,OAAe,IAAW,OAAA,gBAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAA7B,CAA6B;IAC9D,IAAI,EAAE,UAAC,OAAe,IAAW,OAAA,gBAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAA7B,CAA6B;IAC9D,KAAK,EAAE,UAAC,OAAe,IAAW,OAAA,gBAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,EAA9B,CAA8B;IAChE,KAAK,EAAE,UAAC,OAAe,IAAW,OAAA,gBAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,EAA9B,CAA8B;CACjE,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/common/logger.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iFAA2D;AAE3D,mDAA6C;AAE7C,wEAAsD;AAEtD,IAAM,OAAO,GAAG,eAAQ,sBAAO,CAAE,CAAC;AAElC,kBAAe;IACb,SAAS,EAAE,UAAC,OAAe,IAAW,OAAA,gBAAM,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,EAAlC,CAAkC;IACxE,KAAK,EAAE,UAAC,OAAe,IAAW,OAAA,gBAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,EAA9B,CAA8B;IAChE,IAAI,EAAE,UAAC,OAAe,IAAW,OAAA,gBAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAA7B,CAA6B;IAC9D,IAAI,EAAE,UAAC,OAAe,IAAW,OAAA,gBAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAA7B,CAA6B;IAC9D,KAAK,EAAE,UAAC,OAAe,IAAW,OAAA,gBAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,EAA9B,CAA8B;IAChE,KAAK,EAAE,UAAC,OAAe,IAAW,OAAA,gBAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,EAA9B,CAA8B;CACjE,CAAC"}
package/src/common/net.js CHANGED
@@ -19,7 +19,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
19
19
  var __importStar = (this && this.__importStar) || function (mod) {
20
20
  if (mod && mod.__esModule) return mod;
21
21
  var result = {};
22
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
23
  __setModuleDefault(result, mod);
24
24
  return result;
25
25
  };
@@ -28,14 +28,14 @@ exports.isPortAvailable = exports.portCheck = exports.localAddresses = void 0;
28
28
  var net = __importStar(require("net"));
29
29
  var bluebird_1 = require("bluebird");
30
30
  exports.localAddresses = ['127.0.0.1', 'localhost', '0.0.0.0', '::1'];
31
- exports.portCheck = function (port, host) {
31
+ var portCheck = function (port, host) {
32
32
  return new Promise(function (resolve, reject) {
33
33
  var server = net
34
34
  .createServer()
35
35
  .listen({ port: port, host: host, exclusive: true })
36
36
  .on('error', function (e) {
37
37
  if (e.code === 'EADDRINUSE') {
38
- reject(new Error("Port " + port + " is unavailable on address " + host));
38
+ reject(new Error("Port ".concat(port, " is unavailable on address ").concat(host)));
39
39
  }
40
40
  else {
41
41
  reject(e);
@@ -46,21 +46,23 @@ exports.portCheck = function (port, host) {
46
46
  });
47
47
  });
48
48
  };
49
- exports.isPortAvailable = function (port, host) {
49
+ exports.portCheck = portCheck;
50
+ var isPortAvailable = function (port, host) {
50
51
  return Promise.resolve(bluebird_1.Promise
51
52
  .map(exports.localAddresses,
52
53
  // we meed to wrap the built-in Promise with bluebird.reflect() so we can
53
54
  // test the result of the promise without failing bluebird.map()
54
- function (h) { return bluebird_1.Promise.resolve(exports.portCheck(port, h)).reflect(); },
55
+ function (h) { return bluebird_1.Promise.resolve((0, exports.portCheck)(port, h)).reflect(); },
55
56
  // do each port check sequentially (as localhost & 127.0.0.1 will conflict on most default environments)
56
57
  { concurrency: 1 })
57
58
  .then(function (inspections) {
58
59
  // if every port check failed, then fail the `isPortAvailable` check
59
60
  if (inspections.every(function (inspection) { return !inspection.isFulfilled(); })) {
60
- return Promise.reject(new Error("Cannot open port " + port + " on ipv4 or ipv6 interfaces"));
61
+ return Promise.reject(new Error("Cannot open port ".concat(port, " on ipv4 or ipv6 interfaces")));
61
62
  }
62
63
  // the local addresses passed - now check the host that the user has specified
63
- return exports.portCheck(port, host);
64
+ return (0, exports.portCheck)(port, host);
64
65
  }));
65
66
  };
67
+ exports.isPortAvailable = isPortAvailable;
66
68
  //# sourceMappingURL=net.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"net.js","sourceRoot":"","sources":["../../../src/common/net.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAA2B;AAC3B,qCAA+C;AAElC,QAAA,cAAc,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AAE9D,QAAA,SAAS,GAAG,UAAC,IAAY,EAAE,IAAY;IAClD,OAAA,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QAC1B,IAAM,MAAM,GAAG,GAAG;aACf,YAAY,EAAE;aACd,MAAM,CAAC,EAAE,IAAI,MAAA,EAAE,IAAI,MAAA,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;aACvC,EAAE,CAAC,OAAO,EAAE,UAAC,CAAwB;YACpC,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,EAAE;gBAC3B,MAAM,CAAC,IAAI,KAAK,CAAC,UAAQ,IAAI,mCAA8B,IAAM,CAAC,CAAC,CAAC;aACrE;iBAAM;gBACL,MAAM,CAAC,CAAC,CAAC,CAAC;aACX;QACH,CAAC,CAAC;aACD,EAAE,CAAC,WAAW,EAAE;YACf,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,cAAM,OAAA,OAAO,EAAE,EAAT,CAAS,CAAC,CAAC,KAAK,EAAE,CAAC;QAChD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;AAdF,CAcE,CAAC;AAEQ,QAAA,eAAe,GAAG,UAAC,IAAY,EAAE,IAAY;IACxD,OAAA,OAAO,CAAC,OAAO,CACb,kBAAQ;SACL,GAAG,CACF,sBAAc;IACd,yEAAyE;IACzE,gEAAgE;IAChE,UAAC,CAAC,IAAK,OAAA,kBAAQ,CAAC,OAAO,CAAC,iBAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAA9C,CAA8C;IACrD,wGAAwG;IACxG,EAAE,WAAW,EAAE,CAAC,EAAE,CACnB;SACA,IAAI,CAAC,UAAC,WAAW;QAChB,oEAAoE;QACpE,IAAI,WAAW,CAAC,KAAK,CAAC,UAAC,UAAU,IAAK,OAAA,CAAC,UAAU,CAAC,WAAW,EAAE,EAAzB,CAAyB,CAAC,EAAE;YAChE,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CAAC,sBAAoB,IAAI,gCAA6B,CAAC,CACjE,CAAC;SACH;QAED,8EAA8E;QAC9E,OAAO,iBAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CACL;AArBD,CAqBC,CAAC"}
1
+ {"version":3,"file":"net.js","sourceRoot":"","sources":["../../../src/common/net.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAA2B;AAC3B,qCAA+C;AAElC,QAAA,cAAc,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AAEpE,IAAM,SAAS,GAAG,UAAC,IAAY,EAAE,IAAY;IAClD,OAAA,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QAC1B,IAAM,MAAM,GAAG,GAAG;aACf,YAAY,EAAE;aACd,MAAM,CAAC,EAAE,IAAI,MAAA,EAAE,IAAI,MAAA,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;aACvC,EAAE,CAAC,OAAO,EAAE,UAAC,CAAwB;YACpC,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,EAAE;gBAC3B,MAAM,CAAC,IAAI,KAAK,CAAC,eAAQ,IAAI,wCAA8B,IAAI,CAAE,CAAC,CAAC,CAAC;aACrE;iBAAM;gBACL,MAAM,CAAC,CAAC,CAAC,CAAC;aACX;QACH,CAAC,CAAC;aACD,EAAE,CAAC,WAAW,EAAE;YACf,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,cAAM,OAAA,OAAO,EAAE,EAAT,CAAS,CAAC,CAAC,KAAK,EAAE,CAAC;QAChD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;AAdF,CAcE,CAAC;AAfQ,QAAA,SAAS,aAejB;AAEE,IAAM,eAAe,GAAG,UAAC,IAAY,EAAE,IAAY;IACxD,OAAA,OAAO,CAAC,OAAO,CACb,kBAAQ;SACL,GAAG,CACF,sBAAc;IACd,yEAAyE;IACzE,gEAAgE;IAChE,UAAC,CAAC,IAAK,OAAA,kBAAQ,CAAC,OAAO,CAAC,IAAA,iBAAS,EAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAA9C,CAA8C;IACrD,wGAAwG;IACxG,EAAE,WAAW,EAAE,CAAC,EAAE,CACnB;SACA,IAAI,CAAC,UAAC,WAAW;QAChB,oEAAoE;QACpE,IAAI,WAAW,CAAC,KAAK,CAAC,UAAC,UAAU,IAAK,OAAA,CAAC,UAAU,CAAC,WAAW,EAAE,EAAzB,CAAyB,CAAC,EAAE;YAChE,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CAAC,2BAAoB,IAAI,gCAA6B,CAAC,CACjE,CAAC;SACH;QAED,8EAA8E;QAC9E,OAAO,IAAA,iBAAS,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CACL;AArBD,CAqBC,CAAC;AAtBS,QAAA,eAAe,mBAsBxB"}
@@ -22,20 +22,20 @@ describe('Net', function () {
22
22
  server.on('error', function (err) { return reject(err); });
23
23
  server.on('listening', function () { return resolve(server); });
24
24
  server.listen({ port: p, host: host, exclusive: true }, function () {
25
- logger_1.default.info("test server is up on " + host + ":" + p);
25
+ logger_1.default.info("test server is up on ".concat(host, ":").concat(p));
26
26
  });
27
27
  });
28
28
  };
29
29
  describe('#isPortAvailable', function () {
30
30
  context('when the port is not allowed to be bound', function () {
31
31
  it('returns a rejected promise', function () {
32
- return expect(net_2.isPortAvailable(specialPort, defaultHost)).to.eventually.be
32
+ return expect((0, net_2.isPortAvailable)(specialPort, defaultHost)).to.eventually.be
33
33
  .rejected;
34
34
  });
35
35
  });
36
36
  context('when the port is available', function () {
37
37
  it('returns a fulfilled promise', function () {
38
- return expect(net_2.isPortAvailable(port, defaultHost)).to.eventually.be.fulfilled;
38
+ return expect((0, net_2.isPortAvailable)(port, defaultHost)).to.eventually.be.fulfilled;
39
39
  });
40
40
  });
41
41
  context('when the port is unavailable', function () {
@@ -43,7 +43,7 @@ describe('Net', function () {
43
43
  it('returns a rejected promise', function () {
44
44
  return createServer(port).then(function (server) {
45
45
  closeFn = server.close.bind(server);
46
- return expect(net_2.isPortAvailable(port, defaultHost)).to.eventually.be
46
+ return expect((0, net_2.isPortAvailable)(port, defaultHost)).to.eventually.be
47
47
  .rejected;
48
48
  });
49
49
  });
@@ -57,7 +57,7 @@ describe('Net', function () {
57
57
  return createServer(port, '::1').then(function (server) {
58
58
  closeFn = server.close.bind(server);
59
59
  // this should work as the `127.0.0.1` is NOT `::1`
60
- return expect(net_2.isPortAvailable(port, '127.0.0.1')).to.eventually.be
60
+ return expect((0, net_2.isPortAvailable)(port, '127.0.0.1')).to.eventually.be
61
61
  .fulfilled;
62
62
  });
63
63
  });
@@ -1 +1 @@
1
- {"version":3,"file":"net.spec.js","sourceRoot":"","sources":["../../../src/common/net.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"net.spec.js","sourceRoot":"","sources":["../../../src/common/net.spec.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
14
14
  var __importStar = (this && this.__importStar) || function (mod) {
15
15
  if (mod && mod.__esModule) return mod;
16
16
  var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
18
  __setModuleDefault(result, mod);
19
19
  return result;
20
20
  };
@@ -12,8 +12,8 @@ var expect = chai_1.default.expect;
12
12
  describe('Request', function () {
13
13
  var request;
14
14
  var port = 1024 + Math.floor(Math.random() * 5000);
15
- var url = "http://localhost:" + port;
16
- var urlSecure = "https://localhost:" + port;
15
+ var url = "http://localhost:".concat(port);
16
+ var urlSecure = "https://localhost:".concat(port);
17
17
  beforeEach(function () {
18
18
  request = new request_1.Request();
19
19
  });
@@ -21,7 +21,7 @@ describe('Request', function () {
21
21
  afterEach(function () { return nock_1.default.cleanAll(); });
22
22
  describe('Promise', function () {
23
23
  it('returns a promise', function () {
24
- nock_1.default(url).get('/').reply(200);
24
+ (0, nock_1.default)(url).get('/').reply(200);
25
25
  var r = request.send(request_1.HTTPMethods.GET, url);
26
26
  return Promise.all([
27
27
  expect(r).is.ok,
@@ -32,7 +32,7 @@ describe('Request', function () {
32
32
  });
33
33
  it('resolves when request succeeds with response body', function () {
34
34
  var body = 'body';
35
- nock_1.default(url).get('/').reply(200, body);
35
+ (0, nock_1.default)(url).get('/').reply(200, body);
36
36
  var p = request.send(request_1.HTTPMethods.GET, url);
37
37
  return Promise.all([
38
38
  expect(p).to.be.fulfilled,
@@ -41,14 +41,14 @@ describe('Request', function () {
41
41
  });
42
42
  it('rejects when request fails with error message', function () {
43
43
  var error = 'error';
44
- nock_1.default(url).get('/').reply(400, error);
44
+ (0, nock_1.default)(url).get('/').reply(400, error);
45
45
  var p = request.send(request_1.HTTPMethods.GET, url);
46
46
  return expect(p).to.be.rejectedWith(error);
47
47
  });
48
48
  });
49
49
  describe('Headers', function () {
50
50
  it('sends Pact headers are sent with every request', function () {
51
- nock_1.default(url)
51
+ (0, nock_1.default)(url)
52
52
  .matchHeader('X-Pact-Mock-Service', 'true')
53
53
  .get('/')
54
54
  .reply(200);
@@ -57,7 +57,7 @@ describe('Request', function () {
57
57
  });
58
58
  describe('SSL', function () {
59
59
  it('ignores self signed certificate errors', function () {
60
- nock_1.default(urlSecure)
60
+ (0, nock_1.default)(urlSecure)
61
61
  .matchHeader('X-Pact-Mock-Service', 'true')
62
62
  .get('/')
63
63
  .reply(200);
@@ -1 +1 @@
1
- {"version":3,"file":"request.spec.js","sourceRoot":"","sources":["../../../src/common/request.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request.spec.js","sourceRoot":"","sources":["../../../src/common/request.spec.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,12 @@ var __extends = (this && this.__extends) || (function () {
3
3
  var extendStatics = function (d, b) {
4
4
  extendStatics = Object.setPrototypeOf ||
5
5
  ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
7
  return extendStatics(d, b);
8
8
  };
9
9
  return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
10
12
  extendStatics(d, b);
11
13
  function __() { this.constructor = d; }
12
14
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
@@ -1 +1 @@
1
- {"version":3,"file":"apolloGraphql.js","sourceRoot":"","sources":["../../../src/dsl/apolloGraphql.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qCAA+C;AAE/C;IAA8C,4CAAkB;IAC9D;QAAA,YACE,iBAAO,SAGR;QAFC,KAAI,CAAC,SAAS,GAAG,KAAI,CAAC,SAAS,IAAI,EAAE,CAAC;QACtC,KAAI,CAAC,SAAS,GAAG,KAAI,CAAC,SAAS,IAAI,IAAI,CAAC;;IAC1C,CAAC;IACH,+BAAC;AAAD,CAAC,AAND,CAA8C,4BAAkB,GAM/D;AANY,4DAAwB"}
1
+ {"version":3,"file":"apolloGraphql.js","sourceRoot":"","sources":["../../../src/dsl/apolloGraphql.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,qCAA+C;AAE/C;IAA8C,4CAAkB;IAC9D;QAAA,YACE,iBAAO,SAGR;QAFC,KAAI,CAAC,SAAS,GAAG,KAAI,CAAC,SAAS,IAAI,EAAE,CAAC;QACtC,KAAI,CAAC,SAAS,GAAG,KAAI,CAAC,SAAS,IAAI,IAAI,CAAC;;IAC1C,CAAC;IACH,+BAAC;AAAD,CAAC,AAND,CAA8C,4BAAkB,GAM/D;AANY,4DAAwB"}
@@ -36,8 +36,24 @@ export declare class GraphQLInteraction extends Interaction {
36
36
  * }'
37
37
  */
38
38
  withQuery(query: string): this;
39
+ /**
40
+ * The actual GraphQL mutation as a string.
41
+ *
42
+ * NOTE: spaces are not important, Pact will auto-generate a space-insensitive matcher
43
+ *
44
+ * e.g. the value for the "query" field in the GraphQL HTTP payload:
45
+ *
46
+ * mutation CreateReviewForEpisode($ep: Episode!, $review: ReviewInput!) {
47
+ * createReview(episode: $ep, review: $review) {
48
+ * stars
49
+ * commentary
50
+ * }
51
+ * }
52
+ */
53
+ withMutation(mutation: string): this;
39
54
  /**
40
55
  * Returns the interaction object created.
41
56
  */
42
57
  json(): InteractionState;
58
+ private queryOrMutation;
43
59
  }