@markuplint/ml-core 3.0.0-alpha.66 → 3.0.0-dev.176

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.
Files changed (124) hide show
  1. package/README.md +12 -3
  2. package/lib/configs.browser.d.ts +2 -0
  3. package/lib/configs.browser.js +12 -0
  4. package/lib/configs.js +4 -1
  5. package/lib/index.d.ts +11 -1
  6. package/lib/ml-core.d.ts +24 -13
  7. package/lib/ml-core.js +16 -10
  8. package/lib/ml-dom/helper/accname.d.ts +2 -1
  9. package/lib/ml-dom/helper/accname.js +62 -2
  10. package/lib/ml-dom/helper/create-node.d.ts +7 -3
  11. package/lib/ml-dom/helper/create-node.js +4 -2
  12. package/lib/ml-dom/helper/debug.js +10 -5
  13. package/lib/ml-dom/helper/getIndent.d.ts +7 -7
  14. package/lib/ml-dom/helper/getIndent.js +18 -12
  15. package/lib/ml-dom/helper/walkers.d.ts +15 -5
  16. package/lib/ml-dom/helper/walkers.js +22 -16
  17. package/lib/ml-dom/index.d.ts +1 -0
  18. package/lib/ml-dom/manipulations/child-node-methods.d.ts +20 -7
  19. package/lib/ml-dom/manipulations/child-node-methods.js +24 -6
  20. package/lib/ml-dom/manipulations/get-children.d.ts +4 -2
  21. package/lib/ml-dom/manipulations/get-children.js +3 -1
  22. package/lib/ml-dom/node/attr.d.ts +94 -91
  23. package/lib/ml-dom/node/attr.js +26 -16
  24. package/lib/ml-dom/node/block.d.ts +36 -32
  25. package/lib/ml-dom/node/block.js +14 -4
  26. package/lib/ml-dom/node/character-data.d.ts +61 -54
  27. package/lib/ml-dom/node/character-data.js +9 -3
  28. package/lib/ml-dom/node/child-node.d.ts +10 -3
  29. package/lib/ml-dom/node/child-node.js +3 -1
  30. package/lib/ml-dom/node/comment.d.ts +16 -13
  31. package/lib/ml-dom/node/document-fragment.d.ts +24 -21
  32. package/lib/ml-dom/node/document-type.d.ts +35 -32
  33. package/lib/ml-dom/node/document-type.js +14 -4
  34. package/lib/ml-dom/node/document.d.ts +1608 -1545
  35. package/lib/ml-dom/node/document.js +125 -33
  36. package/lib/ml-dom/node/dom-token-list.d.ts +27 -27
  37. package/lib/ml-dom/node/dom-token-list.js +15 -13
  38. package/lib/ml-dom/node/element.d.ts +1906 -1817
  39. package/lib/ml-dom/node/element.js +345 -75
  40. package/lib/ml-dom/node/named-node-map.d.ts +45 -40
  41. package/lib/ml-dom/node/named-node-map.js +13 -5
  42. package/lib/ml-dom/node/node-list.d.ts +10 -4
  43. package/lib/ml-dom/node/node-list.js +25 -5
  44. package/lib/ml-dom/node/node-store.d.ts +10 -5
  45. package/lib/ml-dom/node/node-store.js +19 -1
  46. package/lib/ml-dom/node/node.d.ts +494 -467
  47. package/lib/ml-dom/node/node.js +89 -47
  48. package/lib/ml-dom/node/parent-node.d.ts +68 -59
  49. package/lib/ml-dom/node/parent-node.js +15 -6
  50. package/lib/ml-dom/node/rule-mapper.d.ts +9 -9
  51. package/lib/ml-dom/node/rule-mapper.js +11 -3
  52. package/lib/ml-dom/node/text.d.ts +50 -47
  53. package/lib/ml-dom/node/types.d.ts +94 -16
  54. package/lib/ml-dom/node/unexpected-call-error.d.ts +1 -2
  55. package/lib/ml-dom/token/token.d.ts +44 -44
  56. package/lib/ml-rule/create-rule.d.ts +4 -2
  57. package/lib/ml-rule/create-test-rule.d.ts +6 -4
  58. package/lib/ml-rule/ml-rule-context.d.ts +58 -49
  59. package/lib/ml-rule/ml-rule-context.js +23 -4
  60. package/lib/ml-rule/ml-rule.d.ts +36 -26
  61. package/lib/ml-rule/ml-rule.js +39 -34
  62. package/lib/ml-rule/types.d.ts +35 -17
  63. package/lib/plugin/plugin.d.ts +3 -1
  64. package/lib/plugin/types.d.ts +9 -9
  65. package/lib/ruleset/index.d.ts +4 -4
  66. package/lib/ruleset/index.js +4 -4
  67. package/lib/test/index.d.ts +21 -8
  68. package/lib/test/index.js +6 -4
  69. package/lib/types.d.ts +12 -10
  70. package/lib/utils/get-location-from-chars.d.ts +9 -4
  71. package/package.json +21 -15
  72. package/test/ml-dom/helper/accname.spec.js +85 -0
  73. package/test/ml-dom/helper/create-node.spec.js +18 -0
  74. package/test/ml-dom/index.spec.js +680 -0
  75. package/lib/ml-dom/document.d.ts +0 -94
  76. package/lib/ml-dom/document.js +0 -273
  77. package/lib/ml-dom/helper/index.d.ts +0 -4
  78. package/lib/ml-dom/helper/index.js +0 -12
  79. package/lib/ml-dom/helper/mapped-nodes.d.ts +0 -52
  80. package/lib/ml-dom/helper/mapped-nodes.js +0 -2
  81. package/lib/ml-dom/helper/match-selector.d.ts +0 -20
  82. package/lib/ml-dom/helper/match-selector.js +0 -233
  83. package/lib/ml-dom/helper/node-store.d.ts +0 -12
  84. package/lib/ml-dom/helper/node-store.js +0 -28
  85. package/lib/ml-dom/helper/selector.d.ts +0 -11
  86. package/lib/ml-dom/helper/selector.js +0 -549
  87. package/lib/ml-dom/rule-mapper.d.ts +0 -16
  88. package/lib/ml-dom/rule-mapper.js +0 -57
  89. package/lib/ml-dom/tokens/abstract-element.d.ts +0 -54
  90. package/lib/ml-dom/tokens/abstract-element.js +0 -249
  91. package/lib/ml-dom/tokens/attribute.d.ts +0 -42
  92. package/lib/ml-dom/tokens/attribute.js +0 -85
  93. package/lib/ml-dom/tokens/comment.d.ts +0 -12
  94. package/lib/ml-dom/tokens/comment.js +0 -15
  95. package/lib/ml-dom/tokens/doctype.d.ts +0 -18
  96. package/lib/ml-dom/tokens/doctype.js +0 -32
  97. package/lib/ml-dom/tokens/element-close-tag.d.ts +0 -27
  98. package/lib/ml-dom/tokens/element-close-tag.js +0 -45
  99. package/lib/ml-dom/tokens/element.d.ts +0 -26
  100. package/lib/ml-dom/tokens/element.js +0 -66
  101. package/lib/ml-dom/tokens/index.d.ts +0 -10
  102. package/lib/ml-dom/tokens/index.js +0 -26
  103. package/lib/ml-dom/tokens/node.d.ts +0 -46
  104. package/lib/ml-dom/tokens/node.js +0 -126
  105. package/lib/ml-dom/tokens/omitted-element.d.ts +0 -13
  106. package/lib/ml-dom/tokens/omitted-element.js +0 -12
  107. package/lib/ml-dom/tokens/preprocessor-specific-attribute.d.ts +0 -24
  108. package/lib/ml-dom/tokens/preprocessor-specific-attribute.js +0 -37
  109. package/lib/ml-dom/tokens/preprocessor-specific-block.d.ts +0 -14
  110. package/lib/ml-dom/tokens/preprocessor-specific-block.js +0 -16
  111. package/lib/ml-dom/tokens/text.d.ts +0 -19
  112. package/lib/ml-dom/tokens/text.js +0 -26
  113. package/lib/ml-dom/tokens/token.d.ts +0 -16
  114. package/lib/ml-dom/tokens/token.js +0 -55
  115. package/lib/ml-dom/types.d.ts +0 -49
  116. package/lib/ml-dom/types.js +0 -2
  117. package/lib/selector/is-pure-html-element.d.ts +0 -1
  118. package/lib/selector/is-pure-html-element.js +0 -7
  119. package/lib/selector/match-selector.d.ts +0 -14
  120. package/lib/selector/match-selector.js +0 -230
  121. package/lib/selector/selector.d.ts +0 -9
  122. package/lib/selector/selector.js +0 -561
  123. package/tsconfig.test.json +0 -3
  124. package/tsconfig.tsbuildinfo +0 -1
@@ -50,7 +50,9 @@ class MLCharacterData extends node_1.MLNode {
50
50
  /**
51
51
  * @implements DOM API: `CharacterData`
52
52
  */
53
- after(...nodes) {
53
+ after(
54
+ // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
55
+ ...nodes) {
54
56
  (0, child_node_methods_1.after)(this, ...nodes);
55
57
  }
56
58
  // TODO
@@ -58,7 +60,9 @@ class MLCharacterData extends node_1.MLNode {
58
60
  /**
59
61
  * @implements DOM API: `CharacterData`
60
62
  */
61
- before(...nodes) {
63
+ before(
64
+ // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
65
+ ...nodes) {
62
66
  (0, child_node_methods_1.before)(this, ...nodes);
63
67
  }
64
68
  // TODO
@@ -76,7 +80,9 @@ class MLCharacterData extends node_1.MLNode {
76
80
  /**
77
81
  * @implements DOM API: `CharacterData`
78
82
  */
79
- replaceWith(...nodes) {
83
+ replaceWith(
84
+ // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
85
+ ...nodes) {
80
86
  (0, child_node_methods_1.replaceWith)(this, ...nodes);
81
87
  }
82
88
  // TODO
@@ -4,6 +4,13 @@ import type { MLDocumentType } from './document-type';
4
4
  import type { MLElement } from './element';
5
5
  import type { MLNode } from './node';
6
6
  import type { MLText } from './text';
7
- import type { RuleConfigValue } from '@markuplint/ml-config';
8
- export declare type MLChildNode<T extends RuleConfigValue, O = null> = MLDocumentType<T, O> | MLCharacterData<T, O> | MLText<T, O> | MLElement<T, O> | MLBlock<T, O>;
9
- export declare function isChildNode<T extends RuleConfigValue, O = null>(node: MLNode<T, O>): node is MLChildNode<T, O>;
7
+ import type { PlainData, RuleConfigValue } from '@markuplint/ml-config';
8
+ export type MLChildNode<T extends RuleConfigValue, O extends PlainData = undefined> =
9
+ | MLDocumentType<T, O>
10
+ | MLCharacterData<T, O>
11
+ | MLText<T, O>
12
+ | MLElement<T, O>
13
+ | MLBlock<T, O>;
14
+ export declare function isChildNode<T extends RuleConfigValue, O extends PlainData = undefined>(
15
+ node: MLNode<T, O>,
16
+ ): node is MLChildNode<T, O>;
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isChildNode = void 0;
4
- function isChildNode(node) {
4
+ function isChildNode(
5
+ // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
6
+ node) {
5
7
  return (node.is(node.DOCUMENT_TYPE_NODE) ||
6
8
  node.is(node.TEXT_NODE) ||
7
9
  node.is(node.ELEMENT_NODE) ||
@@ -1,17 +1,20 @@
1
1
  import type { CommentNodeType } from './types';
2
2
  import type { MLASTComment } from '@markuplint/ml-ast';
3
- import type { RuleConfigValue } from '@markuplint/ml-config';
3
+ import type { PlainData, RuleConfigValue } from '@markuplint/ml-config';
4
4
  import { MLCharacterData } from './character-data';
5
- export declare class MLComment<T extends RuleConfigValue, O = null> extends MLCharacterData<T, O, MLASTComment> implements Comment {
6
- /**
7
- * Returns a string appropriate for the type of node as `Attr`
8
- *
9
- * @see https://dom.spec.whatwg.org/#ref-for-exclusive-text-node%E2%91%A0
10
- */
11
- get nodeName(): "#comment";
12
- /**
13
- * Returns a number appropriate for the type of `Comment`
14
- */
15
- get nodeType(): CommentNodeType;
16
- get textContent(): string | null;
5
+ export declare class MLComment<T extends RuleConfigValue, O extends PlainData = undefined>
6
+ extends MLCharacterData<T, O, MLASTComment>
7
+ implements Comment
8
+ {
9
+ /**
10
+ * Returns a string appropriate for the type of node as `Attr`
11
+ *
12
+ * @see https://dom.spec.whatwg.org/#ref-for-exclusive-text-node%E2%91%A0
13
+ */
14
+ get nodeName(): '#comment';
15
+ /**
16
+ * Returns a number appropriate for the type of `Comment`
17
+ */
18
+ get nodeType(): CommentNodeType;
19
+ get textContent(): string | null;
17
20
  }
@@ -1,24 +1,27 @@
1
1
  import type { DocumentFragmentNodeType } from './types';
2
- import type { MLASTAbstructNode } from '@markuplint/ml-ast';
3
- import type { RuleConfigValue } from '@markuplint/ml-config';
2
+ import type { MLASTAbstractNode } from '@markuplint/ml-ast';
3
+ import type { PlainData, RuleConfigValue } from '@markuplint/ml-config';
4
4
  import { MLParentNode } from './parent-node';
5
- export declare class MLDocumentFragment<T extends RuleConfigValue, O = null> extends MLParentNode<T, O, MLASTAbstructNode> implements DocumentFragment {
6
- /**
7
- * Returns a string appropriate for the type of node as `DocumentFragment`
8
- *
9
- * @see https://dom.spec.whatwg.org/#ref-for-documentfragment%E2%91%A0%E2%91%A6
10
- */
11
- get nodeName(): "#document-fragment";
12
- /**
13
- * Returns a number appropriate for the type of `DocumentFragment`
14
- */
15
- get nodeType(): DocumentFragmentNodeType;
16
- /**
17
- * **IT THROWS AN ERROR WHEN CALLING THIS.**
18
- *
19
- * @deprecated
20
- * @unsupported
21
- * @implements DOM API: `DocumentFragment`
22
- */
23
- getElementById(elementId: string): HTMLElement | null;
5
+ export declare class MLDocumentFragment<T extends RuleConfigValue, O extends PlainData = undefined>
6
+ extends MLParentNode<T, O, MLASTAbstractNode>
7
+ implements DocumentFragment
8
+ {
9
+ /**
10
+ * Returns a string appropriate for the type of node as `DocumentFragment`
11
+ *
12
+ * @see https://dom.spec.whatwg.org/#ref-for-documentfragment%E2%91%A0%E2%91%A6
13
+ */
14
+ get nodeName(): '#document-fragment';
15
+ /**
16
+ * Returns a number appropriate for the type of `DocumentFragment`
17
+ */
18
+ get nodeType(): DocumentFragmentNodeType;
19
+ /**
20
+ * **IT THROWS AN ERROR WHEN CALLING THIS.**
21
+ *
22
+ * @deprecated
23
+ * @unsupported
24
+ * @implements DOM API: `DocumentFragment`
25
+ */
26
+ getElementById(elementId: string): HTMLElement | null;
24
27
  }
@@ -2,37 +2,40 @@ import type { MLDocument } from './document';
2
2
  import type { MLElement } from './element';
3
3
  import type { DocumentTypeNodeType } from './types';
4
4
  import type { MLASTDoctype } from '@markuplint/ml-ast';
5
- import type { RuleConfigValue } from '@markuplint/ml-config';
5
+ import type { PlainData, RuleConfigValue } from '@markuplint/ml-config';
6
6
  import { MLNode } from './node';
7
- export declare class MLDocumentType<T extends RuleConfigValue, O = null> extends MLNode<T, O, MLASTDoctype> implements DocumentType {
8
- readonly name: string;
9
- readonly publicId: string;
10
- readonly systemId: string;
11
- /**
12
- * Returns a string appropriate for the type of node as `DocumentType`
13
- *
14
- * @see https://dom.spec.whatwg.org/#ref-for-documenttype%E2%91%A0%E2%93%AA
15
- */
16
- get nodeName(): string;
17
- /**
18
- * Returns a number appropriate for the type of `DocumentType`
19
- */
20
- get nodeType(): DocumentTypeNodeType;
21
- constructor(astNode: MLASTDoctype, document: MLDocument<T, O>);
22
- /**
23
- * @implements DOM API: `CharacterData`
24
- */
25
- after(...nodes: (string | MLElement<any, any>)[]): void;
26
- /**
27
- * @implements DOM API: `CharacterData`
28
- */
29
- before(...nodes: (string | MLElement<any, any>)[]): void;
30
- /**
31
- * @implements DOM API: `CharacterData`
32
- */
33
- remove(): void;
34
- /**
35
- * @implements DOM API: `CharacterData`
36
- */
37
- replaceWith(...nodes: (string | MLElement<any, any>)[]): void;
7
+ export declare class MLDocumentType<T extends RuleConfigValue, O extends PlainData = undefined>
8
+ extends MLNode<T, O, MLASTDoctype>
9
+ implements DocumentType
10
+ {
11
+ readonly name: string;
12
+ readonly publicId: string;
13
+ readonly systemId: string;
14
+ constructor(astNode: MLASTDoctype, document: MLDocument<T, O>);
15
+ /**
16
+ * Returns a string appropriate for the type of node as `DocumentType`
17
+ *
18
+ * @see https://dom.spec.whatwg.org/#ref-for-documenttype%E2%91%A0%E2%93%AA
19
+ */
20
+ get nodeName(): string;
21
+ /**
22
+ * Returns a number appropriate for the type of `DocumentType`
23
+ */
24
+ get nodeType(): DocumentTypeNodeType;
25
+ /**
26
+ * @implements DOM API: `CharacterData`
27
+ */
28
+ after(...nodes: (string | MLElement<any, any>)[]): void;
29
+ /**
30
+ * @implements DOM API: `CharacterData`
31
+ */
32
+ before(...nodes: (string | MLElement<any, any>)[]): void;
33
+ /**
34
+ * @implements DOM API: `CharacterData`
35
+ */
36
+ remove(): void;
37
+ /**
38
+ * @implements DOM API: `CharacterData`
39
+ */
40
+ replaceWith(...nodes: (string | MLElement<any, any>)[]): void;
38
41
  }
@@ -4,7 +4,11 @@ exports.MLDocumentType = void 0;
4
4
  const child_node_methods_1 = require("../manipulations/child-node-methods");
5
5
  const node_1 = require("./node");
6
6
  class MLDocumentType extends node_1.MLNode {
7
- constructor(astNode, document) {
7
+ constructor(
8
+ // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
9
+ astNode,
10
+ // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
11
+ document) {
8
12
  super(astNode, document);
9
13
  this.name = astNode.name;
10
14
  this.publicId = astNode.publicId;
@@ -27,13 +31,17 @@ class MLDocumentType extends node_1.MLNode {
27
31
  /**
28
32
  * @implements DOM API: `CharacterData`
29
33
  */
30
- after(...nodes) {
34
+ after(
35
+ // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
36
+ ...nodes) {
31
37
  (0, child_node_methods_1.after)(this, ...nodes);
32
38
  }
33
39
  /**
34
40
  * @implements DOM API: `CharacterData`
35
41
  */
36
- before(...nodes) {
42
+ before(
43
+ // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
44
+ ...nodes) {
37
45
  (0, child_node_methods_1.before)(this, ...nodes);
38
46
  }
39
47
  /**
@@ -45,7 +53,9 @@ class MLDocumentType extends node_1.MLNode {
45
53
  /**
46
54
  * @implements DOM API: `CharacterData`
47
55
  */
48
- replaceWith(...nodes) {
56
+ replaceWith(
57
+ // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
58
+ ...nodes) {
49
59
  (0, child_node_methods_1.replaceWith)(this, ...nodes);
50
60
  }
51
61
  }