@beehexa/hexasync-workflow-profile-flow 2610.3.1

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,114 @@
1
+ import { type CanonicalEdge, type CanonicalRoute, type JsonObject, type WorkflowGraph } from '@beehexa/hexasync-template-model';
2
+ export interface RelationshipProjectionMapping {
3
+ readonly nodeIdentity?: string;
4
+ readonly source: string;
5
+ readonly target: string;
6
+ readonly kind: string;
7
+ }
8
+ export interface ProjectedRelationship {
9
+ readonly source: string;
10
+ readonly target: string;
11
+ readonly kind: string;
12
+ readonly route?: string;
13
+ readonly sourcePath?: string;
14
+ }
15
+ export interface CompileRelationshipProjectionInput {
16
+ readonly sourceId: string;
17
+ readonly nodes: readonly Readonly<Record<string, unknown>>[];
18
+ readonly records: readonly Readonly<Record<string, unknown>>[];
19
+ readonly mapping?: RelationshipProjectionMapping;
20
+ readonly project?: (record: Readonly<Record<string, unknown>>, index: number) => ProjectedRelationship | undefined;
21
+ readonly adapterId?: string;
22
+ readonly adapterVersion?: string;
23
+ readonly projectionVersion?: string;
24
+ readonly fingerprintSource?: unknown;
25
+ }
26
+ export interface DerivedRouteView {
27
+ readonly nodeId: string;
28
+ readonly field: 'next.routes';
29
+ readonly routes: readonly string[];
30
+ readonly derived: true;
31
+ readonly persistable: false;
32
+ }
33
+ export interface RelationshipEdge extends CanonicalEdge {
34
+ readonly relationshipOrdinal: number;
35
+ readonly sourceRecord: JsonObject;
36
+ }
37
+ export interface RelationshipRoute extends CanonicalRoute {
38
+ readonly order: number;
39
+ }
40
+ export interface RelationshipProjectionGraph extends WorkflowGraph {
41
+ readonly routes: readonly RelationshipRoute[];
42
+ readonly edges: readonly RelationshipEdge[];
43
+ readonly derivedRoutes: readonly DerivedRouteView[];
44
+ readonly persistenceIntents: readonly never[];
45
+ }
46
+ export interface RelationshipBoundary {
47
+ readonly id: string;
48
+ readonly nodeId: string;
49
+ readonly hiddenNodeCount: number;
50
+ readonly hiddenEdgeCount: number;
51
+ readonly expandable: boolean;
52
+ }
53
+ export interface RelationshipNeighborhood extends RelationshipProjectionGraph {
54
+ readonly hiddenCounts: {
55
+ readonly nodes: number;
56
+ readonly edges: number;
57
+ };
58
+ readonly boundaries: readonly RelationshipBoundary[];
59
+ readonly truncated: boolean;
60
+ }
61
+ export interface ProjectRelationshipNeighborhoodInput {
62
+ readonly graph: RelationshipProjectionGraph;
63
+ readonly selectedNodeId: string;
64
+ readonly depthLimit: number;
65
+ readonly resultLimit: number;
66
+ readonly expandedBoundaryIds?: readonly string[];
67
+ }
68
+ export interface RelationshipEdgeInspection {
69
+ readonly edgeId: string;
70
+ readonly kind: string;
71
+ readonly endpoints: {
72
+ readonly sourceNodeId: string;
73
+ readonly targetNodeId: string;
74
+ };
75
+ readonly sourcePath: string;
76
+ readonly ordinal: number;
77
+ readonly rawReference: {
78
+ readonly sourcePath: string;
79
+ readonly ordinal: number;
80
+ };
81
+ readonly adapter: {
82
+ readonly id: string;
83
+ readonly version: string;
84
+ };
85
+ readonly capabilities: {
86
+ readonly semanticEdit: false;
87
+ readonly create: false;
88
+ readonly reconnect: false;
89
+ readonly delete: false;
90
+ readonly presentationEdit: boolean;
91
+ };
92
+ }
93
+ export declare function compileRelationshipProjection(input: CompileRelationshipProjectionInput): RelationshipProjectionGraph;
94
+ export declare function projectRelationshipNeighborhood(input: ProjectRelationshipNeighborhoodInput): RelationshipNeighborhood;
95
+ export declare function inspectRelationshipEdge(input: {
96
+ readonly graph: RelationshipProjectionGraph;
97
+ readonly edgeId: string;
98
+ }): RelationshipEdgeInspection;
99
+ export declare function cycleRelationshipEdgeSelection(input: {
100
+ readonly graph: RelationshipProjectionGraph;
101
+ readonly edgeIds: readonly string[];
102
+ readonly currentEdgeId?: string;
103
+ readonly direction?: 'next' | 'previous';
104
+ }): RelationshipEdgeInspection;
105
+ export interface CompileProfileTaskRelationshipsInput {
106
+ readonly sourceId: string;
107
+ readonly profile: Readonly<Record<string, unknown>>;
108
+ readonly adapterId?: string;
109
+ readonly adapterVersion?: string;
110
+ readonly projectionVersion?: string;
111
+ }
112
+ /** Compile dashboard task relationships from raw profile records without creating write intents. */
113
+ export declare function compileProfileTaskRelationships(input: CompileProfileTaskRelationshipsInput): RelationshipProjectionGraph;
114
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,435 @@
1
+ import { CANONICAL_GRAPH_SCHEMA_VERSION } from '@beehexa/hexasync-template-model';
2
+ const text = (value) => typeof value === 'string' && value.trim() !== '' ? value : undefined;
3
+ const part = (value) => `s${value.length}:${value}`;
4
+ const RELATIONSHIP_IDENTITY_VERSION = '2';
5
+ const fingerprint = (value) => {
6
+ const input = JSON.stringify(value);
7
+ let hash = 2166136261;
8
+ for (let index = 0; index < input.length; index += 1) {
9
+ hash ^= input.charCodeAt(index);
10
+ hash = Math.imul(hash, 16777619);
11
+ }
12
+ return `fnv1a32:${(hash >>> 0).toString(16).padStart(8, '0')}`;
13
+ };
14
+ export function compileRelationshipProjection(input) {
15
+ const adapterId = input.adapterId ?? 'profile-relationships';
16
+ const adapterVersion = input.adapterVersion ?? '1';
17
+ const graphId = `${adapterId}|${part(input.sourceId)}`;
18
+ const pointer = (path, derived = false) => ({ adapterId, adapterVersion, path, derived });
19
+ const diagnostics = [];
20
+ const nodes = [];
21
+ const ports = [];
22
+ const byIdentity = new Map();
23
+ const identityField = input.mapping?.nodeIdentity ?? 'id';
24
+ input.nodes.forEach((record, index) => {
25
+ const identity = text(record[identityField]);
26
+ const nodePath = text(record.sourcePath) ?? `$.nodes[${index}]`;
27
+ if (!identity || byIdentity.has(identity)) {
28
+ diagnostics.push({ code: 'INVALID_RELATIONSHIP_NODE', severity: 'error', phase: 'compile', message: 'Relationship node identity is missing or duplicated.', graphId, source: pointer(nodePath), recoverable: true });
29
+ return;
30
+ }
31
+ const id = `${graphId}|node|${part(identity)}`;
32
+ const provenance = [pointer(nodePath)];
33
+ const nodePorts = [
34
+ { id: `${id}|input`, nodeId: id, direction: 'input', kind: 'input', provenance },
35
+ { id: `${id}|output`, nodeId: id, direction: 'output', kind: 'relationship', provenance },
36
+ ];
37
+ const kind = text(record.kind) ?? 'task';
38
+ const node = { id, sourceIdentity: identity, sourceAddress: text(record.sourceAddress) ?? nodePath, stepRef: { dialect: 'profile-relationships/v1', provider: text(record.provider) ?? kind }, container: { documentId: input.sourceId, workflowId: input.sourceId, scope: 'projection' }, kind, displayType: text(record.displayType) ?? kind, source: (record.source ?? record), ports: nodePorts, provenance, capabilities: { semanticEdit: false, presentationEdit: true } };
39
+ nodes.push(node);
40
+ ports.push(...nodePorts);
41
+ byIdentity.set(identity, node);
42
+ });
43
+ const routes = [];
44
+ const edges = [];
45
+ const outgoing = new Map();
46
+ const relationshipOccurrences = new Map();
47
+ const missingTargets = new Map();
48
+ input.records.forEach((record, index) => {
49
+ let projected;
50
+ try {
51
+ projected = input.project
52
+ ? input.project(record, index)
53
+ : input.mapping ? { source: text(record[input.mapping.source]) ?? '', target: text(record[input.mapping.target]) ?? '', kind: text(record[input.mapping.kind]) ?? '' } : undefined;
54
+ }
55
+ catch {
56
+ projected = undefined;
57
+ }
58
+ const recordPath = projected?.sourcePath ?? text(record.sourcePath) ?? `$.records[${index}]`;
59
+ const sourceNode = projected ? byIdentity.get(projected.source) : undefined;
60
+ if (!projected || !projected.source || !projected.target || !projected.kind || !sourceNode) {
61
+ diagnostics.push({ code: 'INVALID_RELATIONSHIP_PROJECTION', severity: 'error', phase: 'compile', message: 'Relationship record cannot be projected to known endpoints.', graphId, source: pointer(recordPath), recoverable: true });
62
+ return;
63
+ }
64
+ let targetNode = byIdentity.get(projected.target) ?? missingTargets.get(projected.target);
65
+ if (!targetNode) {
66
+ const id = `${graphId}|node|${part(projected.target)}`;
67
+ const provenance = [pointer(recordPath)];
68
+ const nodePorts = [
69
+ { id: `${id}|input`, nodeId: id, direction: 'input', kind: 'input', provenance },
70
+ { id: `${id}|output`, nodeId: id, direction: 'output', kind: 'relationship', provenance },
71
+ ];
72
+ targetNode = { id, sourceIdentity: projected.target, sourceAddress: recordPath, stepRef: { dialect: 'profile-relationships/v1', provider: 'exception' }, container: { documentId: input.sourceId, workflowId: input.sourceId, scope: 'projection' }, kind: 'exception', displayType: 'exception', source: {}, ports: nodePorts, provenance, capabilities: { semanticEdit: false, presentationEdit: true } };
73
+ nodes.push(targetNode);
74
+ ports.push(...nodePorts);
75
+ missingTargets.set(projected.target, targetNode);
76
+ }
77
+ if (missingTargets.has(projected.target))
78
+ diagnostics.push({ code: 'MISSING_RELATIONSHIP_TARGET', severity: 'error', phase: 'compile', message: `Relationship target '${projected.target}' is missing.`, elementId: targetNode.id, graphId, details: { targetIdentity: projected.target, relationshipKind: projected.kind }, source: pointer(recordPath), recoverable: true });
79
+ const provenance = [pointer(recordPath), ...(input.mapping ? [pointer(`${recordPath}.${input.mapping.source}`), pointer(`${recordPath}.${input.mapping.target}`), pointer(`${recordPath}.${input.mapping.kind}`)] : [])];
80
+ const relationshipIdentity = [projected.kind, recordPath, projected.source, projected.target].map(part).join('|');
81
+ const occurrence = relationshipOccurrences.get(relationshipIdentity) ?? 0;
82
+ relationshipOccurrences.set(relationshipIdentity, occurrence + 1);
83
+ const relationshipKey = `${relationshipIdentity}|occurrence:${occurrence}`;
84
+ routes.push({ id: `${graphId}|route|${relationshipKey}`, sourceNodeId: sourceNode.id, sourcePortId: sourceNode.ports[1].id, kind: projected.kind, targetIdentity: projected.target, order: occurrence, ...(projected.route === undefined ? {} : { role: projected.route }), provenance });
85
+ edges.push({ id: `${graphId}|edge|${relationshipKey}`, kind: projected.kind, source: { nodeId: sourceNode.id, portId: sourceNode.ports[1].id }, target: { nodeId: targetNode.id, portId: targetNode.ports[0].id }, provenance, capabilities: { reconnect: false, delete: false }, relationshipOrdinal: occurrence, sourceRecord: record });
86
+ const targets = outgoing.get(sourceNode.id) ?? [];
87
+ targets.push(projected.target);
88
+ outgoing.set(sourceNode.id, targets);
89
+ });
90
+ return { schemaVersion: CANONICAL_GRAPH_SCHEMA_VERSION, graphId, dialect: 'profile-relationships/v1', sourceFingerprint: fingerprint({ adapterId, adapterVersion, identityVersion: RELATIONSHIP_IDENTITY_VERSION, projectionVersion: input.projectionVersion, sourceId: input.sourceId, source: input.fingerprintSource ?? { nodes: input.nodes, records: input.records, mapping: input.mapping } }), nodes, ports, routes, edges, capabilities: { semanticEdit: false, presentationEdit: true }, provenance: [pointer('$')], diagnostics, persistenceIntents: [], derivedRoutes: [...outgoing].map(([nodeId, targets]) => ({ nodeId, field: 'next.routes', routes: targets, derived: true, persistable: false })) };
91
+ }
92
+ export function projectRelationshipNeighborhood(input) {
93
+ const { graph } = input;
94
+ const byId = new Map(graph.nodes.map(node => [node.id, node]));
95
+ if (!byId.has(input.selectedNodeId))
96
+ throw new Error(`Unknown selected relationship node: ${input.selectedNodeId}`);
97
+ const adjacent = new Map();
98
+ const connect = (left, right) => { const values = adjacent.get(left) ?? new Set(); values.add(right); adjacent.set(left, values); };
99
+ graph.edges.forEach(edge => { connect(edge.source.nodeId, edge.target.nodeId); connect(edge.target.nodeId, edge.source.nodeId); });
100
+ const boundaryId = (nodeId) => `${graph.graphId}|boundary|${part(nodeId)}`;
101
+ const expanded = new Set(input.expandedBoundaryIds ?? []);
102
+ if (!Number.isFinite(input.resultLimit) || !Number.isInteger(input.resultLimit) || input.resultLimit < 1)
103
+ throw new RangeError('resultLimit must be a positive finite integer.');
104
+ if (!Number.isFinite(input.depthLimit) || !Number.isInteger(input.depthLimit) || input.depthLimit < 0)
105
+ throw new RangeError('depthLimit must be a non-negative finite integer.');
106
+ const limit = input.resultLimit;
107
+ const depthLimit = input.depthLimit;
108
+ const reachable = new Set();
109
+ const reachQueue = [input.selectedNodeId];
110
+ while (reachQueue.length > 0) {
111
+ const id = reachQueue.shift();
112
+ if (reachable.has(id))
113
+ continue;
114
+ reachable.add(id);
115
+ for (const next of adjacent.get(id) ?? [])
116
+ if (!reachable.has(next))
117
+ reachQueue.push(next);
118
+ }
119
+ const included = new Set([input.selectedNodeId]);
120
+ const queue = [{ nodeId: input.selectedNodeId, depth: 0 }];
121
+ for (let cursor = 0; cursor < queue.length && included.size < limit; cursor += 1) {
122
+ const current = queue[cursor];
123
+ const mayExpand = current.depth < depthLimit || expanded.has(boundaryId(current.nodeId));
124
+ if (!mayExpand)
125
+ continue;
126
+ for (const next of adjacent.get(current.nodeId) ?? []) {
127
+ if (included.has(next))
128
+ continue;
129
+ included.add(next);
130
+ queue.push({ nodeId: next, depth: current.depth + 1 });
131
+ if (included.size >= limit)
132
+ break;
133
+ }
134
+ }
135
+ const nodes = graph.nodes.filter(node => included.has(node.id));
136
+ const edges = graph.edges.filter(edge => included.has(edge.source.nodeId) && included.has(edge.target.nodeId));
137
+ const edgePrefix = `${graph.graphId}|edge|`;
138
+ const routePrefix = `${graph.graphId}|route|`;
139
+ const retainedRouteIds = new Set(edges.map(edge => `${routePrefix}${edge.id.slice(edgePrefix.length)}`));
140
+ const routes = graph.routes.filter(route => retainedRouteIds.has(route.id));
141
+ const ports = graph.ports.filter(port => included.has(port.nodeId));
142
+ const boundaries = nodes.flatMap(node => {
143
+ const frontier = [...(adjacent.get(node.id) ?? [])].filter(id => !included.has(id));
144
+ if (frontier.length === 0)
145
+ return [];
146
+ const hiddenNodes = new Set();
147
+ const hiddenEdges = new Set();
148
+ const pending = [...frontier];
149
+ while (pending.length > 0) {
150
+ const id = pending.shift();
151
+ if (included.has(id) || hiddenNodes.has(id))
152
+ continue;
153
+ hiddenNodes.add(id);
154
+ graph.edges.forEach(edge => { if (edge.source.nodeId === id || edge.target.nodeId === id) {
155
+ hiddenEdges.add(edge.id);
156
+ const other = edge.source.nodeId === id ? edge.target.nodeId : edge.source.nodeId;
157
+ if (!included.has(other))
158
+ pending.push(other);
159
+ } });
160
+ }
161
+ return [{ id: boundaryId(node.id), nodeId: node.id, hiddenNodeCount: hiddenNodes.size, hiddenEdgeCount: hiddenEdges.size, expandable: included.size < limit }];
162
+ });
163
+ const reachableEdges = graph.edges.filter(edge => reachable.has(edge.source.nodeId) && reachable.has(edge.target.nodeId));
164
+ const identities = new Set(nodes.map(node => node.sourceIdentity));
165
+ const derivedRoutes = graph.derivedRoutes.flatMap(route => { if (!included.has(route.nodeId))
166
+ return []; const targets = route.routes.filter(target => identities.has(target)); return targets.length > 0 ? [{ ...route, routes: targets }] : []; });
167
+ return { ...graph, nodes, ports, routes, edges, derivedRoutes, hiddenCounts: { nodes: reachable.size - nodes.length, edges: reachableEdges.length - edges.length }, boundaries, truncated: nodes.length !== reachable.size || edges.length !== reachableEdges.length };
168
+ }
169
+ export function inspectRelationshipEdge(input) {
170
+ const edge = input.graph.edges.find(candidate => candidate.id === input.edgeId);
171
+ if (!edge)
172
+ throw new Error(`Unknown relationship edge: ${input.edgeId}`);
173
+ const source = edge.provenance[0];
174
+ if (!source)
175
+ throw new Error(`Relationship edge has no source provenance: ${input.edgeId}`);
176
+ return {
177
+ edgeId: edge.id, kind: edge.kind,
178
+ endpoints: { sourceNodeId: edge.source.nodeId, targetNodeId: edge.target.nodeId },
179
+ sourcePath: source.path, ordinal: edge.relationshipOrdinal,
180
+ rawReference: { sourcePath: source.path, ordinal: edge.relationshipOrdinal },
181
+ adapter: { id: source.adapterId, version: source.adapterVersion },
182
+ capabilities: { semanticEdit: false, create: false, reconnect: false, delete: false, presentationEdit: input.graph.capabilities.presentationEdit },
183
+ };
184
+ }
185
+ export function cycleRelationshipEdgeSelection(input) {
186
+ const edgeIds = [...input.edgeIds];
187
+ if (edgeIds.length === 0)
188
+ throw new Error('Relationship edge selection is empty.');
189
+ if (new Set(edgeIds).size !== edgeIds.length)
190
+ throw new Error('Relationship edge selection contains duplicate IDs.');
191
+ if (edgeIds.some(id => !input.graph.edges.some(edge => edge.id === id)))
192
+ throw new Error('Relationship edge selection contains an unknown ID.');
193
+ if (input.currentEdgeId !== undefined && !edgeIds.includes(input.currentEdgeId))
194
+ throw new Error('Current relationship edge is not in the selection.');
195
+ const current = input.currentEdgeId === undefined ? -1 : edgeIds.indexOf(input.currentEdgeId);
196
+ const delta = input.direction === 'previous' ? -1 : 1;
197
+ const index = current < 0 ? (delta > 0 ? 0 : edgeIds.length - 1) : (current + delta + edgeIds.length) % edgeIds.length;
198
+ return inspectRelationshipEdge({ graph: input.graph, edgeId: edgeIds[index] });
199
+ }
200
+ const SUPPORTED_DEPENDENCY_TYPES = new Set(['KEYS', 'ATTRIBUTE']);
201
+ const NEW_KIND_TASK_STEP_TYPES = new Set(['SAVE_TASK_DATA', 'UPDATE_TASK_DATA_STATUS']);
202
+ const GUID_RE = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;
203
+ const record = (value) => value !== null && typeof value === 'object' && !Array.isArray(value) ? value : undefined;
204
+ const list = (value) => Array.isArray(value) ? value : [];
205
+ const entries = (value) => record(value) ? Object.entries(record(value)) : [];
206
+ const pathKey = (base, key) => /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(key) ? `${base}.${key}` : `${base}[${JSON.stringify(key)}]`;
207
+ /** Compile dashboard task relationships from raw profile records without creating write intents. */
208
+ export function compileProfileTaskRelationships(input) {
209
+ const adapterId = input.adapterId ?? 'profile-task-relationships';
210
+ const adapterVersion = input.adapterVersion ?? '1';
211
+ const profile = input.profile;
212
+ const nodes = [];
213
+ const known = new Set();
214
+ const relationships = [];
215
+ const extractionDiagnostics = [];
216
+ const graphId = `${adapterId}|${part(input.sourceId)}`;
217
+ const pointer = (path) => ({ adapterId, adapterVersion, path, derived: false });
218
+ const addNode = (kind, identity, value, path) => {
219
+ const id = text(identity);
220
+ if (!id)
221
+ return undefined;
222
+ const qualified = `${kind}:${id}`;
223
+ nodes.push({ id: qualified, kind, displayType: kind, provider: kind, source: record(value) ?? {}, sourcePath: path, sourceAddress: path });
224
+ known.add(qualified);
225
+ return qualified;
226
+ };
227
+ const diagnose = (code, path, message) => {
228
+ extractionDiagnostics.push({ code, severity: 'error', phase: 'compile', message, graphId, source: pointer(path), recoverable: true });
229
+ };
230
+ const addRelationship = (kind, source, target, path) => {
231
+ if (!source || !target || !known.has(source)) {
232
+ diagnose('MALFORMED_PROFILE_RELATIONSHIP', path, `Malformed ${kind} relationship does not resolve to a known source endpoint.`);
233
+ return;
234
+ }
235
+ relationships.push({ source, target, kind, path });
236
+ };
237
+ const tasks = list(profile.objects);
238
+ tasks.forEach((value, index) => addNode('task', record(value)?.id, value, `$.objects[${index}]`));
239
+ const connectors = list(profile.connectors);
240
+ connectors.forEach((value, index) => addNode('connector', record(value)?.id, value, `$.connectors[${index}]`));
241
+ const pullers = list(profile.pullers);
242
+ pullers.forEach((value, index) => addNode('puller', record(value)?.id, value, `$.pullers[${index}]`));
243
+ const pushers = list(profile.pushers);
244
+ pushers.forEach((value, index) => addNode('pusher', record(value)?.id, value, `$.pushers[${index}]`));
245
+ const webhooks = list(profile.webhooks);
246
+ webhooks.forEach((value, index) => addNode('webhook', record(value)?.id, value, `$.webhooks[${index}]`));
247
+ const pullerOwners = new Map();
248
+ const pusherOwners = new Map();
249
+ const rememberOwner = (owners, componentId, taskId) => {
250
+ const tasksForComponent = owners.get(componentId) ?? new Set();
251
+ tasksForComponent.add(taskId);
252
+ owners.set(componentId, tasksForComponent);
253
+ };
254
+ list(profile.dependencies).forEach((value, index) => {
255
+ const path = `$.dependencies[${index}]`;
256
+ const dependency = record(value);
257
+ if (!dependency || !text(dependency.objectId) || !text(dependency.dependedOn) || !text(dependency.type))
258
+ diagnose('MALFORMED_PROFILE_RELATIONSHIP', path, 'A dependency requires objectId, dependedOn, and type.');
259
+ else if (!SUPPORTED_DEPENDENCY_TYPES.has(String(dependency.type)))
260
+ diagnose('UNSUPPORTED_PROFILE_RELATIONSHIP', path, `Unsupported dependency type "${String(dependency.type)}".`);
261
+ else
262
+ addRelationship('task-dependency', `task:${String(dependency.objectId)}`, `task:${String(dependency.dependedOn)}`, path);
263
+ });
264
+ tasks.forEach((value, taskIndex) => {
265
+ const task = record(value);
266
+ const taskId = text(task?.id);
267
+ if (!taskId || !task)
268
+ return;
269
+ for (const [key, dependencyValue] of entries(task.dependencies)) {
270
+ const path = pathKey(`$.objects[${taskIndex}].dependencies`, key);
271
+ const dependency = record(dependencyValue);
272
+ if (!dependency || !text(dependency.dependedOn) || !text(dependency.type))
273
+ diagnose('MALFORMED_PROFILE_RELATIONSHIP', path, 'A task-local dependency requires dependedOn and type.');
274
+ else if (!SUPPORTED_DEPENDENCY_TYPES.has(String(dependency.type)))
275
+ diagnose('UNSUPPORTED_PROFILE_RELATIONSHIP', path, `Unsupported dependency type "${String(dependency.type)}".`);
276
+ else
277
+ addRelationship('task-dependency', `task:${taskId}`, `task:${String(dependency.dependedOn)}`, path);
278
+ }
279
+ const from = text(task.fromConnectionId);
280
+ if (from)
281
+ addRelationship('source-connection', `connector:${from}`, `task:${taskId}`, `$.objects[${taskIndex}].fromConnectionId`);
282
+ const to = text(task.toConnectionId);
283
+ if (to)
284
+ addRelationship('destination-connection', `task:${taskId}`, `connector:${to}`, `$.objects[${taskIndex}].toConnectionId`);
285
+ const puller = text(record(task.puller)?.id);
286
+ if (puller) {
287
+ addRelationship('puller-ownership', `puller:${puller}`, `task:${taskId}`, `$.objects[${taskIndex}].puller`);
288
+ rememberOwner(pullerOwners, puller, taskId);
289
+ }
290
+ const pusher = text(record(task.pusher)?.id);
291
+ if (pusher) {
292
+ addRelationship('pusher-ownership', `pusher:${pusher}`, `task:${taskId}`, `$.objects[${taskIndex}].pusher`);
293
+ rememberOwner(pusherOwners, pusher, taskId);
294
+ }
295
+ });
296
+ for (const [taskId, values] of entries(profile.transformations)) {
297
+ const taskPath = pathKey('$.transformations', taskId);
298
+ if (!Array.isArray(values)) {
299
+ diagnose('MALFORMED_PROFILE_RELATIONSHIP', taskPath, 'A transformation family must be an array.');
300
+ continue;
301
+ }
302
+ values.forEach((value, index) => {
303
+ const path = `${taskPath}[${index}]`;
304
+ const transformation = record(value);
305
+ const transformationId = text(transformation?.id);
306
+ if (!transformation || !transformationId) {
307
+ diagnose('MALFORMED_PROFILE_RELATIONSHIP', path, 'A transformation requires an id.');
308
+ return;
309
+ }
310
+ const nodeId = addNode('transformation', transformationId, value, path);
311
+ addRelationship('task-transformation', `task:${taskId}`, nodeId, path);
312
+ });
313
+ }
314
+ for (const [taskId, value] of entries(profile.objectAssociations)) {
315
+ const associationPath = pathKey('$.objectAssociations', taskId);
316
+ const association = record(value);
317
+ if (!association) {
318
+ diagnose('MALFORMED_PROFILE_RELATIONSHIP', associationPath, 'An object association must be an object.');
319
+ continue;
320
+ }
321
+ const puller = text(record(association.puller)?.id);
322
+ if (puller) {
323
+ addRelationship('puller-ownership', `puller:${puller}`, `task:${taskId}`, `${associationPath}.puller`);
324
+ rememberOwner(pullerOwners, puller, taskId);
325
+ }
326
+ const pusher = text(record(association.pusher)?.id);
327
+ if (pusher) {
328
+ addRelationship('pusher-ownership', `pusher:${pusher}`, `task:${taskId}`, `${associationPath}.pusher`);
329
+ rememberOwner(pusherOwners, pusher, taskId);
330
+ }
331
+ }
332
+ pullers.forEach((value, pullerIndex) => {
333
+ const puller = record(value);
334
+ const pullerId = text(puller?.id);
335
+ if (!pullerId || !puller)
336
+ return;
337
+ const ownedTasks = pullerOwners.get(pullerId) ?? new Set();
338
+ pullerOwners.set(pullerId, ownedTasks);
339
+ if (list(puller.steps).length > 0)
340
+ for (const bucket of ['steps', 'onErrorSteps', 'finalSteps'])
341
+ list(puller[bucket]).forEach((stepValue, stepIndex) => {
342
+ const step = record(stepValue);
343
+ const stepType = text(step?.provider) ?? text(step?.displayType);
344
+ if (!stepType || !NEW_KIND_TASK_STEP_TYPES.has(stepType))
345
+ return;
346
+ const path = `$.pullers[${pullerIndex}].${bucket}[${stepIndex}].data.taskId`;
347
+ const taskId = text(record(step?.data)?.taskId);
348
+ if (!taskId || !GUID_RE.test(taskId)) {
349
+ diagnose('MALFORMED_PROFILE_RELATIONSHIP', path, 'A new-kind task ownership step requires a GUID taskId.');
350
+ return;
351
+ }
352
+ ownedTasks.add(taskId);
353
+ addRelationship('puller-ownership', `puller:${pullerId}`, `task:${taskId}`, path);
354
+ });
355
+ list(puller.pullSteps).forEach((stepValue, stepIndex) => {
356
+ const step = record(stepValue);
357
+ if (text(step?.displayType) !== 'DIRECT_INDEX')
358
+ return;
359
+ const ids = list(record(step?.data)?.objectIds);
360
+ if (ids.length === 0)
361
+ diagnose('MALFORMED_PROFILE_RELATIONSHIP', `$.pullers[${pullerIndex}].pullSteps[${stepIndex}]`, 'DIRECT_INDEX requires data.objectIds.');
362
+ ids.forEach((taskId, objectIndex) => { const id = text(taskId); if (id)
363
+ ownedTasks.add(id); addRelationship('puller-ownership', `puller:${pullerId}`, id ? `task:${id}` : undefined, `$.pullers[${pullerIndex}].pullSteps[${stepIndex}].data.objectIds[${objectIndex}]`); });
364
+ });
365
+ list(puller.pullSteps).forEach((stepValue, stepIndex) => {
366
+ const connectorId = text(record(stepValue)?.connectorId);
367
+ if (connectorId)
368
+ for (const taskId of ownedTasks)
369
+ addRelationship('source-connection', `connector:${connectorId}`, `task:${taskId}`, `$.pullers[${pullerIndex}].pullSteps[${stepIndex}].connectorId`);
370
+ });
371
+ });
372
+ pushers.forEach((value, pusherIndex) => {
373
+ const pusher = record(value);
374
+ const pusherId = text(pusher?.id);
375
+ if (!pusherId || !pusher)
376
+ return;
377
+ list(pusher.pushSteps).forEach((stepValue, stepIndex) => {
378
+ const step = record(stepValue);
379
+ const owners = pusherOwners.get(pusherId) ?? new Set();
380
+ const connectorId = text(step?.connectorId);
381
+ if (connectorId)
382
+ for (const owner of owners)
383
+ addRelationship('destination-connection', `task:${owner}`, `connector:${connectorId}`, `$.pushers[${pusherIndex}].pushSteps[${stepIndex}].connectorId`);
384
+ if (text(step?.displayType) !== 'DIRECT_INDEX')
385
+ return;
386
+ const ids = list(record(step?.data)?.objectIds);
387
+ if (ids.length === 0 || owners.size === 0)
388
+ diagnose('MALFORMED_PROFILE_RELATIONSHIP', `$.pushers[${pusherIndex}].pushSteps[${stepIndex}]`, 'DIRECT_INDEX requires target task ids and an owning task association.');
389
+ for (const owner of owners)
390
+ ids.forEach((taskId, objectIndex) => addRelationship('task-transformation', `task:${owner}`, text(taskId) ? `task:${String(taskId)}` : undefined, `$.pushers[${pusherIndex}].pushSteps[${stepIndex}].data.objectIds[${objectIndex}]`));
391
+ });
392
+ });
393
+ webhooks.forEach((value, webhookIndex) => {
394
+ const webhook = record(value);
395
+ const webhookId = text(webhook?.id);
396
+ if (!webhookId || !webhook)
397
+ return;
398
+ for (const [eventName, targetValue] of entries(webhook.targets)) {
399
+ const eventPath = pathKey(`$.webhooks[${webhookIndex}].targets`, eventName);
400
+ const target = record(targetValue);
401
+ const ownedTasks = [];
402
+ list(target?.objectIds).forEach((taskId, objectIndex) => {
403
+ const path = `${eventPath}.objectIds[${objectIndex}]`;
404
+ const id = text(taskId);
405
+ if (id)
406
+ ownedTasks.push(id);
407
+ addRelationship('webhook-ownership', `webhook:${webhookId}`, id ? `task:${id}` : undefined, path);
408
+ });
409
+ list(target?.pullSteps).forEach((stepValue, stepIndex) => {
410
+ const step = record(stepValue);
411
+ if (text(step?.displayType) !== 'DIRECT_INDEX')
412
+ return;
413
+ const ids = list(record(step?.data)?.objectIds);
414
+ if (ids.length === 0)
415
+ diagnose('MALFORMED_PROFILE_RELATIONSHIP', `${eventPath}.pullSteps[${stepIndex}]`, 'DIRECT_INDEX requires data.objectIds.');
416
+ ids.forEach((taskId, objectIndex) => {
417
+ const id = text(taskId);
418
+ const path = `${eventPath}.pullSteps[${stepIndex}].data.objectIds[${objectIndex}]`;
419
+ if (id)
420
+ ownedTasks.push(id);
421
+ addRelationship('webhook-ownership', `webhook:${webhookId}`, id ? `task:${id}` : undefined, path);
422
+ for (const owner of list(target?.objectIds).map(text).filter((owner) => owner !== undefined))
423
+ addRelationship('task-transformation', `task:${owner}`, id ? `task:${id}` : undefined, path);
424
+ });
425
+ });
426
+ const connectionId = text(webhook.connectionId);
427
+ if (connectionId)
428
+ for (const owner of new Set(ownedTasks))
429
+ addRelationship('source-connection', `connector:${connectionId}`, `task:${owner}`, `$.webhooks[${webhookIndex}].connectionId`);
430
+ }
431
+ });
432
+ const graph = compileRelationshipProjection({ sourceId: input.sourceId, nodes, records: relationships, project: value => ({ source: String(value.source), target: String(value.target), kind: String(value.kind), sourcePath: String(value.path) }), adapterId, adapterVersion, projectionVersion: input.projectionVersion, fingerprintSource: profile });
433
+ return { ...graph, diagnostics: [...graph.diagnostics, ...extractionDiagnostics] };
434
+ }
435
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "@beehexa/hexasync-workflow-profile-flow",
3
+ "version": "2610.3.1",
4
+ "description": "Read-only relationship projection adapter.",
5
+ "license": "SEE LICENSE IN ../../LICENSE",
6
+ "type": "module",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "default": "./dist/index.js"
11
+ }
12
+ },
13
+ "main": "./dist/index.js",
14
+ "types": "./dist/index.d.ts",
15
+ "files": [
16
+ "dist"
17
+ ],
18
+ "scripts": {
19
+ "typecheck": "tsc --noEmit",
20
+ "build": "tsc -p tsconfig.build.json"
21
+ },
22
+ "dependencies": {
23
+ "@beehexa/hexasync-template-model": "2610.3.1"
24
+ },
25
+ "publishConfig": {
26
+ "access": "public"
27
+ },
28
+ "hexasync": {
29
+ "layer": "core"
30
+ }
31
+ }