@pact-foundation/pact 12.5.2 → 13.1.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,24 @@
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
+ ## [13.1.0](https://github.com/pact-foundation/pact-js/compare/v13.0.0...v13.1.0) (2024-06-24)
6
+
7
+
8
+ ### Features
9
+
10
+ * support alpine via pact-js-core 15.1.0 ([1d35c82](https://github.com/pact-foundation/pact-js/commit/1d35c826b225d99943b733aa7939361b8d8dfd78))
11
+
12
+ ## [13.0.0](https://github.com/pact-foundation/pact-js/compare/v12.5.2...v13.0.0) (2024-06-17)
13
+
14
+
15
+ ### ⚠ BREAKING CHANGES
16
+
17
+ * update to @pact-foundation/pact-core to 15.x
18
+
19
+ ### Fixes and Improvements
20
+
21
+ * update to @pact-foundation/pact-core to 15.x ([42f52bb](https://github.com/pact-foundation/pact-js/commit/42f52bb9dbe5c65094e0ce8979605a8457f18ba5))
22
+
5
23
  ### [12.5.2](https://github.com/pact-foundation/pact-js/compare/v12.5.1...v12.5.2) (2024-05-30)
6
24
 
7
25
 
package/MIGRATION.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # Pact-js migration guide
2
2
 
3
+ # 12.x.x -> 13.x.x
4
+
5
+ ## Breaking Changes
6
+
7
+ All CLI/API functionality provided by the Pact CLI tools (ruby based) now migrated to
8
+
9
+ * Repo
10
+
11
+ * https://github.com/pact-foundation/pact-js-cli/
12
+
13
+ * NPM Package
14
+
15
+ * https://www.npmjs.com/package/@pact-foundation/pact-cli
16
+
17
+ * imports
18
+
19
+ * `@pact-foundation/pact-core` imports will now become `@pact-foundation/pact-cli` for programatic usage of the CLI tools
20
+
21
+ * npx usage
22
+
23
+ * `npx --package=@pact-foundation/pact-cli@15.0.0 -c pact-broker`
24
+
3
25
  # 11.x.x -> 12.x.x
4
26
 
5
27
  - Node versions less than 16 are no longer supported
package/README.md CHANGED
@@ -250,16 +250,32 @@ It's best to run Pact verification tests as part of your unit testing suite, so
250
250
 
251
251
  <details><summary>Specification Compatibility</summary>
252
252
 
253
- | Version | Stable | [Spec] Compatibility | Install |
254
- | ------- | ------ | -------------------- | ------------------ |
255
- | 11.x.x | Yes | 2, 3, 4 | See [installation] |
256
- | 10.x.x | Yes | 2, 3, 4 | See [installation] |
257
- | 9.x.x | Yes | 2, 3\* | [9xx] |
253
+ | Version | Stable | [Spec] Compatibility | Install |
254
+ | ------- | ------ | -------------------- | ------------------ |
255
+ | 11.x.x + | Yes | 2, 3, 4 | See [installation] |
256
+ | 10.x.x | Yes | 2, 3, 4 | See [installation] |
257
+ | 9.x.x | Yes | 2, 3\* | [9xx] |
258
258
 
259
259
  _\*_ v3 support is limited to the subset of functionality required to enable language inter-operable [Message support].
260
260
 
261
261
  </details>
262
262
 
263
+ <details><summary>Supported Platforms</summary>
264
+
265
+ | OS | Architecture | Supported | Pact-JS Version |
266
+ | ------------- | ------------ | --------- | ---------------- |
267
+ | MacOS | x86_64 | ✅ | All |
268
+ | MacOS | arm64 | ✅ | 9.x + |
269
+ | Linux (libc) | x86_64 | ✅ | All |
270
+ | Linux (libc) | arm64 | ✅ | 10.x + |
271
+ | Linux (musl) | x86_64 | ✅ | 13.x + |
272
+ | Linux (musl) | arm64 | ✅ | 13.x + |
273
+ | Windows | x86_64 | ✅ | All |
274
+ | Windows | x86 | ❌ | 9.x - |
275
+ | Windows | arm64 | ❌ | - |
276
+
277
+ </details>
278
+
263
279
  ## Roadmap
264
280
 
265
281
  The [roadmap](https://docs.pact.io/roadmap/) for Pact and Pact JS is outlined on our main website.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pact-foundation/pact",
3
- "version": "12.5.2",
3
+ "version": "13.1.0",
4
4
  "description": "Pact for all things Javascript",
5
5
  "main": "./src/index.js",
6
6
  "types": "./src/index.d.ts",
@@ -18,7 +18,13 @@
18
18
  "predist": "npm run clean && npm run format:check && npm run lint",
19
19
  "release": "commit-and-tag-version",
20
20
  "test": "nyc --check-coverage --reporter=html --reporter=text-summary mocha -t 120000",
21
- "pretest": "bash scripts/install-plugins.sh"
21
+ "pretest": "bash scripts/install-plugins.sh",
22
+ "docker:alpine:build": "docker build --build-arg NODE_VERSION=${NODE_VERSION:-current} -f Dockerfile.alpine -t pact-js:alpine .",
23
+ "docker:debian:build": "docker build --build-arg NODE_VERSION=${NODE_VERSION:-current} -f Dockerfile.debian -t pact-js:debian .",
24
+ "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:-''} -w /home -v $(pwd):/home --rm pact-js:alpine",
25
+ "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:-''} -w /home -v $(pwd):/home --rm pact-js:debian",
26
+ "docker:alpine:attach": "docker run -w /home -v $(pwd):/home --entrypoint /bin/bash --rm -it pact-js:alpine",
27
+ "docker:debian:attach": "docker run -w /home -v $(pwd):/home --entrypoint /bin/bash --rm -it pact-js:debian"
22
28
  },
23
29
  "repository": {
24
30
  "type": "git",
@@ -95,7 +101,7 @@
95
101
  ]
96
102
  },
97
103
  "dependencies": {
98
- "@pact-foundation/pact-core": "^14.3.4",
104
+ "@pact-foundation/pact-core": "^15.1.0",
99
105
  "@types/express": "^4.17.11",
100
106
  "axios": "^1.6.1",
101
107
  "body-parser": "^1.20.0",
@@ -6,7 +6,7 @@ set -x
6
6
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")"; pwd)" # Figure out where the script is running
7
7
  . "$SCRIPT_DIR"/lib/robust-bash.sh
8
8
 
9
- npm ci --ignore-scripts
9
+ npm ci
10
10
 
11
11
  npm run dist
12
12
  cp package.json ./dist
@@ -8,7 +8,7 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")"; pwd)" # Figure out where the
8
8
 
9
9
  # Link the build so that the examples are always testing the
10
10
  # current build, in it's properly exported format
11
- (cd dist && npm ci --ignore-scripts)
11
+ (cd dist && npm ci)
12
12
 
13
13
  echo "Running e2e examples build for node version $(node --version)"
14
14
  for i in examples/*; do
@@ -23,8 +23,12 @@ for i in examples/*; do
23
23
  if [ x"${SETUP_DIST_ONLY:-}" == "x" ]; then
24
24
  echo "running all examples as SETUP_DIST_ONLY not set"
25
25
  # npm ci does not work because we have just changed the package.json file
26
- npm install --ignore-scripts
27
- npm test
26
+ npm install
27
+ if [[ -f /.dockerenv && "$(uname -sm)" == 'Linux aarch64' && "$GITHUB_ACTIONS" == 'true' ]]; then
28
+ npm run test:no:publish || npm test
29
+ else
30
+ npm test
31
+ fi
28
32
  else
29
33
  echo "skipping testing of examples as SETUP_DIST_ONLY set"
30
34
  fi
@@ -55,8 +59,12 @@ for i in examples/v*/*; do
55
59
  if [ x"${SETUP_DIST_ONLY:-}" == "x" ]; then
56
60
  echo "running all examples as SETUP_DIST_ONLY not set"
57
61
  # npm ci does not work because we have just changed the package.json file
58
- npm install --ignore-scripts
59
- npm test
62
+ npm install
63
+ if [[ -f /.dockerenv && "$(uname -sm)" == 'Linux aarch64' && "$GITHUB_ACTIONS" == 'true' ]]; then
64
+ npm run test:no:publish || npm test
65
+ else
66
+ npm test
67
+ fi
60
68
  else
61
69
  echo "skipping testing of examples as SETUP_DIST_ONLY set"
62
70
  fi
@@ -38,7 +38,7 @@ function detect_osarch() {
38
38
  }
39
39
 
40
40
 
41
- VERSION="0.0.4"
41
+ VERSION="0.1.2"
42
42
  detect_osarch
43
43
 
44
44
  if [ ! -f ~/.pact/bin/pact-plugin-cli ]; then
@@ -48,7 +48,8 @@ if [ ! -f ~/.pact/bin/pact-plugin-cli ]; then
48
48
  echo " Downloading from: ${DOWNLOAD_LOCATION}"
49
49
  curl -L -o ~/.pact/bin/pact-plugin-cli-${os}-${arch}.gz "${DOWNLOAD_LOCATION}"
50
50
  echo " Downloaded $(file ~/.pact/bin/pact-plugin-cli-${os}-${arch}.gz)"
51
- gunzip -N -f ~/.pact/bin/pact-plugin-cli-${os}-${arch}.gz
51
+ gunzip -f ~/.pact/bin/pact-plugin-cli-${os}-${arch}.gz
52
+ mv ~/.pact/bin/pact-plugin-cli-${os}-${arch} ~/.pact/bin/pact-plugin-cli
52
53
  chmod +x ~/.pact/bin/pact-plugin-cli
53
54
  fi
54
55
 
@@ -13,7 +13,7 @@ chai_1.default.use(chai_as_promised_1.default);
13
13
  describe('Net', function () {
14
14
  var port = 4567;
15
15
  var defaultHost = '0.0.0.0';
16
- var specialPort = process.platform.match('win') ? -1 : 80;
16
+ var specialPort = -1;
17
17
  // Utility function to create a server on a given port and return a Promise
18
18
  var createServer = function (p, host) {
19
19
  if (host === void 0) { host = defaultHost; }
@@ -26,9 +26,7 @@ describe('Net', function () {
26
26
  });
27
27
  });
28
28
  };
29
- (process.platform === 'linux' && process.arch === 'arm64'
30
- ? describe.skip
31
- : describe)('#isPortAvailable', function () {
29
+ describe('#isPortAvailable', function () {
32
30
  context('when the port is not allowed to be bound', function () {
33
31
  it('returns a rejected promise', function () {
34
32
  return expect((0, net_2.isPortAvailable)(specialPort, defaultHost)).to.eventually.be
@@ -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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"}
package/test/helper.d.ts DELETED
@@ -1 +0,0 @@
1
- export {};
package/test/helper.js DELETED
@@ -1,11 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- var pact_core_1 = __importDefault(require("@pact-foundation/pact-core"));
7
- // used to kill any left over mock server instances
8
- process.on('SIGINT', function () {
9
- pact_core_1.default.removeAllServers();
10
- });
11
- //# sourceMappingURL=helper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../test/helper.ts"],"names":[],"mappings":";;;;;AAAA,yEAA8C;AAE9C,mDAAmD;AACnD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE;IACnB,mBAAI,CAAC,gBAAgB,EAAE,CAAC;AAC1B,CAAC,CAAC,CAAC"}