@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.
- package/dist/extraction-config-schema.d.ts +21 -44
- package/dist/extraction-config-schema.d.ts.map +1 -1
- package/dist/validation-fixtures.d.ts.map +1 -1
- package/dist/validation-fixtures.js +4 -0
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +39 -1
- package/extraction-config.schema.json +39 -145
- package/package.json +1 -1
|
@@ -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
|
-
/**
|
|
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
|
-
|
|
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,
|
|
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: {
|
package/dist/validation.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/validation.js
CHANGED
|
@@ -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
|
|
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": "
|
|
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": "
|
|
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
|
|
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": "
|
|
652
|
+
"description": "Declares how to resolve HTTP client calls into cross-domain Links",
|
|
662
653
|
"minItems": 1,
|
|
663
654
|
"items": {
|
|
664
|
-
"$ref": "#/$defs/
|
|
655
|
+
"$ref": "#/$defs/httpLinkConfig"
|
|
665
656
|
}
|
|
666
657
|
}
|
|
667
658
|
}
|
|
668
659
|
},
|
|
669
|
-
"
|
|
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": "
|
|
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
|
-
"
|
|
666
|
+
"fromCustomType": {
|
|
727
667
|
"type": "string",
|
|
728
|
-
"description": "
|
|
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
|
-
"
|
|
671
|
+
"matchDomainBy": {
|
|
732
672
|
"type": "string",
|
|
733
|
-
"description": "
|
|
673
|
+
"description": "Metadata key whose value identifies the target domain",
|
|
734
674
|
"minLength": 1
|
|
735
675
|
},
|
|
736
|
-
"
|
|
676
|
+
"matchApiBy": {
|
|
737
677
|
"type": "array",
|
|
738
|
-
"description": "
|
|
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
|
-
"
|
|
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": "
|
|
802
|
-
"required": ["
|
|
689
|
+
"description": "Declares a custom component type as an event publisher",
|
|
690
|
+
"required": ["fromType", "metadataKey"],
|
|
803
691
|
"additionalProperties": false,
|
|
804
692
|
"properties": {
|
|
805
|
-
"
|
|
806
|
-
"type": "
|
|
807
|
-
"
|
|
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
|
}
|