@contract-case/case-connector 0.20.1 → 0.21.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
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.21.0](https://github.com/case-contract-testing/contract-case/compare/@contract-case/case-connector-v0.20.1...@contract-case/case-connector-v0.21.0) (2025-03-25)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * **connector:** Start the connector on ipv6 ([#925](https://github.com/case-contract-testing/contract-case/issues/925)) ([e502231](https://github.com/case-contract-testing/contract-case/commit/e502231983f094d492dc141d4467f6dbb4d0315f))
9
+
10
+
11
+ ### Dependencies
12
+
13
+ * The following workspace dependencies were updated
14
+ * dependencies
15
+ * @contract-case/case-core bumped from 0.20.1 to 0.21.0
16
+ * @contract-case/case-connector-proto bumped from 0.20.1 to 0.21.0
17
+ * @contract-case/case-entities-internal bumped from 0.20.1 to 0.21.0
18
+ * devDependencies
19
+ * @contract-case/case-maintainer-config bumped from 0.20.1 to 0.21.0
20
+ * @contract-case/eslint-config-case-maintainer bumped from 0.20.1 to 0.21.0
21
+
3
22
  ## [0.20.1](https://github.com/case-contract-testing/contract-case/compare/@contract-case/case-connector-v0.20.0...@contract-case/case-connector-v0.20.1) (2025-03-22)
4
23
 
5
24
 
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contract-case/case-connector",
3
- "version": "0.20.1",
3
+ "version": "0.21.0",
4
4
  "type": "module",
5
5
  "description": "Connector to allow ContractCase to run as a server. Use only if you're creating a custom wrapper for a new language",
6
6
  "author": "Timothy Jones <timothy.l.jones@gmail.com> (https://github.com/TimothyJones)",
@@ -33,8 +33,8 @@
33
33
  "url": "https://github.com/case-contract-testing/case/issues"
34
34
  },
35
35
  "devDependencies": {
36
- "@contract-case/case-maintainer-config": "0.20.1",
37
- "@contract-case/eslint-config-case-maintainer": "0.20.1",
36
+ "@contract-case/case-maintainer-config": "0.21.0",
37
+ "@contract-case/eslint-config-case-maintainer": "0.21.0",
38
38
  "@types/google-protobuf": "^3.15.12",
39
39
  "@types/jest": "^29.5.12",
40
40
  "@types/uuid": "^10.0.0",
@@ -43,17 +43,17 @@
43
43
  "prettier": "3.4.2",
44
44
  "rimraf": "^6.0.1",
45
45
  "source-map-loader": "^5.0.0",
46
- "terser-webpack-plugin": "^5.3.10",
46
+ "terser-webpack-plugin": "^5.3.14",
47
47
  "ts-jest": "^29.2.5",
48
48
  "ts-node": "^10.9.2",
49
49
  "webpack": "^5.97.1",
50
50
  "webpack-cli": "^6.0.1"
51
51
  },
52
52
  "dependencies": {
53
- "@contract-case/case-core": "0.20.1",
54
- "@contract-case/case-connector-proto": "0.20.1",
55
- "@contract-case/case-entities-internal": "0.20.1",
56
- "@grpc/grpc-js": "^1.12.6",
53
+ "@contract-case/case-core": "0.21.0",
54
+ "@contract-case/case-connector-proto": "0.21.0",
55
+ "@contract-case/case-entities-internal": "0.21.0",
56
+ "@grpc/grpc-js": "^1.13.1",
57
57
  "@grpc/proto-loader": "^0.7.10",
58
58
  "get-port": "^7.1.0",
59
59
  "google-protobuf": "^3.21.4",
@@ -1 +1 @@
1
- {"version":3,"file":"contract-case-stream.d.ts","sourceRoot":"","sources":["../../../../src/connectors/grpc/contract-case-stream.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,wBAAgB,IAAI,IAAI,IAAI,CAyB3B"}
1
+ {"version":3,"file":"contract-case-stream.d.ts","sourceRoot":"","sources":["../../../../src/connectors/grpc/contract-case-stream.ts"],"names":[],"mappings":"AAgCA;;GAEG;AACH,wBAAgB,IAAI,IAAI,IAAI,CAkC3B"}
@@ -4,28 +4,46 @@ import getPort from 'get-port';
4
4
  import { contractDefinition } from './contractDefinition.js';
5
5
  import { contractVerification } from './contractVerification.js';
6
6
  import { versionString } from '../../versionString.js';
7
+ import { maintainerLog } from '../../domain/maintainerLog.js';
8
+ const bind = (server, host, freePort) => new Promise((resolve, reject) => {
9
+ const address = `${host}:${freePort}`;
10
+ maintainerLog(`Attempting to bind server: ${address}`);
11
+ server.bindAsync(address, ServerCredentials.createInsecure(), (error, port) => {
12
+ if (error != null) {
13
+ reject(error);
14
+ }
15
+ else {
16
+ resolve({ port: `${port}`, address });
17
+ }
18
+ });
19
+ });
7
20
  /**
8
21
  * Starts a gRPC server for defining and verifying ContractCase contracts
9
22
  */
10
23
  export function main() {
24
+ maintainerLog(`Starting ContractCase connector @ ${versionString}`);
11
25
  const server = new Server();
12
26
  getPort().then((freePort) => {
13
27
  server.addService(ContractCaseService, {
14
28
  contractDefinition,
15
29
  contractVerification,
16
30
  });
17
- server.bindAsync(`0.0.0.0:${freePort}`, ServerCredentials.createInsecure(), (error, port) => {
18
- if (error != null) {
19
- // Console used here because there's nothing sensible we can do with this error
20
- // eslint-disable-next-line no-console
21
- console.error(`[${versionString}]`, `Unable to start: ${error}`);
22
- }
23
- else {
24
- // This is needed to communicate with clients
25
- // Must have the port number after the `:`
26
- // eslint-disable-next-line no-console
27
- console.log('[SERVER]', `Started on port: ${port}`);
28
- }
31
+ return bind(server, '[::1]', freePort)
32
+ .catch((error) => {
33
+ maintainerLog('Server bind failed with error: ', error);
34
+ return bind(server, '127.0.0.1', freePort);
35
+ })
36
+ .then(({ port, address }) => {
37
+ maintainerLog(`Successfully started server at ${address}`);
38
+ // This is needed to communicate with clients
39
+ // Must have the port number after the `:`
40
+ // eslint-disable-next-line no-console
41
+ console.log('[SERVER]', `Started on port: ${port}`);
42
+ }, (error) => {
43
+ // Console used here because there's nothing sensible we can do with this error
44
+ // eslint-disable-next-line no-console
45
+ console.error(`[${versionString}]`, `ContractCase's internal server was unable to start: ${error}`);
46
+ process.exit(1);
29
47
  });
30
48
  });
31
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"contract-case-stream.js","sourceRoot":"","sources":["../../../../src/connectors/grpc/contract-case-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,OAAO,MAAM,UAAU,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD;;GAEG;AACH,MAAM,UAAU,IAAI;IAClB,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;IAE5B,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC1B,MAAM,CAAC,UAAU,CAAC,mBAAmB,EAAE;YACrC,kBAAkB;YAClB,oBAAoB;SACrB,CAAC,CAAC;QACH,MAAM,CAAC,SAAS,CACd,WAAW,QAAQ,EAAE,EACrB,iBAAiB,CAAC,cAAc,EAAE,EAClC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACd,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;gBAClB,+EAA+E;gBAC/E,sCAAsC;gBACtC,OAAO,CAAC,KAAK,CAAC,IAAI,aAAa,GAAG,EAAE,oBAAoB,KAAK,EAAE,CAAC,CAAC;YACnE,CAAC;iBAAM,CAAC;gBACN,6CAA6C;gBAC7C,0CAA0C;gBAC1C,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,oBAAoB,IAAI,EAAE,CAAC,CAAC;YACtD,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"contract-case-stream.js","sourceRoot":"","sources":["../../../../src/connectors/grpc/contract-case-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,OAAO,MAAM,UAAU,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAI9D,MAAM,IAAI,GAAG,CACX,MAAc,EACd,IAAY,EACZ,QAAgB,EACK,EAAE,CACvB,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IAC9B,MAAM,OAAO,GAAG,GAAG,IAAI,IAAI,QAAQ,EAAE,CAAC;IACtC,aAAa,CAAC,8BAA8B,OAAO,EAAE,CAAC,CAAC;IACvD,MAAM,CAAC,SAAS,CACd,OAAO,EACP,iBAAiB,CAAC,cAAc,EAAE,EAClC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACd,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QACxC,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEL;;GAEG;AACH,MAAM,UAAU,IAAI;IAClB,aAAa,CAAC,qCAAqC,aAAa,EAAE,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;IAE5B,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC1B,MAAM,CAAC,UAAU,CAAC,mBAAmB,EAAE;YACrC,kBAAkB;YAClB,oBAAoB;SACrB,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC;aACnC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACf,aAAa,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;YACxD,OAAO,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC7C,CAAC,CAAC;aACD,IAAI,CACH,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;YACpB,aAAa,CAAC,kCAAkC,OAAO,EAAE,CAAC,CAAC;YAC3D,6CAA6C;YAC7C,0CAA0C;YAC1C,sCAAsC;YACtC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,oBAAoB,IAAI,EAAE,CAAC,CAAC;QACtD,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;YACR,+EAA+E;YAC/E,sCAAsC;YACtC,OAAO,CAAC,KAAK,CACX,IAAI,aAAa,GAAG,EACpB,uDAAuD,KAAK,EAAE,CAC/D,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CACF,CAAC;IACN,CAAC,CAAC,CAAC;AACL,CAAC"}