@contract-case/case-connector 0.30.1 → 0.31.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 (34) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/cjs/src/connectors/case-boundary/internals/BoundaryPluginLoader.cjs +9 -24
  3. package/dist/cjs/src/connectors/case-boundary/internals/BoundaryPluginLoader.d.ts.map +1 -1
  4. package/dist/cjs/src/connectors/case-boundary/internals/BoundaryPluginLoader.js.map +1 -1
  5. package/dist/cjs/src/connectors/case-boundary/internals/index.cjs +1 -0
  6. package/dist/cjs/src/connectors/case-boundary/internals/index.d.cts +1 -0
  7. package/dist/cjs/src/connectors/case-boundary/internals/index.d.ts.map +1 -1
  8. package/dist/cjs/src/connectors/case-boundary/internals/index.js.map +1 -1
  9. package/dist/cjs/src/entities/versionString.cjs +1 -1
  10. package/dist/cjs/src/entities/versionString.d.cts +1 -1
  11. package/dist/cjs/tsconfig.1a3e54e6.tsbuildinfo +1 -0
  12. package/dist/src/connectors/case-boundary/internals/BoundaryPluginLoader.d.ts.map +1 -1
  13. package/dist/src/connectors/case-boundary/internals/BoundaryPluginLoader.js +5 -20
  14. package/dist/src/connectors/case-boundary/internals/BoundaryPluginLoader.js.map +1 -1
  15. package/dist/src/connectors/case-boundary/internals/index.d.ts +1 -0
  16. package/dist/src/connectors/case-boundary/internals/index.d.ts.map +1 -1
  17. package/dist/src/connectors/case-boundary/internals/index.js +1 -0
  18. package/dist/src/connectors/case-boundary/internals/index.js.map +1 -1
  19. package/dist/src/entities/versionString.d.ts +1 -1
  20. package/dist/src/entities/versionString.js +1 -1
  21. package/dist/tsconfig.build.tsbuildinfo +1 -1
  22. package/eslint.config.mjs +2 -2
  23. package/package/case-connector.js +2 -2
  24. package/package/case-connector.js.LICENSE.txt +15 -25
  25. package/package/case-connector.js.map +1 -1
  26. package/package.json +8 -7
  27. package/test-fixtures/contract-case-test-plugin/default-export.js +9 -0
  28. package/test-fixtures/contract-case-test-plugin/esm-default.mjs +7 -0
  29. package/test-fixtures/contract-case-test-plugin/makePlugin.js +23 -0
  30. package/test-fixtures/contract-case-test-plugin/module-exports.js +7 -0
  31. package/test-fixtures/contract-case-test-plugin/named-exports.js +12 -0
  32. package/test-fixtures/contract-case-test-plugin/not-a-plugin.js +5 -0
  33. package/test-fixtures/contract-case-test-plugin/package.json +15 -0
  34. package/dist/cjs/tsconfig.61f51c13.tsbuildinfo +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.31.0](https://github.com/case-contract-testing/contract-case/compare/@contract-case/case-connector-v0.30.1...@contract-case/case-connector-v0.31.0) (2026-08-28)
4
+
5
+
6
+ ### Features
7
+
8
+ * Make the DSL generator runnable by plugin authors ([#1387](https://github.com/case-contract-testing/contract-case/issues/1387)) ([7576a42](https://github.com/case-contract-testing/contract-case/commit/7576a4207b3c1fa4d8b58d6db233634f9e791c4c))
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **plugins:** Make plugin loading work end to end ([#1386](https://github.com/case-contract-testing/contract-case/issues/1386)) ([8d79bb4](https://github.com/case-contract-testing/contract-case/commit/8d79bb4ee7d4f2d78363913f261ef5173a742f96))
14
+
15
+
16
+ ### Dependencies
17
+
18
+ * The following workspace dependencies were updated
19
+ * dependencies
20
+ * @contract-case/case-connector-proto bumped from 0.30.1 to 0.31.0
21
+ * @contract-case/case-core bumped from 0.30.1 to 0.31.0
22
+ * @contract-case/case-entities-internal bumped from 0.30.1 to 0.31.0
23
+ * devDependencies
24
+ * @contract-case/case-maintainer-config bumped from 0.30.1 to 0.31.0
25
+ * @contract-case/eslint-config-case-maintainer bumped from 0.30.1 to 0.31.0
26
+
3
27
  ## [0.30.1](https://github.com/case-contract-testing/contract-case/compare/@contract-case/case-connector-v0.30.0...@contract-case/case-connector-v0.30.1) (2026-07-18)
4
28
 
5
29
 
@@ -2,9 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BoundaryPluginLoader = void 0;
4
4
  const case_core_1 = require("@contract-case/case-core");
5
+ const case_entities_internal_1 = require("@contract-case/case-entities-internal");
6
+ const index_js_1 = require("./boundary/index.cjs");
5
7
  const versionString_js_1 = require("../../../entities/versionString.cjs");
6
- const index_js_1 = require("./mappers/index.cjs");
7
- const index_js_2 = require("./index.cjs");
8
+ const index_js_2 = require("./mappers/index.cjs");
9
+ const loadOne = (moduleName) => (0, case_entities_internal_1.loadPluginModuleContents)(moduleName).then((moduleContents) => (0, case_entities_internal_1.mustResolvePlugin)(moduleContents, moduleName));
8
10
  /**
9
11
  * A BoundaryPluginLoader allows loading plugins into the core
10
12
  *
@@ -42,38 +44,21 @@ class BoundaryPluginLoader {
42
44
  }
43
45
  initialiseLoader() {
44
46
  if (this.loader === undefined) {
45
- const { config } = (0, index_js_1.convertConfig)(this.constructorConfig);
46
- this.loader = new case_core_1.PluginLoader(config, (0, index_js_1.wrapLogPrinter)(this.logPrinter, this.resultPrinter), [...this.parentVersions]);
47
+ const { config } = (0, index_js_2.convertConfig)(this.constructorConfig);
48
+ this.loader = new case_core_1.PluginLoader(config, (0, index_js_2.wrapLogPrinter)(this.logPrinter, this.resultPrinter), [...this.parentVersions]);
47
49
  }
48
50
  }
49
51
  async loadPlugins(moduleNames) {
50
52
  this.initialiseLoader();
51
- return Promise.all(moduleNames.map((moduleName) => {
52
- if (
53
- // Forbid URIs
54
- moduleName.includes(':') ||
55
- // Forbid strings that start with '.', as they may be hidden files or path traversal
56
- moduleName.startsWith('.') ||
57
- // Forbid strings that start with / , as only local packages are supported
58
- moduleName.startsWith('/') ||
59
- // Forbid strings that don't look like node module names
60
- !/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*(?:\/[a-z0-9][a-z0-9._-]*)*$/i.test(moduleName)) {
61
- throw new case_core_1.CaseConfigurationError(`Unsafe plugin module specifier. Plugin names must be a valid local nodejs package name, and may not be remote or inline URIs. Provided name was: '${moduleName}'`, 'DONT_ADD_LOCATION', 'INVALID_PLUGIN_NAME');
62
- }
63
- // webpack ignore is needed here so that the final bundle for host
64
- // languages is able to import arbitrary libs, without webpack failing
65
- return import(/* webpackIgnore: true */ moduleName);
66
- }))
53
+ return Promise.all(moduleNames.map((moduleName) => loadOne(moduleName)))
67
54
  .then((plugins) => {
68
55
  if (this.loader == null) {
69
56
  throw new case_core_1.CaseCoreError('this.loader was not initialised during loadPlugins. This should never happen, as initialiseLoader() is meant to be called first');
70
57
  }
71
58
  this.loader.loadPlugins(plugins);
72
- }, (e) => {
73
- throw new case_core_1.CaseConfigurationError(`Unable to load plugin: ${e.message}`, 'DONT_ADD_LOCATION', 'UNDOCUMENTED');
74
59
  })
75
- .then(() => new index_js_2.BoundarySuccess())
76
- .catch(index_js_1.jsErrorToFailure);
60
+ .then(() => new index_js_1.BoundarySuccess())
61
+ .catch(index_js_2.jsErrorToFailure);
77
62
  }
78
63
  }
79
64
  exports.BoundaryPluginLoader = BoundaryPluginLoader;
@@ -1 +1 @@
1
- {"version":3,"file":"BoundaryPluginLoader.d.ts","sourceRoot":"","sources":["../../../../../../src/connectors/case-boundary/internals/BoundaryPluginLoader.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,0BAA0B,EAC1B,WAAW,EACX,cAAc,EACd,cAAc,EACf,MAAM,qBAAqB,CAAC;AAS7B;;;;GAIG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAA2B;IAEzC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA6B;IAE/D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IAEzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiB;IAE/C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAW;IAE1C;;;;;;;;;;OAUG;gBAED,MAAM,EAAE,0BAA0B,EAClC,UAAU,EAAE,WAAW,EACvB,aAAa,EAAE,cAAc,EAC7B,cAAc,EAAE,MAAM,EAAE;IAc1B,OAAO,CAAC,gBAAgB;IAYlB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;CA+ClE"}
1
+ {"version":3,"file":"BoundaryPluginLoader.d.ts","sourceRoot":"","sources":["../../../../../../src/connectors/case-boundary/internals/BoundaryPluginLoader.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,0BAA0B,EAC1B,WAAW,EACX,cAAc,EACd,cAAc,EAEf,MAAM,qBAAqB,CAAC;AAe7B;;;;GAIG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAA2B;IAEzC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA6B;IAE/D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IAEzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiB;IAE/C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAW;IAE1C;;;;;;;;;;OAUG;gBAED,MAAM,EAAE,0BAA0B,EAClC,UAAU,EAAE,WAAW,EACvB,aAAa,EAAE,cAAc,EAC7B,cAAc,EAAE,MAAM,EAAE;IAc1B,OAAO,CAAC,gBAAgB;IAYlB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;CAclE"}
@@ -1 +1 @@
1
- {"version":3,"file":"BoundaryPluginLoader.js","sourceRoot":"","sources":["../../../../../../src/connectors/case-boundary/internals/BoundaryPluginLoader.ts"],"names":[],"mappings":";;;AAAA,wDAIkC;AAQlC,yEAAmE;AACnE,iDAI4B;AAC5B,yCAA6C;AAE7C;;;;GAIG;AACH,MAAa,oBAAoB;IACvB,MAAM,CAA2B;IAExB,iBAAiB,CAA6B;IAE9C,UAAU,CAAc;IAExB,aAAa,CAAiB;IAE9B,cAAc,CAAW;IAE1C;;;;;;;;;;OAUG;IACH,YACE,MAAkC,EAClC,UAAuB,EACvB,aAA6B,EAC7B,cAAwB;QAExB,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,sDAAsD;QACtD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,gCAAa,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,cAAc,EAAE,gCAAa,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACvC,CAAC;IACH,CAAC;IAEO,gBAAgB;QACtB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,wBAAa,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAEzD,IAAI,CAAC,MAAM,GAAG,IAAI,wBAAY,CAC5B,MAAM,EACN,IAAA,yBAAc,EAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,EACnD,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CACzB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,WAAqB;QACrC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC,GAAG,CAChB,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;YAC7B;YACE,cAAc;YACd,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACxB,oFAAoF;gBACpF,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC;gBAC1B,0EAA0E;gBAC1E,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC;gBAC1B,wDAAwD;gBACxD,CAAC,gFAAgF,CAAC,IAAI,CACpF,UAAU,CACX,EACD,CAAC;gBACD,MAAM,IAAI,kCAAsB,CAC9B,qJAAqJ,UAAU,GAAG,EAClK,mBAAmB,EACnB,qBAAqB,CACtB,CAAC;YACJ,CAAC;YACD,kEAAkE;YAClE,sEAAsE;YACtE,OAAO,MAAM,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;QACtD,CAAC,CAAC,CACH;aACE,IAAI,CACH,CAAC,OAAO,EAAE,EAAE;YACV,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;gBACxB,MAAM,IAAI,yBAAa,CACrB,iIAAiI,CAClI,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC,EACD,CAAC,CAAC,EAAE,EAAE;YACJ,MAAM,IAAI,kCAAsB,CAC9B,0BAA0B,CAAC,CAAC,OAAO,EAAE,EACrC,mBAAmB,EACnB,cAAc,CACf,CAAC;QACJ,CAAC,CACF;aACA,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,0BAAe,EAAE,CAAC;aACjC,KAAK,CAAC,2BAAgB,CAAC,CAAC;IAC7B,CAAC;CACF;AAnGD,oDAmGC"}
1
+ {"version":3,"file":"BoundaryPluginLoader.js","sourceRoot":"","sources":["../../../../../../src/connectors/case-boundary/internals/BoundaryPluginLoader.ts"],"names":[],"mappings":";;;AAAA,wDAAuE;AACvE,kFAG+C;AAE/C,kDAM6B;AAC7B,yEAAmE;AACnE,iDAI4B;AAE5B,MAAM,OAAO,GAAG,CACd,UAAkB,EAC6B,EAAE,CACjD,IAAA,iDAAwB,EAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE,CAC3D,IAAA,0CAAiB,EAAC,cAAc,EAAE,UAAU,CAAC,CAC9C,CAAC;AAEJ;;;;GAIG;AACH,MAAa,oBAAoB;IACvB,MAAM,CAA2B;IAExB,iBAAiB,CAA6B;IAE9C,UAAU,CAAc;IAExB,aAAa,CAAiB;IAE9B,cAAc,CAAW;IAE1C;;;;;;;;;;OAUG;IACH,YACE,MAAkC,EAClC,UAAuB,EACvB,aAA6B,EAC7B,cAAwB;QAExB,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,sDAAsD;QACtD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,gCAAa,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,cAAc,EAAE,gCAAa,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACvC,CAAC;IACH,CAAC;IAEO,gBAAgB;QACtB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,wBAAa,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAEzD,IAAI,CAAC,MAAM,GAAG,IAAI,wBAAY,CAC5B,MAAM,EACN,IAAA,yBAAc,EAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,EACnD,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CACzB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,WAAqB;QACrC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;aACrE,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YAChB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;gBACxB,MAAM,IAAI,yBAAa,CACrB,iIAAiI,CAClI,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC,CAAC;aACD,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,0BAAe,EAAE,CAAC;aACjC,KAAK,CAAC,2BAAgB,CAAC,CAAC;IAC7B,CAAC;CACF;AAlED,oDAkEC"}
@@ -23,6 +23,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
23
23
  Object.defineProperty(exports, "__esModule", { value: true });
24
24
  __exportStar(require("./BoundaryContractDefiner.cjs"), exports);
25
25
  __exportStar(require("./BoundaryContractVerifier.cjs"), exports);
26
+ __exportStar(require("./BoundaryPluginLoader.cjs"), exports);
26
27
  __exportStar(require("./boundary/index.cjs"), exports);
27
28
  __exportStar(require("./types.cjs"), exports);
28
29
  //# sourceMappingURL=index.js.map
@@ -7,6 +7,7 @@
7
7
  */
8
8
  export * from './BoundaryContractDefiner.cjs';
9
9
  export * from './BoundaryContractVerifier.cjs';
10
+ export * from './BoundaryPluginLoader.cjs';
10
11
  export * from './boundary/index.cjs';
11
12
  export * from './types.cjs';
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/connectors/case-boundary/internals/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/connectors/case-boundary/internals/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/connectors/case-boundary/internals/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;AAEH,+DAA6C;AAC7C,gEAA8C;AAC9C,sDAAoC;AACpC,6CAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/connectors/case-boundary/internals/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;AAEH,+DAA6C;AAC7C,gEAA8C;AAC9C,4DAA0C;AAC1C,sDAAoC;AACpC,6CAA2B"}
@@ -2,6 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.versionString = void 0;
4
4
  const packageName = 'case-connector';
5
- const version = '0.30.1'; // x-release-please-version
5
+ const version = '0.31.0'; // x-release-please-version
6
6
  exports.versionString = `${packageName}@${version}`;
7
7
  //# sourceMappingURL=versionString.js.map
@@ -1,2 +1,2 @@
1
- export declare const versionString = "case-connector@0.30.1";
1
+ export declare const versionString = "case-connector@0.31.0";
2
2
  //# sourceMappingURL=versionString.d.ts.map