@polagram/core 0.0.3 → 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 +172 -85
- package/dist/polagram-core.js +2721 -2061
- package/dist/polagram-core.umd.cjs +20 -14
- package/package.json +11 -9
- package/dist/src/api.d.ts +0 -75
- package/dist/src/api.js +0 -160
- 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 -182
- package/dist/src/config/schema.js +0 -78
- 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/interface.d.ts +0 -17
- package/dist/src/generator/interface.js +0 -1
- package/dist/src/index.d.ts +0 -9
- package/dist/src/index.js +0 -17
- 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/index.d.ts +0 -10
- package/dist/src/parser/index.js +0 -29
- 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 -21
- 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/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 -41
- 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 -53
- 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 -48
- 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,10 +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';
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Generator interface that all generators must implement.
|
|
21
|
+
*/
|
|
22
|
+
export declare interface DiagramGenerator {
|
|
23
|
+
generate(ast: PolagramRoot): string;
|
|
24
|
+
}
|
|
19
25
|
|
|
20
26
|
/**
|
|
21
27
|
* Strategy Interface for Diagram Parsing.
|
|
@@ -33,22 +39,55 @@ export declare interface DividerNode {
|
|
|
33
39
|
|
|
34
40
|
export declare type EventNode = MessageNode | FragmentNode | NoteNode | DividerNode | ActivationNode | ReferenceNode | SpacerNode;
|
|
35
41
|
|
|
36
|
-
export declare class FocusFilter extends Walker {
|
|
37
|
-
private layer;
|
|
38
|
-
private matcher;
|
|
39
|
-
private targetParticipantIds;
|
|
40
|
-
constructor(layer: FocusLayer);
|
|
41
|
-
transform(root: PolagramRoot): PolagramRoot;
|
|
42
|
-
private resolveTargetParticipants;
|
|
43
|
-
protected visitEvent(node: EventNode): EventNode[];
|
|
44
|
-
private isRelatedToParticipant;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
42
|
export declare interface FocusLayer {
|
|
48
43
|
action: 'focus';
|
|
49
44
|
selector: ParticipantSelector;
|
|
50
45
|
}
|
|
51
46
|
|
|
47
|
+
/**
|
|
48
|
+
* Format detection utilities for diagram source code.
|
|
49
|
+
* Detects diagram format based on file extension and content analysis.
|
|
50
|
+
*/
|
|
51
|
+
export declare const FormatDetector: {
|
|
52
|
+
/**
|
|
53
|
+
* Detect diagram format from file path and content.
|
|
54
|
+
*
|
|
55
|
+
* @param filePath - Path to the diagram file
|
|
56
|
+
* @param content - Content of the diagram file
|
|
57
|
+
* @returns Detected format, or null if format cannot be determined
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```typescript
|
|
61
|
+
* const format = FormatDetector.detect('diagram.puml', content);
|
|
62
|
+
* if (format === 'plantuml') {
|
|
63
|
+
* // Process as PlantUML
|
|
64
|
+
* }
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
detect(filePath: string, content: string): DiagramFormat | null;
|
|
68
|
+
/**
|
|
69
|
+
* Detect format based on file extension.
|
|
70
|
+
*
|
|
71
|
+
* @param filePath - Path to the diagram file
|
|
72
|
+
* @returns Detected format, or null if extension is not recognized
|
|
73
|
+
*/
|
|
74
|
+
detectByExtension(filePath: string): DiagramFormat | null;
|
|
75
|
+
/**
|
|
76
|
+
* Detect format based on content patterns.
|
|
77
|
+
*
|
|
78
|
+
* @param content - Content of the diagram file
|
|
79
|
+
* @returns Detected format, or null if no pattern matches
|
|
80
|
+
*/
|
|
81
|
+
detectByContent(content: string): DiagramFormat | null;
|
|
82
|
+
/**
|
|
83
|
+
* Get file extension for a given format.
|
|
84
|
+
*
|
|
85
|
+
* @param format - Diagram format
|
|
86
|
+
* @returns Default file extension for the format
|
|
87
|
+
*/
|
|
88
|
+
getDefaultExtension(format: DiagramFormat): string;
|
|
89
|
+
};
|
|
90
|
+
|
|
52
91
|
export declare interface FragmentBranch {
|
|
53
92
|
id: string;
|
|
54
93
|
condition?: string;
|
|
@@ -65,13 +104,50 @@ export declare interface FragmentNode {
|
|
|
65
104
|
export declare type FragmentOperator = 'alt' | 'opt' | 'loop' | 'par' | 'break' | 'critical' | 'rect' | 'group';
|
|
66
105
|
|
|
67
106
|
export declare interface FragmentSelector {
|
|
68
|
-
kind
|
|
107
|
+
kind: 'fragment';
|
|
69
108
|
condition?: TextMatcher;
|
|
70
109
|
operator?: FragmentOperator | FragmentOperator[];
|
|
71
110
|
}
|
|
72
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
|
+
|
|
73
149
|
export declare interface GroupSelector {
|
|
74
|
-
kind
|
|
150
|
+
kind: 'group';
|
|
75
151
|
name?: TextMatcher;
|
|
76
152
|
}
|
|
77
153
|
|
|
@@ -139,14 +215,6 @@ declare const LensSchema: z.ZodObject<{
|
|
|
139
215
|
}, z.core.$strip>>;
|
|
140
216
|
}, z.core.$strip>;
|
|
141
217
|
|
|
142
|
-
export declare class Matcher {
|
|
143
|
-
matchBranch(branch: FragmentBranch, selector: FragmentSelector, parentOperator: FragmentOperator): boolean;
|
|
144
|
-
matchParticipant(node: Participant, selector: ParticipantSelector): boolean;
|
|
145
|
-
matchMessage(node: MessageNode, selector: MessageSelector): boolean;
|
|
146
|
-
matchGroup(node: ParticipantGroup, selector: GroupSelector): boolean;
|
|
147
|
-
private matchText;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
218
|
/**
|
|
151
219
|
* Visitor implementation that generates Mermaid code.
|
|
152
220
|
*/
|
|
@@ -195,7 +263,7 @@ export declare interface MessageNode {
|
|
|
195
263
|
}
|
|
196
264
|
|
|
197
265
|
export declare interface MessageSelector {
|
|
198
|
-
kind
|
|
266
|
+
kind: 'message';
|
|
199
267
|
text?: TextMatcher;
|
|
200
268
|
from?: TextMatcher;
|
|
201
269
|
to?: TextMatcher;
|
|
@@ -221,11 +289,10 @@ export declare interface NoteNode {
|
|
|
221
289
|
* Parser Factory
|
|
222
290
|
* Centralizes retrieval of parser strategies.
|
|
223
291
|
*/
|
|
224
|
-
export declare
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
}
|
|
292
|
+
export declare const ParserFactory: {
|
|
293
|
+
register(language: string, parser: DiagramParser): void;
|
|
294
|
+
getParser(language: string): DiagramParser;
|
|
295
|
+
};
|
|
229
296
|
|
|
230
297
|
export declare interface Participant {
|
|
231
298
|
id: string;
|
|
@@ -246,7 +313,7 @@ export declare interface ParticipantGroup {
|
|
|
246
313
|
}
|
|
247
314
|
|
|
248
315
|
export declare interface ParticipantSelector {
|
|
249
|
-
kind
|
|
316
|
+
kind: 'participant';
|
|
250
317
|
name?: TextMatcher;
|
|
251
318
|
id?: TextMatcher;
|
|
252
319
|
stereotype?: TextMatcher;
|
|
@@ -254,6 +321,29 @@ export declare interface ParticipantSelector {
|
|
|
254
321
|
|
|
255
322
|
export declare type ParticipantType = 'participant' | 'actor' | 'boundary' | 'control' | 'entity' | 'database' | 'collections' | 'queue';
|
|
256
323
|
|
|
324
|
+
/**
|
|
325
|
+
* Visitor implementation that generates PlantUML code.
|
|
326
|
+
* Uses the same Traverser pattern as MermaidGeneratorVisitor for consistency.
|
|
327
|
+
*/
|
|
328
|
+
export declare class PlantUMLGeneratorVisitor implements PolagramVisitor {
|
|
329
|
+
private lines;
|
|
330
|
+
private traverser;
|
|
331
|
+
constructor();
|
|
332
|
+
generate(root: PolagramRoot): string;
|
|
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;
|
|
345
|
+
}
|
|
346
|
+
|
|
257
347
|
/**
|
|
258
348
|
* Polagram Fluent API
|
|
259
349
|
*
|
|
@@ -270,9 +360,9 @@ export declare class Polagram {
|
|
|
270
360
|
/**
|
|
271
361
|
* Initialize a new Polagram transformation pipeline.
|
|
272
362
|
* @param code Source diagram code
|
|
273
|
-
* @param format Input format (
|
|
363
|
+
* @param format Input format ('mermaid' or 'plantuml')
|
|
274
364
|
*/
|
|
275
|
-
static init(code: string, format?: 'mermaid'): PolagramBuilder;
|
|
365
|
+
static init(code: string, format?: 'mermaid' | 'plantuml'): PolagramBuilder;
|
|
276
366
|
}
|
|
277
367
|
|
|
278
368
|
/**
|
|
@@ -281,7 +371,8 @@ export declare class Polagram {
|
|
|
281
371
|
export declare class PolagramBuilder {
|
|
282
372
|
private ast;
|
|
283
373
|
private layers;
|
|
284
|
-
|
|
374
|
+
private sourceFormat;
|
|
375
|
+
constructor(ast: PolagramRoot, sourceFormat?: 'mermaid' | 'plantuml');
|
|
285
376
|
/**
|
|
286
377
|
* Focus on specific participants.
|
|
287
378
|
* Keeps only interactions involving the matched participants.
|
|
@@ -318,10 +409,18 @@ export declare class PolagramBuilder {
|
|
|
318
409
|
* Generate Mermaid code from the transformed AST.
|
|
319
410
|
*/
|
|
320
411
|
toMermaid(): string;
|
|
412
|
+
/**
|
|
413
|
+
* Generate PlantUML code from the transformed AST.
|
|
414
|
+
*/
|
|
415
|
+
toPlantUML(): string;
|
|
321
416
|
/**
|
|
322
417
|
* Get the transformed AST (for advanced use cases).
|
|
323
418
|
*/
|
|
324
419
|
toAST(): PolagramRoot;
|
|
420
|
+
/**
|
|
421
|
+
* Get the source format detected/specified during init.
|
|
422
|
+
*/
|
|
423
|
+
getSourceFormat(): 'mermaid' | 'plantuml';
|
|
325
424
|
private normalizeParticipantSelector;
|
|
326
425
|
private normalizeMessageSelector;
|
|
327
426
|
private normalizeGroupSelector;
|
|
@@ -390,6 +489,14 @@ export declare const PolagramConfigSchema: z.ZodObject<{
|
|
|
390
489
|
}, z.core.$strip>], "kind">;
|
|
391
490
|
}, z.core.$strip>>;
|
|
392
491
|
}, z.core.$strip>>;
|
|
492
|
+
format: z.ZodOptional<z.ZodEnum<{
|
|
493
|
+
mermaid: "mermaid";
|
|
494
|
+
plantuml: "plantuml";
|
|
495
|
+
}>>;
|
|
496
|
+
outputFormat: z.ZodOptional<z.ZodEnum<{
|
|
497
|
+
mermaid: "mermaid";
|
|
498
|
+
plantuml: "plantuml";
|
|
499
|
+
}>>;
|
|
393
500
|
}, z.core.$strip>>;
|
|
394
501
|
}, z.core.$strip>;
|
|
395
502
|
|
|
@@ -439,28 +546,11 @@ export declare interface ReferenceNode {
|
|
|
439
546
|
link?: string;
|
|
440
547
|
}
|
|
441
548
|
|
|
442
|
-
export declare class RemoveFilter extends Walker {
|
|
443
|
-
private layer;
|
|
444
|
-
private matcher;
|
|
445
|
-
private removedParticipantIds;
|
|
446
|
-
constructor(layer: RemoveLayer);
|
|
447
|
-
transform(root: PolagramRoot): PolagramRoot;
|
|
448
|
-
protected visitEvent(node: EventNode): EventNode[];
|
|
449
|
-
private isRelatedToRemovedParticipant;
|
|
450
|
-
}
|
|
451
|
-
|
|
452
549
|
export declare interface RemoveLayer {
|
|
453
550
|
action: 'remove';
|
|
454
551
|
selector: ParticipantSelector | MessageSelector | GroupSelector;
|
|
455
552
|
}
|
|
456
553
|
|
|
457
|
-
export declare class ResolveFilter extends Walker {
|
|
458
|
-
private layer;
|
|
459
|
-
private matcher;
|
|
460
|
-
constructor(layer: ResolveLayer);
|
|
461
|
-
protected visitFragment(node: FragmentNode): EventNode[];
|
|
462
|
-
}
|
|
463
|
-
|
|
464
554
|
export declare interface ResolveLayer {
|
|
465
555
|
action: 'resolve';
|
|
466
556
|
selector: FragmentSelector;
|
|
@@ -473,14 +563,6 @@ export declare interface SpacerNode {
|
|
|
473
563
|
text?: string;
|
|
474
564
|
}
|
|
475
565
|
|
|
476
|
-
/**
|
|
477
|
-
* Cleaner that removes empty fragments and branches from the AST.
|
|
478
|
-
* This runs after filters to ensure the AST structure remains valid/clean.
|
|
479
|
-
*/
|
|
480
|
-
export declare class StructureCleaner extends Walker {
|
|
481
|
-
protected visitFragment(node: FragmentNode): EventNode[];
|
|
482
|
-
}
|
|
483
|
-
|
|
484
566
|
export declare interface StyleProps {
|
|
485
567
|
color?: string;
|
|
486
568
|
backgroundColor?: string;
|
|
@@ -546,6 +628,14 @@ declare const TargetConfigSchema: z.ZodObject<{
|
|
|
546
628
|
}, z.core.$strip>], "kind">;
|
|
547
629
|
}, z.core.$strip>>;
|
|
548
630
|
}, z.core.$strip>>;
|
|
631
|
+
format: z.ZodOptional<z.ZodEnum<{
|
|
632
|
+
mermaid: "mermaid";
|
|
633
|
+
plantuml: "plantuml";
|
|
634
|
+
}>>;
|
|
635
|
+
outputFormat: z.ZodOptional<z.ZodEnum<{
|
|
636
|
+
mermaid: "mermaid";
|
|
637
|
+
plantuml: "plantuml";
|
|
638
|
+
}>>;
|
|
549
639
|
}, z.core.$strip>;
|
|
550
640
|
|
|
551
641
|
export declare type TextMatcher = string | RegExp | {
|
|
@@ -562,13 +652,35 @@ declare interface Transformer_2 {
|
|
|
562
652
|
}
|
|
563
653
|
export { Transformer_2 as Transformer }
|
|
564
654
|
|
|
565
|
-
|
|
655
|
+
/**
|
|
656
|
+
* Type-safe factory function type for creating transformers.
|
|
657
|
+
*/
|
|
658
|
+
declare type TransformerFactory<T extends Layer = Layer> = (layer: T) => Transformer_2;
|
|
566
659
|
|
|
660
|
+
/**
|
|
661
|
+
* Registry for transformer factories.
|
|
662
|
+
* Provides type-safe registration and retrieval of transformers.
|
|
663
|
+
*/
|
|
567
664
|
declare class TransformerRegistry {
|
|
568
665
|
private factories;
|
|
569
666
|
constructor();
|
|
667
|
+
/**
|
|
668
|
+
* Type-safe registration for a specific layer type.
|
|
669
|
+
*/
|
|
670
|
+
private registerTyped;
|
|
671
|
+
/**
|
|
672
|
+
* Register a custom transformer factory.
|
|
673
|
+
*/
|
|
570
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
|
+
*/
|
|
571
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;
|
|
572
684
|
}
|
|
573
685
|
|
|
574
686
|
export declare const transformerRegistry: TransformerRegistry;
|
|
@@ -591,35 +703,10 @@ export declare class Traverser {
|
|
|
591
703
|
dispatchEvents(events: EventNode[]): void;
|
|
592
704
|
}
|
|
593
705
|
|
|
594
|
-
export declare class UnusedCleaner {
|
|
595
|
-
transform(root: PolagramRoot): PolagramRoot;
|
|
596
|
-
private collectUsedParticipants;
|
|
597
|
-
}
|
|
598
|
-
|
|
599
706
|
/**
|
|
600
707
|
* Validates the input object against the Polagram Config Schema.
|
|
601
708
|
* Throws a formatted error message if validation fails.
|
|
602
709
|
*/
|
|
603
710
|
export declare function validateConfig(input: unknown): PolagramConfig;
|
|
604
711
|
|
|
605
|
-
/**
|
|
606
|
-
* Type Guard to validate if an object is a valid Lens.
|
|
607
|
-
* Acts as an Anti-Corruption Layer.
|
|
608
|
-
*/
|
|
609
|
-
export declare function validateLens(lens: unknown): lens is Lens;
|
|
610
|
-
|
|
611
|
-
/**
|
|
612
|
-
* Abstract base class for tree transformations.
|
|
613
|
-
* Implements the "Updating Visitor" pattern with Copy-on-Write immutability.
|
|
614
|
-
*
|
|
615
|
-
* Subclasses should override `visitEvent` to apply specific logic.
|
|
616
|
-
*/
|
|
617
|
-
declare abstract class Walker {
|
|
618
|
-
transform(root: PolagramRoot): PolagramRoot;
|
|
619
|
-
protected mapEvents(events: EventNode[]): EventNode[];
|
|
620
|
-
protected visitEvent(node: EventNode): EventNode[];
|
|
621
|
-
protected visitFragment(node: FragmentNode): EventNode[];
|
|
622
|
-
protected visitBranch(branch: FragmentBranch): FragmentBranch;
|
|
623
|
-
}
|
|
624
|
-
|
|
625
712
|
export { }
|