@polagram/core 0.0.4 → 0.1.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.
- package/dist/index.d.ts +102 -113
- package/dist/polagram-core.js +1532 -1404
- package/dist/polagram-core.umd.cjs +22 -22
- package/package.json +3 -2
- package/dist/src/api.d.ts +0 -84
- package/dist/src/api.js +0 -183
- package/dist/src/ast/ast.test.d.ts +0 -1
- package/dist/src/ast/ast.test.js +0 -146
- package/dist/src/ast/index.d.ts +0 -119
- package/dist/src/ast/index.js +0 -2
- package/dist/src/config/index.d.ts +0 -1
- package/dist/src/config/index.js +0 -1
- package/dist/src/config/schema.d.ts +0 -198
- package/dist/src/config/schema.js +0 -82
- package/dist/src/config/schema.test.d.ts +0 -1
- package/dist/src/config/schema.test.js +0 -94
- package/dist/src/generator/base/walker.d.ts +0 -19
- package/dist/src/generator/base/walker.js +0 -56
- package/dist/src/generator/base/walker.test.d.ts +0 -1
- package/dist/src/generator/base/walker.test.js +0 -49
- package/dist/src/generator/generators/mermaid.d.ts +0 -24
- package/dist/src/generator/generators/mermaid.js +0 -140
- package/dist/src/generator/generators/mermaid.test.d.ts +0 -1
- package/dist/src/generator/generators/mermaid.test.js +0 -70
- package/dist/src/generator/generators/plantuml.d.ts +0 -17
- package/dist/src/generator/generators/plantuml.js +0 -131
- package/dist/src/generator/generators/plantuml.test.d.ts +0 -1
- package/dist/src/generator/generators/plantuml.test.js +0 -143
- package/dist/src/generator/interface.d.ts +0 -17
- package/dist/src/generator/interface.js +0 -1
- package/dist/src/index.d.ts +0 -13
- package/dist/src/index.js +0 -21
- package/dist/src/parser/base/lexer.d.ts +0 -18
- package/dist/src/parser/base/lexer.js +0 -95
- package/dist/src/parser/base/lexer.test.d.ts +0 -1
- package/dist/src/parser/base/lexer.test.js +0 -53
- package/dist/src/parser/base/parser.d.ts +0 -14
- package/dist/src/parser/base/parser.js +0 -43
- package/dist/src/parser/base/parser.test.d.ts +0 -1
- package/dist/src/parser/base/parser.test.js +0 -90
- package/dist/src/parser/base/token.d.ts +0 -18
- package/dist/src/parser/base/token.js +0 -1
- package/dist/src/parser/base/tokens.d.ts +0 -8
- package/dist/src/parser/base/tokens.js +0 -1
- package/dist/src/parser/format-detector.d.ts +0 -55
- package/dist/src/parser/format-detector.js +0 -98
- package/dist/src/parser/index.d.ts +0 -11
- package/dist/src/parser/index.js +0 -33
- package/dist/src/parser/index.test.d.ts +0 -1
- package/dist/src/parser/index.test.js +0 -23
- package/dist/src/parser/interface.d.ts +0 -8
- package/dist/src/parser/interface.js +0 -1
- package/dist/src/parser/languages/mermaid/constants.d.ts +0 -7
- package/dist/src/parser/languages/mermaid/constants.js +0 -20
- package/dist/src/parser/languages/mermaid/index.d.ts +0 -4
- package/dist/src/parser/languages/mermaid/index.js +0 -11
- package/dist/src/parser/languages/mermaid/lexer.d.ts +0 -14
- package/dist/src/parser/languages/mermaid/lexer.js +0 -152
- package/dist/src/parser/languages/mermaid/lexer.test.d.ts +0 -1
- package/dist/src/parser/languages/mermaid/lexer.test.js +0 -58
- package/dist/src/parser/languages/mermaid/parser.d.ts +0 -22
- package/dist/src/parser/languages/mermaid/parser.js +0 -340
- package/dist/src/parser/languages/mermaid/parser.test.d.ts +0 -1
- package/dist/src/parser/languages/mermaid/parser.test.js +0 -252
- package/dist/src/parser/languages/mermaid/tokens.d.ts +0 -9
- package/dist/src/parser/languages/mermaid/tokens.js +0 -1
- package/dist/src/parser/languages/plantuml/index.d.ts +0 -4
- package/dist/src/parser/languages/plantuml/index.js +0 -11
- package/dist/src/parser/languages/plantuml/lexer.d.ts +0 -15
- package/dist/src/parser/languages/plantuml/lexer.js +0 -143
- package/dist/src/parser/languages/plantuml/parser.d.ts +0 -23
- package/dist/src/parser/languages/plantuml/parser.js +0 -481
- package/dist/src/parser/languages/plantuml/parser.test.d.ts +0 -1
- package/dist/src/parser/languages/plantuml/parser.test.js +0 -236
- package/dist/src/parser/languages/plantuml/tokens.d.ts +0 -9
- package/dist/src/parser/languages/plantuml/tokens.js +0 -1
- package/dist/src/transformer/cleaners/prune-empty.d.ts +0 -9
- package/dist/src/transformer/cleaners/prune-empty.js +0 -27
- package/dist/src/transformer/cleaners/prune-empty.test.d.ts +0 -1
- package/dist/src/transformer/cleaners/prune-empty.test.js +0 -69
- package/dist/src/transformer/cleaners/prune-unused.d.ts +0 -5
- package/dist/src/transformer/cleaners/prune-unused.js +0 -48
- package/dist/src/transformer/cleaners/prune-unused.test.d.ts +0 -1
- package/dist/src/transformer/cleaners/prune-unused.test.js +0 -71
- package/dist/src/transformer/filters/focus.d.ts +0 -13
- package/dist/src/transformer/filters/focus.js +0 -71
- package/dist/src/transformer/filters/focus.test.d.ts +0 -1
- package/dist/src/transformer/filters/focus.test.js +0 -50
- package/dist/src/transformer/filters/remove.d.ts +0 -12
- package/dist/src/transformer/filters/remove.js +0 -82
- package/dist/src/transformer/filters/remove.test.d.ts +0 -1
- package/dist/src/transformer/filters/remove.test.js +0 -38
- package/dist/src/transformer/filters/resolve.d.ts +0 -9
- package/dist/src/transformer/filters/resolve.js +0 -32
- package/dist/src/transformer/filters/resolve.test.d.ts +0 -1
- package/dist/src/transformer/filters/resolve.test.js +0 -48
- package/dist/src/transformer/index.d.ts +0 -10
- package/dist/src/transformer/index.js +0 -10
- package/dist/src/transformer/lens.d.ts +0 -12
- package/dist/src/transformer/lens.js +0 -58
- package/dist/src/transformer/lens.test.d.ts +0 -1
- package/dist/src/transformer/lens.test.js +0 -60
- package/dist/src/transformer/orchestration/engine.d.ts +0 -5
- package/dist/src/transformer/orchestration/engine.js +0 -24
- package/dist/src/transformer/orchestration/engine.test.d.ts +0 -1
- package/dist/src/transformer/orchestration/engine.test.js +0 -52
- package/dist/src/transformer/orchestration/registry.d.ts +0 -10
- package/dist/src/transformer/orchestration/registry.js +0 -27
- package/dist/src/transformer/selector/matcher.d.ts +0 -9
- package/dist/src/transformer/selector/matcher.js +0 -62
- package/dist/src/transformer/selector/matcher.test.d.ts +0 -1
- package/dist/src/transformer/selector/matcher.test.js +0 -70
- package/dist/src/transformer/traverse/walker.d.ts +0 -14
- package/dist/src/transformer/traverse/walker.js +0 -67
- package/dist/src/transformer/traverse/walker.test.d.ts +0 -1
- package/dist/src/transformer/traverse/walker.test.js +0 -111
- package/dist/src/transformer/types.d.ts +0 -47
- package/dist/src/transformer/types.js +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -12,15 +12,16 @@ export declare interface ActivationNode {
|
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
16
|
-
* Facade for the TransformationEngine.
|
|
15
|
+
* Supported diagram formats
|
|
17
16
|
*/
|
|
18
|
-
export declare
|
|
17
|
+
export declare type DiagramFormat = 'mermaid' | 'plantuml';
|
|
19
18
|
|
|
20
19
|
/**
|
|
21
|
-
*
|
|
20
|
+
* Generator interface that all generators must implement.
|
|
22
21
|
*/
|
|
23
|
-
export declare
|
|
22
|
+
export declare interface DiagramGenerator {
|
|
23
|
+
generate(ast: PolagramRoot): string;
|
|
24
|
+
}
|
|
24
25
|
|
|
25
26
|
/**
|
|
26
27
|
* Strategy Interface for Diagram Parsing.
|
|
@@ -38,17 +39,6 @@ export declare interface DividerNode {
|
|
|
38
39
|
|
|
39
40
|
export declare type EventNode = MessageNode | FragmentNode | NoteNode | DividerNode | ActivationNode | ReferenceNode | SpacerNode;
|
|
40
41
|
|
|
41
|
-
export declare class FocusFilter extends Walker {
|
|
42
|
-
private layer;
|
|
43
|
-
private matcher;
|
|
44
|
-
private targetParticipantIds;
|
|
45
|
-
constructor(layer: FocusLayer);
|
|
46
|
-
transform(root: PolagramRoot): PolagramRoot;
|
|
47
|
-
private resolveTargetParticipants;
|
|
48
|
-
protected visitEvent(node: EventNode): EventNode[];
|
|
49
|
-
private isRelatedToParticipant;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
42
|
export declare interface FocusLayer {
|
|
53
43
|
action: 'focus';
|
|
54
44
|
selector: ParticipantSelector;
|
|
@@ -58,15 +48,7 @@ export declare interface FocusLayer {
|
|
|
58
48
|
* Format detection utilities for diagram source code.
|
|
59
49
|
* Detects diagram format based on file extension and content analysis.
|
|
60
50
|
*/
|
|
61
|
-
export declare
|
|
62
|
-
/**
|
|
63
|
-
* File extensions mapped to their diagram formats
|
|
64
|
-
*/
|
|
65
|
-
private static readonly EXTENSION_MAP;
|
|
66
|
-
/**
|
|
67
|
-
* Content patterns for format detection
|
|
68
|
-
*/
|
|
69
|
-
private static readonly CONTENT_PATTERNS;
|
|
51
|
+
export declare const FormatDetector: {
|
|
70
52
|
/**
|
|
71
53
|
* Detect diagram format from file path and content.
|
|
72
54
|
*
|
|
@@ -82,29 +64,29 @@ export declare class FormatDetector {
|
|
|
82
64
|
* }
|
|
83
65
|
* ```
|
|
84
66
|
*/
|
|
85
|
-
|
|
67
|
+
detect(filePath: string, content: string): DiagramFormat | null;
|
|
86
68
|
/**
|
|
87
69
|
* Detect format based on file extension.
|
|
88
70
|
*
|
|
89
71
|
* @param filePath - Path to the diagram file
|
|
90
72
|
* @returns Detected format, or null if extension is not recognized
|
|
91
73
|
*/
|
|
92
|
-
|
|
74
|
+
detectByExtension(filePath: string): DiagramFormat | null;
|
|
93
75
|
/**
|
|
94
76
|
* Detect format based on content patterns.
|
|
95
77
|
*
|
|
96
78
|
* @param content - Content of the diagram file
|
|
97
79
|
* @returns Detected format, or null if no pattern matches
|
|
98
80
|
*/
|
|
99
|
-
|
|
81
|
+
detectByContent(content: string): DiagramFormat | null;
|
|
100
82
|
/**
|
|
101
83
|
* Get file extension for a given format.
|
|
102
84
|
*
|
|
103
85
|
* @param format - Diagram format
|
|
104
86
|
* @returns Default file extension for the format
|
|
105
87
|
*/
|
|
106
|
-
|
|
107
|
-
}
|
|
88
|
+
getDefaultExtension(format: DiagramFormat): string;
|
|
89
|
+
};
|
|
108
90
|
|
|
109
91
|
export declare interface FragmentBranch {
|
|
110
92
|
id: string;
|
|
@@ -122,13 +104,50 @@ export declare interface FragmentNode {
|
|
|
122
104
|
export declare type FragmentOperator = 'alt' | 'opt' | 'loop' | 'par' | 'break' | 'critical' | 'rect' | 'group';
|
|
123
105
|
|
|
124
106
|
export declare interface FragmentSelector {
|
|
125
|
-
kind
|
|
107
|
+
kind: 'fragment';
|
|
126
108
|
condition?: TextMatcher;
|
|
127
109
|
operator?: FragmentOperator | FragmentOperator[];
|
|
128
110
|
}
|
|
129
111
|
|
|
112
|
+
declare type GeneratorConstructor = () => PolagramVisitor & DiagramGenerator;
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Generator Factory
|
|
116
|
+
* Centralizes retrieval of generator strategies.
|
|
117
|
+
* Mirrors the ParserFactory pattern for consistency.
|
|
118
|
+
*
|
|
119
|
+
* @example
|
|
120
|
+
* ```typescript
|
|
121
|
+
* const generator = GeneratorFactory.getGenerator('mermaid');
|
|
122
|
+
* const code = generator.generate(ast);
|
|
123
|
+
* ```
|
|
124
|
+
*/
|
|
125
|
+
export declare const GeneratorFactory: {
|
|
126
|
+
/**
|
|
127
|
+
* Register a custom generator.
|
|
128
|
+
* @param language - Language identifier (e.g., 'mermaid', 'plantuml')
|
|
129
|
+
* @param factory - Factory function that creates a generator instance
|
|
130
|
+
*/
|
|
131
|
+
register(language: string, factory: GeneratorConstructor): void;
|
|
132
|
+
/**
|
|
133
|
+
* Get a generator for the specified language.
|
|
134
|
+
* @param language - Language identifier
|
|
135
|
+
* @returns A generator instance
|
|
136
|
+
* @throws Error if no generator is registered for the language
|
|
137
|
+
*/
|
|
138
|
+
getGenerator(language: string): PolagramVisitor & DiagramGenerator;
|
|
139
|
+
/**
|
|
140
|
+
* Check if a generator is registered for the given language.
|
|
141
|
+
*/
|
|
142
|
+
hasGenerator(language: string): boolean;
|
|
143
|
+
/**
|
|
144
|
+
* Get list of registered languages.
|
|
145
|
+
*/
|
|
146
|
+
getLanguages(): string[];
|
|
147
|
+
};
|
|
148
|
+
|
|
130
149
|
export declare interface GroupSelector {
|
|
131
|
-
kind
|
|
150
|
+
kind: 'group';
|
|
132
151
|
name?: TextMatcher;
|
|
133
152
|
}
|
|
134
153
|
|
|
@@ -147,9 +166,9 @@ declare const LensSchema: z.ZodObject<{
|
|
|
147
166
|
suffix: z.ZodOptional<z.ZodString>;
|
|
148
167
|
layers: z.ZodArray<z.ZodObject<{
|
|
149
168
|
action: z.ZodEnum<{
|
|
169
|
+
resolve: "resolve";
|
|
150
170
|
focus: "focus";
|
|
151
171
|
remove: "remove";
|
|
152
|
-
resolve: "resolve";
|
|
153
172
|
}>;
|
|
154
173
|
selector: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
155
174
|
kind: z.ZodLiteral<"fragment">;
|
|
@@ -196,14 +215,6 @@ declare const LensSchema: z.ZodObject<{
|
|
|
196
215
|
}, z.core.$strip>>;
|
|
197
216
|
}, z.core.$strip>;
|
|
198
217
|
|
|
199
|
-
export declare class Matcher {
|
|
200
|
-
matchBranch(branch: FragmentBranch, selector: FragmentSelector, parentOperator: FragmentOperator): boolean;
|
|
201
|
-
matchParticipant(node: Participant, selector: ParticipantSelector): boolean;
|
|
202
|
-
matchMessage(node: MessageNode, selector: MessageSelector): boolean;
|
|
203
|
-
matchGroup(node: ParticipantGroup, selector: GroupSelector): boolean;
|
|
204
|
-
private matchText;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
218
|
/**
|
|
208
219
|
* Visitor implementation that generates Mermaid code.
|
|
209
220
|
*/
|
|
@@ -252,7 +263,7 @@ export declare interface MessageNode {
|
|
|
252
263
|
}
|
|
253
264
|
|
|
254
265
|
export declare interface MessageSelector {
|
|
255
|
-
kind
|
|
266
|
+
kind: 'message';
|
|
256
267
|
text?: TextMatcher;
|
|
257
268
|
from?: TextMatcher;
|
|
258
269
|
to?: TextMatcher;
|
|
@@ -278,11 +289,10 @@ export declare interface NoteNode {
|
|
|
278
289
|
* Parser Factory
|
|
279
290
|
* Centralizes retrieval of parser strategies.
|
|
280
291
|
*/
|
|
281
|
-
export declare
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
}
|
|
292
|
+
export declare const ParserFactory: {
|
|
293
|
+
register(language: string, parser: DiagramParser): void;
|
|
294
|
+
getParser(language: string): DiagramParser;
|
|
295
|
+
};
|
|
286
296
|
|
|
287
297
|
export declare interface Participant {
|
|
288
298
|
id: string;
|
|
@@ -303,7 +313,7 @@ export declare interface ParticipantGroup {
|
|
|
303
313
|
}
|
|
304
314
|
|
|
305
315
|
export declare interface ParticipantSelector {
|
|
306
|
-
kind
|
|
316
|
+
kind: 'participant';
|
|
307
317
|
name?: TextMatcher;
|
|
308
318
|
id?: TextMatcher;
|
|
309
319
|
stereotype?: TextMatcher;
|
|
@@ -311,20 +321,27 @@ export declare interface ParticipantSelector {
|
|
|
311
321
|
|
|
312
322
|
export declare type ParticipantType = 'participant' | 'actor' | 'boundary' | 'control' | 'entity' | 'database' | 'collections' | 'queue';
|
|
313
323
|
|
|
324
|
+
/**
|
|
325
|
+
* Visitor implementation that generates PlantUML code.
|
|
326
|
+
* Uses the same Traverser pattern as MermaidGeneratorVisitor for consistency.
|
|
327
|
+
*/
|
|
314
328
|
export declare class PlantUMLGeneratorVisitor implements PolagramVisitor {
|
|
329
|
+
private lines;
|
|
330
|
+
private traverser;
|
|
331
|
+
constructor();
|
|
315
332
|
generate(root: PolagramRoot): string;
|
|
316
|
-
visitRoot(node: PolagramRoot):
|
|
317
|
-
visitParticipant(node: Participant):
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
visitNote(node: NoteNode):
|
|
323
|
-
visitActivation(node: ActivationNode):
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
333
|
+
visitRoot(node: PolagramRoot): void;
|
|
334
|
+
visitParticipant(node: Participant): void;
|
|
335
|
+
visitParticipantGroup(_node: ParticipantGroup): void;
|
|
336
|
+
private visitGroup;
|
|
337
|
+
visitMessage(node: MessageNode): void;
|
|
338
|
+
visitFragment(node: FragmentNode): void;
|
|
339
|
+
visitNote(node: NoteNode): void;
|
|
340
|
+
visitActivation(node: ActivationNode): void;
|
|
341
|
+
visitDivider(node: DividerNode): void;
|
|
342
|
+
visitSpacer(_node: SpacerNode): void;
|
|
343
|
+
visitReference(node: ReferenceNode): void;
|
|
344
|
+
private add;
|
|
328
345
|
}
|
|
329
346
|
|
|
330
347
|
/**
|
|
@@ -424,9 +441,9 @@ export declare const PolagramConfigSchema: z.ZodObject<{
|
|
|
424
441
|
suffix: z.ZodOptional<z.ZodString>;
|
|
425
442
|
layers: z.ZodArray<z.ZodObject<{
|
|
426
443
|
action: z.ZodEnum<{
|
|
444
|
+
resolve: "resolve";
|
|
427
445
|
focus: "focus";
|
|
428
446
|
remove: "remove";
|
|
429
|
-
resolve: "resolve";
|
|
430
447
|
}>;
|
|
431
448
|
selector: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
432
449
|
kind: z.ZodLiteral<"fragment">;
|
|
@@ -529,28 +546,11 @@ export declare interface ReferenceNode {
|
|
|
529
546
|
link?: string;
|
|
530
547
|
}
|
|
531
548
|
|
|
532
|
-
export declare class RemoveFilter extends Walker {
|
|
533
|
-
private layer;
|
|
534
|
-
private matcher;
|
|
535
|
-
private removedParticipantIds;
|
|
536
|
-
constructor(layer: RemoveLayer);
|
|
537
|
-
transform(root: PolagramRoot): PolagramRoot;
|
|
538
|
-
protected visitEvent(node: EventNode): EventNode[];
|
|
539
|
-
private isRelatedToRemovedParticipant;
|
|
540
|
-
}
|
|
541
|
-
|
|
542
549
|
export declare interface RemoveLayer {
|
|
543
550
|
action: 'remove';
|
|
544
551
|
selector: ParticipantSelector | MessageSelector | GroupSelector;
|
|
545
552
|
}
|
|
546
553
|
|
|
547
|
-
export declare class ResolveFilter extends Walker {
|
|
548
|
-
private layer;
|
|
549
|
-
private matcher;
|
|
550
|
-
constructor(layer: ResolveLayer);
|
|
551
|
-
protected visitFragment(node: FragmentNode): EventNode[];
|
|
552
|
-
}
|
|
553
|
-
|
|
554
554
|
export declare interface ResolveLayer {
|
|
555
555
|
action: 'resolve';
|
|
556
556
|
selector: FragmentSelector;
|
|
@@ -563,14 +563,6 @@ export declare interface SpacerNode {
|
|
|
563
563
|
text?: string;
|
|
564
564
|
}
|
|
565
565
|
|
|
566
|
-
/**
|
|
567
|
-
* Cleaner that removes empty fragments and branches from the AST.
|
|
568
|
-
* This runs after filters to ensure the AST structure remains valid/clean.
|
|
569
|
-
*/
|
|
570
|
-
export declare class StructureCleaner extends Walker {
|
|
571
|
-
protected visitFragment(node: FragmentNode): EventNode[];
|
|
572
|
-
}
|
|
573
|
-
|
|
574
566
|
export declare interface StyleProps {
|
|
575
567
|
color?: string;
|
|
576
568
|
backgroundColor?: string;
|
|
@@ -588,9 +580,9 @@ declare const TargetConfigSchema: z.ZodObject<{
|
|
|
588
580
|
suffix: z.ZodOptional<z.ZodString>;
|
|
589
581
|
layers: z.ZodArray<z.ZodObject<{
|
|
590
582
|
action: z.ZodEnum<{
|
|
583
|
+
resolve: "resolve";
|
|
591
584
|
focus: "focus";
|
|
592
585
|
remove: "remove";
|
|
593
|
-
resolve: "resolve";
|
|
594
586
|
}>;
|
|
595
587
|
selector: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
596
588
|
kind: z.ZodLiteral<"fragment">;
|
|
@@ -660,13 +652,35 @@ declare interface Transformer_2 {
|
|
|
660
652
|
}
|
|
661
653
|
export { Transformer_2 as Transformer }
|
|
662
654
|
|
|
663
|
-
|
|
655
|
+
/**
|
|
656
|
+
* Type-safe factory function type for creating transformers.
|
|
657
|
+
*/
|
|
658
|
+
declare type TransformerFactory<T extends Layer = Layer> = (layer: T) => Transformer_2;
|
|
664
659
|
|
|
660
|
+
/**
|
|
661
|
+
* Registry for transformer factories.
|
|
662
|
+
* Provides type-safe registration and retrieval of transformers.
|
|
663
|
+
*/
|
|
665
664
|
declare class TransformerRegistry {
|
|
666
665
|
private factories;
|
|
667
666
|
constructor();
|
|
667
|
+
/**
|
|
668
|
+
* Type-safe registration for a specific layer type.
|
|
669
|
+
*/
|
|
670
|
+
private registerTyped;
|
|
671
|
+
/**
|
|
672
|
+
* Register a custom transformer factory.
|
|
673
|
+
*/
|
|
668
674
|
register(action: string, factory: TransformerFactory): void;
|
|
675
|
+
/**
|
|
676
|
+
* Get a transformer for the given layer.
|
|
677
|
+
* @returns Transformer instance or null if no factory is registered
|
|
678
|
+
*/
|
|
669
679
|
get(layer: Layer): Transformer_2 | null;
|
|
680
|
+
/**
|
|
681
|
+
* Check if a transformer is registered for the given action.
|
|
682
|
+
*/
|
|
683
|
+
has(action: string): boolean;
|
|
670
684
|
}
|
|
671
685
|
|
|
672
686
|
export declare const transformerRegistry: TransformerRegistry;
|
|
@@ -689,35 +703,10 @@ export declare class Traverser {
|
|
|
689
703
|
dispatchEvents(events: EventNode[]): void;
|
|
690
704
|
}
|
|
691
705
|
|
|
692
|
-
export declare class UnusedCleaner {
|
|
693
|
-
transform(root: PolagramRoot): PolagramRoot;
|
|
694
|
-
private collectUsedParticipants;
|
|
695
|
-
}
|
|
696
|
-
|
|
697
706
|
/**
|
|
698
707
|
* Validates the input object against the Polagram Config Schema.
|
|
699
708
|
* Throws a formatted error message if validation fails.
|
|
700
709
|
*/
|
|
701
710
|
export declare function validateConfig(input: unknown): PolagramConfig;
|
|
702
711
|
|
|
703
|
-
/**
|
|
704
|
-
* Type Guard to validate if an object is a valid Lens.
|
|
705
|
-
* Acts as an Anti-Corruption Layer.
|
|
706
|
-
*/
|
|
707
|
-
export declare function validateLens(lens: unknown): lens is Lens;
|
|
708
|
-
|
|
709
|
-
/**
|
|
710
|
-
* Abstract base class for tree transformations.
|
|
711
|
-
* Implements the "Updating Visitor" pattern with Copy-on-Write immutability.
|
|
712
|
-
*
|
|
713
|
-
* Subclasses should override `visitEvent` to apply specific logic.
|
|
714
|
-
*/
|
|
715
|
-
declare abstract class Walker {
|
|
716
|
-
transform(root: PolagramRoot): PolagramRoot;
|
|
717
|
-
protected mapEvents(events: EventNode[]): EventNode[];
|
|
718
|
-
protected visitEvent(node: EventNode): EventNode[];
|
|
719
|
-
protected visitFragment(node: FragmentNode): EventNode[];
|
|
720
|
-
protected visitBranch(branch: FragmentBranch): FragmentBranch;
|
|
721
|
-
}
|
|
722
|
-
|
|
723
712
|
export { }
|