svg-eslint-parser 0.0.7 → 0.2.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/README.md CHANGED
@@ -85,11 +85,11 @@ import {
85
85
  } from 'svg-eslint-parser'
86
86
 
87
87
  const { ast } = parseForESLint(svgSource)
88
- const document = ast.body[0]
88
+ const document = ast.document
89
89
 
90
- // Find all tag nodes
91
- const tags = findNodeByType(document, NodeTypes.Tag)
92
- console.log(`Found ${tags.length} tags`)
90
+ // Find all element nodes
91
+ const elements = findNodeByType(document, NodeTypes.Element)
92
+ console.log(`Found ${elements.length} elements`)
93
93
 
94
94
  // Traverse with visitor pattern
95
95
  traverseAST(document, {
@@ -145,19 +145,13 @@ Returns a Document node directly.
145
145
 
146
146
  ### Node Types
147
147
 
148
- The parser defines 34 node types:
148
+ The parser currently exposes 16 AST node types:
149
149
 
150
- **Document Structure**: `Program`, `Document`
150
+ **Program & Document**: `Program`, `Document`
151
151
 
152
- **Elements**: `Tag`, `OpenTagStart`, `OpenTagEnd`, `CloseTag`
152
+ **Element Tree**: `Element`, `Attribute`, `AttributeKey`, `AttributeValue`, `Text`, `Comment`
153
153
 
154
- **Attributes**: `Attribute`, `AttributeKey`, `AttributeValue`, `AttributeValueWrapperStart`, `AttributeValueWrapperEnd`
155
-
156
- **Text & Comments**: `Text`, `Comment`, `CommentOpen`, `CommentContent`, `CommentClose`
157
-
158
- **XML Declaration**: `XMLDeclaration`, `XMLDeclarationOpen`, `XMLDeclarationClose`, `XMLDeclarationAttribute`, `XMLDeclarationAttributeKey`, `XMLDeclarationAttributeValue`, `XMLDeclarationAttributeValueWrapperStart`, `XMLDeclarationAttributeValueWrapperEnd`
159
-
160
- **DOCTYPE**: `Doctype`, `DoctypeOpen`, `DoctypeClose`, `DoctypeAttribute`, `DoctypeAttributeValue`, `DoctypeAttributeWrapperStart`, `DoctypeAttributeWrapperEnd`
154
+ **Declarations**: `Doctype`, `DoctypeAttribute`, `DoctypeAttributeValue`, `XMLDeclaration`, `XMLDeclarationAttribute`, `XMLDeclarationAttributeKey`, `XMLDeclarationAttributeValue`
161
155
 
162
156
  **Error Handling**: `Error`
163
157
 
@@ -190,11 +184,11 @@ const svgCode = `
190
184
  `
191
185
 
192
186
  const { ast } = parseForESLint(svgCode)
193
- const document = ast.body[0]
187
+ const document = ast.document
194
188
 
195
- // Find all tags and filter for circles
196
- const allTags = findNodeByType(document, NodeTypes.Tag)
197
- const circles = allTags.filter(tag => tag.name === 'circle')
189
+ // Find all elements and filter for circles
190
+ const allElements = findNodeByType(document, NodeTypes.Element)
191
+ const circles = allElements.filter(element => element.name === 'circle')
198
192
 
199
193
  console.log(`Found ${circles.length} circles`)
200
194
 
@@ -0,0 +1,13 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __defProp = Object.defineProperty;
3
+ var __exportAll = (all, no_symbols) => {
4
+ let target = {};
5
+ for (var name in all) __defProp(target, name, {
6
+ get: all[name],
7
+ enumerable: true
8
+ });
9
+ if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
10
+ return target;
11
+ };
12
+ //#endregion
13
+ export { __exportAll as t };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import * as eslint0 from "eslint";
2
1
  import { SourceCode } from "eslint";
3
2
 
4
3
  //#region src/meta.d.ts
@@ -66,9 +65,9 @@ declare enum NodeTypes {
66
65
  DoctypeAttribute = "DoctypeAttribute",
67
66
  DoctypeAttributeValue = "DoctypeAttributeValue",
68
67
  Document = "Document",
68
+ Element = "Element",
69
69
  Error = "Error",
70
70
  Program = "Program",
71
- Tag = "Tag",
72
71
  Text = "Text",
73
72
  XMLDeclaration = "XMLDeclaration",
74
73
  XMLDeclarationAttribute = "XMLDeclarationAttribute",
@@ -271,7 +270,7 @@ type AttributeValueNode = SimpleNode<NodeTypes.AttributeValue>;
271
270
  interface AttributeNode extends BaseNode {
272
271
  key: AttributeKeyNode;
273
272
  type: NodeTypes.Attribute;
274
- value: AttributeValueNode;
273
+ value?: AttributeValueNode;
275
274
  quoteChar?: '"' | "'" | undefined;
276
275
  }
277
276
  /**
@@ -297,15 +296,15 @@ interface DoctypeNode extends BaseNode {
297
296
  type: NodeTypes.Doctype;
298
297
  }
299
298
  /**
300
- * tag nodes
299
+ * element nodes
301
300
  * @pg
302
301
  */
303
- interface TagNode extends BaseNode {
302
+ interface ElementNode extends BaseNode {
304
303
  attributes: AttributeNode[];
305
- children: NestableNode[];
304
+ children: ElementChildNode[];
306
305
  name: string;
307
306
  selfClosing: boolean;
308
- type: NodeTypes.Tag;
307
+ type: NodeTypes.Element;
309
308
  }
310
309
  /**
311
310
  * XML declaration nodes
@@ -315,7 +314,7 @@ type XMLDeclarationAttributeValueNode = SimpleNode<NodeTypes.XMLDeclarationAttri
315
314
  interface XMLDeclarationAttributeNode extends BaseNode {
316
315
  key: XMLDeclarationAttributeKeyNode;
317
316
  type: NodeTypes.XMLDeclarationAttribute;
318
- value: XMLDeclarationAttributeValueNode;
317
+ value?: XMLDeclarationAttributeValueNode;
319
318
  quoteChar?: '"' | "'" | undefined;
320
319
  }
321
320
  interface XMLDeclarationNode extends BaseNode {
@@ -333,29 +332,31 @@ interface ErrorNode extends BaseNode {
333
332
  recoveredNode?: AnyNode;
334
333
  }
335
334
  /**
336
- * nestable node
335
+ * child node
337
336
  * @pg
338
337
  */
339
- type NestableNode = CommentNode | DoctypeNode | TagNode | TextNode | XMLDeclarationNode;
338
+ type DocumentChildNode = XMLDeclarationNode | DoctypeNode | ElementNode | CommentNode | TextNode;
339
+ type ElementChildNode = ElementNode | CommentNode | TextNode;
340
340
  /**
341
341
  * program
342
342
  * @pg
343
343
  */
344
344
  interface Program extends BaseNode {
345
- body: DocumentNode[];
345
+ body: [];
346
346
  comments: ESLintComment[];
347
+ document: DocumentNode;
347
348
  tokens: AnyToken[];
348
349
  type: NodeTypes.Program;
349
350
  }
350
351
  interface DocumentNode extends BaseNode {
351
- children: NestableNode[];
352
+ children: DocumentChildNode[];
352
353
  type: NodeTypes.Document;
353
354
  }
354
355
  /**
355
356
  * any node
356
357
  * @pg
357
358
  */
358
- type AnyNode = AttributeKeyNode | AttributeNode | AttributeValueNode | CommentNode | DoctypeAttributeNode | DoctypeAttributeValueNode | DoctypeNode | DocumentNode | ErrorNode | Program | TagNode | TextNode | XMLDeclarationAttributeKeyNode | XMLDeclarationAttributeNode | XMLDeclarationAttributeValueNode | XMLDeclarationNode;
359
+ type AnyNode = AttributeKeyNode | AttributeNode | AttributeValueNode | CommentNode | DoctypeAttributeNode | DoctypeAttributeValueNode | DoctypeNode | DocumentNode | ElementNode | ErrorNode | Program | TextNode | XMLDeclarationAttributeKeyNode | XMLDeclarationAttributeNode | XMLDeclarationAttributeValueNode | XMLDeclarationNode;
359
360
  //#endregion
360
361
  //#region src/types/parse.d.ts
361
362
  interface Options {
@@ -390,7 +391,7 @@ interface ParseResult {
390
391
  }
391
392
  //#endregion
392
393
  //#region src/types/contextualNode.d.ts
393
- type AnyContextualNode = ContextualAttributeNode | ContextualCommentNode | ContextualDoctypeAttributeNode | ContextualDoctypeNode | ContextualDocumentNode | ContextualTagNode | ContextualXMLDeclarationAttributeNode | ContextualXMLDeclarationNode;
394
+ type AnyContextualNode = ContextualAttributeNode | ContextualCommentNode | ContextualDoctypeAttributeNode | ContextualDoctypeNode | ContextualDocumentNode | ContextualElementNode | ContextualXMLDeclarationAttributeNode | ContextualXMLDeclarationNode;
394
395
  type ContextualAttributeNode = ContextualNode<AttributeNode, 'key' | 'value'>;
395
396
  type ContextualCommentNode = ContextualNode<CommentNode, 'content'>;
396
397
  type ContextualDoctypeAttributeNode = ContextualNode<DoctypeAttributeNode, 'type' | 'value'>;
@@ -398,14 +399,14 @@ type ContextualDoctypeNode = ContextualNode<DoctypeNode, 'attributes'> & {
398
399
  attributes: ContextualDoctypeAttributeNode[];
399
400
  };
400
401
  type ContextualDocumentNode = Omit<ContextualNode<DocumentNode, never>, 'children'> & {
401
- children: Array<DocumentNode['children'][number] | Exclude<AnyContextualNode, ContextualDoctypeNode>>;
402
+ children: Array<DocumentNode['children'][number] | ContextualCommentNode | ContextualDoctypeNode | ContextualElementNode | ContextualXMLDeclarationNode>;
402
403
  };
403
404
  type ContextualNode<T extends AnyNode, K extends keyof T> = PartialBy<T, K> & {
404
405
  parentRef?: any;
405
406
  };
406
- type ContextualTagNode = ContextualNode<TagNode, 'attributes' | 'children' | 'name' | 'selfClosing'> & {
407
+ type ContextualElementNode = ContextualNode<ElementNode, 'attributes' | 'children' | 'name' | 'selfClosing'> & {
407
408
  attributes: ContextualAttributeNode[];
408
- children: Array<ContextualCommentNode | ContextualDoctypeNode | ContextualTagNode | TagNode['children'][number]>;
409
+ children: Array<ContextualCommentNode | ContextualElementNode | ElementNode['children'][number]>;
409
410
  };
410
411
  type ContextualXMLDeclarationAttributeNode = ContextualNode<XMLDeclarationAttributeNode, 'key' | 'value'>;
411
412
  type ContextualXMLDeclarationNode = ContextualNode<XMLDeclarationNode, 'attributes'> & {
@@ -483,9 +484,9 @@ type ContextParams = {
483
484
  };
484
485
  //#endregion
485
486
  //#region src/types/constructTreeState.d.ts
486
- type ConstructTreeState<N extends AnyContextualNode> = {
487
+ type ConstructTreeState<Node extends AnyContextualNode> = {
487
488
  caretPosition: number;
488
- currentNode: N;
489
+ currentNode: Node;
489
490
  rootNode: DocumentNode;
490
491
  currentContext: {
491
492
  type: ConstructTreeContextTypes;
@@ -505,7 +506,7 @@ interface TokenizeHandler {
505
506
  handleContentEnd?: (state: TokenizerState) => void;
506
507
  }
507
508
  declare namespace index_d_exports {
508
- export { AnyContextualNode, AnyNode, AnyToken, AttributeKeyNode, AttributeNode, AttributeValueNode, BaseNode, CommentNode, ConstructTreeHandler, ConstructTreeState, ContextualAttributeNode, ContextualCommentNode, ContextualDoctypeAttributeNode, ContextualDoctypeNode, ContextualDocumentNode, ContextualNode, ContextualTagNode, ContextualXMLDeclarationAttributeNode, ContextualXMLDeclarationNode, DoctypeAttributeNode, DoctypeAttributeValueNode, DoctypeNode, DocumentNode, ESLintComment, ErrorNode, Locations, NestableNode, Options, ParseForESLintResult, ParseResult, PartialBy, Position, Program, Range, SimpleNode, SourceLocation, TagNode, TextNode, Token, TokenizeHandler, TokenizerState, XMLDeclarationAttributeKeyNode, XMLDeclarationAttributeNode, XMLDeclarationAttributeValueNode, XMLDeclarationNode };
509
+ export { AnyContextualNode, AnyNode, AnyToken, AttributeKeyNode, AttributeNode, AttributeValueNode, BaseNode, CommentNode, ConstructTreeHandler, ConstructTreeState, ContextualAttributeNode, ContextualCommentNode, ContextualDoctypeAttributeNode, ContextualDoctypeNode, ContextualDocumentNode, ContextualElementNode, ContextualNode, ContextualXMLDeclarationAttributeNode, ContextualXMLDeclarationNode, DoctypeAttributeNode, DoctypeAttributeValueNode, DoctypeNode, DocumentChildNode, DocumentNode, ESLintComment, ElementChildNode, ElementNode, ErrorNode, Locations, Options, ParseForESLintResult, ParseResult, PartialBy, Position, Program, Range, SimpleNode, SourceLocation, TextNode, Token, TokenizeHandler, TokenizerState, XMLDeclarationAttributeKeyNode, XMLDeclarationAttributeNode, XMLDeclarationAttributeValueNode, XMLDeclarationNode };
509
510
  }
510
511
  //#endregion
511
512
  //#region src/parser/parseForESLint.d.ts
@@ -622,7 +623,7 @@ declare function findFirstNodeByType<T extends NodeTypes>(node: AnyNode, type: T
622
623
  //#endregion
623
624
  //#region src/index.d.ts
624
625
  declare const name: string;
625
- declare const VisitorKeys: eslint0.SourceCode.VisitorKeys;
626
- declare function parse(code: string, options?: Options): Program;
626
+ declare const VisitorKeys: import("eslint").SourceCode.VisitorKeys;
627
+ declare function parse(code: string, options?: Options): DocumentNode;
627
628
  //#endregion
628
- export { type index_d_exports as AST, type ASTVisitor, AnyContextualNode, AnyNode, AnyToken, AttributeKeyNode, AttributeNode, AttributeValueNode, BaseNode, COMMENT_END, COMMENT_START, CommentNode, ConstructTreeContextTypes, ConstructTreeHandler, ConstructTreeState, ContextualAttributeNode, ContextualCommentNode, ContextualDoctypeAttributeNode, ContextualDoctypeNode, ContextualDocumentNode, ContextualNode, ContextualTagNode, ContextualXMLDeclarationAttributeNode, ContextualXMLDeclarationNode, DEPRECATED_SVG_ELEMENTS, DoctypeAttributeNode, DoctypeAttributeValueNode, DoctypeNode, DocumentNode, ESLintComment, ErrorNode, Locations, NestableNode, NodeTypes, Options, ParseError, ParseForESLintResult, ParseResult, PartialBy, Position, Program, RE_CLOSE_TAG_NAME, RE_INCOMPLETE_CLOSING_TAG, RE_OPEN_TAG_NAME, RE_OPEN_TAG_START, Range, SELF_CLOSING_ELEMENTS, SPECIAL_CHAR, SVG_ELEMENTS, SimpleNode, SourceLocation, TagNode, TextNode, Token, TokenTypes, TokenizeHandler, TokenizerContextTypes, TokenizerState, VisitorKeys, XMLDeclarationAttributeKeyNode, XMLDeclarationAttributeNode, XMLDeclarationAttributeValueNode, XMLDeclarationNode, XML_DECLARATION_END, XML_DECLARATION_START, cloneNode, cloneNodeWithParent, countNodes, filterNodes, findFirstNodeByType, findNodeByType, getNodeDepth, getParentChain, isNodeType, mapNodes, meta, name, parse, parseForESLint, traverseAST, validateNode, walkAST };
629
+ export { type index_d_exports as AST, type ASTVisitor, AnyContextualNode, AnyNode, AnyToken, AttributeKeyNode, AttributeNode, AttributeValueNode, BaseNode, COMMENT_END, COMMENT_START, CommentNode, ConstructTreeContextTypes, ConstructTreeHandler, ConstructTreeState, ContextualAttributeNode, ContextualCommentNode, ContextualDoctypeAttributeNode, ContextualDoctypeNode, ContextualDocumentNode, ContextualElementNode, ContextualNode, ContextualXMLDeclarationAttributeNode, ContextualXMLDeclarationNode, DEPRECATED_SVG_ELEMENTS, DoctypeAttributeNode, DoctypeAttributeValueNode, DoctypeNode, DocumentChildNode, DocumentNode, ESLintComment, ElementChildNode, ElementNode, ErrorNode, Locations, NodeTypes, Options, ParseError, ParseForESLintResult, ParseResult, PartialBy, Position, Program, RE_CLOSE_TAG_NAME, RE_INCOMPLETE_CLOSING_TAG, RE_OPEN_TAG_NAME, RE_OPEN_TAG_START, Range, SELF_CLOSING_ELEMENTS, SPECIAL_CHAR, SVG_ELEMENTS, SimpleNode, SourceLocation, TextNode, Token, TokenTypes, TokenizeHandler, TokenizerContextTypes, TokenizerState, VisitorKeys, XMLDeclarationAttributeKeyNode, XMLDeclarationAttributeNode, XMLDeclarationAttributeValueNode, XMLDeclarationNode, XML_DECLARATION_END, XML_DECLARATION_START, cloneNode, cloneNodeWithParent, countNodes, filterNodes, findFirstNodeByType, findNodeByType, getNodeDepth, getParentChain, isNodeType, mapNodes, meta, name, parse, parseForESLint, traverseAST, validateNode, walkAST };