@lorion-org/composition-graph 1.0.0-beta.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.
@@ -0,0 +1,197 @@
1
+ type DescriptorId = string;
2
+ type DescriptorIds = DescriptorId[];
3
+ type VersionConstraintMap = Record<DescriptorId, string>;
4
+ type RelationId = string;
5
+ type Descriptor = {
6
+ id: DescriptorId;
7
+ version: string;
8
+ providesFor?: string;
9
+ capabilities?: string[];
10
+ dependencies?: VersionConstraintMap;
11
+ disabled?: boolean;
12
+ location?: string;
13
+ [key: string]: unknown;
14
+ };
15
+ type DescriptorMap = Map<DescriptorId, Descriptor>;
16
+ type RelationDescriptor = {
17
+ id: RelationId;
18
+ field?: string;
19
+ };
20
+ type DescriptorEdge = {
21
+ from: DescriptorId;
22
+ to: DescriptorId;
23
+ relation: RelationId;
24
+ source: 'descriptor' | 'derived';
25
+ };
26
+ type ResolutionStep = {
27
+ from: DescriptorId;
28
+ to: DescriptorId;
29
+ relation: RelationId;
30
+ };
31
+ type CompositionOriginType = 'selected' | 'base' | 'resolved';
32
+ type CompositionProvenanceOrigin = {
33
+ originType: CompositionOriginType;
34
+ path: ResolutionStep[];
35
+ };
36
+ type CompositionProvenance = {
37
+ descriptorId: DescriptorId;
38
+ origins: CompositionProvenanceOrigin[];
39
+ };
40
+ type DescriptorGraph = {
41
+ descriptorMap: DescriptorMap;
42
+ edges: DescriptorEdge[];
43
+ outgoing: Map<DescriptorId, DescriptorEdge[]>;
44
+ incoming: Map<DescriptorId, DescriptorEdge[]>;
45
+ relationDescriptors: Map<RelationId, RelationDescriptor>;
46
+ };
47
+ type DescriptorProfile = {
48
+ id: DescriptorId;
49
+ location?: string;
50
+ disabled: boolean;
51
+ providesFor?: string;
52
+ capabilities: string[];
53
+ outgoing: Record<RelationId, string[]>;
54
+ incoming: Record<RelationId, string[]>;
55
+ };
56
+ type CompositionPolicy = {
57
+ resolutionRelationIds: RelationId[];
58
+ provenanceRelationIds: RelationId[];
59
+ inspectionRelationIds: RelationId[];
60
+ };
61
+ type DescriptorCatalog = {
62
+ getDescriptorMap: () => DescriptorMap;
63
+ getAllDescriptors: () => Descriptor[];
64
+ getDescriptor: (id: DescriptorId) => Descriptor | undefined;
65
+ getGraph: () => DescriptorGraph;
66
+ getRelationDescriptors: () => RelationDescriptor[];
67
+ getProfiles: (input?: {
68
+ ids?: DescriptorId[];
69
+ includeDisabled?: boolean;
70
+ }) => DescriptorProfile[];
71
+ getIncomingRelationMap: (relationId: RelationId) => Map<DescriptorId, DescriptorId[]>;
72
+ getTransitiveTargets: (input: {
73
+ start: DescriptorId[];
74
+ relationIds: RelationId[];
75
+ }) => DescriptorIds;
76
+ getDependents: (input: {
77
+ target: DescriptorId;
78
+ relationIds: RelationId[];
79
+ transitive?: boolean;
80
+ }) => DescriptorIds;
81
+ explain: (input: {
82
+ from: DescriptorId;
83
+ to: DescriptorId;
84
+ relationIds: RelationId[];
85
+ }) => ResolutionStep[];
86
+ explainPathsBatch: (input: {
87
+ pairs: Array<{
88
+ from: DescriptorId;
89
+ to: DescriptorId;
90
+ }>;
91
+ relationIds: RelationId[];
92
+ }) => Array<{
93
+ from: DescriptorId;
94
+ to: DescriptorId;
95
+ path: ResolutionStep[];
96
+ }>;
97
+ resolveSelection: (input: {
98
+ selected?: DescriptorId[];
99
+ baseDescriptors?: DescriptorId[];
100
+ policy?: Partial<CompositionPolicy>;
101
+ }) => CompositionSelection;
102
+ };
103
+ type CompositionSelection = {
104
+ getCatalog: () => DescriptorCatalog;
105
+ getGraph: () => DescriptorGraph;
106
+ getSelected: () => DescriptorIds;
107
+ getBaseDescriptors: () => DescriptorIds;
108
+ getResolved: () => DescriptorIds;
109
+ getResolvedDescriptors: () => Descriptor[];
110
+ getProvenance: () => CompositionProvenance[];
111
+ getDependentsFor: (target: DescriptorId, input?: {
112
+ transitive?: boolean;
113
+ relationIds?: RelationId[];
114
+ }) => DescriptorIds;
115
+ explain: (input: {
116
+ from: DescriptorId;
117
+ to: DescriptorId;
118
+ relationIds?: RelationId[];
119
+ }) => ResolutionStep[];
120
+ explainPathsBatch: (input: {
121
+ pairs: Array<{
122
+ from: DescriptorId;
123
+ to: DescriptorId;
124
+ }>;
125
+ relationIds?: RelationId[];
126
+ }) => Array<{
127
+ from: DescriptorId;
128
+ to: DescriptorId;
129
+ path: ResolutionStep[];
130
+ }>;
131
+ };
132
+
133
+ declare function buildDescriptorMap(descriptors: Iterable<Descriptor>): DescriptorMap;
134
+ declare function parseDescriptorIds(input?: DescriptorId[] | string): DescriptorId[];
135
+ declare function assertKnownDescriptorIds(descriptorMap: DescriptorMap, ids: DescriptorId[], label: string): void;
136
+
137
+ declare const defaultRelationDescriptors: RelationDescriptor[];
138
+ declare function buildDescriptorGraph(input: {
139
+ descriptorMap: DescriptorMap;
140
+ relationDescriptors?: RelationDescriptor[];
141
+ }): DescriptorGraph;
142
+ declare function getTransitiveTargets(input: {
143
+ graph: DescriptorGraph;
144
+ start: DescriptorId[];
145
+ relationIds: RelationId[];
146
+ }): DescriptorIds;
147
+ declare function getIncomingRelationMap(input: {
148
+ graph: DescriptorGraph;
149
+ relationId: RelationId;
150
+ }): Map<DescriptorId, DescriptorId[]>;
151
+ declare function getDependents(input: {
152
+ graph: DescriptorGraph;
153
+ target: DescriptorId;
154
+ relationIds: RelationId[];
155
+ transitive?: boolean;
156
+ }): DescriptorIds;
157
+ declare function explainPath(input: {
158
+ graph: DescriptorGraph;
159
+ from: DescriptorId;
160
+ to: DescriptorId;
161
+ relationIds: RelationId[];
162
+ }): ResolutionStep[];
163
+ declare function explainPathsBatch(input: {
164
+ graph: DescriptorGraph;
165
+ pairs: Array<{
166
+ from: DescriptorId;
167
+ to: DescriptorId;
168
+ }>;
169
+ relationIds: RelationId[];
170
+ }): Array<{
171
+ from: DescriptorId;
172
+ to: DescriptorId;
173
+ path: ResolutionStep[];
174
+ }>;
175
+ declare function getCompositionProvenance(input: {
176
+ graph: DescriptorGraph;
177
+ descriptorIds: DescriptorId[];
178
+ selected: DescriptorId[];
179
+ baseDescriptors?: DescriptorId[];
180
+ relationIds: RelationId[];
181
+ }): CompositionProvenance[];
182
+
183
+ declare function createDescriptorCatalog(input: {
184
+ descriptorMap?: DescriptorMap;
185
+ descriptors?: Descriptor[];
186
+ relationDescriptors?: RelationDescriptor[];
187
+ }): DescriptorCatalog;
188
+
189
+ declare const defaultCompositionPolicy: CompositionPolicy;
190
+ declare function createCompositionSelection(input: {
191
+ catalog: DescriptorCatalog;
192
+ selected?: DescriptorId[];
193
+ baseDescriptors?: DescriptorId[];
194
+ policy?: Partial<CompositionPolicy>;
195
+ }): CompositionSelection;
196
+
197
+ export { type CompositionOriginType, type CompositionPolicy, type CompositionProvenance, type CompositionProvenanceOrigin, type CompositionSelection, type Descriptor, type DescriptorCatalog, type DescriptorEdge, type DescriptorGraph, type DescriptorId, type DescriptorIds, type DescriptorMap, type DescriptorProfile, type RelationDescriptor, type RelationId, type ResolutionStep, type VersionConstraintMap, assertKnownDescriptorIds, buildDescriptorGraph, buildDescriptorMap, createCompositionSelection, createDescriptorCatalog, defaultCompositionPolicy, defaultRelationDescriptors, explainPath, explainPathsBatch, getCompositionProvenance, getDependents, getIncomingRelationMap, getTransitiveTargets, parseDescriptorIds };
@@ -0,0 +1,197 @@
1
+ type DescriptorId = string;
2
+ type DescriptorIds = DescriptorId[];
3
+ type VersionConstraintMap = Record<DescriptorId, string>;
4
+ type RelationId = string;
5
+ type Descriptor = {
6
+ id: DescriptorId;
7
+ version: string;
8
+ providesFor?: string;
9
+ capabilities?: string[];
10
+ dependencies?: VersionConstraintMap;
11
+ disabled?: boolean;
12
+ location?: string;
13
+ [key: string]: unknown;
14
+ };
15
+ type DescriptorMap = Map<DescriptorId, Descriptor>;
16
+ type RelationDescriptor = {
17
+ id: RelationId;
18
+ field?: string;
19
+ };
20
+ type DescriptorEdge = {
21
+ from: DescriptorId;
22
+ to: DescriptorId;
23
+ relation: RelationId;
24
+ source: 'descriptor' | 'derived';
25
+ };
26
+ type ResolutionStep = {
27
+ from: DescriptorId;
28
+ to: DescriptorId;
29
+ relation: RelationId;
30
+ };
31
+ type CompositionOriginType = 'selected' | 'base' | 'resolved';
32
+ type CompositionProvenanceOrigin = {
33
+ originType: CompositionOriginType;
34
+ path: ResolutionStep[];
35
+ };
36
+ type CompositionProvenance = {
37
+ descriptorId: DescriptorId;
38
+ origins: CompositionProvenanceOrigin[];
39
+ };
40
+ type DescriptorGraph = {
41
+ descriptorMap: DescriptorMap;
42
+ edges: DescriptorEdge[];
43
+ outgoing: Map<DescriptorId, DescriptorEdge[]>;
44
+ incoming: Map<DescriptorId, DescriptorEdge[]>;
45
+ relationDescriptors: Map<RelationId, RelationDescriptor>;
46
+ };
47
+ type DescriptorProfile = {
48
+ id: DescriptorId;
49
+ location?: string;
50
+ disabled: boolean;
51
+ providesFor?: string;
52
+ capabilities: string[];
53
+ outgoing: Record<RelationId, string[]>;
54
+ incoming: Record<RelationId, string[]>;
55
+ };
56
+ type CompositionPolicy = {
57
+ resolutionRelationIds: RelationId[];
58
+ provenanceRelationIds: RelationId[];
59
+ inspectionRelationIds: RelationId[];
60
+ };
61
+ type DescriptorCatalog = {
62
+ getDescriptorMap: () => DescriptorMap;
63
+ getAllDescriptors: () => Descriptor[];
64
+ getDescriptor: (id: DescriptorId) => Descriptor | undefined;
65
+ getGraph: () => DescriptorGraph;
66
+ getRelationDescriptors: () => RelationDescriptor[];
67
+ getProfiles: (input?: {
68
+ ids?: DescriptorId[];
69
+ includeDisabled?: boolean;
70
+ }) => DescriptorProfile[];
71
+ getIncomingRelationMap: (relationId: RelationId) => Map<DescriptorId, DescriptorId[]>;
72
+ getTransitiveTargets: (input: {
73
+ start: DescriptorId[];
74
+ relationIds: RelationId[];
75
+ }) => DescriptorIds;
76
+ getDependents: (input: {
77
+ target: DescriptorId;
78
+ relationIds: RelationId[];
79
+ transitive?: boolean;
80
+ }) => DescriptorIds;
81
+ explain: (input: {
82
+ from: DescriptorId;
83
+ to: DescriptorId;
84
+ relationIds: RelationId[];
85
+ }) => ResolutionStep[];
86
+ explainPathsBatch: (input: {
87
+ pairs: Array<{
88
+ from: DescriptorId;
89
+ to: DescriptorId;
90
+ }>;
91
+ relationIds: RelationId[];
92
+ }) => Array<{
93
+ from: DescriptorId;
94
+ to: DescriptorId;
95
+ path: ResolutionStep[];
96
+ }>;
97
+ resolveSelection: (input: {
98
+ selected?: DescriptorId[];
99
+ baseDescriptors?: DescriptorId[];
100
+ policy?: Partial<CompositionPolicy>;
101
+ }) => CompositionSelection;
102
+ };
103
+ type CompositionSelection = {
104
+ getCatalog: () => DescriptorCatalog;
105
+ getGraph: () => DescriptorGraph;
106
+ getSelected: () => DescriptorIds;
107
+ getBaseDescriptors: () => DescriptorIds;
108
+ getResolved: () => DescriptorIds;
109
+ getResolvedDescriptors: () => Descriptor[];
110
+ getProvenance: () => CompositionProvenance[];
111
+ getDependentsFor: (target: DescriptorId, input?: {
112
+ transitive?: boolean;
113
+ relationIds?: RelationId[];
114
+ }) => DescriptorIds;
115
+ explain: (input: {
116
+ from: DescriptorId;
117
+ to: DescriptorId;
118
+ relationIds?: RelationId[];
119
+ }) => ResolutionStep[];
120
+ explainPathsBatch: (input: {
121
+ pairs: Array<{
122
+ from: DescriptorId;
123
+ to: DescriptorId;
124
+ }>;
125
+ relationIds?: RelationId[];
126
+ }) => Array<{
127
+ from: DescriptorId;
128
+ to: DescriptorId;
129
+ path: ResolutionStep[];
130
+ }>;
131
+ };
132
+
133
+ declare function buildDescriptorMap(descriptors: Iterable<Descriptor>): DescriptorMap;
134
+ declare function parseDescriptorIds(input?: DescriptorId[] | string): DescriptorId[];
135
+ declare function assertKnownDescriptorIds(descriptorMap: DescriptorMap, ids: DescriptorId[], label: string): void;
136
+
137
+ declare const defaultRelationDescriptors: RelationDescriptor[];
138
+ declare function buildDescriptorGraph(input: {
139
+ descriptorMap: DescriptorMap;
140
+ relationDescriptors?: RelationDescriptor[];
141
+ }): DescriptorGraph;
142
+ declare function getTransitiveTargets(input: {
143
+ graph: DescriptorGraph;
144
+ start: DescriptorId[];
145
+ relationIds: RelationId[];
146
+ }): DescriptorIds;
147
+ declare function getIncomingRelationMap(input: {
148
+ graph: DescriptorGraph;
149
+ relationId: RelationId;
150
+ }): Map<DescriptorId, DescriptorId[]>;
151
+ declare function getDependents(input: {
152
+ graph: DescriptorGraph;
153
+ target: DescriptorId;
154
+ relationIds: RelationId[];
155
+ transitive?: boolean;
156
+ }): DescriptorIds;
157
+ declare function explainPath(input: {
158
+ graph: DescriptorGraph;
159
+ from: DescriptorId;
160
+ to: DescriptorId;
161
+ relationIds: RelationId[];
162
+ }): ResolutionStep[];
163
+ declare function explainPathsBatch(input: {
164
+ graph: DescriptorGraph;
165
+ pairs: Array<{
166
+ from: DescriptorId;
167
+ to: DescriptorId;
168
+ }>;
169
+ relationIds: RelationId[];
170
+ }): Array<{
171
+ from: DescriptorId;
172
+ to: DescriptorId;
173
+ path: ResolutionStep[];
174
+ }>;
175
+ declare function getCompositionProvenance(input: {
176
+ graph: DescriptorGraph;
177
+ descriptorIds: DescriptorId[];
178
+ selected: DescriptorId[];
179
+ baseDescriptors?: DescriptorId[];
180
+ relationIds: RelationId[];
181
+ }): CompositionProvenance[];
182
+
183
+ declare function createDescriptorCatalog(input: {
184
+ descriptorMap?: DescriptorMap;
185
+ descriptors?: Descriptor[];
186
+ relationDescriptors?: RelationDescriptor[];
187
+ }): DescriptorCatalog;
188
+
189
+ declare const defaultCompositionPolicy: CompositionPolicy;
190
+ declare function createCompositionSelection(input: {
191
+ catalog: DescriptorCatalog;
192
+ selected?: DescriptorId[];
193
+ baseDescriptors?: DescriptorId[];
194
+ policy?: Partial<CompositionPolicy>;
195
+ }): CompositionSelection;
196
+
197
+ export { type CompositionOriginType, type CompositionPolicy, type CompositionProvenance, type CompositionProvenanceOrigin, type CompositionSelection, type Descriptor, type DescriptorCatalog, type DescriptorEdge, type DescriptorGraph, type DescriptorId, type DescriptorIds, type DescriptorMap, type DescriptorProfile, type RelationDescriptor, type RelationId, type ResolutionStep, type VersionConstraintMap, assertKnownDescriptorIds, buildDescriptorGraph, buildDescriptorMap, createCompositionSelection, createDescriptorCatalog, defaultCompositionPolicy, defaultRelationDescriptors, explainPath, explainPathsBatch, getCompositionProvenance, getDependents, getIncomingRelationMap, getTransitiveTargets, parseDescriptorIds };