@living-architecture/riviere-extract-config 0.5.7 → 0.5.8

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.
@@ -176,43 +176,6 @@ export interface DetectionRule {
176
176
  export type ComponentRule = NotUsed | DetectionRule;
177
177
  /** User-defined component types with their detection rules. */
178
178
  export type CustomTypes = Record<string, DetectionRule>;
179
- /** Connection detection strategy. */
180
- export type ConnectionFindTarget = 'methodCalls';
181
- /** Connection link type indicating sync or async communication. */
182
- export type ConnectionLinkType = 'sync' | 'async';
183
- /** Matches a method call site for connection detection. */
184
- export interface ConnectionCallSiteMatch {
185
- methodName?: string;
186
- receiverType?: string;
187
- callerHasDecorator?: string[];
188
- calleeType?: {
189
- hasDecorator: string;
190
- };
191
- }
192
- /** Extracts static type of argument at position. */
193
- export interface FromArgumentExtractionRule {
194
- fromArgument: number;
195
- }
196
- /** Extracts the static type name of the receiver. */
197
- export interface FromReceiverTypeExtractionRule {
198
- fromReceiverType: true;
199
- }
200
- /** Extracts the static type name of the caller. */
201
- export interface FromCallerTypeExtractionRule {
202
- fromCallerType: true;
203
- }
204
- /** Union of connection-specific extraction rule types. */
205
- export type ConnectionExtractionRule = FromArgumentExtractionRule | FromReceiverTypeExtractionRule | FromCallerTypeExtractionRule;
206
- /** Connection extraction rules mapping field names to extraction rules. */
207
- export type ConnectionExtractBlock = Record<string, ConnectionExtractionRule>;
208
- /** A pattern for detecting connections between components. */
209
- export interface ConnectionPattern {
210
- name: string;
211
- find: ConnectionFindTarget;
212
- where: ConnectionCallSiteMatch;
213
- extract?: ConnectionExtractBlock;
214
- linkType: ConnectionLinkType;
215
- }
216
179
  /**
217
180
  * Declares a custom component type as an event publisher.
218
181
  * The component type must be defined in customTypes in at least one module.
@@ -223,15 +186,24 @@ export interface EventPublisherConfig {
223
186
  /** The metadata key on this component type that holds the published event type name. */
224
187
  metadataKey: string;
225
188
  }
226
- /** Connection detection configuration with pattern definitions. */
189
+ /**
190
+ * Declares how to resolve HTTP client calls into cross-domain Links.
191
+ * The custom type must be defined in customTypes in at least one module.
192
+ */
193
+ export interface HttpLinkConfig {
194
+ /** The custom component type name for HTTP clients (e.g. 'httpCall'). */
195
+ fromCustomType: string;
196
+ /** Metadata key whose value identifies the target domain. */
197
+ matchDomainBy: string;
198
+ /** Metadata keys used to match the target API component. */
199
+ matchApiBy: string[];
200
+ }
201
+ /** Connection detection configuration. */
227
202
  export interface ConnectionsConfig {
228
- patterns?: ConnectionPattern[];
229
203
  /** Declares which custom component types publish events and how to detect them. */
230
204
  eventPublishers?: EventPublisherConfig[];
231
- }
232
- /** Module-level connection detection configuration (patterns only — eventPublishers is top-level only). */
233
- export interface ModuleConnectionsConfig {
234
- patterns?: ConnectionPattern[];
205
+ /** Declares how to resolve HTTP client calls into cross-domain Links. */
206
+ httpLinks?: HttpLinkConfig[];
235
207
  }
236
208
  /**
237
209
  * Reference to an external module definition file.
@@ -247,8 +219,11 @@ export interface ModuleRef {
247
219
  */
248
220
  export interface ModuleConfig {
249
221
  name: string;
222
+ domain: string;
250
223
  path: string;
251
224
  glob: string;
225
+ /** Path pattern with `{module}` placeholder for resolving module names from file paths. */
226
+ modules?: string;
252
227
  extends?: string;
253
228
  api?: ComponentRule;
254
229
  useCase?: ComponentRule;
@@ -257,7 +232,6 @@ export interface ModuleConfig {
257
232
  eventHandler?: ComponentRule;
258
233
  ui?: ComponentRule;
259
234
  customTypes?: CustomTypes;
260
- connections?: ModuleConnectionsConfig;
261
235
  }
262
236
  /**
263
237
  * A fully resolved module with all component rules.
@@ -265,8 +239,11 @@ export interface ModuleConfig {
265
239
  */
266
240
  export interface Module {
267
241
  name: string;
242
+ domain: string;
268
243
  path: string;
269
244
  glob: string;
245
+ /** Path pattern with `{module}` placeholder for resolving module names from file paths. */
246
+ modules?: string;
270
247
  api: ComponentRule;
271
248
  useCase: ComponentRule;
272
249
  domainOp: ComponentRule;
@@ -1 +1 @@
1
- {"version":3,"file":"extraction-config-schema.d.ts","sourceRoot":"","sources":["../src/extraction-config-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extraction-config-schema.d.ts","sourceRoot":"","sources":["../src/extraction-config-schema.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validation-fixtures.d.ts","sourceRoot":"","sources":["../src/validation-fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,EACnD,MAAM,4BAA4B,CAAA;AAEnC,wBAAgB,uBAAuB,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAW9D;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAW5D;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAY5C;AAED,wBAAgB,mBAAmB,IAAI,gBAAgB,CAEtD;AAED,wBAAgB,oBAAoB,IAAI,wBAAwB,CAE/D;AAED,wBAAgB,mBAAmB,IAAI;IACrC,MAAM,EAAE,gBAAgB,CAAA;IACxB,MAAM,EAAE,MAAM,CAAA;CACf,CAOA;AAED,wBAAgB,gBAAgB,IAAI,gBAAgB,CAoCnD"}
1
+ {"version":3,"file":"validation-fixtures.d.ts","sourceRoot":"","sources":["../src/validation-fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,EACnD,MAAM,4BAA4B,CAAA;AAEnC,wBAAgB,uBAAuB,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAY9D;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAY5D;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAa5C;AAED,wBAAgB,mBAAmB,IAAI,gBAAgB,CAEtD;AAED,wBAAgB,oBAAoB,IAAI,wBAAwB,CAE/D;AAED,wBAAgB,mBAAmB,IAAI;IACrC,MAAM,EAAE,gBAAgB,CAAA;IACxB,MAAM,EAAE,MAAM,CAAA;CACf,CAOA;AAED,wBAAgB,gBAAgB,IAAI,gBAAgB,CAqCnD"}
@@ -1,6 +1,7 @@
1
1
  export function createModuleWithoutPath() {
2
2
  return {
3
3
  name: 'test',
4
+ domain: 'test',
4
5
  glob: 'src/**',
5
6
  api: { notUsed: true },
6
7
  useCase: { notUsed: true },
@@ -13,6 +14,7 @@ export function createModuleWithoutPath() {
13
14
  export function createModuleWithoutApi() {
14
15
  return {
15
16
  name: 'test',
17
+ domain: 'test',
16
18
  path: '.',
17
19
  glob: 'src/**',
18
20
  useCase: { notUsed: true },
@@ -25,6 +27,7 @@ export function createModuleWithoutApi() {
25
27
  export function createMinimalModule() {
26
28
  return {
27
29
  name: 'test',
30
+ domain: 'test',
28
31
  path: '.',
29
32
  glob: 'src/**',
30
33
  api: { notUsed: true },
@@ -54,6 +57,7 @@ export function createFullConfig() {
54
57
  modules: [
55
58
  {
56
59
  name: 'orders',
60
+ domain: 'orders',
57
61
  path: 'orders',
58
62
  glob: '**',
59
63
  api: {
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAGV,gBAAgB,EAGjB,MAAM,4BAA4B,CAAA;AA8BnC;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,gBAAgB,CAE/E;AAED,qDAAqD;AACrD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,mDAAmD;AACnD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,eAAe,EAAE,CAAA;CAC1B;AAED,4DAA4D;AAC5D,qBAAa,+BAAgC,SAAQ,KAAK;aAE5B,MAAM,EAAE,eAAe,EAAE;IADrD,mEAAmE;gBACvC,MAAM,EAAE,eAAe,EAAE;CAItD;AASD,UAAU,YAAY;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,GAAG,SAAS,GAAG,eAAe,EAAE,CAQzF;AA0HD;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,OAAO,GAAG,gBAAgB,CAa9E;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,gBAAgB,CAqBxE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,CAExE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,gBAAgB,CAMrE"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAGV,gBAAgB,EAGjB,MAAM,4BAA4B,CAAA;AA8BnC;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,gBAAgB,CAE/E;AAED,qDAAqD;AACrD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,mDAAmD;AACnD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,eAAe,EAAE,CAAA;CAC1B;AAED,4DAA4D;AAC5D,qBAAa,+BAAgC,SAAQ,KAAK;aAE5B,MAAM,EAAE,eAAe,EAAE;IADrD,mEAAmE;gBACvC,MAAM,EAAE,eAAe,EAAE;CAItD;AASD,UAAU,YAAY;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,GAAG,SAAS,GAAG,eAAe,EAAE,CAQzF;AAuKD;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,OAAO,GAAG,gBAAgB,CAa9E;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,gBAAgB,CAqBxE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,CAExE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,gBAAgB,CAMrE"}
@@ -151,12 +151,50 @@ function validateEventPublishers(connections, customTypeFields) {
151
151
  return [];
152
152
  });
153
153
  }
154
+ function validateHttpLinks(connections, customTypeFields) {
155
+ if (connections.httpLinks === undefined) {
156
+ return [];
157
+ }
158
+ return connections.httpLinks.flatMap((httpLink, index) => {
159
+ const extractedFields = customTypeFields.get(httpLink.fromCustomType);
160
+ if (extractedFields === undefined) {
161
+ return [
162
+ {
163
+ path: `/connections/httpLinks/${index}/fromCustomType`,
164
+ message: `"${httpLink.fromCustomType}" is not defined as a customType in any module. ` +
165
+ `Add a customType named "${httpLink.fromCustomType}" to at least one module.`,
166
+ },
167
+ ];
168
+ }
169
+ const errors = [];
170
+ if (!extractedFields.has(httpLink.matchDomainBy)) {
171
+ errors.push({
172
+ path: `/connections/httpLinks/${index}/matchDomainBy`,
173
+ message: `customType "${httpLink.fromCustomType}" does not extract "${httpLink.matchDomainBy}". ` +
174
+ `Add extract["${httpLink.matchDomainBy}"] to that custom type.`,
175
+ });
176
+ }
177
+ for (const field of httpLink.matchApiBy) {
178
+ if (!extractedFields.has(field)) {
179
+ errors.push({
180
+ path: `/connections/httpLinks/${index}/matchApiBy`,
181
+ message: `customType "${httpLink.fromCustomType}" does not extract "${field}". ` +
182
+ `Add extract["${field}"] to that custom type.`,
183
+ });
184
+ }
185
+ }
186
+ return errors;
187
+ });
188
+ }
154
189
  function validateConnectionsConfig(config) {
155
190
  if (config.connections === undefined) {
156
191
  return [];
157
192
  }
158
193
  const customTypeFields = collectCustomTypeExtractedFields(config);
159
- return validateEventPublishers(config.connections, customTypeFields);
194
+ return [
195
+ ...validateEventPublishers(config.connections, customTypeFields),
196
+ ...validateHttpLinks(config.connections, customTypeFields),
197
+ ];
160
198
  }
161
199
  /**
162
200
  * Validates data against the ExtractionConfig JSON Schema only.
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "connections": {
23
23
  "$ref": "#/$defs/connectionsConfig",
24
- "description": "Global connection detection patterns inherited by all modules"
24
+ "description": "Connection detection configuration"
25
25
  }
26
26
  },
27
27
  "$defs": {
@@ -41,12 +41,17 @@
41
41
  "module": {
42
42
  "type": "object",
43
43
  "description": "A module defines extraction rules for a path pattern",
44
- "required": ["name", "path", "glob"],
44
+ "required": ["name", "domain", "path", "glob"],
45
45
  "additionalProperties": false,
46
46
  "properties": {
47
47
  "name": {
48
48
  "type": "string",
49
- "description": "Module name, used as the domain for extracted components",
49
+ "description": "Extraction config module identifier",
50
+ "minLength": 1
51
+ },
52
+ "domain": {
53
+ "type": "string",
54
+ "description": "Riviere graph domain this module belongs to",
50
55
  "minLength": 1
51
56
  },
52
57
  "path": {
@@ -54,6 +59,11 @@
54
59
  "description": "Module root directory relative to config file",
55
60
  "minLength": 1
56
61
  },
62
+ "modules": {
63
+ "type": "string",
64
+ "description": "Path pattern with {module} placeholder for resolving module names from file paths",
65
+ "pattern": "\\{module\\}"
66
+ },
57
67
  "glob": {
58
68
  "type": "string",
59
69
  "description": "Glob pattern for source files within the module directory",
@@ -94,10 +104,6 @@
94
104
  "additionalProperties": {
95
105
  "$ref": "#/$defs/detectionRule"
96
106
  }
97
- },
98
- "connections": {
99
- "$ref": "#/$defs/moduleConnectionsConfig",
100
- "description": "Module-level connection detection patterns additive to global"
101
107
  }
102
108
  },
103
109
  "if": {
@@ -630,17 +636,9 @@
630
636
  },
631
637
  "connectionsConfig": {
632
638
  "type": "object",
633
- "description": "Connection detection configuration with pattern definitions",
639
+ "description": "Connection detection configuration",
634
640
  "additionalProperties": false,
635
641
  "properties": {
636
- "patterns": {
637
- "type": "array",
638
- "description": "Connection detection patterns",
639
- "minItems": 1,
640
- "items": {
641
- "$ref": "#/$defs/connectionPattern"
642
- }
643
- },
644
642
  "eventPublishers": {
645
643
  "type": "array",
646
644
  "description": "Declares which custom component types publish events and how to detect the connections",
@@ -648,163 +646,59 @@
648
646
  "items": {
649
647
  "$ref": "#/$defs/eventPublisherConfig"
650
648
  }
651
- }
652
- }
653
- },
654
- "moduleConnectionsConfig": {
655
- "type": "object",
656
- "description": "Module-level connection detection configuration (patterns only — eventPublishers is top-level only)",
657
- "additionalProperties": false,
658
- "properties": {
659
- "patterns": {
649
+ },
650
+ "httpLinks": {
660
651
  "type": "array",
661
- "description": "Connection detection patterns",
652
+ "description": "Declares how to resolve HTTP client calls into cross-domain Links",
662
653
  "minItems": 1,
663
654
  "items": {
664
- "$ref": "#/$defs/connectionPattern"
655
+ "$ref": "#/$defs/httpLinkConfig"
665
656
  }
666
657
  }
667
658
  }
668
659
  },
669
- "eventPublisherConfig": {
670
- "type": "object",
671
- "description": "Declares a custom component type as an event publisher",
672
- "required": ["fromType", "metadataKey"],
673
- "additionalProperties": false,
674
- "properties": {
675
- "fromType": {
676
- "type": "string",
677
- "description": "The custom component type name — must be defined in customTypes in at least one module",
678
- "minLength": 1
679
- },
680
- "metadataKey": {
681
- "type": "string",
682
- "description": "The metadata key on this component type that holds the published event type name",
683
- "minLength": 1
684
- }
685
- }
686
- },
687
- "connectionPattern": {
688
- "type": "object",
689
- "description": "A pattern for detecting connections between components",
690
- "required": ["name", "find", "where", "linkType"],
691
- "additionalProperties": false,
692
- "properties": {
693
- "name": {
694
- "type": "string",
695
- "description": "Pattern identifier",
696
- "minLength": 1
697
- },
698
- "find": {
699
- "$ref": "#/$defs/connectionFinder"
700
- },
701
- "where": {
702
- "$ref": "#/$defs/connectionWhereClause"
703
- },
704
- "extract": {
705
- "$ref": "#/$defs/connectionExtractBlock",
706
- "description": "Extraction rules for connection metadata"
707
- },
708
- "linkType": {
709
- "type": "string",
710
- "description": "Type of connection: sync or async",
711
- "enum": ["sync", "async"]
712
- }
713
- }
714
- },
715
- "connectionFinder": {
716
- "type": "string",
717
- "description": "The connection detection strategy",
718
- "enum": ["methodCalls"]
719
- },
720
- "connectionWhereClause": {
660
+ "httpLinkConfig": {
721
661
  "type": "object",
722
- "description": "Filters for matching method calls",
662
+ "description": "Declares how to resolve HTTP client calls into cross-domain Links",
663
+ "required": ["fromCustomType", "matchDomainBy", "matchApiBy"],
723
664
  "additionalProperties": false,
724
- "minProperties": 1,
725
665
  "properties": {
726
- "methodName": {
666
+ "fromCustomType": {
727
667
  "type": "string",
728
- "description": "Method name to match",
668
+ "description": "Custom component type name for HTTP clients — must be defined in customTypes in at least one module",
729
669
  "minLength": 1
730
670
  },
731
- "receiverType": {
671
+ "matchDomainBy": {
732
672
  "type": "string",
733
- "description": "Type of the object being called",
673
+ "description": "Metadata key whose value identifies the target domain",
734
674
  "minLength": 1
735
675
  },
736
- "callerHasDecorator": {
676
+ "matchApiBy": {
737
677
  "type": "array",
738
- "description": "Decorators the calling class must have",
678
+ "description": "Metadata keys used to match the target API component",
739
679
  "items": {
740
680
  "type": "string",
741
681
  "minLength": 1
742
682
  },
743
683
  "minItems": 1
744
- },
745
- "calleeType": {
746
- "type": "object",
747
- "description": "Constraints on the callee type",
748
- "required": ["hasDecorator"],
749
- "additionalProperties": false,
750
- "properties": {
751
- "hasDecorator": {
752
- "type": "string",
753
- "description": "Decorator the callee type must have",
754
- "minLength": 1
755
- }
756
- }
757
684
  }
758
685
  }
759
686
  },
760
- "connectionExtractBlock": {
761
- "type": "object",
762
- "description": "Extraction rules for connection metadata fields",
763
- "additionalProperties": {
764
- "$ref": "#/$defs/connectionExtractRule"
765
- }
766
- },
767
- "connectionExtractRule": {
768
- "oneOf": [
769
- { "$ref": "#/$defs/fromArgumentExtractionRule" },
770
- { "$ref": "#/$defs/fromReceiverTypeExtractionRule" },
771
- { "$ref": "#/$defs/fromCallerTypeExtractionRule" }
772
- ]
773
- },
774
- "fromArgumentExtractionRule": {
775
- "type": "object",
776
- "description": "Extracts static type of argument at position",
777
- "required": ["fromArgument"],
778
- "additionalProperties": false,
779
- "properties": {
780
- "fromArgument": {
781
- "type": "integer",
782
- "minimum": 0,
783
- "description": "Argument position (zero-based)"
784
- }
785
- }
786
- },
787
- "fromReceiverTypeExtractionRule": {
788
- "type": "object",
789
- "description": "Extracts the static type name of the receiver",
790
- "required": ["fromReceiverType"],
791
- "additionalProperties": false,
792
- "properties": {
793
- "fromReceiverType": {
794
- "type": "boolean",
795
- "const": true
796
- }
797
- }
798
- },
799
- "fromCallerTypeExtractionRule": {
687
+ "eventPublisherConfig": {
800
688
  "type": "object",
801
- "description": "Extracts the static type name of the caller",
802
- "required": ["fromCallerType"],
689
+ "description": "Declares a custom component type as an event publisher",
690
+ "required": ["fromType", "metadataKey"],
803
691
  "additionalProperties": false,
804
692
  "properties": {
805
- "fromCallerType": {
806
- "type": "boolean",
807
- "const": true
693
+ "fromType": {
694
+ "type": "string",
695
+ "description": "The custom component type name — must be defined in customTypes in at least one module",
696
+ "minLength": 1
697
+ },
698
+ "metadataKey": {
699
+ "type": "string",
700
+ "description": "The metadata key on this component type that holds the published event type name",
701
+ "minLength": 1
808
702
  }
809
703
  }
810
704
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@living-architecture/riviere-extract-config",
3
- "version": "0.5.7",
3
+ "version": "0.5.8",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"