@living-architecture/riviere-extract-config 0.4.2 → 0.4.4
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/{types.d.ts → extraction-config-schema.d.ts} +47 -2
- package/dist/extraction-config-schema.d.ts.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/validation-fixtures.d.ts +1 -1
- package/dist/validation-fixtures.d.ts.map +1 -1
- package/dist/validation-fixtures.js +4 -0
- package/dist/validation.d.ts +1 -1
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +2 -0
- package/extraction-config.schema.json +153 -1
- package/package.json +1 -1
- package/dist/types.d.ts.map +0 -1
- /package/dist/{types.js → extraction-config-schema.js} +0 -0
|
@@ -6,7 +6,7 @@ export type FindTarget = 'classes' | 'methods' | 'functions';
|
|
|
6
6
|
* Standard architectural component types recognized by the Riviere extractor.
|
|
7
7
|
* Each type represents a distinct role in the system's flow-based architecture.
|
|
8
8
|
*/
|
|
9
|
-
export type ComponentType = 'api' | 'useCase' | 'domainOp' | 'event' | 'eventHandler' | 'ui';
|
|
9
|
+
export type ComponentType = 'api' | 'useCase' | 'domainOp' | 'event' | 'eventHandler' | 'eventPublisher' | 'ui';
|
|
10
10
|
/** Matches elements with a specific decorator. */
|
|
11
11
|
export interface HasDecoratorPredicate {
|
|
12
12
|
hasDecorator: {
|
|
@@ -161,6 +161,47 @@ export interface DetectionRule {
|
|
|
161
161
|
export type ComponentRule = NotUsed | DetectionRule;
|
|
162
162
|
/** User-defined component types with their detection rules. */
|
|
163
163
|
export type CustomTypes = Record<string, DetectionRule>;
|
|
164
|
+
/** Connection detection strategy. */
|
|
165
|
+
export type ConnectionFindTarget = 'methodCalls';
|
|
166
|
+
/** Connection link type indicating sync or async communication. */
|
|
167
|
+
export type ConnectionLinkType = 'sync' | 'async';
|
|
168
|
+
/** Matches a method call site for connection detection. */
|
|
169
|
+
export interface ConnectionCallSiteMatch {
|
|
170
|
+
methodName?: string;
|
|
171
|
+
receiverType?: string;
|
|
172
|
+
callerHasDecorator?: string[];
|
|
173
|
+
calleeType?: {
|
|
174
|
+
hasDecorator: string;
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
/** Extracts static type of argument at position. */
|
|
178
|
+
export interface FromArgumentExtractionRule {
|
|
179
|
+
fromArgument: number;
|
|
180
|
+
}
|
|
181
|
+
/** Extracts the static type name of the receiver. */
|
|
182
|
+
export interface FromReceiverTypeExtractionRule {
|
|
183
|
+
fromReceiverType: true;
|
|
184
|
+
}
|
|
185
|
+
/** Extracts the static type name of the caller. */
|
|
186
|
+
export interface FromCallerTypeExtractionRule {
|
|
187
|
+
fromCallerType: true;
|
|
188
|
+
}
|
|
189
|
+
/** Union of connection-specific extraction rule types. */
|
|
190
|
+
export type ConnectionExtractionRule = FromArgumentExtractionRule | FromReceiverTypeExtractionRule | FromCallerTypeExtractionRule;
|
|
191
|
+
/** Connection extraction rules mapping field names to extraction rules. */
|
|
192
|
+
export type ConnectionExtractBlock = Record<string, ConnectionExtractionRule>;
|
|
193
|
+
/** A pattern for detecting connections between components. */
|
|
194
|
+
export interface ConnectionPattern {
|
|
195
|
+
name: string;
|
|
196
|
+
find: ConnectionFindTarget;
|
|
197
|
+
where: ConnectionCallSiteMatch;
|
|
198
|
+
extract?: ConnectionExtractBlock;
|
|
199
|
+
linkType: ConnectionLinkType;
|
|
200
|
+
}
|
|
201
|
+
/** Connection detection configuration with pattern definitions. */
|
|
202
|
+
export interface ConnectionsConfig {
|
|
203
|
+
patterns: ConnectionPattern[];
|
|
204
|
+
}
|
|
164
205
|
/**
|
|
165
206
|
* Reference to an external module definition file.
|
|
166
207
|
* The CLI expands these references before extraction by loading the referenced file.
|
|
@@ -182,8 +223,10 @@ export interface ModuleConfig {
|
|
|
182
223
|
domainOp?: ComponentRule;
|
|
183
224
|
event?: ComponentRule;
|
|
184
225
|
eventHandler?: ComponentRule;
|
|
226
|
+
eventPublisher?: ComponentRule;
|
|
185
227
|
ui?: ComponentRule;
|
|
186
228
|
customTypes?: CustomTypes;
|
|
229
|
+
connections?: ConnectionsConfig;
|
|
187
230
|
}
|
|
188
231
|
/**
|
|
189
232
|
* A fully resolved module with all component rules.
|
|
@@ -197,6 +240,7 @@ export interface Module {
|
|
|
197
240
|
domainOp: ComponentRule;
|
|
198
241
|
event: ComponentRule;
|
|
199
242
|
eventHandler: ComponentRule;
|
|
243
|
+
eventPublisher: ComponentRule;
|
|
200
244
|
ui: ComponentRule;
|
|
201
245
|
customTypes?: CustomTypes;
|
|
202
246
|
}
|
|
@@ -208,6 +252,7 @@ export interface Module {
|
|
|
208
252
|
export interface ExtractionConfig {
|
|
209
253
|
$schema?: string;
|
|
210
254
|
modules: ModuleConfig[];
|
|
255
|
+
connections?: ConnectionsConfig;
|
|
211
256
|
}
|
|
212
257
|
/**
|
|
213
258
|
* Fully resolved extraction config ready for the extractor.
|
|
@@ -217,4 +262,4 @@ export interface ResolvedExtractionConfig {
|
|
|
217
262
|
$schema?: string;
|
|
218
263
|
modules: Module[];
|
|
219
264
|
}
|
|
220
|
-
//# sourceMappingURL=
|
|
265
|
+
//# sourceMappingURL=extraction-config-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extraction-config-schema.d.ts","sourceRoot":"","sources":["../src/extraction-config-schema.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './extraction-config-schema';
|
|
2
2
|
export { isValidExtractionConfig, validateExtractionConfig, validateExtractionConfigSchema, parseExtractionConfig, formatValidationErrors, mapAjvErrors, ExtractionConfigValidationError, type ValidationError, type ValidationResult, } from './validation';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAA;AAC1C,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,8BAA8B,EAC9B,qBAAqB,EACrB,sBAAsB,EACtB,YAAY,EACZ,+BAA+B,EAC/B,KAAK,eAAe,EACpB,KAAK,gBAAgB,GACtB,MAAM,cAAc,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './extraction-config-schema';
|
|
2
2
|
export { isValidExtractionConfig, validateExtractionConfig, validateExtractionConfigSchema, parseExtractionConfig, formatValidationErrors, mapAjvErrors, ExtractionConfigValidationError, } from './validation';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ExtractionConfig, ResolvedExtractionConfig, Module } from './
|
|
1
|
+
import type { ExtractionConfig, ResolvedExtractionConfig, Module } from './extraction-config-schema';
|
|
2
2
|
export declare function createModuleWithoutPath(): Omit<Module, 'path'>;
|
|
3
3
|
export declare function createModuleWithoutApi(): Omit<Module, 'api'>;
|
|
4
4
|
export declare function createMinimalModule(): Module;
|
|
@@ -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,
|
|
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"}
|
|
@@ -6,6 +6,7 @@ export function createModuleWithoutPath() {
|
|
|
6
6
|
domainOp: { notUsed: true },
|
|
7
7
|
event: { notUsed: true },
|
|
8
8
|
eventHandler: { notUsed: true },
|
|
9
|
+
eventPublisher: { notUsed: true },
|
|
9
10
|
ui: { notUsed: true },
|
|
10
11
|
};
|
|
11
12
|
}
|
|
@@ -17,6 +18,7 @@ export function createModuleWithoutApi() {
|
|
|
17
18
|
domainOp: { notUsed: true },
|
|
18
19
|
event: { notUsed: true },
|
|
19
20
|
eventHandler: { notUsed: true },
|
|
21
|
+
eventPublisher: { notUsed: true },
|
|
20
22
|
ui: { notUsed: true },
|
|
21
23
|
};
|
|
22
24
|
}
|
|
@@ -29,6 +31,7 @@ export function createMinimalModule() {
|
|
|
29
31
|
domainOp: { notUsed: true },
|
|
30
32
|
event: { notUsed: true },
|
|
31
33
|
eventHandler: { notUsed: true },
|
|
34
|
+
eventPublisher: { notUsed: true },
|
|
32
35
|
ui: { notUsed: true },
|
|
33
36
|
};
|
|
34
37
|
}
|
|
@@ -77,6 +80,7 @@ export function createFullConfig() {
|
|
|
77
80
|
find: 'classes',
|
|
78
81
|
where: { implementsInterface: { name: 'EventHandler' } },
|
|
79
82
|
},
|
|
83
|
+
eventPublisher: { notUsed: true },
|
|
80
84
|
ui: { notUsed: true },
|
|
81
85
|
},
|
|
82
86
|
],
|
package/dist/validation.d.ts
CHANGED
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,
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAGV,gBAAgB,EAEjB,MAAM,4BAA4B,CAAA;AAgCnC;;;;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;AAgED;;;;;;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
|
@@ -9,6 +9,7 @@ const REQUIRED_FIELDS = {
|
|
|
9
9
|
api: ['apiType'],
|
|
10
10
|
event: ['eventName'],
|
|
11
11
|
eventHandler: ['subscribedEvents'],
|
|
12
|
+
eventPublisher: [],
|
|
12
13
|
domainOp: ['operationName'],
|
|
13
14
|
ui: ['route'],
|
|
14
15
|
useCase: [],
|
|
@@ -19,6 +20,7 @@ const COMPONENT_TYPES = [
|
|
|
19
20
|
'domainOp',
|
|
20
21
|
'event',
|
|
21
22
|
'eventHandler',
|
|
23
|
+
'eventPublisher',
|
|
22
24
|
'ui',
|
|
23
25
|
];
|
|
24
26
|
const ajv = new Ajv({ allErrors: true });
|
|
@@ -21,6 +21,10 @@
|
|
|
21
21
|
{ "$ref": "#/$defs/moduleRef" }
|
|
22
22
|
]
|
|
23
23
|
}
|
|
24
|
+
},
|
|
25
|
+
"connections": {
|
|
26
|
+
"$ref": "#/$defs/connectionsConfig",
|
|
27
|
+
"description": "Global connection detection patterns inherited by all modules"
|
|
24
28
|
}
|
|
25
29
|
},
|
|
26
30
|
"$defs": {
|
|
@@ -78,6 +82,10 @@
|
|
|
78
82
|
"$ref": "#/$defs/componentRule",
|
|
79
83
|
"description": "Detection rule for EventHandler components"
|
|
80
84
|
},
|
|
85
|
+
"eventPublisher": {
|
|
86
|
+
"$ref": "#/$defs/componentRule",
|
|
87
|
+
"description": "Detection rule for EventPublisher components"
|
|
88
|
+
},
|
|
81
89
|
"ui": {
|
|
82
90
|
"$ref": "#/$defs/componentRule",
|
|
83
91
|
"description": "Detection rule for UI components"
|
|
@@ -88,6 +96,10 @@
|
|
|
88
96
|
"additionalProperties": {
|
|
89
97
|
"$ref": "#/$defs/detectionRule"
|
|
90
98
|
}
|
|
99
|
+
},
|
|
100
|
+
"connections": {
|
|
101
|
+
"$ref": "#/$defs/connectionsConfig",
|
|
102
|
+
"description": "Module-level connection detection patterns additive to global"
|
|
91
103
|
}
|
|
92
104
|
},
|
|
93
105
|
"if": {
|
|
@@ -96,7 +108,7 @@
|
|
|
96
108
|
}
|
|
97
109
|
},
|
|
98
110
|
"then": {
|
|
99
|
-
"required": ["api", "useCase", "domainOp", "event", "eventHandler", "ui"]
|
|
111
|
+
"required": ["api", "useCase", "domainOp", "event", "eventHandler", "eventPublisher", "ui"]
|
|
100
112
|
}
|
|
101
113
|
},
|
|
102
114
|
"componentRule": {
|
|
@@ -586,6 +598,146 @@
|
|
|
586
598
|
"description": "Any predicate must match"
|
|
587
599
|
}
|
|
588
600
|
}
|
|
601
|
+
},
|
|
602
|
+
"connectionsConfig": {
|
|
603
|
+
"type": "object",
|
|
604
|
+
"description": "Connection detection configuration with pattern definitions",
|
|
605
|
+
"required": ["patterns"],
|
|
606
|
+
"additionalProperties": false,
|
|
607
|
+
"properties": {
|
|
608
|
+
"patterns": {
|
|
609
|
+
"type": "array",
|
|
610
|
+
"description": "Connection detection patterns",
|
|
611
|
+
"minItems": 1,
|
|
612
|
+
"items": {
|
|
613
|
+
"$ref": "#/$defs/connectionPattern"
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
},
|
|
618
|
+
"connectionPattern": {
|
|
619
|
+
"type": "object",
|
|
620
|
+
"description": "A pattern for detecting connections between components",
|
|
621
|
+
"required": ["name", "find", "where", "linkType"],
|
|
622
|
+
"additionalProperties": false,
|
|
623
|
+
"properties": {
|
|
624
|
+
"name": {
|
|
625
|
+
"type": "string",
|
|
626
|
+
"description": "Pattern identifier",
|
|
627
|
+
"minLength": 1
|
|
628
|
+
},
|
|
629
|
+
"find": {
|
|
630
|
+
"$ref": "#/$defs/connectionFinder"
|
|
631
|
+
},
|
|
632
|
+
"where": {
|
|
633
|
+
"$ref": "#/$defs/connectionWhereClause"
|
|
634
|
+
},
|
|
635
|
+
"extract": {
|
|
636
|
+
"$ref": "#/$defs/connectionExtractBlock",
|
|
637
|
+
"description": "Extraction rules for connection metadata"
|
|
638
|
+
},
|
|
639
|
+
"linkType": {
|
|
640
|
+
"type": "string",
|
|
641
|
+
"description": "Type of connection: sync or async",
|
|
642
|
+
"enum": ["sync", "async"]
|
|
643
|
+
}
|
|
644
|
+
}
|
|
645
|
+
},
|
|
646
|
+
"connectionFinder": {
|
|
647
|
+
"type": "string",
|
|
648
|
+
"description": "The connection detection strategy",
|
|
649
|
+
"enum": ["methodCalls"]
|
|
650
|
+
},
|
|
651
|
+
"connectionWhereClause": {
|
|
652
|
+
"type": "object",
|
|
653
|
+
"description": "Filters for matching method calls",
|
|
654
|
+
"additionalProperties": false,
|
|
655
|
+
"minProperties": 1,
|
|
656
|
+
"properties": {
|
|
657
|
+
"methodName": {
|
|
658
|
+
"type": "string",
|
|
659
|
+
"description": "Method name to match",
|
|
660
|
+
"minLength": 1
|
|
661
|
+
},
|
|
662
|
+
"receiverType": {
|
|
663
|
+
"type": "string",
|
|
664
|
+
"description": "Type of the object being called",
|
|
665
|
+
"minLength": 1
|
|
666
|
+
},
|
|
667
|
+
"callerHasDecorator": {
|
|
668
|
+
"type": "array",
|
|
669
|
+
"description": "Decorators the calling class must have",
|
|
670
|
+
"items": {
|
|
671
|
+
"type": "string",
|
|
672
|
+
"minLength": 1
|
|
673
|
+
},
|
|
674
|
+
"minItems": 1
|
|
675
|
+
},
|
|
676
|
+
"calleeType": {
|
|
677
|
+
"type": "object",
|
|
678
|
+
"description": "Constraints on the callee type",
|
|
679
|
+
"required": ["hasDecorator"],
|
|
680
|
+
"additionalProperties": false,
|
|
681
|
+
"properties": {
|
|
682
|
+
"hasDecorator": {
|
|
683
|
+
"type": "string",
|
|
684
|
+
"description": "Decorator the callee type must have",
|
|
685
|
+
"minLength": 1
|
|
686
|
+
}
|
|
687
|
+
}
|
|
688
|
+
}
|
|
689
|
+
}
|
|
690
|
+
},
|
|
691
|
+
"connectionExtractBlock": {
|
|
692
|
+
"type": "object",
|
|
693
|
+
"description": "Extraction rules for connection metadata fields",
|
|
694
|
+
"additionalProperties": {
|
|
695
|
+
"$ref": "#/$defs/connectionExtractRule"
|
|
696
|
+
}
|
|
697
|
+
},
|
|
698
|
+
"connectionExtractRule": {
|
|
699
|
+
"oneOf": [
|
|
700
|
+
{ "$ref": "#/$defs/fromArgumentExtractionRule" },
|
|
701
|
+
{ "$ref": "#/$defs/fromReceiverTypeExtractionRule" },
|
|
702
|
+
{ "$ref": "#/$defs/fromCallerTypeExtractionRule" }
|
|
703
|
+
]
|
|
704
|
+
},
|
|
705
|
+
"fromArgumentExtractionRule": {
|
|
706
|
+
"type": "object",
|
|
707
|
+
"description": "Extracts static type of argument at position",
|
|
708
|
+
"required": ["fromArgument"],
|
|
709
|
+
"additionalProperties": false,
|
|
710
|
+
"properties": {
|
|
711
|
+
"fromArgument": {
|
|
712
|
+
"type": "integer",
|
|
713
|
+
"minimum": 0,
|
|
714
|
+
"description": "Argument position (zero-based)"
|
|
715
|
+
}
|
|
716
|
+
}
|
|
717
|
+
},
|
|
718
|
+
"fromReceiverTypeExtractionRule": {
|
|
719
|
+
"type": "object",
|
|
720
|
+
"description": "Extracts the static type name of the receiver",
|
|
721
|
+
"required": ["fromReceiverType"],
|
|
722
|
+
"additionalProperties": false,
|
|
723
|
+
"properties": {
|
|
724
|
+
"fromReceiverType": {
|
|
725
|
+
"type": "boolean",
|
|
726
|
+
"const": true
|
|
727
|
+
}
|
|
728
|
+
}
|
|
729
|
+
},
|
|
730
|
+
"fromCallerTypeExtractionRule": {
|
|
731
|
+
"type": "object",
|
|
732
|
+
"description": "Extracts the static type name of the caller",
|
|
733
|
+
"required": ["fromCallerType"],
|
|
734
|
+
"additionalProperties": false,
|
|
735
|
+
"properties": {
|
|
736
|
+
"fromCallerType": {
|
|
737
|
+
"type": "boolean",
|
|
738
|
+
"const": true
|
|
739
|
+
}
|
|
740
|
+
}
|
|
589
741
|
}
|
|
590
742
|
}
|
|
591
743
|
}
|
package/package.json
CHANGED
package/dist/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|