@principal-ai/principal-view-core 0.5.6
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/README.md +126 -0
- package/dist/ConfigurationLoader.d.ts +76 -0
- package/dist/ConfigurationLoader.d.ts.map +1 -0
- package/dist/ConfigurationLoader.js +144 -0
- package/dist/ConfigurationLoader.js.map +1 -0
- package/dist/ConfigurationValidator.d.ts +31 -0
- package/dist/ConfigurationValidator.d.ts.map +1 -0
- package/dist/ConfigurationValidator.js +242 -0
- package/dist/ConfigurationValidator.js.map +1 -0
- package/dist/EventProcessor.d.ts +49 -0
- package/dist/EventProcessor.d.ts.map +1 -0
- package/dist/EventProcessor.js +215 -0
- package/dist/EventProcessor.js.map +1 -0
- package/dist/EventRecorderService.d.ts +305 -0
- package/dist/EventRecorderService.d.ts.map +1 -0
- package/dist/EventRecorderService.js +463 -0
- package/dist/EventRecorderService.js.map +1 -0
- package/dist/LibraryLoader.d.ts +63 -0
- package/dist/LibraryLoader.d.ts.map +1 -0
- package/dist/LibraryLoader.js +188 -0
- package/dist/LibraryLoader.js.map +1 -0
- package/dist/PathBasedEventProcessor.d.ts +90 -0
- package/dist/PathBasedEventProcessor.d.ts.map +1 -0
- package/dist/PathBasedEventProcessor.js +239 -0
- package/dist/PathBasedEventProcessor.js.map +1 -0
- package/dist/SessionManager.d.ts +194 -0
- package/dist/SessionManager.d.ts.map +1 -0
- package/dist/SessionManager.js +299 -0
- package/dist/SessionManager.js.map +1 -0
- package/dist/ValidationEngine.d.ts +31 -0
- package/dist/ValidationEngine.d.ts.map +1 -0
- package/dist/ValidationEngine.js +158 -0
- package/dist/ValidationEngine.js.map +1 -0
- package/dist/helpers/GraphInstrumentationHelper.d.ts +93 -0
- package/dist/helpers/GraphInstrumentationHelper.d.ts.map +1 -0
- package/dist/helpers/GraphInstrumentationHelper.js +248 -0
- package/dist/helpers/GraphInstrumentationHelper.js.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/dist/rules/config.d.ts +57 -0
- package/dist/rules/config.d.ts.map +1 -0
- package/dist/rules/config.js +382 -0
- package/dist/rules/config.js.map +1 -0
- package/dist/rules/engine.d.ts +70 -0
- package/dist/rules/engine.d.ts.map +1 -0
- package/dist/rules/engine.js +252 -0
- package/dist/rules/engine.js.map +1 -0
- package/dist/rules/implementations/connection-type-references.d.ts +7 -0
- package/dist/rules/implementations/connection-type-references.d.ts.map +1 -0
- package/dist/rules/implementations/connection-type-references.js +104 -0
- package/dist/rules/implementations/connection-type-references.js.map +1 -0
- package/dist/rules/implementations/dead-end-states.d.ts +17 -0
- package/dist/rules/implementations/dead-end-states.d.ts.map +1 -0
- package/dist/rules/implementations/dead-end-states.js +72 -0
- package/dist/rules/implementations/dead-end-states.js.map +1 -0
- package/dist/rules/implementations/index.d.ts +24 -0
- package/dist/rules/implementations/index.d.ts.map +1 -0
- package/dist/rules/implementations/index.js +62 -0
- package/dist/rules/implementations/index.js.map +1 -0
- package/dist/rules/implementations/library-node-type-match.d.ts +17 -0
- package/dist/rules/implementations/library-node-type-match.d.ts.map +1 -0
- package/dist/rules/implementations/library-node-type-match.js +123 -0
- package/dist/rules/implementations/library-node-type-match.js.map +1 -0
- package/dist/rules/implementations/minimum-node-sources.d.ts +22 -0
- package/dist/rules/implementations/minimum-node-sources.d.ts.map +1 -0
- package/dist/rules/implementations/minimum-node-sources.js +54 -0
- package/dist/rules/implementations/minimum-node-sources.js.map +1 -0
- package/dist/rules/implementations/no-unknown-fields.d.ts +7 -0
- package/dist/rules/implementations/no-unknown-fields.d.ts.map +1 -0
- package/dist/rules/implementations/no-unknown-fields.js +211 -0
- package/dist/rules/implementations/no-unknown-fields.js.map +1 -0
- package/dist/rules/implementations/orphaned-edge-types.d.ts +7 -0
- package/dist/rules/implementations/orphaned-edge-types.d.ts.map +1 -0
- package/dist/rules/implementations/orphaned-edge-types.js +47 -0
- package/dist/rules/implementations/orphaned-edge-types.js.map +1 -0
- package/dist/rules/implementations/orphaned-node-types.d.ts +7 -0
- package/dist/rules/implementations/orphaned-node-types.d.ts.map +1 -0
- package/dist/rules/implementations/orphaned-node-types.js +50 -0
- package/dist/rules/implementations/orphaned-node-types.js.map +1 -0
- package/dist/rules/implementations/required-metadata.d.ts +7 -0
- package/dist/rules/implementations/required-metadata.d.ts.map +1 -0
- package/dist/rules/implementations/required-metadata.js +57 -0
- package/dist/rules/implementations/required-metadata.js.map +1 -0
- package/dist/rules/implementations/state-transition-references.d.ts +7 -0
- package/dist/rules/implementations/state-transition-references.d.ts.map +1 -0
- package/dist/rules/implementations/state-transition-references.js +135 -0
- package/dist/rules/implementations/state-transition-references.js.map +1 -0
- package/dist/rules/implementations/unreachable-states.d.ts +7 -0
- package/dist/rules/implementations/unreachable-states.d.ts.map +1 -0
- package/dist/rules/implementations/unreachable-states.js +80 -0
- package/dist/rules/implementations/unreachable-states.js.map +1 -0
- package/dist/rules/implementations/valid-action-patterns.d.ts +17 -0
- package/dist/rules/implementations/valid-action-patterns.d.ts.map +1 -0
- package/dist/rules/implementations/valid-action-patterns.js +109 -0
- package/dist/rules/implementations/valid-action-patterns.js.map +1 -0
- package/dist/rules/implementations/valid-color-format.d.ts +7 -0
- package/dist/rules/implementations/valid-color-format.d.ts.map +1 -0
- package/dist/rules/implementations/valid-color-format.js +91 -0
- package/dist/rules/implementations/valid-color-format.js.map +1 -0
- package/dist/rules/implementations/valid-edge-types.d.ts +7 -0
- package/dist/rules/implementations/valid-edge-types.d.ts.map +1 -0
- package/dist/rules/implementations/valid-edge-types.js +244 -0
- package/dist/rules/implementations/valid-edge-types.js.map +1 -0
- package/dist/rules/implementations/valid-node-types.d.ts +7 -0
- package/dist/rules/implementations/valid-node-types.d.ts.map +1 -0
- package/dist/rules/implementations/valid-node-types.js +175 -0
- package/dist/rules/implementations/valid-node-types.js.map +1 -0
- package/dist/rules/index.d.ts +28 -0
- package/dist/rules/index.d.ts.map +1 -0
- package/dist/rules/index.js +45 -0
- package/dist/rules/index.js.map +1 -0
- package/dist/rules/types.d.ts +309 -0
- package/dist/rules/types.d.ts.map +1 -0
- package/dist/rules/types.js +35 -0
- package/dist/rules/types.js.map +1 -0
- package/dist/types/canvas.d.ts +409 -0
- package/dist/types/canvas.d.ts.map +1 -0
- package/dist/types/canvas.js +70 -0
- package/dist/types/canvas.js.map +1 -0
- package/dist/types/index.d.ts +311 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +13 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/library.d.ts +185 -0
- package/dist/types/library.d.ts.map +1 -0
- package/dist/types/library.js +15 -0
- package/dist/types/library.js.map +1 -0
- package/dist/types/path-based-config.d.ts +230 -0
- package/dist/types/path-based-config.d.ts.map +1 -0
- package/dist/types/path-based-config.js +9 -0
- package/dist/types/path-based-config.js.map +1 -0
- package/dist/utils/CanvasConverter.d.ts +118 -0
- package/dist/utils/CanvasConverter.d.ts.map +1 -0
- package/dist/utils/CanvasConverter.js +315 -0
- package/dist/utils/CanvasConverter.js.map +1 -0
- package/dist/utils/GraphConverter.d.ts +18 -0
- package/dist/utils/GraphConverter.d.ts.map +1 -0
- package/dist/utils/GraphConverter.js +61 -0
- package/dist/utils/GraphConverter.js.map +1 -0
- package/dist/utils/LibraryConverter.d.ts +113 -0
- package/dist/utils/LibraryConverter.d.ts.map +1 -0
- package/dist/utils/LibraryConverter.js +166 -0
- package/dist/utils/LibraryConverter.js.map +1 -0
- package/dist/utils/PathMatcher.d.ts +55 -0
- package/dist/utils/PathMatcher.d.ts.map +1 -0
- package/dist/utils/PathMatcher.js +172 -0
- package/dist/utils/PathMatcher.js.map +1 -0
- package/dist/utils/YamlParser.d.ts +36 -0
- package/dist/utils/YamlParser.d.ts.map +1 -0
- package/dist/utils/YamlParser.js +63 -0
- package/dist/utils/YamlParser.js.map +1 -0
- package/package.json +47 -0
- package/src/ConfigurationLoader.test.ts +490 -0
- package/src/ConfigurationLoader.ts +185 -0
- package/src/ConfigurationValidator.test.ts +200 -0
- package/src/ConfigurationValidator.ts +283 -0
- package/src/EventProcessor.test.ts +405 -0
- package/src/EventProcessor.ts +250 -0
- package/src/EventRecorderService.test.ts +541 -0
- package/src/EventRecorderService.ts +744 -0
- package/src/LibraryLoader.ts +215 -0
- package/src/PathBasedEventProcessor.test.ts +567 -0
- package/src/PathBasedEventProcessor.ts +332 -0
- package/src/SessionManager.test.ts +424 -0
- package/src/SessionManager.ts +470 -0
- package/src/ValidationEngine.test.ts +371 -0
- package/src/ValidationEngine.ts +196 -0
- package/src/helpers/GraphInstrumentationHelper.test.ts +340 -0
- package/src/helpers/GraphInstrumentationHelper.ts +326 -0
- package/src/index.ts +85 -0
- package/src/rules/config.test.ts +278 -0
- package/src/rules/config.ts +459 -0
- package/src/rules/engine.test.ts +332 -0
- package/src/rules/engine.ts +318 -0
- package/src/rules/implementations/connection-type-references.ts +117 -0
- package/src/rules/implementations/dead-end-states.ts +101 -0
- package/src/rules/implementations/index.ts +73 -0
- package/src/rules/implementations/library-node-type-match.ts +148 -0
- package/src/rules/implementations/minimum-node-sources.ts +82 -0
- package/src/rules/implementations/no-unknown-fields.ts +342 -0
- package/src/rules/implementations/orphaned-edge-types.ts +55 -0
- package/src/rules/implementations/orphaned-node-types.ts +58 -0
- package/src/rules/implementations/required-metadata.ts +64 -0
- package/src/rules/implementations/state-transition-references.ts +151 -0
- package/src/rules/implementations/unreachable-states.ts +94 -0
- package/src/rules/implementations/valid-action-patterns.ts +136 -0
- package/src/rules/implementations/valid-color-format.ts +140 -0
- package/src/rules/implementations/valid-edge-types.ts +258 -0
- package/src/rules/implementations/valid-node-types.ts +189 -0
- package/src/rules/index.ts +95 -0
- package/src/rules/types.ts +426 -0
- package/src/types/canvas.ts +496 -0
- package/src/types/index.ts +382 -0
- package/src/types/library.ts +233 -0
- package/src/types/path-based-config.ts +281 -0
- package/src/utils/CanvasConverter.ts +431 -0
- package/src/utils/GraphConverter.test.ts +195 -0
- package/src/utils/GraphConverter.ts +71 -0
- package/src/utils/LibraryConverter.ts +245 -0
- package/src/utils/PathMatcher.test.ts +148 -0
- package/src/utils/PathMatcher.ts +183 -0
- package/src/utils/YamlParser.ts +75 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CanvasConverter.js","sourceRoot":"","sources":["../../src/utils/CanvasConverter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility for converting PathBasedGraphConfiguration to nodes and edges
|
|
3
|
+
*/
|
|
4
|
+
import type { PathBasedGraphConfiguration } from '../types/path-based-config';
|
|
5
|
+
import type { NodeState, EdgeState } from '../types';
|
|
6
|
+
/**
|
|
7
|
+
* Converts PathBasedGraphConfiguration to graph state (nodes and edges)
|
|
8
|
+
*/
|
|
9
|
+
export declare class GraphConverter {
|
|
10
|
+
/**
|
|
11
|
+
* Convert configuration to nodes and edges
|
|
12
|
+
*/
|
|
13
|
+
static configToGraph(config: PathBasedGraphConfiguration): {
|
|
14
|
+
nodes: NodeState[];
|
|
15
|
+
edges: EdgeState[];
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=GraphConverter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GraphConverter.d.ts","sourceRoot":"","sources":["../../src/utils/GraphConverter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErD;;GAEG;AACH,qBAAa,cAAc;IACzB;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,2BAA2B,GAAG;QACzD,KAAK,EAAE,SAAS,EAAE,CAAC;QACnB,KAAK,EAAE,SAAS,EAAE,CAAC;KACpB;CAqDF"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility for converting PathBasedGraphConfiguration to nodes and edges
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Converts PathBasedGraphConfiguration to graph state (nodes and edges)
|
|
6
|
+
*/
|
|
7
|
+
export class GraphConverter {
|
|
8
|
+
/**
|
|
9
|
+
* Convert configuration to nodes and edges
|
|
10
|
+
*/
|
|
11
|
+
static configToGraph(config) {
|
|
12
|
+
const nodes = [];
|
|
13
|
+
const edges = [];
|
|
14
|
+
const now = Date.now();
|
|
15
|
+
// Create nodes from nodeTypes
|
|
16
|
+
Object.entries(config.nodeTypes).forEach(([id, nodeType]) => {
|
|
17
|
+
nodes.push({
|
|
18
|
+
id,
|
|
19
|
+
type: id,
|
|
20
|
+
data: {
|
|
21
|
+
label: id,
|
|
22
|
+
shape: nodeType.shape,
|
|
23
|
+
icon: nodeType.icon,
|
|
24
|
+
color: nodeType.color,
|
|
25
|
+
size: nodeType.size,
|
|
26
|
+
sources: nodeType.sources || [],
|
|
27
|
+
actions: nodeType.actions || [],
|
|
28
|
+
...nodeType.dataSchema,
|
|
29
|
+
},
|
|
30
|
+
// Extract position if provided in manual layout mode
|
|
31
|
+
position: nodeType.position,
|
|
32
|
+
state: 'idle',
|
|
33
|
+
createdAt: now,
|
|
34
|
+
updatedAt: now,
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
// Create edges from allowedConnections
|
|
38
|
+
if (config.allowedConnections) {
|
|
39
|
+
config.allowedConnections.forEach((connection, index) => {
|
|
40
|
+
const edgeType = config.edgeTypes?.[connection.via];
|
|
41
|
+
edges.push({
|
|
42
|
+
id: `${connection.from}-${connection.to}-${index}`,
|
|
43
|
+
type: connection.via,
|
|
44
|
+
from: connection.from,
|
|
45
|
+
to: connection.to,
|
|
46
|
+
data: {
|
|
47
|
+
label: connection.via,
|
|
48
|
+
style: edgeType?.style || 'solid',
|
|
49
|
+
color: edgeType?.color,
|
|
50
|
+
width: edgeType?.width,
|
|
51
|
+
animation: edgeType?.animation,
|
|
52
|
+
},
|
|
53
|
+
createdAt: now,
|
|
54
|
+
updatedAt: now,
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
return { nodes, edges };
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=GraphConverter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GraphConverter.js","sourceRoot":"","sources":["../../src/utils/GraphConverter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;GAEG;AACH,MAAM,OAAO,cAAc;IACzB;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,MAAmC;QAItD,MAAM,KAAK,GAAgB,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAgB,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,8BAA8B;QAC9B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE;YAC1D,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE;gBACF,IAAI,EAAE,EAAE;gBACR,IAAI,EAAE;oBACJ,KAAK,EAAE,EAAE;oBACT,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,EAAE;oBAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,EAAE;oBAC/B,GAAG,QAAQ,CAAC,UAAU;iBACvB;gBACD,qDAAqD;gBACrD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,KAAK,EAAE,MAAM;gBACb,SAAS,EAAE,GAAG;gBACd,SAAS,EAAE,GAAG;aACf,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,uCAAuC;QACvC,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAC9B,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;gBACtD,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAEpD,KAAK,CAAC,IAAI,CAAC;oBACT,EAAE,EAAE,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,EAAE,IAAI,KAAK,EAAE;oBAClD,IAAI,EAAE,UAAU,CAAC,GAAG;oBACpB,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,EAAE,EAAE,UAAU,CAAC,EAAE;oBACjB,IAAI,EAAE;wBACJ,KAAK,EAAE,UAAU,CAAC,GAAG;wBACrB,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI,OAAO;wBACjC,KAAK,EAAE,QAAQ,EAAE,KAAK;wBACtB,KAAK,EAAE,QAAQ,EAAE,KAAK;wBACtB,SAAS,EAAE,QAAQ,EAAE,SAAS;qBAC/B;oBACD,SAAS,EAAE,GAAG;oBACd,SAAS,EAAE,GAAG;iBACf,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC1B,CAAC;CACF"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Library Converter
|
|
3
|
+
*
|
|
4
|
+
* Utilities for converting library components to canvas nodes/edges.
|
|
5
|
+
* Used when adding components from the library to a canvas.
|
|
6
|
+
*/
|
|
7
|
+
import type { LibraryNodeComponent, LibraryEdgeComponent, ComponentLibrary } from '../types/library';
|
|
8
|
+
import type { ExtendedCanvasTextNode, ExtendedCanvasEdge, PVEdgeTypeDefinition } from '../types/canvas';
|
|
9
|
+
/**
|
|
10
|
+
* Options for creating a canvas node from a library component
|
|
11
|
+
*/
|
|
12
|
+
export interface CreateNodeOptions {
|
|
13
|
+
/** Unique ID for the node */
|
|
14
|
+
id: string;
|
|
15
|
+
/** X position in pixels */
|
|
16
|
+
x: number;
|
|
17
|
+
/** Y position in pixels */
|
|
18
|
+
y: number;
|
|
19
|
+
/** Optional label override (defaults to component's defaultLabel or the component key) */
|
|
20
|
+
label?: string;
|
|
21
|
+
/** Optional initial data values */
|
|
22
|
+
data?: Record<string, unknown>;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Options for creating a canvas edge from a library component
|
|
26
|
+
*/
|
|
27
|
+
export interface CreateEdgeOptions {
|
|
28
|
+
/** Unique ID for the edge */
|
|
29
|
+
id: string;
|
|
30
|
+
/** Source node ID */
|
|
31
|
+
fromNode: string;
|
|
32
|
+
/** Target node ID */
|
|
33
|
+
toNode: string;
|
|
34
|
+
/** Optional label */
|
|
35
|
+
label?: string;
|
|
36
|
+
/** Optional side of source node */
|
|
37
|
+
fromSide?: 'top' | 'right' | 'bottom' | 'left';
|
|
38
|
+
/** Optional side of target node */
|
|
39
|
+
toSide?: 'top' | 'right' | 'bottom' | 'left';
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Library Converter utility class
|
|
43
|
+
*/
|
|
44
|
+
export declare class LibraryConverter {
|
|
45
|
+
/**
|
|
46
|
+
* Create a canvas node from a library node component
|
|
47
|
+
*
|
|
48
|
+
* @param componentKey - The key of the component in the library
|
|
49
|
+
* @param component - The library node component definition
|
|
50
|
+
* @param options - Node creation options (id, position, etc.)
|
|
51
|
+
* @returns Extended canvas text node ready to add to a canvas
|
|
52
|
+
*/
|
|
53
|
+
static createCanvasNode(componentKey: string, component: LibraryNodeComponent, options: CreateNodeOptions): ExtendedCanvasTextNode;
|
|
54
|
+
/**
|
|
55
|
+
* Create a canvas edge from a library edge component
|
|
56
|
+
*
|
|
57
|
+
* @param componentKey - The key of the component in the library
|
|
58
|
+
* @param component - The library edge component definition
|
|
59
|
+
* @param options - Edge creation options
|
|
60
|
+
* @returns Extended canvas edge ready to add to a canvas
|
|
61
|
+
*/
|
|
62
|
+
static createCanvasEdge(componentKey: string, component: LibraryEdgeComponent, options: CreateEdgeOptions): ExtendedCanvasEdge;
|
|
63
|
+
/**
|
|
64
|
+
* Convert library edge components to canvas-level edge type definitions
|
|
65
|
+
*
|
|
66
|
+
* This is useful when initializing a new canvas from a library.
|
|
67
|
+
*
|
|
68
|
+
* @param edgeComponents - Library edge components
|
|
69
|
+
* @returns Record of edge type definitions for the canvas pv.edgeTypes field
|
|
70
|
+
*/
|
|
71
|
+
static createEdgeTypeDefinitions(edgeComponents: Record<string, LibraryEdgeComponent>): Record<string, PVEdgeTypeDefinition>;
|
|
72
|
+
/**
|
|
73
|
+
* Generate a unique ID for a new node
|
|
74
|
+
*
|
|
75
|
+
* @param prefix - Optional prefix (defaults to 'node')
|
|
76
|
+
* @returns Unique ID string
|
|
77
|
+
*/
|
|
78
|
+
static generateNodeId(prefix?: string): string;
|
|
79
|
+
/**
|
|
80
|
+
* Generate a unique ID for a new edge
|
|
81
|
+
*
|
|
82
|
+
* @param fromNode - Source node ID
|
|
83
|
+
* @param toNode - Target node ID
|
|
84
|
+
* @returns Unique ID string
|
|
85
|
+
*/
|
|
86
|
+
static generateEdgeId(fromNode: string, toNode: string): string;
|
|
87
|
+
/**
|
|
88
|
+
* Get all node component keys that match the given tags
|
|
89
|
+
*
|
|
90
|
+
* @param library - Component library
|
|
91
|
+
* @param tags - Tags to filter by (matches if component has ANY of these tags)
|
|
92
|
+
* @returns Array of component keys
|
|
93
|
+
*/
|
|
94
|
+
static filterNodesByTags(library: ComponentLibrary, tags: string[]): string[];
|
|
95
|
+
/**
|
|
96
|
+
* Get all edge component keys that match the given tags
|
|
97
|
+
*
|
|
98
|
+
* @param library - Component library
|
|
99
|
+
* @param tags - Tags to filter by (matches if component has ANY of these tags)
|
|
100
|
+
* @returns Array of component keys
|
|
101
|
+
*/
|
|
102
|
+
static filterEdgesByTags(library: ComponentLibrary, tags: string[]): string[];
|
|
103
|
+
/**
|
|
104
|
+
* Get allowed edge types between two node types based on connection rules
|
|
105
|
+
*
|
|
106
|
+
* @param library - Component library
|
|
107
|
+
* @param fromNodeType - Source node type key
|
|
108
|
+
* @param toNodeType - Target node type key
|
|
109
|
+
* @returns Array of allowed edge type keys
|
|
110
|
+
*/
|
|
111
|
+
static getAllowedEdgeTypes(library: ComponentLibrary, fromNodeType: string, toNodeType: string): string[];
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=LibraryConverter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LibraryConverter.d.ts","sourceRoot":"","sources":["../../src/utils/LibraryConverter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACrG,OAAO,KAAK,EACV,sBAAsB,EACtB,kBAAkB,EAGlB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAEzB;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,6BAA6B;IAC7B,EAAE,EAAE,MAAM,CAAC;IAEX,2BAA2B;IAC3B,CAAC,EAAE,MAAM,CAAC;IAEV,2BAA2B;IAC3B,CAAC,EAAE,MAAM,CAAC;IAEV,0FAA0F;IAC1F,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,mCAAmC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,6BAA6B;IAC7B,EAAE,EAAE,MAAM,CAAC;IAEX,qBAAqB;IACrB,QAAQ,EAAE,MAAM,CAAC;IAEjB,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IAEf,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,mCAAmC;IACnC,QAAQ,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAE/C,mCAAmC;IACnC,MAAM,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;CAC9C;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B;;;;;;;OAOG;IACH,MAAM,CAAC,gBAAgB,CACrB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,oBAAoB,EAC/B,OAAO,EAAE,iBAAiB,GACzB,sBAAsB;IAsCzB;;;;;;;OAOG;IACH,MAAM,CAAC,gBAAgB,CACrB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,oBAAoB,EAC/B,OAAO,EAAE,iBAAiB,GACzB,kBAAkB;IA2BrB;;;;;;;OAOG;IACH,MAAM,CAAC,yBAAyB,CAC9B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,GACnD,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAiBvC;;;;;OAKG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,SAAS,GAAG,MAAM;IAI9C;;;;;;OAMG;IACH,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAI/D;;;;;;OAMG;IACH,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAM7E;;;;;;OAMG;IACH,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAM7E;;;;;;;OAOG;IACH,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;CAU1G"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Library Converter
|
|
3
|
+
*
|
|
4
|
+
* Utilities for converting library components to canvas nodes/edges.
|
|
5
|
+
* Used when adding components from the library to a canvas.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Library Converter utility class
|
|
9
|
+
*/
|
|
10
|
+
export class LibraryConverter {
|
|
11
|
+
/**
|
|
12
|
+
* Create a canvas node from a library node component
|
|
13
|
+
*
|
|
14
|
+
* @param componentKey - The key of the component in the library
|
|
15
|
+
* @param component - The library node component definition
|
|
16
|
+
* @param options - Node creation options (id, position, etc.)
|
|
17
|
+
* @returns Extended canvas text node ready to add to a canvas
|
|
18
|
+
*/
|
|
19
|
+
static createCanvasNode(componentKey, component, options) {
|
|
20
|
+
const { id, x, y, label, data } = options;
|
|
21
|
+
// Build the PV extension from the library component
|
|
22
|
+
const pv = {
|
|
23
|
+
nodeType: componentKey,
|
|
24
|
+
shape: component.shape,
|
|
25
|
+
icon: component.icon,
|
|
26
|
+
states: component.states,
|
|
27
|
+
sources: component.sources,
|
|
28
|
+
actions: component.actions,
|
|
29
|
+
dataSchema: component.dataSchema,
|
|
30
|
+
layout: component.layout,
|
|
31
|
+
};
|
|
32
|
+
// Build the canvas node
|
|
33
|
+
const node = {
|
|
34
|
+
id,
|
|
35
|
+
type: 'text',
|
|
36
|
+
text: label || component.defaultLabel || componentKey,
|
|
37
|
+
x,
|
|
38
|
+
y,
|
|
39
|
+
width: component.size?.width || 120,
|
|
40
|
+
height: component.size?.height || 60,
|
|
41
|
+
color: component.color,
|
|
42
|
+
pv,
|
|
43
|
+
};
|
|
44
|
+
// If there's initial data, merge it with the text
|
|
45
|
+
if (data) {
|
|
46
|
+
// Store additional data in the pv extension
|
|
47
|
+
// The data will be accessible via the node's data field when converted to React Flow
|
|
48
|
+
pv.initialData = data;
|
|
49
|
+
}
|
|
50
|
+
return node;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Create a canvas edge from a library edge component
|
|
54
|
+
*
|
|
55
|
+
* @param componentKey - The key of the component in the library
|
|
56
|
+
* @param component - The library edge component definition
|
|
57
|
+
* @param options - Edge creation options
|
|
58
|
+
* @returns Extended canvas edge ready to add to a canvas
|
|
59
|
+
*/
|
|
60
|
+
static createCanvasEdge(componentKey, component, options) {
|
|
61
|
+
const { id, fromNode, toNode, label, fromSide, toSide } = options;
|
|
62
|
+
// Build the PV extension
|
|
63
|
+
const pv = {
|
|
64
|
+
edgeType: componentKey,
|
|
65
|
+
style: component.style,
|
|
66
|
+
width: component.width,
|
|
67
|
+
animation: component.animation,
|
|
68
|
+
};
|
|
69
|
+
// Build the canvas edge
|
|
70
|
+
const edge = {
|
|
71
|
+
id,
|
|
72
|
+
fromNode,
|
|
73
|
+
toNode,
|
|
74
|
+
label,
|
|
75
|
+
fromSide,
|
|
76
|
+
toSide,
|
|
77
|
+
color: component.color,
|
|
78
|
+
toEnd: component.directed !== false ? 'arrow' : 'none',
|
|
79
|
+
pv,
|
|
80
|
+
};
|
|
81
|
+
return edge;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Convert library edge components to canvas-level edge type definitions
|
|
85
|
+
*
|
|
86
|
+
* This is useful when initializing a new canvas from a library.
|
|
87
|
+
*
|
|
88
|
+
* @param edgeComponents - Library edge components
|
|
89
|
+
* @returns Record of edge type definitions for the canvas pv.edgeTypes field
|
|
90
|
+
*/
|
|
91
|
+
static createEdgeTypeDefinitions(edgeComponents) {
|
|
92
|
+
const edgeTypes = {};
|
|
93
|
+
for (const [key, component] of Object.entries(edgeComponents)) {
|
|
94
|
+
edgeTypes[key] = {
|
|
95
|
+
style: component.style,
|
|
96
|
+
color: component.color,
|
|
97
|
+
width: component.width,
|
|
98
|
+
directed: component.directed,
|
|
99
|
+
animation: component.animation,
|
|
100
|
+
labelConfig: component.label,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
return edgeTypes;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Generate a unique ID for a new node
|
|
107
|
+
*
|
|
108
|
+
* @param prefix - Optional prefix (defaults to 'node')
|
|
109
|
+
* @returns Unique ID string
|
|
110
|
+
*/
|
|
111
|
+
static generateNodeId(prefix = 'node') {
|
|
112
|
+
return `${prefix}-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Generate a unique ID for a new edge
|
|
116
|
+
*
|
|
117
|
+
* @param fromNode - Source node ID
|
|
118
|
+
* @param toNode - Target node ID
|
|
119
|
+
* @returns Unique ID string
|
|
120
|
+
*/
|
|
121
|
+
static generateEdgeId(fromNode, toNode) {
|
|
122
|
+
return `edge-${fromNode}-${toNode}-${Math.random().toString(36).substring(2, 9)}`;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Get all node component keys that match the given tags
|
|
126
|
+
*
|
|
127
|
+
* @param library - Component library
|
|
128
|
+
* @param tags - Tags to filter by (matches if component has ANY of these tags)
|
|
129
|
+
* @returns Array of component keys
|
|
130
|
+
*/
|
|
131
|
+
static filterNodesByTags(library, tags) {
|
|
132
|
+
return Object.entries(library.nodeComponents)
|
|
133
|
+
.filter(([, component]) => component.tags?.some((tag) => tags.includes(tag)))
|
|
134
|
+
.map(([key]) => key);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Get all edge component keys that match the given tags
|
|
138
|
+
*
|
|
139
|
+
* @param library - Component library
|
|
140
|
+
* @param tags - Tags to filter by (matches if component has ANY of these tags)
|
|
141
|
+
* @returns Array of component keys
|
|
142
|
+
*/
|
|
143
|
+
static filterEdgesByTags(library, tags) {
|
|
144
|
+
return Object.entries(library.edgeComponents)
|
|
145
|
+
.filter(([, component]) => component.tags?.some((tag) => tags.includes(tag)))
|
|
146
|
+
.map(([key]) => key);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Get allowed edge types between two node types based on connection rules
|
|
150
|
+
*
|
|
151
|
+
* @param library - Component library
|
|
152
|
+
* @param fromNodeType - Source node type key
|
|
153
|
+
* @param toNodeType - Target node type key
|
|
154
|
+
* @returns Array of allowed edge type keys
|
|
155
|
+
*/
|
|
156
|
+
static getAllowedEdgeTypes(library, fromNodeType, toNodeType) {
|
|
157
|
+
if (!library.connectionRules) {
|
|
158
|
+
// If no rules defined, allow any edge type
|
|
159
|
+
return Object.keys(library.edgeComponents);
|
|
160
|
+
}
|
|
161
|
+
return library.connectionRules
|
|
162
|
+
.filter((rule) => rule.from === fromNodeType && rule.to === toNodeType)
|
|
163
|
+
.map((rule) => rule.via);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=LibraryConverter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LibraryConverter.js","sourceRoot":"","sources":["../../src/utils/LibraryConverter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility for matching file paths against glob patterns
|
|
3
|
+
* Used for associating logs with components based on source paths
|
|
4
|
+
*/
|
|
5
|
+
export declare class PathMatcher {
|
|
6
|
+
/**
|
|
7
|
+
* Check if a file path matches a glob pattern
|
|
8
|
+
*
|
|
9
|
+
* Supports:
|
|
10
|
+
* - Exact matches: "lib/lock-manager.ts"
|
|
11
|
+
* - Wildcards: "lib/*.ts"
|
|
12
|
+
* - Double wildcards: "lib/**/*.ts"
|
|
13
|
+
* - Character sets: "lib/[abc].ts"
|
|
14
|
+
*
|
|
15
|
+
* @param path File path to test
|
|
16
|
+
* @param pattern Glob pattern
|
|
17
|
+
* @returns True if path matches pattern
|
|
18
|
+
*/
|
|
19
|
+
static matches(path: string, pattern: string): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Find all patterns that match a given path
|
|
22
|
+
*
|
|
23
|
+
* @param path File path to test
|
|
24
|
+
* @param patterns Array of glob patterns
|
|
25
|
+
* @returns Array of matching patterns
|
|
26
|
+
*/
|
|
27
|
+
static findMatches(path: string, patterns: string[]): string[];
|
|
28
|
+
/**
|
|
29
|
+
* Convert a glob pattern to a regular expression
|
|
30
|
+
*
|
|
31
|
+
* @param pattern Glob pattern
|
|
32
|
+
* @returns Regular expression
|
|
33
|
+
*/
|
|
34
|
+
private static globToRegex;
|
|
35
|
+
/**
|
|
36
|
+
* Convert a glob pattern to a regex string (without anchors)
|
|
37
|
+
* This allows for proper composition when handling alternatives
|
|
38
|
+
*/
|
|
39
|
+
private static globToRegexString;
|
|
40
|
+
/**
|
|
41
|
+
* Escape special regex characters in a string
|
|
42
|
+
*/
|
|
43
|
+
private static escapeRegex;
|
|
44
|
+
/**
|
|
45
|
+
* Check if a pattern might match multiple paths (contains wildcards)
|
|
46
|
+
*/
|
|
47
|
+
static isGlob(pattern: string): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Get the base directory from a glob pattern (part before first wildcard)
|
|
50
|
+
*
|
|
51
|
+
* Example: "lib/services/**/*.ts" → "lib/services"
|
|
52
|
+
*/
|
|
53
|
+
static getBaseDir(pattern: string): string;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=PathMatcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PathMatcher.d.ts","sourceRoot":"","sources":["../../src/utils/PathMatcher.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,qBAAa,WAAW;IACtB;;;;;;;;;;;;OAYG;WACW,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAe7D;;;;;;OAMG;WACW,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAIrE;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAM1B;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IA0FhC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAI1B;;OAEG;WACW,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAI9C;;;;OAIG;WACW,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAYlD"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility for matching file paths against glob patterns
|
|
3
|
+
* Used for associating logs with components based on source paths
|
|
4
|
+
*/
|
|
5
|
+
export class PathMatcher {
|
|
6
|
+
/**
|
|
7
|
+
* Check if a file path matches a glob pattern
|
|
8
|
+
*
|
|
9
|
+
* Supports:
|
|
10
|
+
* - Exact matches: "lib/lock-manager.ts"
|
|
11
|
+
* - Wildcards: "lib/*.ts"
|
|
12
|
+
* - Double wildcards: "lib/**/*.ts"
|
|
13
|
+
* - Character sets: "lib/[abc].ts"
|
|
14
|
+
*
|
|
15
|
+
* @param path File path to test
|
|
16
|
+
* @param pattern Glob pattern
|
|
17
|
+
* @returns True if path matches pattern
|
|
18
|
+
*/
|
|
19
|
+
static matches(path, pattern) {
|
|
20
|
+
// Normalize paths (convert backslashes to forward slashes)
|
|
21
|
+
path = path.replace(/\\/g, '/');
|
|
22
|
+
pattern = pattern.replace(/\\/g, '/');
|
|
23
|
+
// Exact match
|
|
24
|
+
if (path === pattern) {
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
27
|
+
// Convert glob pattern to regex
|
|
28
|
+
const regex = this.globToRegex(pattern);
|
|
29
|
+
return regex.test(path);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Find all patterns that match a given path
|
|
33
|
+
*
|
|
34
|
+
* @param path File path to test
|
|
35
|
+
* @param patterns Array of glob patterns
|
|
36
|
+
* @returns Array of matching patterns
|
|
37
|
+
*/
|
|
38
|
+
static findMatches(path, patterns) {
|
|
39
|
+
return patterns.filter(pattern => this.matches(path, pattern));
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Convert a glob pattern to a regular expression
|
|
43
|
+
*
|
|
44
|
+
* @param pattern Glob pattern
|
|
45
|
+
* @returns Regular expression
|
|
46
|
+
*/
|
|
47
|
+
static globToRegex(pattern) {
|
|
48
|
+
const regex = this.globToRegexString(pattern);
|
|
49
|
+
// Match entire string
|
|
50
|
+
return new RegExp('^' + regex + '$');
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Convert a glob pattern to a regex string (without anchors)
|
|
54
|
+
* This allows for proper composition when handling alternatives
|
|
55
|
+
*/
|
|
56
|
+
static globToRegexString(pattern) {
|
|
57
|
+
let regex = '';
|
|
58
|
+
let i = 0;
|
|
59
|
+
while (i < pattern.length) {
|
|
60
|
+
const char = pattern[i];
|
|
61
|
+
switch (char) {
|
|
62
|
+
case '*':
|
|
63
|
+
// Check for **
|
|
64
|
+
if (pattern[i + 1] === '*') {
|
|
65
|
+
// ** matches any number of directories
|
|
66
|
+
if (pattern[i + 2] === '/') {
|
|
67
|
+
regex += '(?:.*/)?'; // Match zero or more path segments
|
|
68
|
+
i += 3;
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
// ** at end of pattern
|
|
72
|
+
regex += '.*';
|
|
73
|
+
i += 2;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
// * matches anything except /
|
|
78
|
+
regex += '[^/]*';
|
|
79
|
+
i++;
|
|
80
|
+
}
|
|
81
|
+
break;
|
|
82
|
+
case '?':
|
|
83
|
+
// ? matches any single character except /
|
|
84
|
+
regex += '[^/]';
|
|
85
|
+
i++;
|
|
86
|
+
break;
|
|
87
|
+
case '[':
|
|
88
|
+
// [...] matches character set
|
|
89
|
+
let j = i + 1;
|
|
90
|
+
while (j < pattern.length && pattern[j] !== ']') {
|
|
91
|
+
j++;
|
|
92
|
+
}
|
|
93
|
+
if (j < pattern.length) {
|
|
94
|
+
const set = pattern.substring(i + 1, j);
|
|
95
|
+
regex += '[' + set.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') + ']';
|
|
96
|
+
i = j + 1;
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
regex += '\\[';
|
|
100
|
+
i++;
|
|
101
|
+
}
|
|
102
|
+
break;
|
|
103
|
+
case '{':
|
|
104
|
+
// {a,b,c} matches alternatives
|
|
105
|
+
let k = i + 1;
|
|
106
|
+
let depth = 1;
|
|
107
|
+
while (k < pattern.length && depth > 0) {
|
|
108
|
+
if (pattern[k] === '{')
|
|
109
|
+
depth++;
|
|
110
|
+
if (pattern[k] === '}')
|
|
111
|
+
depth--;
|
|
112
|
+
k++;
|
|
113
|
+
}
|
|
114
|
+
if (depth === 0) {
|
|
115
|
+
const alternatives = pattern.substring(i + 1, k - 1).split(',');
|
|
116
|
+
regex += '(?:' + alternatives.map(alt => this.globToRegexString(alt)).join('|') + ')';
|
|
117
|
+
i = k;
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
regex += '\\{';
|
|
121
|
+
i++;
|
|
122
|
+
}
|
|
123
|
+
break;
|
|
124
|
+
// Escape special regex characters
|
|
125
|
+
case '.':
|
|
126
|
+
case '+':
|
|
127
|
+
case '^':
|
|
128
|
+
case '$':
|
|
129
|
+
case '(':
|
|
130
|
+
case ')':
|
|
131
|
+
case '|':
|
|
132
|
+
case '\\':
|
|
133
|
+
regex += '\\' + char;
|
|
134
|
+
i++;
|
|
135
|
+
break;
|
|
136
|
+
default:
|
|
137
|
+
regex += char;
|
|
138
|
+
i++;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return regex;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Escape special regex characters in a string
|
|
145
|
+
*/
|
|
146
|
+
static escapeRegex(str) {
|
|
147
|
+
return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Check if a pattern might match multiple paths (contains wildcards)
|
|
151
|
+
*/
|
|
152
|
+
static isGlob(pattern) {
|
|
153
|
+
return /[*?[\]{]/.test(pattern);
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Get the base directory from a glob pattern (part before first wildcard)
|
|
157
|
+
*
|
|
158
|
+
* Example: "lib/services/**/*.ts" → "lib/services"
|
|
159
|
+
*/
|
|
160
|
+
static getBaseDir(pattern) {
|
|
161
|
+
const firstWildcard = pattern.search(/[*?[\]{]/);
|
|
162
|
+
if (firstWildcard === -1) {
|
|
163
|
+
// No wildcards, return the directory part
|
|
164
|
+
return pattern.substring(0, pattern.lastIndexOf('/'));
|
|
165
|
+
}
|
|
166
|
+
// Return part before first wildcard
|
|
167
|
+
const beforeWildcard = pattern.substring(0, firstWildcard);
|
|
168
|
+
const lastSlash = beforeWildcard.lastIndexOf('/');
|
|
169
|
+
return lastSlash === -1 ? '' : beforeWildcard.substring(0, lastSlash);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=PathMatcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PathMatcher.js","sourceRoot":"","sources":["../../src/utils/PathMatcher.ts"],"names":[],"mappings":"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"}
|