@markuplint/ml-core 3.0.0-canary.5 → 3.0.0-dev.177

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 (74) hide show
  1. package/README.md +1 -1
  2. package/lib/configs.browser.d.ts +2 -0
  3. package/lib/configs.browser.js +12 -0
  4. package/lib/configs.js +1 -2
  5. package/lib/index.d.ts +11 -1
  6. package/lib/ml-core.d.ts +23 -12
  7. package/lib/ml-core.js +4 -4
  8. package/lib/ml-dom/helper/accname.js +18 -7
  9. package/lib/ml-dom/helper/create-node.d.ts +6 -2
  10. package/lib/ml-dom/helper/create-node.js +3 -1
  11. package/lib/ml-dom/helper/debug.js +9 -4
  12. package/lib/ml-dom/helper/getIndent.d.ts +7 -7
  13. package/lib/ml-dom/helper/getIndent.js +18 -12
  14. package/lib/ml-dom/helper/walkers.d.ts +15 -5
  15. package/lib/ml-dom/helper/walkers.js +22 -16
  16. package/lib/ml-dom/manipulations/child-node-methods.d.ts +20 -7
  17. package/lib/ml-dom/manipulations/child-node-methods.js +24 -6
  18. package/lib/ml-dom/manipulations/get-children.d.ts +4 -2
  19. package/lib/ml-dom/manipulations/get-children.js +3 -1
  20. package/lib/ml-dom/node/attr.d.ts +94 -91
  21. package/lib/ml-dom/node/attr.js +8 -4
  22. package/lib/ml-dom/node/block.d.ts +36 -32
  23. package/lib/ml-dom/node/block.js +14 -4
  24. package/lib/ml-dom/node/character-data.d.ts +60 -53
  25. package/lib/ml-dom/node/character-data.js +9 -3
  26. package/lib/ml-dom/node/child-node.d.ts +10 -3
  27. package/lib/ml-dom/node/child-node.js +3 -1
  28. package/lib/ml-dom/node/comment.d.ts +16 -13
  29. package/lib/ml-dom/node/document-fragment.d.ts +23 -20
  30. package/lib/ml-dom/node/document-type.d.ts +35 -32
  31. package/lib/ml-dom/node/document-type.js +14 -4
  32. package/lib/ml-dom/node/document.d.ts +1607 -1589
  33. package/lib/ml-dom/node/document.js +56 -19
  34. package/lib/ml-dom/node/dom-token-list.d.ts +26 -26
  35. package/lib/ml-dom/node/dom-token-list.js +9 -7
  36. package/lib/ml-dom/node/element.d.ts +1903 -1889
  37. package/lib/ml-dom/node/element.js +76 -27
  38. package/lib/ml-dom/node/named-node-map.d.ts +45 -40
  39. package/lib/ml-dom/node/named-node-map.js +13 -5
  40. package/lib/ml-dom/node/node-list.d.ts +10 -4
  41. package/lib/ml-dom/node/node-list.js +25 -5
  42. package/lib/ml-dom/node/node-store.d.ts +9 -4
  43. package/lib/ml-dom/node/node-store.js +19 -1
  44. package/lib/ml-dom/node/node.d.ts +493 -473
  45. package/lib/ml-dom/node/node.js +52 -19
  46. package/lib/ml-dom/node/parent-node.d.ts +67 -58
  47. package/lib/ml-dom/node/parent-node.js +15 -6
  48. package/lib/ml-dom/node/rule-mapper.d.ts +7 -7
  49. package/lib/ml-dom/node/rule-mapper.js +11 -3
  50. package/lib/ml-dom/node/text.d.ts +50 -47
  51. package/lib/ml-dom/node/types.d.ts +82 -14
  52. package/lib/ml-dom/node/unexpected-call-error.d.ts +1 -2
  53. package/lib/ml-dom/token/token.d.ts +44 -44
  54. package/lib/ml-rule/create-rule.d.ts +4 -2
  55. package/lib/ml-rule/create-test-rule.d.ts +6 -4
  56. package/lib/ml-rule/ml-rule-context.d.ts +58 -50
  57. package/lib/ml-rule/ml-rule-context.js +4 -2
  58. package/lib/ml-rule/ml-rule.d.ts +36 -26
  59. package/lib/ml-rule/ml-rule.js +37 -32
  60. package/lib/ml-rule/types.d.ts +35 -17
  61. package/lib/plugin/plugin.d.ts +3 -1
  62. package/lib/plugin/types.d.ts +7 -7
  63. package/lib/ruleset/index.d.ts +4 -4
  64. package/lib/ruleset/index.js +4 -4
  65. package/lib/test/index.d.ts +20 -8
  66. package/lib/test/index.js +1 -1
  67. package/lib/types.d.ts +9 -8
  68. package/lib/utils/get-location-from-chars.d.ts +9 -4
  69. package/package.json +21 -15
  70. package/test/ml-dom/helper/accname.spec.js +85 -0
  71. package/test/ml-dom/helper/create-node.spec.js +18 -0
  72. package/test/ml-dom/index.spec.js +680 -0
  73. package/tsconfig.test.json +0 -3
  74. package/tsconfig.tsbuildinfo +0 -1
@@ -1,98 +1,101 @@
1
1
  import type { MLElement } from './element';
2
2
  import type { AttributeNodeType } from './types';
3
3
  import type { MLASTAttr } from '@markuplint/ml-ast';
4
- import type { RuleConfigValue } from '@markuplint/ml-config';
4
+ import type { PlainData, RuleConfigValue } from '@markuplint/ml-config';
5
5
  import { MLToken } from '../token/token';
6
6
  import { MLDomTokenList } from './dom-token-list';
7
7
  import { MLNode } from './node';
8
- export declare class MLAttr<T extends RuleConfigValue, O = null> extends MLNode<T, O, MLASTAttr> implements Attr {
9
- #private;
10
- readonly candidate?: string;
11
- readonly endQuote: MLToken | null;
12
- readonly equal: MLToken | null;
13
- readonly isDirective?: true;
14
- readonly isDuplicatable: boolean;
15
- readonly isDynamicValue?: true;
16
- readonly nameNode: MLToken | null;
17
- /**
18
- * @implements DOM API: `Attr`
19
- * @see https://dom.spec.whatwg.org/#ref-for-dom-node-previoussibling%E2%91%A0
20
- */
21
- readonly ownerElement: MLElement<T, O>;
22
- readonly spacesAfterEqual: MLToken | null;
23
- readonly spacesBeforeEqual: MLToken | null;
24
- readonly spacesBeforeName: MLToken | null;
25
- readonly startQuote: MLToken | null;
26
- readonly valueNode: MLToken | null;
27
- /**
28
- * Returns the "string" if HTML syntax. Otherwise, returns a type in its syntax.
29
- *
30
- * @default "string"
31
- * @implements `@markuplint/ml-core` API: `MLAttr`
32
- */
33
- readonly valueType: 'string' | 'number' | 'boolean' | 'code';
34
- constructor(astToken: MLASTAttr, ownElement: MLElement<T, O>);
35
- /**
36
- * **IT THROWS AN ERROR WHEN CALLING THIS.**
37
- *
38
- * @unsupported
39
- * @implements DOM API: `Attr`
40
- * @see https://dom.spec.whatwg.org/#ref-for-dom-attr-localname
41
- */
42
- get localName(): string;
43
- /**
44
- *
45
- * @implements DOM API: `Attr`
46
- * @see https://dom.spec.whatwg.org/#dom-attr-name
47
- */
48
- get name(): string;
49
- /**
50
- * **IT THROWS AN ERROR WHEN CALLING THIS.**
51
- *
52
- * @unsupported
53
- * @implements DOM API: `Attr`
54
- * @see https://dom.spec.whatwg.org/#ref-for-dom-attr-namespaceuri
55
- */
56
- get namespaceURI(): string | null;
57
- /**
58
- * Returns a string appropriate for the type of node as `Attr`
59
- *
60
- * @see https://dom.spec.whatwg.org/#ref-for-attr%E2%91%A4
61
- */
62
- get nodeName(): string;
63
- /**
64
- * Returns a number appropriate for the type of `Attr`
65
- */
66
- get nodeType(): AttributeNodeType;
67
- get nodeValue(): string;
68
- /**
69
- * **IT THROWS AN ERROR WHEN CALLING THIS.**
70
- *
71
- * @unsupported
72
- * @implements DOM API: `Attr`
73
- * @see https://dom.spec.whatwg.org/#ref-for-dom-attr-prefix
74
- */
75
- get prefix(): string | null;
76
- /**
77
- * @implements `@markuplint/ml-core` API: `MLAttr`
78
- */
79
- get rule(): import("@markuplint/ml-config").RuleInfo<T, O>;
80
- /**
81
- * @implements DOM API: `Attr`
82
- * @see https://dom.spec.whatwg.org/#dom-attr-specified
83
- */
84
- get specified(): true;
85
- /**
86
- * @implements `@markuplint/ml-core` API: `MLAttr`
87
- */
88
- get tokenList(): MLDomTokenList | null;
89
- /**
90
- * @implements DOM API: `Attr`
91
- * @see https://dom.spec.whatwg.org/#dom-attr-value
92
- */
93
- get value(): string;
94
- /**
95
- * @implements `@markuplint/ml-core` API: `MLAttr`
96
- */
97
- toNormalizeString(): string;
8
+ export declare class MLAttr<T extends RuleConfigValue, O extends PlainData = undefined>
9
+ extends MLNode<T, O, MLASTAttr>
10
+ implements Attr
11
+ {
12
+ #private;
13
+ readonly candidate?: string;
14
+ readonly endQuote: MLToken | null;
15
+ readonly equal: MLToken | null;
16
+ readonly isDirective?: true;
17
+ readonly isDuplicatable: boolean;
18
+ readonly isDynamicValue?: true;
19
+ readonly nameNode: MLToken | null;
20
+ /**
21
+ * @implements DOM API: `Attr`
22
+ * @see https://dom.spec.whatwg.org/#ref-for-dom-node-previoussibling%E2%91%A0
23
+ */
24
+ readonly ownerElement: MLElement<T, O>;
25
+ readonly spacesAfterEqual: MLToken | null;
26
+ readonly spacesBeforeEqual: MLToken | null;
27
+ readonly spacesBeforeName: MLToken | null;
28
+ readonly startQuote: MLToken | null;
29
+ readonly valueNode: MLToken | null;
30
+ /**
31
+ * Returns the "string" if HTML syntax. Otherwise, returns a type in its syntax.
32
+ *
33
+ * @default "string"
34
+ * @implements `@markuplint/ml-core` API: `MLAttr`
35
+ */
36
+ readonly valueType: 'string' | 'number' | 'boolean' | 'code';
37
+ constructor(astToken: MLASTAttr, ownElement: MLElement<T, O>);
38
+ /**
39
+ * **IT THROWS AN ERROR WHEN CALLING THIS.**
40
+ *
41
+ * @unsupported
42
+ * @implements DOM API: `Attr`
43
+ * @see https://dom.spec.whatwg.org/#ref-for-dom-attr-localname
44
+ */
45
+ get localName(): string;
46
+ /**
47
+ *
48
+ * @implements DOM API: `Attr`
49
+ * @see https://dom.spec.whatwg.org/#dom-attr-name
50
+ */
51
+ get name(): string;
52
+ /**
53
+ * **IT THROWS AN ERROR WHEN CALLING THIS.**
54
+ *
55
+ * @unsupported
56
+ * @implements DOM API: `Attr`
57
+ * @see https://dom.spec.whatwg.org/#ref-for-dom-attr-namespaceuri
58
+ */
59
+ get namespaceURI(): string | null;
60
+ /**
61
+ * Returns a string appropriate for the type of node as `Attr`
62
+ *
63
+ * @see https://dom.spec.whatwg.org/#ref-for-attr%E2%91%A4
64
+ */
65
+ get nodeName(): string;
66
+ /**
67
+ * Returns a number appropriate for the type of `Attr`
68
+ */
69
+ get nodeType(): AttributeNodeType;
70
+ get nodeValue(): string;
71
+ /**
72
+ * **IT THROWS AN ERROR WHEN CALLING THIS.**
73
+ *
74
+ * @unsupported
75
+ * @implements DOM API: `Attr`
76
+ * @see https://dom.spec.whatwg.org/#ref-for-dom-attr-prefix
77
+ */
78
+ get prefix(): string | null;
79
+ /**
80
+ * @implements `@markuplint/ml-core` API: `MLAttr`
81
+ */
82
+ get rule(): import('@markuplint/ml-config').RuleInfo<T, O>;
83
+ /**
84
+ * @implements DOM API: `Attr`
85
+ * @see https://dom.spec.whatwg.org/#dom-attr-specified
86
+ */
87
+ get specified(): true;
88
+ /**
89
+ * @implements `@markuplint/ml-core` API: `MLAttr`
90
+ */
91
+ get tokenList(): MLDomTokenList | null;
92
+ /**
93
+ * @implements DOM API: `Attr`
94
+ * @see https://dom.spec.whatwg.org/#dom-attr-value
95
+ */
96
+ get value(): string;
97
+ /**
98
+ * @implements `@markuplint/ml-core` API: `MLAttr`
99
+ */
100
+ toNormalizeString(): string;
98
101
  }
@@ -9,8 +9,12 @@ const dom_token_list_1 = require("./dom-token-list");
9
9
  const node_1 = require("./node");
10
10
  const unexpected_call_error_1 = tslib_1.__importDefault(require("./unexpected-call-error"));
11
11
  class MLAttr extends node_1.MLNode {
12
- constructor(astToken, ownElement) {
13
- var _a;
12
+ constructor(
13
+ // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
14
+ astToken,
15
+ // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
16
+ ownElement) {
17
+ var _a, _b, _c, _d;
14
18
  super(astToken, ownElement.ownerMLDocument);
15
19
  this.endQuote = null;
16
20
  this.equal = null;
@@ -43,8 +47,8 @@ class MLAttr extends node_1.MLNode {
43
47
  this.isDynamicValue = this._astToken.isDynamicValue;
44
48
  this.isDirective = this._astToken.isDirective;
45
49
  this.candidate = this._astToken.candidate;
46
- tslib_1.__classPrivateFieldSet(this, _MLAttr_potentialName, this._astToken.potentialName || ((_a = this.nameNode) === null || _a === void 0 ? void 0 : _a.raw) || '', "f");
47
- tslib_1.__classPrivateFieldSet(this, _MLAttr_potentialValue, this._astToken.value.raw || '', "f");
50
+ tslib_1.__classPrivateFieldSet(this, _MLAttr_potentialName, (_c = (_a = this._astToken.potentialName) !== null && _a !== void 0 ? _a : (_b = this.nameNode) === null || _b === void 0 ? void 0 : _b.raw) !== null && _c !== void 0 ? _c : '', "f");
51
+ tslib_1.__classPrivateFieldSet(this, _MLAttr_potentialValue, (_d = this._astToken.value.raw) !== null && _d !== void 0 ? _d : '', "f");
48
52
  }
49
53
  else {
50
54
  this.valueType = this._astToken.valueType;
@@ -2,37 +2,41 @@ import type { MLDocument } from './document';
2
2
  import type { MLElement } from './element';
3
3
  import type { MarkuplintPreprocessorBlockType } from './types';
4
4
  import type { MLASTPreprocessorSpecificBlock } 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 MLBlock<T extends RuleConfigValue, O = null> extends MLNode<T, O, MLASTPreprocessorSpecificBlock> {
8
- readonly isTransparent: boolean;
9
- constructor(astNode: MLASTPreprocessorSpecificBlock, document: MLDocument<T, O>);
10
- /**
11
- * Returns a string appropriate for the type of node as `MLBlock`
12
- *
13
- * @implements `@markuplint/ml-core` API: `MLBlock`
14
- */
15
- get nodeName(): "#ml-block";
16
- /**
17
- * Returns a number appropriate for the type of `MLBlock`
18
- *
19
- * @implements `@markuplint/ml-core` API: `MLBlock`
20
- */
21
- get nodeType(): MarkuplintPreprocessorBlockType;
22
- /**
23
- * @implements DOM API: `ChildNode`
24
- */
25
- after(...nodes: (string | MLElement<any, any>)[]): void;
26
- /**
27
- * @implements DOM API: `ChildNode`
28
- */
29
- before(...nodes: (string | MLElement<any, any>)[]): void;
30
- /**
31
- * @implements DOM API: `ChildNode`
32
- */
33
- remove(): void;
34
- /**
35
- * @implements DOM API: `ChildNode`
36
- */
37
- replaceWith(...nodes: (string | MLElement<any, any>)[]): void;
7
+ export declare class MLBlock<T extends RuleConfigValue, O extends PlainData = undefined> extends MLNode<
8
+ T,
9
+ O,
10
+ MLASTPreprocessorSpecificBlock
11
+ > {
12
+ readonly isTransparent: boolean;
13
+ constructor(astNode: MLASTPreprocessorSpecificBlock, document: MLDocument<T, O>);
14
+ /**
15
+ * Returns a string appropriate for the type of node as `MLBlock`
16
+ *
17
+ * @implements `@markuplint/ml-core` API: `MLBlock`
18
+ */
19
+ get nodeName(): '#ml-block';
20
+ /**
21
+ * Returns a number appropriate for the type of `MLBlock`
22
+ *
23
+ * @implements `@markuplint/ml-core` API: `MLBlock`
24
+ */
25
+ get nodeType(): MarkuplintPreprocessorBlockType;
26
+ /**
27
+ * @implements DOM API: `ChildNode`
28
+ */
29
+ after(...nodes: (string | MLElement<any, any>)[]): void;
30
+ /**
31
+ * @implements DOM API: `ChildNode`
32
+ */
33
+ before(...nodes: (string | MLElement<any, any>)[]): void;
34
+ /**
35
+ * @implements DOM API: `ChildNode`
36
+ */
37
+ remove(): void;
38
+ /**
39
+ * @implements DOM API: `ChildNode`
40
+ */
41
+ replaceWith(...nodes: (string | MLElement<any, any>)[]): void;
38
42
  }
@@ -4,7 +4,11 @@ exports.MLBlock = void 0;
4
4
  const child_node_methods_1 = require("../manipulations/child-node-methods");
5
5
  const node_1 = require("./node");
6
6
  class MLBlock 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
  // TODO:
10
14
  this.isTransparent = true;
@@ -28,13 +32,17 @@ class MLBlock extends node_1.MLNode {
28
32
  /**
29
33
  * @implements DOM API: `ChildNode`
30
34
  */
31
- after(...nodes) {
35
+ after(
36
+ // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
37
+ ...nodes) {
32
38
  (0, child_node_methods_1.after)(this, ...nodes);
33
39
  }
34
40
  /**
35
41
  * @implements DOM API: `ChildNode`
36
42
  */
37
- before(...nodes) {
43
+ before(
44
+ // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
45
+ ...nodes) {
38
46
  (0, child_node_methods_1.before)(this, ...nodes);
39
47
  }
40
48
  /**
@@ -46,7 +54,9 @@ class MLBlock extends node_1.MLNode {
46
54
  /**
47
55
  * @implements DOM API: `ChildNode`
48
56
  */
49
- replaceWith(...nodes) {
57
+ replaceWith(
58
+ // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
59
+ ...nodes) {
50
60
  (0, child_node_methods_1.replaceWith)(this, ...nodes);
51
61
  }
52
62
  }
@@ -1,57 +1,64 @@
1
1
  import type { MLElement } from './element';
2
2
  import type { MLASTAbstractNode } from '@markuplint/ml-ast';
3
- import type { RuleConfigValue } from '@markuplint/ml-config';
3
+ import type { PlainData, RuleConfigValue } from '@markuplint/ml-config';
4
4
  import { MLNode } from './node';
5
- export declare abstract class MLCharacterData<T extends RuleConfigValue, O = null, A extends MLASTAbstractNode = MLASTAbstractNode> extends MLNode<T, O, A> implements CharacterData {
6
- /**
7
- * @implements DOM API: `CharacterData`
8
- * @see https://dom.spec.whatwg.org/#dom-characterdata-data
9
- */
10
- get data(): string;
11
- /**
12
- * **IT THROWS AN ERROR WHEN CALLING THIS.**
13
- *
14
- * @unsupported
15
- * @implements DOM API: `CharacterData`
16
- * @see https://dom.spec.whatwg.org/#dom-characterdata-length
17
- */
18
- get length(): number;
19
- /**
20
- * The element immediately following the specified one in its parent's children list.
21
- *
22
- * @readonly
23
- * @implements DOM API: `CharacterData`
24
- * @see https://dom.spec.whatwg.org/#ref-for-dom-nondocumenttypechildnode-nextelementsibling%E2%91%A1
25
- */
26
- get nextElementSibling(): MLElement<T, O> | null;
27
- get nodeValue(): string | null;
28
- /**
29
- * The element immediately prior the specified one in its parent's children list.
30
- *
31
- * @readonly
32
- * @implements DOM API: `CharacterData`
33
- * @see https://dom.spec.whatwg.org/#ref-for-dom-nondocumenttypechildnode-previouselementsibling%E2%91%A1
34
- */
35
- get previousElementSibling(): MLElement<T, O> | null;
36
- /**
37
- * @implements DOM API: `CharacterData`
38
- */
39
- after(...nodes: (string | MLElement<any, any>)[]): void;
40
- appendData(data: string): void;
41
- /**
42
- * @implements DOM API: `CharacterData`
43
- */
44
- before(...nodes: (string | MLElement<any, any>)[]): void;
45
- deleteData(offset: number, count: number): void;
46
- insertData(offset: number, data: string): void;
47
- /**
48
- * @implements DOM API: `CharacterData`
49
- */
50
- remove(): void;
51
- replaceData(offset: number, count: number, data: string): void;
52
- /**
53
- * @implements DOM API: `CharacterData`
54
- */
55
- replaceWith(...nodes: (string | MLElement<any, any>)[]): void;
56
- substringData(offset: number, count: number): string;
5
+ export declare abstract class MLCharacterData<
6
+ T extends RuleConfigValue,
7
+ O extends PlainData = undefined,
8
+ A extends MLASTAbstractNode = MLASTAbstractNode,
9
+ >
10
+ extends MLNode<T, O, A>
11
+ implements CharacterData
12
+ {
13
+ /**
14
+ * @implements DOM API: `CharacterData`
15
+ * @see https://dom.spec.whatwg.org/#dom-characterdata-data
16
+ */
17
+ get data(): string;
18
+ /**
19
+ * **IT THROWS AN ERROR WHEN CALLING THIS.**
20
+ *
21
+ * @unsupported
22
+ * @implements DOM API: `CharacterData`
23
+ * @see https://dom.spec.whatwg.org/#dom-characterdata-length
24
+ */
25
+ get length(): number;
26
+ /**
27
+ * The element immediately following the specified one in its parent's children list.
28
+ *
29
+ * @readonly
30
+ * @implements DOM API: `CharacterData`
31
+ * @see https://dom.spec.whatwg.org/#ref-for-dom-nondocumenttypechildnode-nextelementsibling%E2%91%A1
32
+ */
33
+ get nextElementSibling(): MLElement<T, O> | null;
34
+ get nodeValue(): string | null;
35
+ /**
36
+ * The element immediately prior the specified one in its parent's children list.
37
+ *
38
+ * @readonly
39
+ * @implements DOM API: `CharacterData`
40
+ * @see https://dom.spec.whatwg.org/#ref-for-dom-nondocumenttypechildnode-previouselementsibling%E2%91%A1
41
+ */
42
+ get previousElementSibling(): MLElement<T, O> | null;
43
+ /**
44
+ * @implements DOM API: `CharacterData`
45
+ */
46
+ after(...nodes: (string | MLElement<any, any>)[]): void;
47
+ appendData(data: string): void;
48
+ /**
49
+ * @implements DOM API: `CharacterData`
50
+ */
51
+ before(...nodes: (string | MLElement<any, any>)[]): void;
52
+ deleteData(offset: number, count: number): void;
53
+ insertData(offset: number, data: string): void;
54
+ /**
55
+ * @implements DOM API: `CharacterData`
56
+ */
57
+ remove(): void;
58
+ replaceData(offset: number, count: number, data: string): void;
59
+ /**
60
+ * @implements DOM API: `CharacterData`
61
+ */
62
+ replaceWith(...nodes: (string | MLElement<any, any>)[]): void;
63
+ substringData(offset: number, count: number): string;
57
64
  }
@@ -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 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
2
  import type { MLASTAbstractNode } from '@markuplint/ml-ast';
3
- import type { RuleConfigValue } from '@markuplint/ml-config';
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, MLASTAbstractNode> 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
  }