svg-eslint-parser 0.0.6 → 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/README.md +10 -14
- package/dist/chunk-pbuEa-1d.js +13 -0
- package/dist/index.d.ts +36 -24
- package/dist/index.js +442 -508
- package/package.json +31 -29
- package/dist/chunk-CzXV76rE.js +0 -18
package/README.md
CHANGED
|
@@ -85,10 +85,10 @@ import {
|
|
|
85
85
|
} from 'svg-eslint-parser'
|
|
86
86
|
|
|
87
87
|
const { ast } = parseForESLint(svgSource)
|
|
88
|
-
const document = ast.
|
|
88
|
+
const document = ast.document
|
|
89
89
|
|
|
90
90
|
// Find all tag nodes
|
|
91
|
-
const tags = findNodeByType(document, NodeTypes.
|
|
91
|
+
const tags = findNodeByType(document, NodeTypes.Element)
|
|
92
92
|
console.log(`Found ${tags.length} tags`)
|
|
93
93
|
|
|
94
94
|
// Traverse with visitor pattern
|
|
@@ -145,22 +145,18 @@ Returns a Document node directly.
|
|
|
145
145
|
|
|
146
146
|
### Node Types
|
|
147
147
|
|
|
148
|
-
The parser
|
|
148
|
+
The parser currently exposes 16 AST node types:
|
|
149
149
|
|
|
150
|
-
**Document
|
|
150
|
+
**Program & Document**: `Program`, `Document`
|
|
151
151
|
|
|
152
|
-
**
|
|
152
|
+
**Element Tree**: `Element`, `Attribute`, `AttributeKey`, `AttributeValue`, `Text`, `Comment`
|
|
153
153
|
|
|
154
|
-
**
|
|
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
|
|
|
158
|
+
`NodeTypes.Tag` is still available as a deprecated alias of `NodeTypes.Element` for backward compatibility.
|
|
159
|
+
|
|
164
160
|
## Documentation
|
|
165
161
|
|
|
166
162
|
Full documentation is available at [svg-eslint-parser.ntnyq.com](https://svg-eslint-parser.ntnyq.com):
|
|
@@ -190,10 +186,10 @@ const svgCode = `
|
|
|
190
186
|
`
|
|
191
187
|
|
|
192
188
|
const { ast } = parseForESLint(svgCode)
|
|
193
|
-
const document = ast.
|
|
189
|
+
const document = ast.document
|
|
194
190
|
|
|
195
191
|
// Find all tags and filter for circles
|
|
196
|
-
const allTags = findNodeByType(document, NodeTypes.
|
|
192
|
+
const allTags = findNodeByType(document, NodeTypes.Element)
|
|
197
193
|
const circles = allTags.filter(tag => tag.name === 'circle')
|
|
198
194
|
|
|
199
195
|
console.log(`Found ${circles.length} circles`)
|
|
@@ -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,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _$eslint from "eslint";
|
|
2
2
|
import { SourceCode } from "eslint";
|
|
3
3
|
|
|
4
4
|
//#region src/meta.d.ts
|
|
@@ -66,9 +66,11 @@ declare enum NodeTypes {
|
|
|
66
66
|
DoctypeAttribute = "DoctypeAttribute",
|
|
67
67
|
DoctypeAttributeValue = "DoctypeAttributeValue",
|
|
68
68
|
Document = "Document",
|
|
69
|
+
Element = "Element",
|
|
69
70
|
Error = "Error",
|
|
70
71
|
Program = "Program",
|
|
71
|
-
|
|
72
|
+
/** @deprecated Use Element instead. */
|
|
73
|
+
Tag = "Element",
|
|
72
74
|
Text = "Text",
|
|
73
75
|
XMLDeclaration = "XMLDeclaration",
|
|
74
76
|
XMLDeclarationAttribute = "XMLDeclarationAttribute",
|
|
@@ -258,6 +260,10 @@ interface SimpleNode<T extends NodeTypes> extends BaseNode {
|
|
|
258
260
|
value: string;
|
|
259
261
|
}
|
|
260
262
|
type TextNode = SimpleNode<NodeTypes.Text>;
|
|
263
|
+
interface ESLintComment extends Locations {
|
|
264
|
+
type: 'Block' | 'Line';
|
|
265
|
+
value: string;
|
|
266
|
+
}
|
|
261
267
|
/**
|
|
262
268
|
* attribute nodes
|
|
263
269
|
* @pg
|
|
@@ -267,7 +273,7 @@ type AttributeValueNode = SimpleNode<NodeTypes.AttributeValue>;
|
|
|
267
273
|
interface AttributeNode extends BaseNode {
|
|
268
274
|
key: AttributeKeyNode;
|
|
269
275
|
type: NodeTypes.Attribute;
|
|
270
|
-
value
|
|
276
|
+
value?: AttributeValueNode;
|
|
271
277
|
quoteChar?: '"' | "'" | undefined;
|
|
272
278
|
}
|
|
273
279
|
/**
|
|
@@ -293,16 +299,18 @@ interface DoctypeNode extends BaseNode {
|
|
|
293
299
|
type: NodeTypes.Doctype;
|
|
294
300
|
}
|
|
295
301
|
/**
|
|
296
|
-
*
|
|
302
|
+
* element nodes
|
|
297
303
|
* @pg
|
|
298
304
|
*/
|
|
299
|
-
interface
|
|
305
|
+
interface ElementNode extends BaseNode {
|
|
300
306
|
attributes: AttributeNode[];
|
|
301
|
-
children:
|
|
307
|
+
children: ElementChildNode[];
|
|
302
308
|
name: string;
|
|
303
309
|
selfClosing: boolean;
|
|
304
|
-
type: NodeTypes.
|
|
310
|
+
type: NodeTypes.Element;
|
|
305
311
|
}
|
|
312
|
+
/** @deprecated Use ElementNode instead. */
|
|
313
|
+
type TagNode = ElementNode;
|
|
306
314
|
/**
|
|
307
315
|
* XML declaration nodes
|
|
308
316
|
*/
|
|
@@ -311,7 +319,7 @@ type XMLDeclarationAttributeValueNode = SimpleNode<NodeTypes.XMLDeclarationAttri
|
|
|
311
319
|
interface XMLDeclarationAttributeNode extends BaseNode {
|
|
312
320
|
key: XMLDeclarationAttributeKeyNode;
|
|
313
321
|
type: NodeTypes.XMLDeclarationAttribute;
|
|
314
|
-
value
|
|
322
|
+
value?: XMLDeclarationAttributeValueNode;
|
|
315
323
|
quoteChar?: '"' | "'" | undefined;
|
|
316
324
|
}
|
|
317
325
|
interface XMLDeclarationNode extends BaseNode {
|
|
@@ -329,29 +337,31 @@ interface ErrorNode extends BaseNode {
|
|
|
329
337
|
recoveredNode?: AnyNode;
|
|
330
338
|
}
|
|
331
339
|
/**
|
|
332
|
-
*
|
|
340
|
+
* child node
|
|
333
341
|
* @pg
|
|
334
342
|
*/
|
|
335
|
-
type
|
|
343
|
+
type DocumentChildNode = XMLDeclarationNode | DoctypeNode | ElementNode | CommentNode | TextNode;
|
|
344
|
+
type ElementChildNode = ElementNode | CommentNode | TextNode;
|
|
336
345
|
/**
|
|
337
346
|
* program
|
|
338
347
|
* @pg
|
|
339
348
|
*/
|
|
340
349
|
interface Program extends BaseNode {
|
|
341
|
-
body:
|
|
342
|
-
comments:
|
|
350
|
+
body: [];
|
|
351
|
+
comments: ESLintComment[];
|
|
352
|
+
document: DocumentNode;
|
|
343
353
|
tokens: AnyToken[];
|
|
344
354
|
type: NodeTypes.Program;
|
|
345
355
|
}
|
|
346
356
|
interface DocumentNode extends BaseNode {
|
|
347
|
-
children:
|
|
357
|
+
children: DocumentChildNode[];
|
|
348
358
|
type: NodeTypes.Document;
|
|
349
359
|
}
|
|
350
360
|
/**
|
|
351
361
|
* any node
|
|
352
362
|
* @pg
|
|
353
363
|
*/
|
|
354
|
-
type AnyNode = AttributeKeyNode | AttributeNode | AttributeValueNode | CommentNode | DoctypeAttributeNode | DoctypeAttributeValueNode | DoctypeNode | DocumentNode |
|
|
364
|
+
type AnyNode = AttributeKeyNode | AttributeNode | AttributeValueNode | CommentNode | DoctypeAttributeNode | DoctypeAttributeValueNode | DoctypeNode | DocumentNode | ElementNode | ErrorNode | Program | TextNode | XMLDeclarationAttributeKeyNode | XMLDeclarationAttributeNode | XMLDeclarationAttributeValueNode | XMLDeclarationNode;
|
|
355
365
|
//#endregion
|
|
356
366
|
//#region src/types/parse.d.ts
|
|
357
367
|
interface Options {
|
|
@@ -386,7 +396,7 @@ interface ParseResult {
|
|
|
386
396
|
}
|
|
387
397
|
//#endregion
|
|
388
398
|
//#region src/types/contextualNode.d.ts
|
|
389
|
-
type AnyContextualNode = ContextualAttributeNode | ContextualCommentNode | ContextualDoctypeAttributeNode | ContextualDoctypeNode | ContextualDocumentNode |
|
|
399
|
+
type AnyContextualNode = ContextualAttributeNode | ContextualCommentNode | ContextualDoctypeAttributeNode | ContextualDoctypeNode | ContextualDocumentNode | ContextualElementNode | ContextualXMLDeclarationAttributeNode | ContextualXMLDeclarationNode;
|
|
390
400
|
type ContextualAttributeNode = ContextualNode<AttributeNode, 'key' | 'value'>;
|
|
391
401
|
type ContextualCommentNode = ContextualNode<CommentNode, 'content'>;
|
|
392
402
|
type ContextualDoctypeAttributeNode = ContextualNode<DoctypeAttributeNode, 'type' | 'value'>;
|
|
@@ -394,15 +404,17 @@ type ContextualDoctypeNode = ContextualNode<DoctypeNode, 'attributes'> & {
|
|
|
394
404
|
attributes: ContextualDoctypeAttributeNode[];
|
|
395
405
|
};
|
|
396
406
|
type ContextualDocumentNode = Omit<ContextualNode<DocumentNode, never>, 'children'> & {
|
|
397
|
-
children: Array<DocumentNode['children'][number] |
|
|
407
|
+
children: Array<DocumentNode['children'][number] | ContextualCommentNode | ContextualDoctypeNode | ContextualElementNode | ContextualXMLDeclarationNode>;
|
|
398
408
|
};
|
|
399
409
|
type ContextualNode<T extends AnyNode, K extends keyof T> = PartialBy<T, K> & {
|
|
400
410
|
parentRef?: any;
|
|
401
411
|
};
|
|
402
|
-
type
|
|
412
|
+
type ContextualElementNode = ContextualNode<ElementNode, 'attributes' | 'children' | 'name' | 'selfClosing'> & {
|
|
403
413
|
attributes: ContextualAttributeNode[];
|
|
404
|
-
children: Array<ContextualCommentNode |
|
|
414
|
+
children: Array<ContextualCommentNode | ContextualElementNode | ElementNode['children'][number]>;
|
|
405
415
|
};
|
|
416
|
+
/** @deprecated Use ContextualElementNode instead. */
|
|
417
|
+
type ContextualTagNode = ContextualElementNode;
|
|
406
418
|
type ContextualXMLDeclarationAttributeNode = ContextualNode<XMLDeclarationAttributeNode, 'key' | 'value'>;
|
|
407
419
|
type ContextualXMLDeclarationNode = ContextualNode<XMLDeclarationNode, 'attributes'> & {
|
|
408
420
|
attributes: ContextualXMLDeclarationAttributeNode[];
|
|
@@ -479,9 +491,9 @@ type ContextParams = {
|
|
|
479
491
|
};
|
|
480
492
|
//#endregion
|
|
481
493
|
//#region src/types/constructTreeState.d.ts
|
|
482
|
-
type ConstructTreeState<
|
|
494
|
+
type ConstructTreeState<Node extends AnyContextualNode> = {
|
|
483
495
|
caretPosition: number;
|
|
484
|
-
currentNode:
|
|
496
|
+
currentNode: Node;
|
|
485
497
|
rootNode: DocumentNode;
|
|
486
498
|
currentContext: {
|
|
487
499
|
type: ConstructTreeContextTypes;
|
|
@@ -501,7 +513,7 @@ interface TokenizeHandler {
|
|
|
501
513
|
handleContentEnd?: (state: TokenizerState) => void;
|
|
502
514
|
}
|
|
503
515
|
declare namespace index_d_exports {
|
|
504
|
-
export { AnyContextualNode, AnyNode, AnyToken, AttributeKeyNode, AttributeNode, AttributeValueNode, BaseNode, CommentNode, ConstructTreeHandler, ConstructTreeState, ContextualAttributeNode, ContextualCommentNode, ContextualDoctypeAttributeNode, ContextualDoctypeNode, ContextualDocumentNode, ContextualNode, ContextualTagNode, ContextualXMLDeclarationAttributeNode, ContextualXMLDeclarationNode, DoctypeAttributeNode, DoctypeAttributeValueNode, DoctypeNode, DocumentNode, ErrorNode, Locations,
|
|
516
|
+
export { AnyContextualNode, AnyNode, AnyToken, AttributeKeyNode, AttributeNode, AttributeValueNode, BaseNode, CommentNode, ConstructTreeHandler, ConstructTreeState, ContextualAttributeNode, ContextualCommentNode, ContextualDoctypeAttributeNode, ContextualDoctypeNode, ContextualDocumentNode, ContextualElementNode, ContextualNode, ContextualTagNode, ContextualXMLDeclarationAttributeNode, ContextualXMLDeclarationNode, DoctypeAttributeNode, DoctypeAttributeValueNode, DoctypeNode, DocumentChildNode, DocumentNode, ESLintComment, ElementChildNode, ElementNode, ErrorNode, Locations, Options, ParseForESLintResult, ParseResult, PartialBy, Position, Program, Range, SimpleNode, SourceLocation, TagNode, TextNode, Token, TokenizeHandler, TokenizerState, XMLDeclarationAttributeKeyNode, XMLDeclarationAttributeNode, XMLDeclarationAttributeValueNode, XMLDeclarationNode };
|
|
505
517
|
}
|
|
506
518
|
//#endregion
|
|
507
519
|
//#region src/parser/parseForESLint.d.ts
|
|
@@ -618,7 +630,7 @@ declare function findFirstNodeByType<T extends NodeTypes>(node: AnyNode, type: T
|
|
|
618
630
|
//#endregion
|
|
619
631
|
//#region src/index.d.ts
|
|
620
632
|
declare const name: string;
|
|
621
|
-
declare const VisitorKeys:
|
|
622
|
-
declare function parse(code: string, options?: Options):
|
|
633
|
+
declare const VisitorKeys: _$eslint.SourceCode.VisitorKeys;
|
|
634
|
+
declare function parse(code: string, options?: Options): DocumentNode;
|
|
623
635
|
//#endregion
|
|
624
|
-
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, ErrorNode, Locations,
|
|
636
|
+
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, ContextualTagNode, 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, 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 };
|