@herb-tools/core 0.5.0 → 0.6.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.
@@ -102,16 +102,19 @@ export interface SerializedHTMLCloseTagNode extends SerializedNode {
102
102
  type: "AST_HTML_CLOSE_TAG_NODE";
103
103
  tag_opening: SerializedToken | null;
104
104
  tag_name: SerializedToken | null;
105
+ children: SerializedNode[];
105
106
  tag_closing: SerializedToken | null;
106
107
  }
107
108
  export interface HTMLCloseTagNodeProps extends BaseNodeProps {
108
109
  tag_opening: Token | null;
109
110
  tag_name: Token | null;
111
+ children: Node[];
110
112
  tag_closing: Token | null;
111
113
  }
112
114
  export declare class HTMLCloseTagNode extends Node {
113
115
  readonly tag_opening: Token | null;
114
116
  readonly tag_name: Token | null;
117
+ readonly children: Node[];
115
118
  readonly tag_closing: Token | null;
116
119
  static from(data: SerializedHTMLCloseTagNode): HTMLCloseTagNode;
117
120
  constructor(props: HTMLCloseTagNodeProps);
@@ -122,56 +125,26 @@ export declare class HTMLCloseTagNode extends Node {
122
125
  toJSON(): SerializedHTMLCloseTagNode;
123
126
  treeInspect(): string;
124
127
  }
125
- export interface SerializedHTMLSelfCloseTagNode extends SerializedNode {
126
- type: "AST_HTML_SELF_CLOSE_TAG_NODE";
127
- tag_opening: SerializedToken | null;
128
- tag_name: SerializedToken | null;
129
- attributes: SerializedNode[];
130
- tag_closing: SerializedToken | null;
131
- is_void: boolean;
132
- }
133
- export interface HTMLSelfCloseTagNodeProps extends BaseNodeProps {
134
- tag_opening: Token | null;
135
- tag_name: Token | null;
136
- attributes: any[];
137
- tag_closing: Token | null;
138
- is_void: boolean;
139
- }
140
- export declare class HTMLSelfCloseTagNode extends Node {
141
- readonly tag_opening: Token | null;
142
- readonly tag_name: Token | null;
143
- readonly attributes: any[];
144
- readonly tag_closing: Token | null;
145
- readonly is_void: boolean;
146
- static from(data: SerializedHTMLSelfCloseTagNode): HTMLSelfCloseTagNode;
147
- constructor(props: HTMLSelfCloseTagNodeProps);
148
- accept(visitor: Visitor): void;
149
- childNodes(): (Node | null | undefined)[];
150
- compactChildNodes(): Node[];
151
- recursiveErrors(): HerbError[];
152
- toJSON(): SerializedHTMLSelfCloseTagNode;
153
- treeInspect(): string;
154
- }
155
128
  export interface SerializedHTMLElementNode extends SerializedNode {
156
129
  type: "AST_HTML_ELEMENT_NODE";
157
- open_tag: SerializedNode | null;
130
+ open_tag: SerializedHTMLOpenTagNode | null;
158
131
  tag_name: SerializedToken | null;
159
132
  body: SerializedNode[];
160
- close_tag: SerializedNode | null;
133
+ close_tag: SerializedHTMLCloseTagNode | null;
161
134
  is_void: boolean;
162
135
  }
163
136
  export interface HTMLElementNodeProps extends BaseNodeProps {
164
- open_tag: Node | null;
137
+ open_tag: HTMLOpenTagNode | null;
165
138
  tag_name: Token | null;
166
139
  body: Node[];
167
- close_tag: Node | null;
140
+ close_tag: HTMLCloseTagNode | null;
168
141
  is_void: boolean;
169
142
  }
170
143
  export declare class HTMLElementNode extends Node {
171
- readonly open_tag: Node | null;
144
+ readonly open_tag: HTMLOpenTagNode | null;
172
145
  readonly tag_name: Token | null;
173
146
  readonly body: Node[];
174
- readonly close_tag: Node | null;
147
+ readonly close_tag: HTMLCloseTagNode | null;
175
148
  readonly is_void: boolean;
176
149
  static from(data: SerializedHTMLElementNode): HTMLElementNode;
177
150
  constructor(props: HTMLElementNodeProps);
@@ -211,13 +184,13 @@ export declare class HTMLAttributeValueNode extends Node {
211
184
  }
212
185
  export interface SerializedHTMLAttributeNameNode extends SerializedNode {
213
186
  type: "AST_HTML_ATTRIBUTE_NAME_NODE";
214
- name: SerializedToken | null;
187
+ children: SerializedNode[];
215
188
  }
216
189
  export interface HTMLAttributeNameNodeProps extends BaseNodeProps {
217
- name: Token | null;
190
+ children: Node[];
218
191
  }
219
192
  export declare class HTMLAttributeNameNode extends Node {
220
- readonly name: Token | null;
193
+ readonly children: Node[];
221
194
  static from(data: SerializedHTMLAttributeNameNode): HTMLAttributeNameNode;
222
195
  constructor(props: HTMLAttributeNameNodeProps);
223
196
  accept(visitor: Visitor): void;
@@ -229,19 +202,19 @@ export declare class HTMLAttributeNameNode extends Node {
229
202
  }
230
203
  export interface SerializedHTMLAttributeNode extends SerializedNode {
231
204
  type: "AST_HTML_ATTRIBUTE_NODE";
232
- name: SerializedNode | null;
205
+ name: SerializedHTMLAttributeNameNode | null;
233
206
  equals: SerializedToken | null;
234
- value: SerializedNode | null;
207
+ value: SerializedHTMLAttributeValueNode | null;
235
208
  }
236
209
  export interface HTMLAttributeNodeProps extends BaseNodeProps {
237
- name: Node | null;
210
+ name: HTMLAttributeNameNode | null;
238
211
  equals: Token | null;
239
- value: Node | null;
212
+ value: HTMLAttributeValueNode | null;
240
213
  }
241
214
  export declare class HTMLAttributeNode extends Node {
242
- readonly name: Node | null;
215
+ readonly name: HTMLAttributeNameNode | null;
243
216
  readonly equals: Token | null;
244
- readonly value: Node | null;
217
+ readonly value: HTMLAttributeValueNode | null;
245
218
  static from(data: SerializedHTMLAttributeNode): HTMLAttributeNode;
246
219
  constructor(props: HTMLAttributeNodeProps);
247
220
  accept(visitor: Visitor): void;
@@ -317,6 +290,54 @@ export declare class HTMLDoctypeNode extends Node {
317
290
  toJSON(): SerializedHTMLDoctypeNode;
318
291
  treeInspect(): string;
319
292
  }
293
+ export interface SerializedXMLDeclarationNode extends SerializedNode {
294
+ type: "AST_XML_DECLARATION_NODE";
295
+ tag_opening: SerializedToken | null;
296
+ children: SerializedNode[];
297
+ tag_closing: SerializedToken | null;
298
+ }
299
+ export interface XMLDeclarationNodeProps extends BaseNodeProps {
300
+ tag_opening: Token | null;
301
+ children: Node[];
302
+ tag_closing: Token | null;
303
+ }
304
+ export declare class XMLDeclarationNode extends Node {
305
+ readonly tag_opening: Token | null;
306
+ readonly children: Node[];
307
+ readonly tag_closing: Token | null;
308
+ static from(data: SerializedXMLDeclarationNode): XMLDeclarationNode;
309
+ constructor(props: XMLDeclarationNodeProps);
310
+ accept(visitor: Visitor): void;
311
+ childNodes(): (Node | null | undefined)[];
312
+ compactChildNodes(): Node[];
313
+ recursiveErrors(): HerbError[];
314
+ toJSON(): SerializedXMLDeclarationNode;
315
+ treeInspect(): string;
316
+ }
317
+ export interface SerializedCDATANode extends SerializedNode {
318
+ type: "AST_CDATA_NODE";
319
+ tag_opening: SerializedToken | null;
320
+ children: SerializedNode[];
321
+ tag_closing: SerializedToken | null;
322
+ }
323
+ export interface CDATANodeProps extends BaseNodeProps {
324
+ tag_opening: Token | null;
325
+ children: Node[];
326
+ tag_closing: Token | null;
327
+ }
328
+ export declare class CDATANode extends Node {
329
+ readonly tag_opening: Token | null;
330
+ readonly children: Node[];
331
+ readonly tag_closing: Token | null;
332
+ static from(data: SerializedCDATANode): CDATANode;
333
+ constructor(props: CDATANodeProps);
334
+ accept(visitor: Visitor): void;
335
+ childNodes(): (Node | null | undefined)[];
336
+ compactChildNodes(): Node[];
337
+ recursiveErrors(): HerbError[];
338
+ toJSON(): SerializedCDATANode;
339
+ treeInspect(): string;
340
+ }
320
341
  export interface SerializedWhitespaceNode extends SerializedNode {
321
342
  type: "AST_WHITESPACE_NODE";
322
343
  value: SerializedToken | null;
@@ -423,7 +444,7 @@ export interface SerializedERBIfNode extends SerializedNode {
423
444
  tag_closing: SerializedToken | null;
424
445
  statements: SerializedNode[];
425
446
  subsequent: SerializedNode | null;
426
- end_node: SerializedNode | null;
447
+ end_node: SerializedERBEndNode | null;
427
448
  }
428
449
  export interface ERBIfNodeProps extends BaseNodeProps {
429
450
  tag_opening: Token | null;
@@ -431,7 +452,7 @@ export interface ERBIfNodeProps extends BaseNodeProps {
431
452
  tag_closing: Token | null;
432
453
  statements: Node[];
433
454
  subsequent: Node | null;
434
- end_node: Node | null;
455
+ end_node: ERBEndNode | null;
435
456
  }
436
457
  export declare class ERBIfNode extends Node {
437
458
  readonly tag_opening: Token | null;
@@ -439,7 +460,7 @@ export declare class ERBIfNode extends Node {
439
460
  readonly tag_closing: Token | null;
440
461
  readonly statements: Node[];
441
462
  readonly subsequent: Node | null;
442
- readonly end_node: Node | null;
463
+ readonly end_node: ERBEndNode | null;
443
464
  static from(data: SerializedERBIfNode): ERBIfNode;
444
465
  constructor(props: ERBIfNodeProps);
445
466
  accept(visitor: Visitor): void;
@@ -455,21 +476,21 @@ export interface SerializedERBBlockNode extends SerializedNode {
455
476
  content: SerializedToken | null;
456
477
  tag_closing: SerializedToken | null;
457
478
  body: SerializedNode[];
458
- end_node: SerializedNode | null;
479
+ end_node: SerializedERBEndNode | null;
459
480
  }
460
481
  export interface ERBBlockNodeProps extends BaseNodeProps {
461
482
  tag_opening: Token | null;
462
483
  content: Token | null;
463
484
  tag_closing: Token | null;
464
485
  body: Node[];
465
- end_node: Node | null;
486
+ end_node: ERBEndNode | null;
466
487
  }
467
488
  export declare class ERBBlockNode extends Node {
468
489
  readonly tag_opening: Token | null;
469
490
  readonly content: Token | null;
470
491
  readonly tag_closing: Token | null;
471
492
  readonly body: Node[];
472
- readonly end_node: Node | null;
493
+ readonly end_node: ERBEndNode | null;
473
494
  static from(data: SerializedERBBlockNode): ERBBlockNode;
474
495
  constructor(props: ERBBlockNodeProps);
475
496
  accept(visitor: Visitor): void;
@@ -513,8 +534,8 @@ export interface SerializedERBCaseNode extends SerializedNode {
513
534
  tag_closing: SerializedToken | null;
514
535
  children: SerializedNode[];
515
536
  conditions: SerializedNode[];
516
- else_clause: SerializedNode | null;
517
- end_node: SerializedNode | null;
537
+ else_clause: SerializedERBElseNode | null;
538
+ end_node: SerializedERBEndNode | null;
518
539
  }
519
540
  export interface ERBCaseNodeProps extends BaseNodeProps {
520
541
  tag_opening: Token | null;
@@ -522,17 +543,17 @@ export interface ERBCaseNodeProps extends BaseNodeProps {
522
543
  tag_closing: Token | null;
523
544
  children: Node[];
524
545
  conditions: any[];
525
- else_clause: Node | null;
526
- end_node: Node | null;
546
+ else_clause: ERBElseNode | null;
547
+ end_node: ERBEndNode | null;
527
548
  }
528
549
  export declare class ERBCaseNode extends Node {
529
550
  readonly tag_opening: Token | null;
530
551
  readonly content: Token | null;
531
552
  readonly tag_closing: Token | null;
532
553
  readonly children: Node[];
533
- readonly conditions: any[];
534
- readonly else_clause: Node | null;
535
- readonly end_node: Node | null;
554
+ readonly conditions: Node[];
555
+ readonly else_clause: ERBElseNode | null;
556
+ readonly end_node: ERBEndNode | null;
536
557
  static from(data: SerializedERBCaseNode): ERBCaseNode;
537
558
  constructor(props: ERBCaseNodeProps);
538
559
  accept(visitor: Visitor): void;
@@ -549,8 +570,8 @@ export interface SerializedERBCaseMatchNode extends SerializedNode {
549
570
  tag_closing: SerializedToken | null;
550
571
  children: SerializedNode[];
551
572
  conditions: SerializedNode[];
552
- else_clause: SerializedNode | null;
553
- end_node: SerializedNode | null;
573
+ else_clause: SerializedERBElseNode | null;
574
+ end_node: SerializedERBEndNode | null;
554
575
  }
555
576
  export interface ERBCaseMatchNodeProps extends BaseNodeProps {
556
577
  tag_opening: Token | null;
@@ -558,17 +579,17 @@ export interface ERBCaseMatchNodeProps extends BaseNodeProps {
558
579
  tag_closing: Token | null;
559
580
  children: Node[];
560
581
  conditions: any[];
561
- else_clause: Node | null;
562
- end_node: Node | null;
582
+ else_clause: ERBElseNode | null;
583
+ end_node: ERBEndNode | null;
563
584
  }
564
585
  export declare class ERBCaseMatchNode extends Node {
565
586
  readonly tag_opening: Token | null;
566
587
  readonly content: Token | null;
567
588
  readonly tag_closing: Token | null;
568
589
  readonly children: Node[];
569
- readonly conditions: any[];
570
- readonly else_clause: Node | null;
571
- readonly end_node: Node | null;
590
+ readonly conditions: Node[];
591
+ readonly else_clause: ERBElseNode | null;
592
+ readonly end_node: ERBEndNode | null;
572
593
  static from(data: SerializedERBCaseMatchNode): ERBCaseMatchNode;
573
594
  constructor(props: ERBCaseMatchNodeProps);
574
595
  accept(visitor: Visitor): void;
@@ -584,21 +605,21 @@ export interface SerializedERBWhileNode extends SerializedNode {
584
605
  content: SerializedToken | null;
585
606
  tag_closing: SerializedToken | null;
586
607
  statements: SerializedNode[];
587
- end_node: SerializedNode | null;
608
+ end_node: SerializedERBEndNode | null;
588
609
  }
589
610
  export interface ERBWhileNodeProps extends BaseNodeProps {
590
611
  tag_opening: Token | null;
591
612
  content: Token | null;
592
613
  tag_closing: Token | null;
593
614
  statements: Node[];
594
- end_node: Node | null;
615
+ end_node: ERBEndNode | null;
595
616
  }
596
617
  export declare class ERBWhileNode extends Node {
597
618
  readonly tag_opening: Token | null;
598
619
  readonly content: Token | null;
599
620
  readonly tag_closing: Token | null;
600
621
  readonly statements: Node[];
601
- readonly end_node: Node | null;
622
+ readonly end_node: ERBEndNode | null;
602
623
  static from(data: SerializedERBWhileNode): ERBWhileNode;
603
624
  constructor(props: ERBWhileNodeProps);
604
625
  accept(visitor: Visitor): void;
@@ -614,21 +635,21 @@ export interface SerializedERBUntilNode extends SerializedNode {
614
635
  content: SerializedToken | null;
615
636
  tag_closing: SerializedToken | null;
616
637
  statements: SerializedNode[];
617
- end_node: SerializedNode | null;
638
+ end_node: SerializedERBEndNode | null;
618
639
  }
619
640
  export interface ERBUntilNodeProps extends BaseNodeProps {
620
641
  tag_opening: Token | null;
621
642
  content: Token | null;
622
643
  tag_closing: Token | null;
623
644
  statements: Node[];
624
- end_node: Node | null;
645
+ end_node: ERBEndNode | null;
625
646
  }
626
647
  export declare class ERBUntilNode extends Node {
627
648
  readonly tag_opening: Token | null;
628
649
  readonly content: Token | null;
629
650
  readonly tag_closing: Token | null;
630
651
  readonly statements: Node[];
631
- readonly end_node: Node | null;
652
+ readonly end_node: ERBEndNode | null;
632
653
  static from(data: SerializedERBUntilNode): ERBUntilNode;
633
654
  constructor(props: ERBUntilNodeProps);
634
655
  accept(visitor: Visitor): void;
@@ -644,21 +665,21 @@ export interface SerializedERBForNode extends SerializedNode {
644
665
  content: SerializedToken | null;
645
666
  tag_closing: SerializedToken | null;
646
667
  statements: SerializedNode[];
647
- end_node: SerializedNode | null;
668
+ end_node: SerializedERBEndNode | null;
648
669
  }
649
670
  export interface ERBForNodeProps extends BaseNodeProps {
650
671
  tag_opening: Token | null;
651
672
  content: Token | null;
652
673
  tag_closing: Token | null;
653
674
  statements: Node[];
654
- end_node: Node | null;
675
+ end_node: ERBEndNode | null;
655
676
  }
656
677
  export declare class ERBForNode extends Node {
657
678
  readonly tag_opening: Token | null;
658
679
  readonly content: Token | null;
659
680
  readonly tag_closing: Token | null;
660
681
  readonly statements: Node[];
661
- readonly end_node: Node | null;
682
+ readonly end_node: ERBEndNode | null;
662
683
  static from(data: SerializedERBForNode): ERBForNode;
663
684
  constructor(props: ERBForNodeProps);
664
685
  accept(visitor: Visitor): void;
@@ -674,21 +695,21 @@ export interface SerializedERBRescueNode extends SerializedNode {
674
695
  content: SerializedToken | null;
675
696
  tag_closing: SerializedToken | null;
676
697
  statements: SerializedNode[];
677
- subsequent: SerializedNode | null;
698
+ subsequent: SerializedERBRescueNode | null;
678
699
  }
679
700
  export interface ERBRescueNodeProps extends BaseNodeProps {
680
701
  tag_opening: Token | null;
681
702
  content: Token | null;
682
703
  tag_closing: Token | null;
683
704
  statements: Node[];
684
- subsequent: Node | null;
705
+ subsequent: ERBRescueNode | null;
685
706
  }
686
707
  export declare class ERBRescueNode extends Node {
687
708
  readonly tag_opening: Token | null;
688
709
  readonly content: Token | null;
689
710
  readonly tag_closing: Token | null;
690
711
  readonly statements: Node[];
691
- readonly subsequent: Node | null;
712
+ readonly subsequent: ERBRescueNode | null;
692
713
  static from(data: SerializedERBRescueNode): ERBRescueNode;
693
714
  constructor(props: ERBRescueNodeProps);
694
715
  accept(visitor: Visitor): void;
@@ -731,30 +752,30 @@ export interface SerializedERBBeginNode extends SerializedNode {
731
752
  content: SerializedToken | null;
732
753
  tag_closing: SerializedToken | null;
733
754
  statements: SerializedNode[];
734
- rescue_clause: SerializedNode | null;
735
- else_clause: SerializedNode | null;
736
- ensure_clause: SerializedNode | null;
737
- end_node: SerializedNode | null;
755
+ rescue_clause: SerializedERBRescueNode | null;
756
+ else_clause: SerializedERBElseNode | null;
757
+ ensure_clause: SerializedERBEnsureNode | null;
758
+ end_node: SerializedERBEndNode | null;
738
759
  }
739
760
  export interface ERBBeginNodeProps extends BaseNodeProps {
740
761
  tag_opening: Token | null;
741
762
  content: Token | null;
742
763
  tag_closing: Token | null;
743
764
  statements: Node[];
744
- rescue_clause: Node | null;
745
- else_clause: Node | null;
746
- ensure_clause: Node | null;
747
- end_node: Node | null;
765
+ rescue_clause: ERBRescueNode | null;
766
+ else_clause: ERBElseNode | null;
767
+ ensure_clause: ERBEnsureNode | null;
768
+ end_node: ERBEndNode | null;
748
769
  }
749
770
  export declare class ERBBeginNode extends Node {
750
771
  readonly tag_opening: Token | null;
751
772
  readonly content: Token | null;
752
773
  readonly tag_closing: Token | null;
753
774
  readonly statements: Node[];
754
- readonly rescue_clause: Node | null;
755
- readonly else_clause: Node | null;
756
- readonly ensure_clause: Node | null;
757
- readonly end_node: Node | null;
775
+ readonly rescue_clause: ERBRescueNode | null;
776
+ readonly else_clause: ERBElseNode | null;
777
+ readonly ensure_clause: ERBEnsureNode | null;
778
+ readonly end_node: ERBEndNode | null;
758
779
  static from(data: SerializedERBBeginNode): ERBBeginNode;
759
780
  constructor(props: ERBBeginNodeProps);
760
781
  accept(visitor: Visitor): void;
@@ -770,24 +791,24 @@ export interface SerializedERBUnlessNode extends SerializedNode {
770
791
  content: SerializedToken | null;
771
792
  tag_closing: SerializedToken | null;
772
793
  statements: SerializedNode[];
773
- else_clause: SerializedNode | null;
774
- end_node: SerializedNode | null;
794
+ else_clause: SerializedERBElseNode | null;
795
+ end_node: SerializedERBEndNode | null;
775
796
  }
776
797
  export interface ERBUnlessNodeProps extends BaseNodeProps {
777
798
  tag_opening: Token | null;
778
799
  content: Token | null;
779
800
  tag_closing: Token | null;
780
801
  statements: Node[];
781
- else_clause: Node | null;
782
- end_node: Node | null;
802
+ else_clause: ERBElseNode | null;
803
+ end_node: ERBEndNode | null;
783
804
  }
784
805
  export declare class ERBUnlessNode extends Node {
785
806
  readonly tag_opening: Token | null;
786
807
  readonly content: Token | null;
787
808
  readonly tag_closing: Token | null;
788
809
  readonly statements: Node[];
789
- readonly else_clause: Node | null;
790
- readonly end_node: Node | null;
810
+ readonly else_clause: ERBElseNode | null;
811
+ readonly end_node: ERBEndNode | null;
791
812
  static from(data: SerializedERBUnlessNode): ERBUnlessNode;
792
813
  constructor(props: ERBUnlessNodeProps);
793
814
  accept(visitor: Visitor): void;
@@ -848,9 +869,40 @@ export declare class ERBInNode extends Node {
848
869
  toJSON(): SerializedERBInNode;
849
870
  treeInspect(): string;
850
871
  }
872
+ export type ConcreteNode = DocumentNode | LiteralNode | HTMLOpenTagNode | HTMLCloseTagNode | HTMLElementNode | HTMLAttributeValueNode | HTMLAttributeNameNode | HTMLAttributeNode | HTMLTextNode | HTMLCommentNode | HTMLDoctypeNode | XMLDeclarationNode | CDATANode | WhitespaceNode | ERBContentNode | ERBEndNode | ERBElseNode | ERBIfNode | ERBBlockNode | ERBWhenNode | ERBCaseNode | ERBCaseMatchNode | ERBWhileNode | ERBUntilNode | ERBForNode | ERBRescueNode | ERBEnsureNode | ERBBeginNode | ERBUnlessNode | ERBYieldNode | ERBInNode;
873
+ export declare function fromSerializedNode(node: SerializedDocumentNode): DocumentNode;
874
+ export declare function fromSerializedNode(node: SerializedLiteralNode): LiteralNode;
875
+ export declare function fromSerializedNode(node: SerializedHTMLOpenTagNode): HTMLOpenTagNode;
876
+ export declare function fromSerializedNode(node: SerializedHTMLCloseTagNode): HTMLCloseTagNode;
877
+ export declare function fromSerializedNode(node: SerializedHTMLElementNode): HTMLElementNode;
878
+ export declare function fromSerializedNode(node: SerializedHTMLAttributeValueNode): HTMLAttributeValueNode;
879
+ export declare function fromSerializedNode(node: SerializedHTMLAttributeNameNode): HTMLAttributeNameNode;
880
+ export declare function fromSerializedNode(node: SerializedHTMLAttributeNode): HTMLAttributeNode;
881
+ export declare function fromSerializedNode(node: SerializedHTMLTextNode): HTMLTextNode;
882
+ export declare function fromSerializedNode(node: SerializedHTMLCommentNode): HTMLCommentNode;
883
+ export declare function fromSerializedNode(node: SerializedHTMLDoctypeNode): HTMLDoctypeNode;
884
+ export declare function fromSerializedNode(node: SerializedXMLDeclarationNode): XMLDeclarationNode;
885
+ export declare function fromSerializedNode(node: SerializedCDATANode): CDATANode;
886
+ export declare function fromSerializedNode(node: SerializedWhitespaceNode): WhitespaceNode;
887
+ export declare function fromSerializedNode(node: SerializedERBContentNode): ERBContentNode;
888
+ export declare function fromSerializedNode(node: SerializedERBEndNode): ERBEndNode;
889
+ export declare function fromSerializedNode(node: SerializedERBElseNode): ERBElseNode;
890
+ export declare function fromSerializedNode(node: SerializedERBIfNode): ERBIfNode;
891
+ export declare function fromSerializedNode(node: SerializedERBBlockNode): ERBBlockNode;
892
+ export declare function fromSerializedNode(node: SerializedERBWhenNode): ERBWhenNode;
893
+ export declare function fromSerializedNode(node: SerializedERBCaseNode): ERBCaseNode;
894
+ export declare function fromSerializedNode(node: SerializedERBCaseMatchNode): ERBCaseMatchNode;
895
+ export declare function fromSerializedNode(node: SerializedERBWhileNode): ERBWhileNode;
896
+ export declare function fromSerializedNode(node: SerializedERBUntilNode): ERBUntilNode;
897
+ export declare function fromSerializedNode(node: SerializedERBForNode): ERBForNode;
898
+ export declare function fromSerializedNode(node: SerializedERBRescueNode): ERBRescueNode;
899
+ export declare function fromSerializedNode(node: SerializedERBEnsureNode): ERBEnsureNode;
900
+ export declare function fromSerializedNode(node: SerializedERBBeginNode): ERBBeginNode;
901
+ export declare function fromSerializedNode(node: SerializedERBUnlessNode): ERBUnlessNode;
902
+ export declare function fromSerializedNode(node: SerializedERBYieldNode): ERBYieldNode;
903
+ export declare function fromSerializedNode(node: SerializedERBInNode): ERBInNode;
851
904
  export declare function fromSerializedNode(node: SerializedNode): Node;
852
- export type NodeType = "AST_DOCUMENT_NODE" | "AST_LITERAL_NODE" | "AST_HTML_OPEN_TAG_NODE" | "AST_HTML_CLOSE_TAG_NODE" | "AST_HTML_SELF_CLOSE_TAG_NODE" | "AST_HTML_ELEMENT_NODE" | "AST_HTML_ATTRIBUTE_VALUE_NODE" | "AST_HTML_ATTRIBUTE_NAME_NODE" | "AST_HTML_ATTRIBUTE_NODE" | "AST_HTML_TEXT_NODE" | "AST_HTML_COMMENT_NODE" | "AST_HTML_DOCTYPE_NODE" | "AST_WHITESPACE_NODE" | "AST_ERB_CONTENT_NODE" | "AST_ERB_END_NODE" | "AST_ERB_ELSE_NODE" | "AST_ERB_IF_NODE" | "AST_ERB_BLOCK_NODE" | "AST_ERB_WHEN_NODE" | "AST_ERB_CASE_NODE" | "AST_ERB_CASE_MATCH_NODE" | "AST_ERB_WHILE_NODE" | "AST_ERB_UNTIL_NODE" | "AST_ERB_FOR_NODE" | "AST_ERB_RESCUE_NODE" | "AST_ERB_ENSURE_NODE" | "AST_ERB_BEGIN_NODE" | "AST_ERB_UNLESS_NODE" | "AST_ERB_YIELD_NODE" | "AST_ERB_IN_NODE";
905
+ export type NodeType = "AST_DOCUMENT_NODE" | "AST_LITERAL_NODE" | "AST_HTML_OPEN_TAG_NODE" | "AST_HTML_CLOSE_TAG_NODE" | "AST_HTML_ELEMENT_NODE" | "AST_HTML_ATTRIBUTE_VALUE_NODE" | "AST_HTML_ATTRIBUTE_NAME_NODE" | "AST_HTML_ATTRIBUTE_NODE" | "AST_HTML_TEXT_NODE" | "AST_HTML_COMMENT_NODE" | "AST_HTML_DOCTYPE_NODE" | "AST_XML_DECLARATION_NODE" | "AST_CDATA_NODE" | "AST_WHITESPACE_NODE" | "AST_ERB_CONTENT_NODE" | "AST_ERB_END_NODE" | "AST_ERB_ELSE_NODE" | "AST_ERB_IF_NODE" | "AST_ERB_BLOCK_NODE" | "AST_ERB_WHEN_NODE" | "AST_ERB_CASE_NODE" | "AST_ERB_CASE_MATCH_NODE" | "AST_ERB_WHILE_NODE" | "AST_ERB_UNTIL_NODE" | "AST_ERB_FOR_NODE" | "AST_ERB_RESCUE_NODE" | "AST_ERB_ENSURE_NODE" | "AST_ERB_BEGIN_NODE" | "AST_ERB_UNLESS_NODE" | "AST_ERB_YIELD_NODE" | "AST_ERB_IN_NODE";
853
906
  export type ERBNodeType = Extract<NodeType, `AST_ERB_${string}`>;
854
907
  export type ERBNode = ERBContentNode | ERBEndNode | ERBElseNode | ERBIfNode | ERBBlockNode | ERBWhenNode | ERBCaseNode | ERBCaseMatchNode | ERBWhileNode | ERBUntilNode | ERBForNode | ERBRescueNode | ERBEnsureNode | ERBBeginNode | ERBUnlessNode | ERBYieldNode | ERBInNode;
855
908
  export declare const ERBNodeClasses: (typeof ERBContentNode | typeof ERBEndNode | typeof ERBElseNode | typeof ERBIfNode | typeof ERBBlockNode | typeof ERBWhenNode | typeof ERBCaseNode | typeof ERBCaseMatchNode | typeof ERBWhileNode | typeof ERBUntilNode | typeof ERBForNode | typeof ERBRescueNode | typeof ERBEnsureNode | typeof ERBBeginNode | typeof ERBUnlessNode | typeof ERBYieldNode | typeof ERBInNode)[];
856
- export declare function isERBNode(node: Node): node is ERBNode;
@@ -0,0 +1,4 @@
1
+ export interface ParserOptions {
2
+ track_whitespace?: boolean;
3
+ }
4
+ export declare const DEFAULT_PARSER_OPTIONS: ParserOptions;
@@ -1,4 +1,4 @@
1
- import { Node, DocumentNode, LiteralNode, HTMLOpenTagNode, HTMLCloseTagNode, HTMLSelfCloseTagNode, HTMLElementNode, HTMLAttributeValueNode, HTMLAttributeNameNode, HTMLAttributeNode, HTMLTextNode, HTMLCommentNode, HTMLDoctypeNode, WhitespaceNode, ERBContentNode, ERBEndNode, ERBElseNode, ERBIfNode, ERBBlockNode, ERBWhenNode, ERBCaseNode, ERBCaseMatchNode, ERBWhileNode, ERBUntilNode, ERBForNode, ERBRescueNode, ERBEnsureNode, ERBBeginNode, ERBUnlessNode, ERBYieldNode, ERBInNode } from "./nodes.js";
1
+ import { Node, DocumentNode, LiteralNode, HTMLOpenTagNode, HTMLCloseTagNode, HTMLElementNode, HTMLAttributeValueNode, HTMLAttributeNameNode, HTMLAttributeNode, HTMLTextNode, HTMLCommentNode, HTMLDoctypeNode, XMLDeclarationNode, CDATANode, WhitespaceNode, ERBContentNode, ERBEndNode, ERBElseNode, ERBIfNode, ERBBlockNode, ERBWhenNode, ERBCaseNode, ERBCaseMatchNode, ERBWhileNode, ERBUntilNode, ERBForNode, ERBRescueNode, ERBEnsureNode, ERBBeginNode, ERBUnlessNode, ERBYieldNode, ERBInNode } from "./nodes.js";
2
2
  export declare class Visitor {
3
3
  visit(node: Node | null | undefined): void;
4
4
  visitAll(nodes: (Node | null | undefined)[]): void;
@@ -7,7 +7,6 @@ export declare class Visitor {
7
7
  visitLiteralNode(node: LiteralNode): void;
8
8
  visitHTMLOpenTagNode(node: HTMLOpenTagNode): void;
9
9
  visitHTMLCloseTagNode(node: HTMLCloseTagNode): void;
10
- visitHTMLSelfCloseTagNode(node: HTMLSelfCloseTagNode): void;
11
10
  visitHTMLElementNode(node: HTMLElementNode): void;
12
11
  visitHTMLAttributeValueNode(node: HTMLAttributeValueNode): void;
13
12
  visitHTMLAttributeNameNode(node: HTMLAttributeNameNode): void;
@@ -15,6 +14,8 @@ export declare class Visitor {
15
14
  visitHTMLTextNode(node: HTMLTextNode): void;
16
15
  visitHTMLCommentNode(node: HTMLCommentNode): void;
17
16
  visitHTMLDoctypeNode(node: HTMLDoctypeNode): void;
17
+ visitXMLDeclarationNode(node: XMLDeclarationNode): void;
18
+ visitCDATANode(node: CDATANode): void;
18
19
  visitWhitespaceNode(node: WhitespaceNode): void;
19
20
  visitERBContentNode(node: ERBContentNode): void;
20
21
  visitERBEndNode(node: ERBEndNode): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@herb-tools/core",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "Core module exporting shared interfaces, AST node definitions, and common utilities for Herb",
5
5
  "type": "module",
6
6
  "license": "MIT",