@pact-foundation/pact 16.4.0 → 17.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +35 -0
- package/README.md +41 -12
- package/package.json +19 -31
- package/scripts/ci/build-and-test.sh +0 -3
- package/scripts/install-plugins.js +104 -0
- package/src/common/graphQL/graphQL.js +1 -1
- package/src/common/graphQL/graphQL.js.map +1 -1
- package/src/common/matchingRules.d.ts +7 -1
- package/src/common/matchingRules.js +21 -1
- package/src/common/matchingRules.js.map +1 -1
- package/src/common/net.spec.js +27 -63
- package/src/common/net.spec.js.map +1 -1
- package/src/common/request.js +1 -1
- package/src/common/request.js.map +1 -1
- package/src/common/request.spec.js +14 -58
- package/src/common/request.spec.js.map +1 -1
- package/src/dsl/apolloGraphql.spec.js +3 -43
- package/src/dsl/apolloGraphql.spec.js.map +1 -1
- package/src/dsl/graphql.d.ts +1 -1
- package/src/dsl/graphql.js +4 -4
- package/src/dsl/graphql.js.map +1 -1
- package/src/dsl/graphql.spec.js +22 -62
- package/src/dsl/graphql.spec.js.map +1 -1
- package/src/dsl/interaction.d.ts +2 -2
- package/src/dsl/interaction.js +1 -1
- package/src/dsl/interaction.js.map +1 -1
- package/src/dsl/interaction.spec.js +40 -70
- package/src/dsl/interaction.spec.js.map +1 -1
- package/src/dsl/matchers.d.ts +1 -2
- package/src/dsl/matchers.js.map +1 -1
- package/src/dsl/matchers.spec.js +95 -96
- package/src/dsl/matchers.spec.js.map +1 -1
- package/src/dsl/message.d.ts +1 -1
- package/src/dsl/options.d.ts +1 -1
- package/src/dsl/verifier/proxy/hooks.spec.js +16 -14
- package/src/dsl/verifier/proxy/hooks.spec.js.map +1 -1
- package/src/dsl/verifier/proxy/messages.js +1 -1
- package/src/dsl/verifier/proxy/messages.js.map +1 -1
- package/src/dsl/verifier/proxy/parseBody.js +1 -1
- package/src/dsl/verifier/proxy/parseBody.js.map +1 -1
- package/src/dsl/verifier/proxy/parseBody.spec.js +14 -47
- package/src/dsl/verifier/proxy/parseBody.spec.js.map +1 -1
- package/src/dsl/verifier/proxy/proxy.js +4 -4
- package/src/dsl/verifier/proxy/proxy.js.map +1 -1
- package/src/dsl/verifier/proxy/proxy.spec.js +6 -48
- package/src/dsl/verifier/proxy/proxy.spec.js.map +1 -1
- package/src/dsl/verifier/proxy/proxyRequest.d.ts +1 -1
- package/src/dsl/verifier/proxy/proxyRequest.js +1 -1
- package/src/dsl/verifier/proxy/proxyRequest.js.map +1 -1
- package/src/dsl/verifier/proxy/proxyRequest.spec.js +18 -53
- package/src/dsl/verifier/proxy/proxyRequest.spec.js.map +1 -1
- package/src/dsl/verifier/proxy/stateHandler/setupStates.d.ts +1 -1
- package/src/dsl/verifier/proxy/stateHandler/setupStates.js.map +1 -1
- package/src/dsl/verifier/proxy/stateHandler/setupStates.spec.js +16 -50
- package/src/dsl/verifier/proxy/stateHandler/setupStates.spec.js.map +1 -1
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.js +1 -1
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.js.map +1 -1
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js +12 -49
- package/src/dsl/verifier/proxy/stateHandler/stateHandler.spec.js.map +1 -1
- package/src/dsl/verifier/proxy/types.d.ts +2 -2
- package/src/dsl/verifier/verifier.d.ts +4 -0
- package/src/dsl/verifier/verifier.js +6 -6
- package/src/dsl/verifier/verifier.js.map +1 -1
- package/src/dsl/verifier/verifier.spec.js +46 -96
- package/src/dsl/verifier/verifier.spec.js.map +1 -1
- package/src/httpPact/ffi.d.ts +1 -1
- package/src/httpPact/ffi.js +1 -1
- package/src/httpPact/ffi.js.map +1 -1
- package/src/httpPact/ffi.spec.js +18 -60
- package/src/httpPact/ffi.spec.js.map +1 -1
- package/src/httpPact/index.d.ts +1 -1
- package/src/httpPact/index.js +7 -7
- package/src/httpPact/index.js.map +1 -1
- package/src/httpPact/index.spec.js +46 -89
- package/src/httpPact/index.spec.js.map +1 -1
- package/src/index.d.ts +25 -25
- package/src/index.js +28 -28
- package/src/index.js.map +1 -1
- package/src/messageConsumerPact.d.ts +3 -3
- package/src/messageConsumerPact.js +12 -5
- package/src/messageConsumerPact.js.map +1 -1
- package/src/messageConsumerPact.spec.js +15 -58
- package/src/messageConsumerPact.spec.js.map +1 -1
- package/src/messageProviderPact.js +3 -3
- package/src/messageProviderPact.js.map +1 -1
- package/src/messageProviderPact.spec.js +48 -84
- package/src/messageProviderPact.spec.js.map +1 -1
- package/src/pact.integration.spec.js +12 -51
- package/src/pact.integration.spec.js.map +1 -1
- package/src/v3/display.d.ts +1 -1
- package/src/v3/display.js.map +1 -1
- package/src/v3/ffi.js +5 -1
- package/src/v3/ffi.js.map +1 -1
- package/src/v3/ffi.spec.js +1 -36
- package/src/v3/ffi.spec.js.map +1 -1
- package/src/v3/graphql/graphQL.d.ts +2 -2
- package/src/v3/graphql/graphQL.js +2 -2
- package/src/v3/graphql/graphQL.js.map +1 -1
- package/src/v3/graphql/index.d.ts +1 -1
- package/src/v3/graphql/index.js +1 -1
- package/src/v3/graphql/index.js.map +1 -1
- package/src/v3/index.d.ts +4 -12
- package/src/v3/index.js +4 -12
- package/src/v3/index.js.map +1 -1
- package/src/v3/matchers.d.ts +14 -2
- package/src/v3/matchers.js +19 -1
- package/src/v3/matchers.js.map +1 -1
- package/src/v3/matchers.spec.js +125 -57
- package/src/v3/matchers.spec.js.map +1 -1
- package/src/v3/pact.js +10 -5
- package/src/v3/pact.js.map +1 -1
- package/src/v3/pact.spec.js +94 -0
- package/src/v3/pact.spec.js.map +1 -0
- package/src/v3/types.d.ts +18 -2
- package/src/v3/types.js +22 -1
- package/src/v3/types.js.map +1 -1
- package/src/v4/graphql/graphQLInteractionWithRequest.d.ts +2 -2
- package/src/v4/graphql/graphQLInteractionWithRequest.js +1 -1
- package/src/v4/graphql/graphQLInteractionWithRequest.js.map +1 -1
- package/src/v4/graphql/graphQLRequestBuilder.d.ts +1 -1
- package/src/v4/graphql/index.d.ts +3 -3
- package/src/v4/graphql/index.js +1 -1
- package/src/v4/graphql/index.js.map +1 -1
- package/src/v4/graphql/types.d.ts +1 -1
- package/src/v4/http/index.js +7 -2
- package/src/v4/http/index.js.map +1 -1
- package/src/v4/http/index.spec.d.ts +1 -0
- package/src/v4/http/index.spec.js +73 -0
- package/src/v4/http/index.spec.js.map +1 -0
- package/src/v4/http/interactionWithCompleteRequest.d.ts +2 -2
- package/src/v4/http/interactionWithPlugin.d.ts +2 -2
- package/src/v4/http/interactionWithPlugin.js +2 -2
- package/src/v4/http/interactionWithPlugin.js.map +1 -1
- package/src/v4/http/interactionWithPluginRequest.d.ts +4 -3
- package/src/v4/http/interactionWithPluginRequest.js +6 -1
- package/src/v4/http/interactionWithPluginRequest.js.map +1 -1
- package/src/v4/http/interactionWithPluginResponse.d.ts +1 -1
- package/src/v4/http/interactionWithRequest.d.ts +4 -3
- package/src/v4/http/interactionWithRequest.js +6 -1
- package/src/v4/http/interactionWithRequest.js.map +1 -1
- package/src/v4/http/interactionWithRequest.spec.d.ts +1 -0
- package/src/v4/http/interactionWithRequest.spec.js +82 -0
- package/src/v4/http/interactionWithRequest.spec.js.map +1 -0
- package/src/v4/http/interactionWithResponse.d.ts +1 -1
- package/src/v4/http/requestBuilder.d.ts +2 -1
- package/src/v4/http/requestBuilder.js +5 -1
- package/src/v4/http/requestBuilder.js.map +1 -1
- package/src/v4/http/requestBuilder.spec.d.ts +1 -0
- package/src/v4/http/requestBuilder.spec.js +42 -0
- package/src/v4/http/requestBuilder.spec.js.map +1 -0
- package/src/v4/http/requestWithPluginBuilder.d.ts +1 -0
- package/src/v4/http/requestWithPluginBuilder.js +4 -0
- package/src/v4/http/requestWithPluginBuilder.js.map +1 -1
- package/src/v4/http/requestWithPluginBuilder.spec.d.ts +1 -0
- package/src/v4/http/requestWithPluginBuilder.spec.js +34 -0
- package/src/v4/http/requestWithPluginBuilder.spec.js.map +1 -0
- package/src/v4/http/responseBuilder.d.ts +2 -1
- package/src/v4/http/responseBuilder.js +6 -2
- package/src/v4/http/responseBuilder.js.map +1 -1
- package/src/v4/http/responseBuilder.spec.d.ts +1 -0
- package/src/v4/http/responseBuilder.spec.js +42 -0
- package/src/v4/http/responseBuilder.spec.js.map +1 -0
- package/src/v4/http/responseWithPluginBuilder.d.ts +1 -1
- package/src/v4/http/responseWithPluginBuilder.spec.d.ts +1 -0
- package/src/v4/http/responseWithPluginBuilder.spec.js +34 -0
- package/src/v4/http/responseWithPluginBuilder.spec.js.map +1 -0
- package/src/v4/http/types.d.ts +11 -3
- package/src/v4/http/unconfiguredInteraction.d.ts +2 -2
- package/src/v4/http/unconfiguredInteraction.js +2 -2
- package/src/v4/http/unconfiguredInteraction.js.map +1 -1
- package/src/v4/index.d.ts +4 -3
- package/src/v4/index.js +3 -2
- package/src/v4/index.js.map +1 -1
- package/src/v4/message/asynchronousMessage.d.ts +4 -4
- package/src/v4/message/asynchronousMessage.js +2 -2
- package/src/v4/message/asynchronousMessage.js.map +1 -1
- package/src/v4/message/index.d.ts +4 -4
- package/src/v4/message/index.js +2 -2
- package/src/v4/message/index.js.map +1 -1
- package/src/v4/types.d.ts +1 -1
- package/src/xml/index.d.ts +4 -0
- package/src/xml/index.js +21 -0
- package/src/xml/index.js.map +1 -0
- package/src/xml/xmlBuilder.js.map +1 -0
- package/src/{v3/xml → xml}/xmlElement.d.ts +1 -1
- package/src/{v3/xml → xml}/xmlElement.js +1 -1
- package/src/xml/xmlElement.js.map +1 -0
- package/src/xml/xmlElement.spec.d.ts +1 -0
- package/src/{v3/xml → xml}/xmlElement.spec.js +41 -45
- package/src/xml/xmlElement.spec.js.map +1 -0
- package/src/xml/xmlNode.js.map +1 -0
- package/src/{v3/xml → xml}/xmlText.d.ts +1 -1
- package/src/xml/xmlText.js.map +1 -0
- package/scripts/install-plugins +0 -106
- package/src/v3/xml/xmlBuilder.js.map +0 -1
- package/src/v3/xml/xmlElement.js.map +0 -1
- package/src/v3/xml/xmlElement.spec.js.map +0 -1
- package/src/v3/xml/xmlNode.js.map +0 -1
- package/src/v3/xml/xmlText.js.map +0 -1
- /package/src/v3/{xml/xmlElement.spec.d.ts → pact.spec.d.ts} +0 -0
- /package/src/{v3/xml → xml}/xmlBuilder.d.ts +0 -0
- /package/src/{v3/xml → xml}/xmlBuilder.js +0 -0
- /package/src/{v3/xml → xml}/xmlNode.d.ts +0 -0
- /package/src/{v3/xml → xml}/xmlNode.js +0 -0
- /package/src/{v3/xml → xml}/xmlText.js +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,41 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [17.0.0](https://github.com/pact-foundation/pact-js/compare/v16.5.0...v17.0.0) (2026-06-25)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### ⚠ BREAKING CHANGES
|
|
9
|
+
|
|
10
|
+
* drop node 20, test against node 26 (#1813)
|
|
11
|
+
|
|
12
|
+
* drop node 20, test against node 26 ([#1813](https://github.com/pact-foundation/pact-js/issues/1813)) ([bdf71f7](https://github.com/pact-foundation/pact-js/commit/bdf71f758cb410f2795b46dc36d173a1399feac3))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
* enable scarf download analytics ([#1859](https://github.com/pact-foundation/pact-js/issues/1859)) ([c1d5593](https://github.com/pact-foundation/pact-js/commit/c1d5593ff0580f8439550c0e3ba7300c6c8f608a))
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Fixes and Improvements
|
|
21
|
+
|
|
22
|
+
* ESM import issue ([#1860](https://github.com/pact-foundation/pact-js/issues/1860)) ([f6b204c](https://github.com/pact-foundation/pact-js/commit/f6b204c6bec219b94db8370eee4c44258253be09))
|
|
23
|
+
|
|
24
|
+
## [16.5.0](https://github.com/pact-foundation/pact-js/compare/v16.4.0...v16.5.0) (2026-05-24)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
### Features
|
|
28
|
+
|
|
29
|
+
* Add HTTP response status code matching support ([#1790](https://github.com/pact-foundation/pact-js/issues/1790)) ([38a4b9b](https://github.com/pact-foundation/pact-js/commit/38a4b9b46630dc428cbff4d4bd418b498484103f))
|
|
30
|
+
* add xml support to pactv4 ([ae151b7](https://github.com/pact-foundation/pact-js/commit/ae151b7350601d3111ac8a5a2665456556d0b6b3))
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
### Fixes and Improvements
|
|
34
|
+
|
|
35
|
+
* **deps:** update dependency https-proxy-agent to v9 ([#1731](https://github.com/pact-foundation/pact-js/issues/1731)) ([e0be974](https://github.com/pact-foundation/pact-js/commit/e0be9742bf8dcd93973022948959b238d49ed882))
|
|
36
|
+
* **regression:** fix Apollo/node-fetch v3 compatibility and graphql peer dep conflict ([#1805](https://github.com/pact-foundation/pact-js/issues/1805)) ([ef8c9f9](https://github.com/pact-foundation/pact-js/commit/ef8c9f9a3f7292febe7dd6dc5c6b0e4dee7d9bff))
|
|
37
|
+
* **types:** allow narrow body type in {synchronous,asynchronous}BodyHandler ([#1798](https://github.com/pact-foundation/pact-js/issues/1798)) ([507ce81](https://github.com/pact-foundation/pact-js/commit/507ce8121acf383b6bfe0278605e0305b12aba0b))
|
|
38
|
+
* **v3:** pass cors option to mock server transport, defaulting to true ([#1767](https://github.com/pact-foundation/pact-js/issues/1767)) ([c31ebb2](https://github.com/pact-foundation/pact-js/commit/c31ebb211005eccb1d1de163ec1b8dd3b3ef495f))
|
|
39
|
+
|
|
5
40
|
## [16.4.0](https://github.com/pact-foundation/pact-js/compare/v16.3.1...v16.4.0) (2026-05-04)
|
|
6
41
|
|
|
7
42
|
|
package/README.md
CHANGED
|
@@ -251,7 +251,7 @@ It's best to run Pact verification tests as part of your unit testing suite, so
|
|
|
251
251
|
<summary>Specification Compatibility</summary>
|
|
252
252
|
|
|
253
253
|
| Version | Stable | [Spec] Compatibility | Install |
|
|
254
|
-
|
|
|
254
|
+
| -------- | ------ | -------------------- | ------------------ |
|
|
255
255
|
| 11.x.x + | Yes | 2, 3, 4 | See [installation] |
|
|
256
256
|
| 10.x.x | Yes | 2, 3, 4 | See [installation] |
|
|
257
257
|
| 9.x.x | Yes | 2, 3\* | [9xx] |
|
|
@@ -264,20 +264,30 @@ _\*_ v3 support is limited to the subset of functionality required to enable lan
|
|
|
264
264
|
|
|
265
265
|
<summary>Supported Platforms</summary>
|
|
266
266
|
|
|
267
|
-
| OS
|
|
268
|
-
|
|
|
269
|
-
| MacOS
|
|
270
|
-
| MacOS
|
|
271
|
-
| Linux (libc)
|
|
272
|
-
| Linux (libc)
|
|
273
|
-
| Linux (musl)
|
|
274
|
-
| Linux (musl)
|
|
275
|
-
| Windows
|
|
276
|
-
| Windows
|
|
277
|
-
| Windows
|
|
267
|
+
| OS | Architecture | Supported | Pact-JS Version |
|
|
268
|
+
| ------------ | ------------ | --------- | --------------- |
|
|
269
|
+
| MacOS | x86_64 | ✅ | All |
|
|
270
|
+
| MacOS | arm64 | ✅ | 9.x + |
|
|
271
|
+
| Linux (libc) | x86_64 | ✅ | All |
|
|
272
|
+
| Linux (libc) | arm64 | ✅ | 10.x + |
|
|
273
|
+
| Linux (musl) | x86_64 | ✅ | 13.x + |
|
|
274
|
+
| Linux (musl) | arm64 | ✅ | 13.x + |
|
|
275
|
+
| Windows | x86_64 | ✅ | All |
|
|
276
|
+
| Windows | x86 | ❌ | 9.x - |
|
|
277
|
+
| Windows | arm64 | ❌ | - |
|
|
278
278
|
|
|
279
279
|
</details>
|
|
280
280
|
|
|
281
|
+
## Community Tools
|
|
282
|
+
|
|
283
|
+
| Tool | Description | Type | Link |
|
|
284
|
+
|------|-------------|------|------|
|
|
285
|
+
| **pact-js-cli** | Wrapper for Pact CLI tools (broker client, stub server, verifier). Makes Pact binaries available to Node scripts and npm commands. | Official | [pact-foundation/pact-js-cli](https://github.com/pact-foundation/pact-js-cli) |
|
|
286
|
+
| **jest-pact** | Jest adapter for writing Pact tests. Automatically instantiates PactOptions, sets up mock service hooks, and provides sensible defaults. | Official | [pact-foundation/jest-pact](https://github.com/pact-foundation/jest-pact) |
|
|
287
|
+
| **mocha-pact** | Mocha adapter for writing Pact tests. Automatically instantiates PactOptions, sets up mock service hooks, and provides sensible defaults. | Official | [pact-foundation/mocha-pact](https://github.com/pact-foundation/mocha-pact) |
|
|
288
|
+
| **nestjs-pact** | Injectable Pact Consumer/Provider for NestJS. Provides modules for both consumer and provider roles with support for PactV2, V3, and V4. | Official | [pact-foundation/nestjs-pact](https://github.com/pact-foundation/nestjs-pact) |
|
|
289
|
+
| **pactjs-utils** | Utilities to eliminate boilerplate and enforce best practices. Includes helpers for provider states, verifier options, auth filters, and message/Kafka provider verification. | Community | [seontechnologies/pactjs-utils](https://github.com/seontechnologies/pactjs-utils) |
|
|
290
|
+
|
|
281
291
|
## Roadmap
|
|
282
292
|
|
|
283
293
|
The [roadmap](https://docs.pact.io/roadmap/) for Pact and Pact JS is outlined on our main website.
|
|
@@ -290,6 +300,25 @@ See [CONTRIBUTING](CONTRIBUTING.md).
|
|
|
290
300
|
</a>
|
|
291
301
|
<br />
|
|
292
302
|
|
|
303
|
+
## Anonymized analytics
|
|
304
|
+
|
|
305
|
+
Pact JS uses [Scarf](https://scarf.sh/) to collect [anonymized installation analytics](https://github.com/scarf-sh/scarf-js?tab=readme-ov-file#as-a-user-of-a-package-using-scarf-js-what-information-does-scarf-js-send-about-me). These analytics help support the maintainers of this library and ONLY run during installation. To [opt out](https://github.com/scarf-sh/scarf-js?tab=readme-ov-file#as-a-user-of-a-package-using-scarf-js-how-can-i-opt-out-of-analytics), you can set the `scarfSettings.enabled` field to `false` in your project's `package.json`:
|
|
306
|
+
|
|
307
|
+
```
|
|
308
|
+
// package.json
|
|
309
|
+
{
|
|
310
|
+
// ...
|
|
311
|
+
"scarfSettings": {
|
|
312
|
+
"enabled": false
|
|
313
|
+
}
|
|
314
|
+
// ...
|
|
315
|
+
}
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
Alternatively, you can set the environment variable `SCARF_ANALYTICS` to `false` as part of the environment that installs your npm packages, e.g., `SCARF_ANALYTICS=false npm install`.
|
|
319
|
+
|
|
320
|
+
For more information, see [docs.pact.io/telemetry](https://docs.pact.io/telemetry).
|
|
321
|
+
|
|
293
322
|
[spec]: https://github.com/pact-foundation/pact-specification
|
|
294
323
|
[10xx]: https://github.com/pact-foundation/pact-js/tree/10.x.x
|
|
295
324
|
[9xx]: https://github.com/pact-foundation/pact-js/tree/9.x.x
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pact-foundation/pact",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "17.0.0",
|
|
4
4
|
"description": "Pact for all things Javascript",
|
|
5
5
|
"main": "./src/index.js",
|
|
6
6
|
"types": "./src/index.d.ts",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"clean": "rimraf dist coverage .nyc_output logs pacts",
|
|
10
10
|
"predist": "npm run clean",
|
|
11
11
|
"dist": "tsc && copyfiles package.json ./dist",
|
|
12
|
-
"install-plugins": "./scripts/install-plugins",
|
|
12
|
+
"install-plugins": "node ./scripts/install-plugins.js",
|
|
13
13
|
"lint:biome": "biome lint",
|
|
14
14
|
"lint:tsc": "tsc --noEmit",
|
|
15
15
|
"lint": "npm run lint:biome && npm run lint:tsc",
|
|
@@ -20,12 +20,10 @@
|
|
|
20
20
|
"check": "npm run format && npm run lint",
|
|
21
21
|
"check:fix": "npm run format:fix && npm run lint:fix",
|
|
22
22
|
"release": "commit-and-tag-version",
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
23
|
+
"pretest": "node ./scripts/install-plugins.js",
|
|
24
|
+
"test": "vitest run",
|
|
25
|
+
"test:regression": "npm --prefix regression run test",
|
|
26
26
|
"docker:alpine:build": "docker build --build-arg NODE_VERSION=${NODE_VERSION:-current} -f Dockerfile.alpine -t pact-js:alpine .",
|
|
27
|
-
"docker:debian:build": "docker build --build-arg NODE_VERSION=${NODE_VERSION:-current} -f Dockerfile.debian -t pact-js:debian .",
|
|
28
|
-
"docker:alpine:run": "docker run -e LOG_LEVEL=${LOG_LEVEL:-info} -e GIT_REF=${GIT_REF:-test} -e GITHUB_ACTIONS=${GITHUB_ACTIONS:-false} -e SKIP_EXAMPLES=${SKIP_EXAMPLES:-''} -e PACT_BROKER_BASE_URL -e PACT_BROKER_TOKEN -w /home -v $(pwd):/home --rm pact-js:alpine",
|
|
29
27
|
"docker:debian:run": "docker run -e LOG_LEVEL=${LOG_LEVEL:-info} -e GIT_REF=${GIT_REF:-test} -e GITHUB_ACTIONS=${GITHUB_ACTIONS:-false} -e SKIP_EXAMPLES=${SKIP_EXAMPLES:-''} -e PACT_BROKER_BASE_URL -e PACT_BROKER_TOKEN -w /home -v $(pwd):/home --rm pact-js:debian",
|
|
30
28
|
"docker:alpine:attach": "docker run -e PACT_BROKER_BASE_URL -e PACT_BROKER_TOKEN -w /home -v $(pwd):/home --entrypoint /bin/bash --rm -it pact-js:alpine",
|
|
31
29
|
"docker:debian:attach": "docker run -e PACT_BROKER_BASE_URL -e PACT_BROKER_TOKEN -w /home -v $(pwd):/home --entrypoint /bin/bash --rm -it pact-js:debian"
|
|
@@ -35,7 +33,7 @@
|
|
|
35
33
|
"url": "git+https://github.com/pact-foundation/pact-js.git"
|
|
36
34
|
},
|
|
37
35
|
"engines": {
|
|
38
|
-
"node": ">=
|
|
36
|
+
"node": ">=22"
|
|
39
37
|
},
|
|
40
38
|
"keywords": [
|
|
41
39
|
"pact",
|
|
@@ -106,6 +104,7 @@
|
|
|
106
104
|
},
|
|
107
105
|
"dependencies": {
|
|
108
106
|
"@pact-foundation/pact-core": "^19.2.0",
|
|
107
|
+
"@scarf/scarf": "^1.4.0",
|
|
109
108
|
"axios": "^1.12.2",
|
|
110
109
|
"body-parser": "^2.2.0",
|
|
111
110
|
"chalk": "4.1.2",
|
|
@@ -122,37 +121,26 @@
|
|
|
122
121
|
"stack-utils": "^2.0.6"
|
|
123
122
|
},
|
|
124
123
|
"devDependencies": {
|
|
125
|
-
"@babel/cli": "
|
|
126
|
-
"@babel/core": "
|
|
127
|
-
"@babel/preset-env": "
|
|
128
|
-
"@biomejs/biome": "2.4.
|
|
129
|
-
"@tsconfig/
|
|
130
|
-
"@types/chai": "5.2.3",
|
|
131
|
-
"@types/chai-as-promised": "8.0.2",
|
|
124
|
+
"@babel/cli": "8.0.1",
|
|
125
|
+
"@babel/core": "8.0.1",
|
|
126
|
+
"@babel/preset-env": "8.0.2",
|
|
127
|
+
"@biomejs/biome": "2.4.16",
|
|
128
|
+
"@tsconfig/node22": "22.0.5",
|
|
132
129
|
"@types/express": "4.17.25",
|
|
133
130
|
"@types/http-proxy": "1.17.17",
|
|
134
131
|
"@types/lodash": "4.17.24",
|
|
135
|
-
"@types/mocha": "10.0.10",
|
|
136
132
|
"@types/nock": "11.1.0",
|
|
137
|
-
"@types/node": "24.
|
|
133
|
+
"@types/node": "24.13.2",
|
|
138
134
|
"@types/ramda": "0.31.1",
|
|
139
|
-
"@types/sinon": "21.0.1",
|
|
140
|
-
"@types/sinon-chai": "4.0.0",
|
|
141
135
|
"@types/stack-utils": "2.0.3",
|
|
142
|
-
"
|
|
143
|
-
"
|
|
144
|
-
"commit-and-tag-version": "12.7.1",
|
|
136
|
+
"@vitest/coverage-v8": "3.2.4",
|
|
137
|
+
"commit-and-tag-version": "12.7.3",
|
|
145
138
|
"copyfiles": "2.4.1",
|
|
146
|
-
"
|
|
147
|
-
"nock": "14.0.14",
|
|
148
|
-
"nyc": "18.0.0",
|
|
149
|
-
"proxyquire": "2.1.3",
|
|
139
|
+
"nock": "14.0.15",
|
|
150
140
|
"rimraf": "6.1.3",
|
|
151
|
-
"
|
|
152
|
-
"
|
|
153
|
-
"
|
|
154
|
-
"tsx": "4.21.0",
|
|
155
|
-
"typescript": "6.0.3"
|
|
141
|
+
"typedoc": "0.28.19",
|
|
142
|
+
"typescript": "6.0.3",
|
|
143
|
+
"vitest": "3.2.4"
|
|
156
144
|
},
|
|
157
145
|
"pnpm": {
|
|
158
146
|
"onlyBuiltDependencies": [
|
|
@@ -15,9 +15,6 @@ export GIT_BRANCH=${GITHUB_HEAD_REF:-${GIT_REF#refs/heads/}}
|
|
|
15
15
|
|
|
16
16
|
"${SCRIPT_DIR}"/lib/prepare-release.sh
|
|
17
17
|
|
|
18
|
-
echo "--> Running coverage checks"
|
|
19
|
-
npm run coverage
|
|
20
|
-
|
|
21
18
|
cp package-lock.json dist
|
|
22
19
|
cp -r scripts dist
|
|
23
20
|
echo "This will be version '$(npx --yes absolute-version)'"
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const { execFileSync } = require('node:child_process');
|
|
4
|
+
const {
|
|
5
|
+
existsSync,
|
|
6
|
+
mkdirSync,
|
|
7
|
+
createWriteStream,
|
|
8
|
+
chmodSync,
|
|
9
|
+
} = require('node:fs');
|
|
10
|
+
const { get } = require('node:https');
|
|
11
|
+
const { homedir } = require('node:os');
|
|
12
|
+
const { join } = require('node:path');
|
|
13
|
+
const { createGunzip } = require('node:zlib');
|
|
14
|
+
|
|
15
|
+
const PLUGIN_CLI_VERSION = '0.1.2';
|
|
16
|
+
const MATT_PLUGIN_VERSION = '0.1.1';
|
|
17
|
+
|
|
18
|
+
function detectOsArch() {
|
|
19
|
+
const { platform, arch } = process;
|
|
20
|
+
if (platform === 'linux' && arch === 'x64')
|
|
21
|
+
return { os: 'linux', arch: 'x86_64', ext: '' };
|
|
22
|
+
if (platform === 'linux' && arch === 'arm64')
|
|
23
|
+
return { os: 'linux', arch: 'aarch64', ext: '' };
|
|
24
|
+
if (platform === 'darwin' && arch === 'x64')
|
|
25
|
+
return { os: 'osx', arch: 'x86_64', ext: '' };
|
|
26
|
+
if (platform === 'darwin' && arch === 'arm64')
|
|
27
|
+
return { os: 'osx', arch: 'aarch64', ext: '' };
|
|
28
|
+
if (platform === 'win32')
|
|
29
|
+
return { os: 'windows', arch: 'x86_64', ext: '.exe' };
|
|
30
|
+
throw new Error(
|
|
31
|
+
`Unsupported platform: ${platform} ${arch}. Please install the plugin CLI manually.`,
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function download(url, dest) {
|
|
36
|
+
return new Promise((resolve, reject) => {
|
|
37
|
+
get(url, (res) => {
|
|
38
|
+
if (res.statusCode === 301 || res.statusCode === 302) {
|
|
39
|
+
download(res.headers.location, dest).then(resolve, reject);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
if (res.statusCode !== 200) {
|
|
43
|
+
reject(
|
|
44
|
+
new Error(`Download failed with HTTP ${res.statusCode}: ${url}`),
|
|
45
|
+
);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const out = createWriteStream(dest);
|
|
49
|
+
res.pipe(createGunzip()).pipe(out);
|
|
50
|
+
out.on('finish', () => out.close(resolve));
|
|
51
|
+
out.on('error', reject);
|
|
52
|
+
}).on('error', reject);
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
async function installPluginCli() {
|
|
57
|
+
const { os, arch, ext } = detectOsArch();
|
|
58
|
+
const binDir = join(homedir(), '.pact', 'bin');
|
|
59
|
+
const cliPath = join(binDir, `pact-plugin-cli${ext}`);
|
|
60
|
+
|
|
61
|
+
if (existsSync(cliPath)) {
|
|
62
|
+
console.log('=> Plugin CLI already installed');
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const url = `https://github.com/pact-foundation/pact-plugins/releases/download/pact-plugin-cli-v${PLUGIN_CLI_VERSION}/pact-plugin-cli-${os}-${arch}${ext}.gz`;
|
|
67
|
+
console.log(`=> Installing plugin CLI v${PLUGIN_CLI_VERSION}`);
|
|
68
|
+
console.log(` OS: ${os}, Arch: ${arch}`);
|
|
69
|
+
console.log(` Downloading into: ${binDir}`);
|
|
70
|
+
|
|
71
|
+
mkdirSync(binDir, { recursive: true });
|
|
72
|
+
await download(url, cliPath);
|
|
73
|
+
if (ext !== '.exe') chmodSync(cliPath, 0o755);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
function installMattPlugin() {
|
|
77
|
+
const pluginDir = join(
|
|
78
|
+
homedir(),
|
|
79
|
+
'.pact',
|
|
80
|
+
'plugins',
|
|
81
|
+
`matt-${MATT_PLUGIN_VERSION}`,
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
if (existsSync(pluginDir)) {
|
|
85
|
+
console.log('=> MATT plugin already installed');
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
const { ext } = detectOsArch();
|
|
90
|
+
const cliPath = join(homedir(), '.pact', 'bin', `pact-plugin-cli${ext}`);
|
|
91
|
+
const url = `https://github.com/mefellows/pact-matt-plugin/releases/tag/v${MATT_PLUGIN_VERSION}`;
|
|
92
|
+
console.log(`=> Installing MATT plugin v${MATT_PLUGIN_VERSION}`);
|
|
93
|
+
execFileSync(cliPath, ['install', url], { stdio: 'inherit' });
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
async function main() {
|
|
97
|
+
await installPluginCli();
|
|
98
|
+
installMattPlugin();
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
main().catch((err) => {
|
|
102
|
+
console.error(err.message);
|
|
103
|
+
process.exit(1);
|
|
104
|
+
});
|
|
@@ -7,8 +7,8 @@ exports.escapeGraphQlQuery = exports.escapeRegexChars = exports.escapeSpace = vo
|
|
|
7
7
|
exports.validateQuery = validateQuery;
|
|
8
8
|
const graphql_1 = require("graphql");
|
|
9
9
|
const graphql_tag_1 = __importDefault(require("graphql-tag"));
|
|
10
|
-
const graphQLQueryError_1 = require("./graphQLQueryError");
|
|
11
10
|
const configurationError_1 = require("./configurationError");
|
|
11
|
+
const graphQLQueryError_1 = require("./graphQLQueryError");
|
|
12
12
|
/**
|
|
13
13
|
* Accepts a raw or pre-parsed query, validating in the former case, and
|
|
14
14
|
* returns a normalized raw query.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphQL.js","sourceRoot":"","sources":["../../../../src/common/graphQL/graphQL.ts"],"names":[],"mappings":";;;;;;AAgBA,sCA6BC;AA7CD,qCAA8C;AAC9C,8DAA8B;AAC9B,
|
|
1
|
+
{"version":3,"file":"graphQL.js","sourceRoot":"","sources":["../../../../src/common/graphQL/graphQL.ts"],"names":[],"mappings":";;;;;;AAgBA,sCA6BC;AA7CD,qCAA8C;AAC9C,8DAA8B;AAC9B,6DAA0D;AAC1D,2DAAwD;AAOxD;;;;;GAKG;AACH,SAAgB,aAAa,CAC3B,KAAuB,EACvB,IAAmB;IAEnB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,uCAAkB,CAAC,8BAA8B,IAAI,GAAG,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;YAC/B,uCAAuC;YACvC,OAAO,IAAA,eAAK,EAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QACD,MAAM,IAAI,uCAAkB,CAC1B,uDAAuD,CACxD,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,yBAAyB;QACzB,IAAI,CAAC;YACH,IAAA,qBAAG,EAAC,KAAK,CAAC,CAAC;QACb,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,IAAI,qCAAiB,CACzB,WAAW,IAAI,gBAAgB,KAAK,CAAC,OAAO,EAAE,CAC/C,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAEM,MAAM,WAAW,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAA/D,QAAA,WAAW,eAAoD;AAErE,MAAM,gBAAgB,GAAG,CAAC,CAAS,EAAU,EAAE,CACpD,CAAC,CAAC,OAAO,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;AADhC,QAAA,gBAAgB,oBACgB;AAEtC,MAAM,kBAAkB,GAAG,CAAC,CAAS,EAAU,EAAE,CACtD,IAAA,mBAAW,EAAC,IAAA,wBAAgB,EAAC,CAAC,CAAC,CAAC,CAAC;AADtB,QAAA,kBAAkB,sBACI"}
|
|
@@ -1,10 +1,16 @@
|
|
|
1
|
-
import type { Rules,
|
|
1
|
+
import type { Matcher, Rules, StatusCodeMatcher } from '../v3/types';
|
|
2
2
|
/**
|
|
3
3
|
* Converts a matcher to the FFI format expected by pact-core
|
|
4
4
|
* @param matcher The matcher to convert
|
|
5
5
|
* @returns The matcher in FFI format
|
|
6
6
|
*/
|
|
7
7
|
export declare const convertMatcherToFFI: (matcher: Matcher<unknown>) => Record<string, unknown>;
|
|
8
|
+
/**
|
|
9
|
+
* Converts a StatusCodeMatcher to the FFI matching rules format expected by pact-core
|
|
10
|
+
* @param matcher The status code matcher
|
|
11
|
+
* @returns The matching rules in FFI format
|
|
12
|
+
*/
|
|
13
|
+
export declare const convertStatusMatcherToFFI: (matcher: StatusCodeMatcher<number>) => Record<string, unknown>;
|
|
8
14
|
/**
|
|
9
15
|
* Validates that the rules parameter is of type Rules
|
|
10
16
|
* @param rules The rules to validate
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.convertRulesToFFI = exports.validateRules = exports.convertMatcherToFFI = void 0;
|
|
3
|
+
exports.convertRulesToFFI = exports.validateRules = exports.convertStatusMatcherToFFI = exports.convertMatcherToFFI = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Converts a matcher to the FFI format expected by pact-core
|
|
6
6
|
* @param matcher The matcher to convert
|
|
@@ -19,6 +19,26 @@ const convertMatcherToFFI = (matcher) => {
|
|
|
19
19
|
return result;
|
|
20
20
|
};
|
|
21
21
|
exports.convertMatcherToFFI = convertMatcherToFFI;
|
|
22
|
+
/**
|
|
23
|
+
* Converts a StatusCodeMatcher to the FFI matching rules format expected by pact-core
|
|
24
|
+
* @param matcher The status code matcher
|
|
25
|
+
* @returns The matching rules in FFI format
|
|
26
|
+
*/
|
|
27
|
+
const convertStatusMatcherToFFI = (matcher) => {
|
|
28
|
+
return {
|
|
29
|
+
status: {
|
|
30
|
+
$: {
|
|
31
|
+
matchers: [
|
|
32
|
+
{
|
|
33
|
+
match: 'statusCode',
|
|
34
|
+
status: matcher.status,
|
|
35
|
+
},
|
|
36
|
+
],
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
exports.convertStatusMatcherToFFI = convertStatusMatcherToFFI;
|
|
22
42
|
/**
|
|
23
43
|
* Validates that the rules parameter is of type Rules
|
|
24
44
|
* @param rules The rules to validate
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matchingRules.js","sourceRoot":"","sources":["../../../src/common/matchingRules.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"matchingRules.js","sourceRoot":"","sources":["../../../src/common/matchingRules.ts"],"names":[],"mappings":"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"}
|
package/src/common/net.spec.js
CHANGED
|
@@ -1,48 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
4
|
};
|
|
38
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
const chai = __importStar(require("chai"));
|
|
40
|
-
const chai_as_promised_1 = __importDefault(require("chai-as-promised"));
|
|
41
6
|
const node_net_1 = __importDefault(require("node:net"));
|
|
42
|
-
const net_1 = require("./net");
|
|
43
7
|
const logger_1 = __importDefault(require("./logger"));
|
|
44
|
-
const
|
|
45
|
-
chai.use(chai_as_promised_1.default);
|
|
8
|
+
const net_1 = require("./net");
|
|
46
9
|
describe('Net', () => {
|
|
47
10
|
const port = 4567;
|
|
48
11
|
const defaultHost = '0.0.0.0';
|
|
@@ -57,36 +20,37 @@ describe('Net', () => {
|
|
|
57
20
|
});
|
|
58
21
|
});
|
|
59
22
|
describe('#isPortAvailable', () => {
|
|
60
|
-
|
|
61
|
-
it('returns a rejected promise', () =>
|
|
62
|
-
.
|
|
23
|
+
describe('when the port is not allowed to be bound', () => {
|
|
24
|
+
it('returns a rejected promise', async () => {
|
|
25
|
+
await expect((0, net_1.isPortAvailable)(specialPort, defaultHost)).rejects.toBeDefined();
|
|
26
|
+
});
|
|
63
27
|
});
|
|
64
|
-
|
|
65
|
-
it('returns a fulfilled promise', () =>
|
|
28
|
+
describe('when the port is available', () => {
|
|
29
|
+
it('returns a fulfilled promise', async () => {
|
|
30
|
+
await (0, net_1.isPortAvailable)(port, defaultHost);
|
|
31
|
+
});
|
|
66
32
|
});
|
|
67
|
-
|
|
68
|
-
it('returns a rejected promise', () => {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
.
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
.finally(() => new Promise((resolve) => server?.close(() => resolve())));
|
|
33
|
+
describe('when the port is unavailable', () => {
|
|
34
|
+
it('returns a rejected promise', async () => {
|
|
35
|
+
const server = await createServer(port);
|
|
36
|
+
try {
|
|
37
|
+
await expect((0, net_1.isPortAvailable)(port, defaultHost)).rejects.toBeDefined();
|
|
38
|
+
}
|
|
39
|
+
finally {
|
|
40
|
+
await new Promise((resolve) => server?.close(() => resolve()));
|
|
41
|
+
}
|
|
77
42
|
});
|
|
78
43
|
});
|
|
79
|
-
|
|
80
|
-
it('returns a fulfilled promise', () => {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
.then((s) => {
|
|
84
|
-
server = s;
|
|
44
|
+
describe('when a single host is unavailable', () => {
|
|
45
|
+
it('returns a fulfilled promise', async () => {
|
|
46
|
+
const server = await createServer(port, '::1');
|
|
47
|
+
try {
|
|
85
48
|
// this should work as the `127.0.0.1` is NOT `::1`
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
49
|
+
await (0, net_1.isPortAvailable)(port, '127.0.0.1');
|
|
50
|
+
}
|
|
51
|
+
finally {
|
|
52
|
+
await new Promise((resolve) => server?.close(() => resolve()));
|
|
53
|
+
}
|
|
90
54
|
});
|
|
91
55
|
});
|
|
92
56
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"net.spec.js","sourceRoot":"","sources":["../../../src/common/net.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"net.spec.js","sourceRoot":"","sources":["../../../src/common/net.spec.ts"],"names":[],"mappings":"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"}
|
package/src/common/request.js
CHANGED
|
@@ -4,8 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.Request = exports.HTTPMethods = void 0;
|
|
7
|
-
const axios_1 = __importDefault(require("axios"));
|
|
8
7
|
const node_https_1 = __importDefault(require("node:https"));
|
|
8
|
+
const axios_1 = __importDefault(require("axios"));
|
|
9
9
|
const ramda_1 = require("ramda");
|
|
10
10
|
const logger_1 = __importDefault(require("./logger"));
|
|
11
11
|
var HTTPMethods;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/common/request.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/common/request.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA+B;AAC/B,kDAA0B;AAC1B,iCAA+B;AAC/B,sDAA8B;AAE9B,IAAY,WAgBX;AAhBD,WAAY,WAAW;IACrB,0BAAW,CAAA;IACX,4BAAa,CAAA;IACb,0BAAW,CAAA;IACX,8BAAe,CAAA;IACf,gCAAiB,CAAA;IACjB,4BAAa,CAAA;IACb,kCAAmB,CAAA;IACnB,4BAAa,CAAA;IACb,4BAAa,CAAA;IACb,8BAAe,CAAA;IACf,4BAAa,CAAA;IACb,oCAAqB,CAAA;IACrB,sCAAuB,CAAA;IACvB,gCAAiB,CAAA;IACjB,gCAAiB,CAAA;AACnB,CAAC,EAhBW,WAAW,2BAAX,WAAW,QAgBtB;AAmBD,MAAa,OAAO;IACX,KAAK,CAAC,IAAI,CACf,MAAkB,EAClB,GAAW,EACX,IAAa;QAEb,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAA,eAAK,EAAC,GAAG,EAAE;gBAC3B,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,qBAAqB,EAAE,MAAM;iBAC9B;gBACD,UAAU,EAAE,IAAI,oBAAK,CAAC,KAAK,CAAC;oBAC1B,SAAS,EAAE,IAAI;oBACf,kBAAkB,EAAE,KAAK;iBAC1B,CAAC;gBACF,MAAM;gBACN,OAAO,EAAE,KAAK;gBACd,GAAG;gBACH,aAAa,EAAE,QAAQ;aACxB,CAAC,CAAC;YAEH,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;gBAC1C,OAAO,GAAG,CAAC,IAAI,CAAC;YAClB,CAAC;YACD,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5D,gBAAM,CAAC,KAAK,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5D,OAAO,OAAO,CAAC,MAAM,CACnB,IAAA,cAAM,EACJ,KAAK,CAAC,OAAO,EACb,CAAC,UAAU,EAAE,MAAM,CAAC,EACpB,CAA4B,CAC7B,CACF,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAvCD,0BAuCC"}
|