@contract-case/case-connector 0.29.1 → 0.30.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.
Files changed (36) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +19 -0
  3. package/dist/cjs/src/connectors/case-boundary/internals/BoundaryPluginLoader.cjs +16 -4
  4. package/dist/cjs/src/connectors/case-boundary/internals/BoundaryPluginLoader.d.ts.map +1 -1
  5. package/dist/cjs/src/connectors/case-boundary/internals/BoundaryPluginLoader.js.map +1 -1
  6. package/dist/cjs/src/connectors/grpc/authTokenInterceptor.cjs +41 -0
  7. package/dist/cjs/src/connectors/grpc/authTokenInterceptor.d.cts +14 -0
  8. package/dist/cjs/src/connectors/grpc/authTokenInterceptor.d.ts.map +1 -0
  9. package/dist/cjs/src/connectors/grpc/authTokenInterceptor.js.map +1 -0
  10. package/dist/cjs/src/connectors/grpc/contract-case-stream.d.mts +7 -1
  11. package/dist/cjs/src/connectors/grpc/contract-case-stream.d.mts.map +1 -1
  12. package/dist/cjs/src/connectors/grpc/contract-case-stream.mjs +18 -3
  13. package/dist/cjs/src/connectors/grpc/contract-case-stream.mjs.map +1 -1
  14. package/dist/cjs/src/entities/versionString.cjs +1 -1
  15. package/dist/cjs/src/entities/versionString.d.cts +1 -1
  16. package/dist/cjs/tsconfig.56c70853.tsbuildinfo +1 -0
  17. package/dist/src/connectors/case-boundary/internals/BoundaryPluginLoader.d.ts.map +1 -1
  18. package/dist/src/connectors/case-boundary/internals/BoundaryPluginLoader.js +16 -4
  19. package/dist/src/connectors/case-boundary/internals/BoundaryPluginLoader.js.map +1 -1
  20. package/dist/src/connectors/grpc/authTokenInterceptor.d.ts +14 -0
  21. package/dist/src/connectors/grpc/authTokenInterceptor.d.ts.map +1 -0
  22. package/dist/src/connectors/grpc/authTokenInterceptor.js +37 -0
  23. package/dist/src/connectors/grpc/authTokenInterceptor.js.map +1 -0
  24. package/dist/src/connectors/grpc/contract-case-stream.d.mts +7 -1
  25. package/dist/src/connectors/grpc/contract-case-stream.d.mts.map +1 -1
  26. package/dist/src/connectors/grpc/contract-case-stream.mjs +18 -3
  27. package/dist/src/connectors/grpc/contract-case-stream.mjs.map +1 -1
  28. package/dist/src/entities/versionString.d.ts +1 -1
  29. package/dist/src/entities/versionString.js +1 -1
  30. package/dist/tsconfig.build.tsbuildinfo +1 -1
  31. package/package/case-connector.js +2 -2
  32. package/package/case-connector.js.LICENSE.txt +6 -0
  33. package/package/case-connector.js.map +1 -1
  34. package/package.json +10 -10
  35. package/src/connectors/grpc/contract-case-stream.mts +22 -4
  36. package/dist/cjs/tsconfig.557bacae.tsbuildinfo +0 -1
@@ -3,6 +3,7 @@ import { ContractCaseService } from '@contract-case/case-connector-proto';
3
3
  import getPort from 'get-port';
4
4
  import { contractDefinition } from './contractDefinition.js';
5
5
  import { contractVerification } from './contractVerification.js';
6
+ import { makeAuthTokenInterceptor } from './authTokenInterceptor.js';
6
7
  import { versionString } from '../../entities/versionString.js';
7
8
  import { maintainerLog } from '../../domain/maintainerLog.js';
8
9
  const bind = (server, host, freePort) => new Promise((resolve, reject) => {
@@ -19,11 +20,24 @@ const bind = (server, host, freePort) => new Promise((resolve, reject) => {
19
20
  });
20
21
  /**
21
22
  * Starts a gRPC server for defining and verifying ContractCase contracts
23
+ *
24
+ * @returns the running server and the port it is listening on
22
25
  */
23
26
  export function main() {
24
27
  maintainerLog(`Starting ContractCase ${versionString}`);
25
- const server = new Server();
26
- getPort().then((freePort) => {
28
+ // Only calls that present this token are accepted
29
+ // - see authTokenInterceptor for details
30
+ const authToken = process.env['CASE_CONNECTOR_TOKEN'];
31
+ if (authToken == null || authToken === '') {
32
+ // Console used here because there's nothing sensible we can do with this error
33
+ // eslint-disable-next-line no-console
34
+ console.error(`[${versionString}]`, "ContractCase's internal server requires the CASE_CONNECTOR_TOKEN environment variable to be set to an unguessable random secret, so that only the client that started the server can connect to it");
35
+ process.exit(1);
36
+ }
37
+ const server = new Server({
38
+ interceptors: [makeAuthTokenInterceptor(authToken)],
39
+ });
40
+ return getPort().then((freePort) => {
27
41
  server.addService(ContractCaseService, {
28
42
  contractDefinition,
29
43
  contractVerification,
@@ -39,11 +53,12 @@ export function main() {
39
53
  // Must have the port number after the `:`
40
54
  // eslint-disable-next-line no-console
41
55
  console.log('[SERVER]', `Started on port: ${port}`);
56
+ return { server, port };
42
57
  }, (error) => {
43
58
  // Console used here because there's nothing sensible we can do with this error
44
59
  // eslint-disable-next-line no-console
45
60
  console.error(`[${versionString}]`, `ContractCase's internal server was unable to start: ${error}`);
46
- process.exit(1);
61
+ return process.exit(1);
47
62
  });
48
63
  });
49
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"contract-case-stream.mjs","sourceRoot":"","sources":["../../../../src/connectors/grpc/contract-case-stream.mts"],"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,iCAAiC,CAAC;AAChE,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,yBAAyB,aAAa,EAAE,CAAC,CAAC;IACxD,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"}
1
+ {"version":3,"file":"contract-case-stream.mjs","sourceRoot":"","sources":["../../../../src/connectors/grpc/contract-case-stream.mts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const versionString = "case-connector@0.29.1";
1
+ export declare const versionString = "case-connector@0.30.0";
2
2
  //# sourceMappingURL=versionString.d.ts.map
@@ -1,4 +1,4 @@
1
1
  const packageName = 'case-connector';
2
- const version = '0.29.1'; // x-release-please-version
2
+ const version = '0.30.0'; // x-release-please-version
3
3
  export const versionString = `${packageName}@${version}`;
4
4
  //# sourceMappingURL=versionString.js.map