@markuplint/ml-core 3.4.0 → 3.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.
- package/lib/configs.js +1 -2
- package/lib/ml-core.d.ts +5 -5
- package/lib/ml-core.js +4 -4
- package/lib/ml-dom/helper/accname.js +18 -7
- package/lib/ml-dom/helper/create-node.d.ts +6 -5
- package/lib/ml-dom/helper/create-node.js +3 -1
- package/lib/ml-dom/helper/debug.js +9 -4
- package/lib/ml-dom/helper/getIndent.js +18 -12
- package/lib/ml-dom/helper/walkers.d.ts +7 -5
- package/lib/ml-dom/helper/walkers.js +4 -2
- package/lib/ml-dom/manipulations/child-node-methods.d.ts +7 -7
- package/lib/ml-dom/manipulations/child-node-methods.js +24 -6
- package/lib/ml-dom/manipulations/get-children.d.ts +2 -2
- package/lib/ml-dom/manipulations/get-children.js +3 -1
- package/lib/ml-dom/node/attr.d.ts +5 -2
- package/lib/ml-dom/node/attr.js +8 -4
- package/lib/ml-dom/node/block.d.ts +6 -2
- package/lib/ml-dom/node/block.js +14 -4
- package/lib/ml-dom/node/character-data.d.ts +2 -2
- package/lib/ml-dom/node/character-data.js +9 -3
- package/lib/ml-dom/node/child-node.d.ts +5 -3
- package/lib/ml-dom/node/child-node.js +3 -1
- package/lib/ml-dom/node/comment.d.ts +2 -2
- package/lib/ml-dom/node/document-fragment.d.ts +2 -2
- package/lib/ml-dom/node/document-type.d.ts +2 -2
- package/lib/ml-dom/node/document-type.js +14 -4
- package/lib/ml-dom/node/document.d.ts +20 -16
- package/lib/ml-dom/node/document.js +44 -19
- package/lib/ml-dom/node/dom-token-list.d.ts +2 -2
- package/lib/ml-dom/node/dom-token-list.js +4 -2
- package/lib/ml-dom/node/element.d.ts +15 -7
- package/lib/ml-dom/node/element.js +76 -27
- package/lib/ml-dom/node/named-node-map.d.ts +3 -3
- package/lib/ml-dom/node/named-node-map.js +11 -4
- package/lib/ml-dom/node/node-list.d.ts +4 -4
- package/lib/ml-dom/node/node-list.js +8 -3
- package/lib/ml-dom/node/node-store.d.ts +8 -3
- package/lib/ml-dom/node/node-store.js +8 -3
- package/lib/ml-dom/node/node.d.ts +2 -2
- package/lib/ml-dom/node/node.js +48 -17
- package/lib/ml-dom/node/parent-node.d.ts +2 -2
- package/lib/ml-dom/node/parent-node.js +15 -6
- package/lib/ml-dom/node/rule-mapper.d.ts +3 -3
- package/lib/ml-dom/node/rule-mapper.js +8 -3
- package/lib/ml-dom/node/text.d.ts +2 -2
- package/lib/ml-dom/node/types.d.ts +18 -6
- package/lib/ml-rule/create-rule.d.ts +4 -2
- package/lib/ml-rule/create-test-rule.d.ts +4 -4
- package/lib/ml-rule/ml-rule-context.d.ts +2 -2
- package/lib/ml-rule/ml-rule-context.js +3 -1
- package/lib/ml-rule/ml-rule.d.ts +14 -6
- package/lib/ml-rule/ml-rule.js +33 -28
- package/lib/ml-rule/types.d.ts +24 -12
- package/lib/plugin/plugin.d.ts +3 -1
- package/lib/plugin/types.d.ts +6 -6
- package/lib/ruleset/index.d.ts +3 -3
- package/lib/ruleset/index.js +4 -4
- package/lib/test/index.d.ts +5 -5
- package/lib/types.d.ts +9 -8
- package/lib/utils/get-location-from-chars.d.ts +1 -1
- package/package.json +14 -13
package/lib/configs.js
CHANGED
|
@@ -22,11 +22,10 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
22
|
__setModuleDefault(result, mod);
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
|
-
var _a;
|
|
26
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
26
|
exports.getPreset = void 0;
|
|
28
27
|
async function getPreset(name) {
|
|
29
|
-
const json = await (
|
|
28
|
+
const json = await Promise.resolve(`${`@markuplint/config-presets/preset.${name}.json`}`).then(s => __importStar(require(s))).catch(() => new Error());
|
|
30
29
|
if (json instanceof Error) {
|
|
31
30
|
throw new ReferenceError(`Preset markuplint:${name} is not found`);
|
|
32
31
|
}
|
package/lib/ml-core.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { MLFabric } from './types';
|
|
2
|
-
import type { RuleConfigValue, Violation } from '@markuplint/ml-config';
|
|
2
|
+
import type { PlainData, RuleConfigValue, Violation } from '@markuplint/ml-config';
|
|
3
3
|
import { ParserError } from '@markuplint/parser-utils';
|
|
4
4
|
import { Document } from './ml-dom';
|
|
5
5
|
export type MLCoreParams = {
|
|
6
|
-
sourceCode: string;
|
|
7
|
-
filename: string;
|
|
8
|
-
debug?: boolean;
|
|
6
|
+
readonly sourceCode: string;
|
|
7
|
+
readonly filename: string;
|
|
8
|
+
readonly debug?: boolean;
|
|
9
9
|
} & MLFabric;
|
|
10
10
|
export declare class MLCore {
|
|
11
11
|
#private;
|
|
@@ -21,7 +21,7 @@ export declare class MLCore {
|
|
|
21
21
|
filename,
|
|
22
22
|
debug,
|
|
23
23
|
}: MLCoreParams);
|
|
24
|
-
get document(): ParserError | Document<RuleConfigValue,
|
|
24
|
+
get document(): ParserError | Document<RuleConfigValue, PlainData>;
|
|
25
25
|
setCode(sourceCode: string): void;
|
|
26
26
|
update({ parser, ruleset, rules, locale, schemas, parserOptions }: Partial<MLFabric>): void;
|
|
27
27
|
verify(fix?: boolean): Promise<Violation[]>;
|
package/lib/ml-core.js
CHANGED
|
@@ -35,8 +35,8 @@ class MLCore {
|
|
|
35
35
|
tslib_1.__classPrivateFieldSet(this, _MLCore_locale, locale, "f");
|
|
36
36
|
tslib_1.__classPrivateFieldSet(this, _MLCore_schemas, schemas, "f");
|
|
37
37
|
tslib_1.__classPrivateFieldSet(this, _MLCore_filename, filename, "f");
|
|
38
|
-
tslib_1.__classPrivateFieldSet(this, _MLCore_rules, rules, "f");
|
|
39
|
-
tslib_1.__classPrivateFieldSet(this, _MLCore_pretenders, pretenders, "f");
|
|
38
|
+
tslib_1.__classPrivateFieldSet(this, _MLCore_rules, rules.slice(), "f");
|
|
39
|
+
tslib_1.__classPrivateFieldSet(this, _MLCore_pretenders, pretenders.slice(), "f");
|
|
40
40
|
this._parse();
|
|
41
41
|
this._createDocument();
|
|
42
42
|
}
|
|
@@ -49,14 +49,14 @@ class MLCore {
|
|
|
49
49
|
this._createDocument();
|
|
50
50
|
}
|
|
51
51
|
update({ parser, ruleset, rules, locale, schemas, parserOptions }) {
|
|
52
|
-
var _a, _b, _c;
|
|
52
|
+
var _a, _b, _c, _d;
|
|
53
53
|
tslib_1.__classPrivateFieldSet(this, _MLCore_parser, parser !== null && parser !== void 0 ? parser : tslib_1.__classPrivateFieldGet(this, _MLCore_parser, "f"), "f");
|
|
54
54
|
tslib_1.__classPrivateFieldSet(this, _MLCore_ruleset, {
|
|
55
55
|
rules: (_a = ruleset === null || ruleset === void 0 ? void 0 : ruleset.rules) !== null && _a !== void 0 ? _a : tslib_1.__classPrivateFieldGet(this, _MLCore_ruleset, "f").rules,
|
|
56
56
|
nodeRules: (_b = ruleset === null || ruleset === void 0 ? void 0 : ruleset.nodeRules) !== null && _b !== void 0 ? _b : tslib_1.__classPrivateFieldGet(this, _MLCore_ruleset, "f").nodeRules,
|
|
57
57
|
childNodeRules: (_c = ruleset === null || ruleset === void 0 ? void 0 : ruleset.childNodeRules) !== null && _c !== void 0 ? _c : tslib_1.__classPrivateFieldGet(this, _MLCore_ruleset, "f").childNodeRules,
|
|
58
58
|
}, "f");
|
|
59
|
-
tslib_1.__classPrivateFieldSet(this, _MLCore_rules, rules !== null &&
|
|
59
|
+
tslib_1.__classPrivateFieldSet(this, _MLCore_rules, (_d = rules === null || rules === void 0 ? void 0 : rules.slice()) !== null && _d !== void 0 ? _d : tslib_1.__classPrivateFieldGet(this, _MLCore_rules, "f"), "f");
|
|
60
60
|
tslib_1.__classPrivateFieldSet(this, _MLCore_locale, locale !== null && locale !== void 0 ? locale : tslib_1.__classPrivateFieldGet(this, _MLCore_locale, "f"), "f");
|
|
61
61
|
tslib_1.__classPrivateFieldSet(this, _MLCore_schemas, schemas !== null && schemas !== void 0 ? schemas : tslib_1.__classPrivateFieldGet(this, _MLCore_schemas, "f"), "f");
|
|
62
62
|
if (parserOptions &&
|
|
@@ -4,7 +4,9 @@ exports.getAccname = void 0;
|
|
|
4
4
|
const ml_spec_1 = require("@markuplint/ml-spec");
|
|
5
5
|
const debug_1 = require("../../debug");
|
|
6
6
|
const accnameLog = debug_1.log.extend('accname');
|
|
7
|
-
function getAccname(
|
|
7
|
+
function getAccname(
|
|
8
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
9
|
+
el, version) {
|
|
8
10
|
let accname = safeGet(el);
|
|
9
11
|
if (accname) {
|
|
10
12
|
return accname;
|
|
@@ -19,11 +21,12 @@ function getAccname(el, version) {
|
|
|
19
21
|
if (isFromContent(el, version)) {
|
|
20
22
|
return Array.from(el.childNodes)
|
|
21
23
|
.map(child => {
|
|
24
|
+
var _a;
|
|
22
25
|
if (child.is(child.ELEMENT_NODE)) {
|
|
23
26
|
return getAccname(child, version);
|
|
24
27
|
}
|
|
25
28
|
if (child.is(child.TEXT_NODE)) {
|
|
26
|
-
return child.textContent
|
|
29
|
+
return (_a = child.textContent) !== null && _a !== void 0 ? _a : '';
|
|
27
30
|
}
|
|
28
31
|
return '';
|
|
29
32
|
})
|
|
@@ -32,7 +35,9 @@ function getAccname(el, version) {
|
|
|
32
35
|
return '';
|
|
33
36
|
}
|
|
34
37
|
exports.getAccname = getAccname;
|
|
35
|
-
function safeGet(
|
|
38
|
+
function safeGet(
|
|
39
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
40
|
+
el) {
|
|
36
41
|
try {
|
|
37
42
|
const name = (0, ml_spec_1.getAccname)(el);
|
|
38
43
|
return name;
|
|
@@ -43,9 +48,11 @@ function safeGet(el) {
|
|
|
43
48
|
return '';
|
|
44
49
|
}
|
|
45
50
|
}
|
|
46
|
-
function getAccnameFromPretender(
|
|
51
|
+
function getAccnameFromPretender(
|
|
52
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
53
|
+
el) {
|
|
47
54
|
var _a, _b;
|
|
48
|
-
if (((_a = el.pretenderContext) === null || _a === void 0 ? void 0 : _a.type) === 'pretender' && ((_b = el.pretenderContext.aria) === null || _b === void 0 ? void 0 : _b.name)) {
|
|
55
|
+
if (((_a = el.pretenderContext) === null || _a === void 0 ? void 0 : _a.type) === 'pretender' && ((_b = el.pretenderContext.aria) === null || _b === void 0 ? void 0 : _b.name) != null) {
|
|
49
56
|
if (typeof el.pretenderContext.aria.name === 'boolean') {
|
|
50
57
|
return 'some-name(Pretender Options)';
|
|
51
58
|
}
|
|
@@ -57,10 +64,14 @@ function getAccnameFromPretender(el) {
|
|
|
57
64
|
}
|
|
58
65
|
return '';
|
|
59
66
|
}
|
|
60
|
-
function isHidden(
|
|
67
|
+
function isHidden(
|
|
68
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
69
|
+
el) {
|
|
61
70
|
return el.getAttribute('aria-hidden') === 'true' || el.hasAttribute('hidden');
|
|
62
71
|
}
|
|
63
|
-
function isFromContent(
|
|
72
|
+
function isFromContent(
|
|
73
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
74
|
+
el, version) {
|
|
64
75
|
var _a;
|
|
65
76
|
const role = (0, ml_spec_1.getComputedRole)(el.ownerMLDocument.specs, el, version);
|
|
66
77
|
return !!((_a = role.role) === null || _a === void 0 ? void 0 : _a.accessibleNameFromContent);
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { MLDocument } from '../node/document';
|
|
2
2
|
import type { MappedNode } from '../node/types';
|
|
3
3
|
import type { MLASTAbstractNode } from '@markuplint/ml-ast';
|
|
4
|
-
import type { RuleConfigValue } from '@markuplint/ml-config';
|
|
5
|
-
export declare function createNode<
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
import type { PlainData, RuleConfigValue } from '@markuplint/ml-config';
|
|
5
|
+
export declare function createNode<
|
|
6
|
+
N extends MLASTAbstractNode,
|
|
7
|
+
T extends RuleConfigValue,
|
|
8
|
+
O extends PlainData = undefined,
|
|
9
|
+
>(astNode: N, document: MLDocument<T, O>): MappedNode<N, T, O>;
|
|
@@ -6,7 +6,9 @@ const comment_1 = require("../node/comment");
|
|
|
6
6
|
const document_type_1 = require("../node/document-type");
|
|
7
7
|
const element_1 = require("../node/element");
|
|
8
8
|
const text_1 = require("../node/text");
|
|
9
|
-
function createNode(astNode,
|
|
9
|
+
function createNode(astNode,
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
11
|
+
document) {
|
|
10
12
|
const _astNode = astNode;
|
|
11
13
|
switch (_astNode.type) {
|
|
12
14
|
case 'doctype': {
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.nodeListToDebugMaps = void 0;
|
|
4
|
-
function nodeListToDebugMaps(
|
|
4
|
+
function nodeListToDebugMaps(
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
6
|
+
nodeList, withAttr = false) {
|
|
5
7
|
return nodeList
|
|
6
8
|
.map(n => {
|
|
7
9
|
const r = [];
|
|
@@ -13,7 +15,7 @@ function nodeListToDebugMaps(nodeList, withAttr = false) {
|
|
|
13
15
|
if (n.is(n.ELEMENT_NODE)) {
|
|
14
16
|
r.push(` namespaceURI: ${!!n.namespaceURI}`);
|
|
15
17
|
r.push(` elementType: ${n.elementType}`);
|
|
16
|
-
r.push(` isInFragmentDocument: ${
|
|
18
|
+
r.push(` isInFragmentDocument: ${n.isInFragmentDocument()}`);
|
|
17
19
|
r.push(` isForeignElement: ${!!n.isForeignElement}`);
|
|
18
20
|
if (withAttr) {
|
|
19
21
|
r.push(...attributesToDebugMaps(n.attributes)
|
|
@@ -26,7 +28,9 @@ function nodeListToDebugMaps(nodeList, withAttr = false) {
|
|
|
26
28
|
.flat();
|
|
27
29
|
}
|
|
28
30
|
exports.nodeListToDebugMaps = nodeListToDebugMaps;
|
|
29
|
-
function attributesToDebugMaps(
|
|
31
|
+
function attributesToDebugMaps(
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
33
|
+
attributes) {
|
|
30
34
|
return attributes
|
|
31
35
|
.map(n => {
|
|
32
36
|
const r = [
|
|
@@ -77,7 +81,8 @@ function attributesToDebugMaps(attributes) {
|
|
|
77
81
|
.flat();
|
|
78
82
|
}
|
|
79
83
|
function tokenDebug(n, type = '') {
|
|
80
|
-
|
|
84
|
+
var _a, _b, _c, _d;
|
|
85
|
+
return `[${n.startLine}:${n.startCol}]>[${n.endLine}:${n.endCol}](${n.startOffset},${n.endOffset})${(_d = (_c = (_b = (_a = n.nodeName) !== null && _a !== void 0 ? _a : n.potentialName) !== null && _b !== void 0 ? _b : n.name) !== null && _c !== void 0 ? _c : n.type) !== null && _d !== void 0 ? _d : type}: ${visibleWhiteSpace(n.raw)}`;
|
|
81
86
|
}
|
|
82
87
|
function visibleWhiteSpace(chars) {
|
|
83
88
|
return chars.replace(/\n/g, '⏎').replace(/\t/g, '→').replace(/\s/g, '␣');
|
|
@@ -8,7 +8,9 @@ const tslib_1 = require("tslib");
|
|
|
8
8
|
* @deprecated
|
|
9
9
|
* @param node
|
|
10
10
|
*/
|
|
11
|
-
function getIndent(
|
|
11
|
+
function getIndent(
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
13
|
+
node) {
|
|
12
14
|
const prevToken = node.prevToken;
|
|
13
15
|
if (!prevToken) {
|
|
14
16
|
return null;
|
|
@@ -51,7 +53,11 @@ function getIndent(node) {
|
|
|
51
53
|
}
|
|
52
54
|
exports.getIndent = getIndent;
|
|
53
55
|
class MLDOMIndentation {
|
|
54
|
-
constructor(
|
|
56
|
+
constructor(
|
|
57
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
58
|
+
originTextNode, raw, line,
|
|
59
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
60
|
+
parentNode) {
|
|
55
61
|
_MLDOMIndentation_fixed.set(this, void 0);
|
|
56
62
|
_MLDOMIndentation_node.set(this, void 0);
|
|
57
63
|
_MLDOMIndentation_parent.set(this, void 0);
|
|
@@ -82,19 +88,19 @@ class MLDOMIndentation {
|
|
|
82
88
|
fix(raw) {
|
|
83
89
|
const current = tslib_1.__classPrivateFieldGet(this, _MLDOMIndentation_fixed, "f");
|
|
84
90
|
tslib_1.__classPrivateFieldSet(this, _MLDOMIndentation_fixed, raw, "f");
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
lines[index] = lines[index].replace(current, tslib_1.__classPrivateFieldGet(this, _MLDOMIndentation_fixed, "f"));
|
|
92
|
-
}
|
|
93
|
-
node.fix(lines.join('\n'));
|
|
91
|
+
const node = tslib_1.__classPrivateFieldGet(this, _MLDOMIndentation_node, "f");
|
|
92
|
+
const line = node.startLine;
|
|
93
|
+
const lines = node.raw.split(/\r?\n/);
|
|
94
|
+
const index = this.line - line;
|
|
95
|
+
if (lines[index] != null) {
|
|
96
|
+
lines[index] = lines[index].replace(current, tslib_1.__classPrivateFieldGet(this, _MLDOMIndentation_fixed, "f"));
|
|
94
97
|
}
|
|
98
|
+
node.fix(lines.join('\n'));
|
|
95
99
|
}
|
|
96
100
|
}
|
|
97
101
|
_MLDOMIndentation_fixed = new WeakMap(), _MLDOMIndentation_node = new WeakMap(), _MLDOMIndentation_parent = new WeakMap();
|
|
98
|
-
function isFirstToken(
|
|
102
|
+
function isFirstToken(
|
|
103
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
104
|
+
node) {
|
|
99
105
|
return !node.prevToken;
|
|
100
106
|
}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import type { MLNode } from '../node/node';
|
|
2
|
-
import type { RuleConfigValue } from '@markuplint/ml-config';
|
|
3
|
-
export type Walker<T extends RuleConfigValue, O =
|
|
2
|
+
import type { PlainData, RuleConfigValue } from '@markuplint/ml-config';
|
|
3
|
+
export type Walker<T extends RuleConfigValue, O extends PlainData = undefined, N = MLNode<T, O>> = (
|
|
4
4
|
node: N,
|
|
5
5
|
) => void | Promise<void> | Promise<void>[];
|
|
6
|
-
export type SyncWalker<T extends RuleConfigValue, O =
|
|
7
|
-
|
|
6
|
+
export type SyncWalker<T extends RuleConfigValue, O extends PlainData = undefined, N = MLNode<T, O>> = (
|
|
7
|
+
node: N,
|
|
8
|
+
) => void;
|
|
9
|
+
export declare function syncWalk<T extends RuleConfigValue, O extends PlainData = undefined>(
|
|
8
10
|
nodeList: ReadonlyArray<MLNode<T, O>>,
|
|
9
11
|
walker: SyncWalker<T, O>,
|
|
10
12
|
): void;
|
|
11
|
-
export declare function sequentialWalker<T extends RuleConfigValue, O =
|
|
13
|
+
export declare function sequentialWalker<T extends RuleConfigValue, O extends PlainData = undefined, N = MLNode<T, O>>(
|
|
12
14
|
list: ReadonlyArray<N>,
|
|
13
15
|
walker: Walker<T, O, N>,
|
|
14
16
|
): Promise<void>;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.sequentialWalker = exports.syncWalk = void 0;
|
|
4
|
-
function syncWalk(
|
|
4
|
+
function syncWalk(
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
6
|
+
nodeList, walker) {
|
|
5
7
|
for (const node of nodeList) {
|
|
6
8
|
if (node.is(node.ELEMENT_NODE) || node.is(node.MARKUPLINT_PREPROCESSOR_BLOCK)) {
|
|
7
9
|
syncWalk(Array.from(node.childNodes), walker);
|
|
@@ -32,7 +34,7 @@ function sequentialWalker(list, walker) {
|
|
|
32
34
|
return;
|
|
33
35
|
}
|
|
34
36
|
const node = list[index];
|
|
35
|
-
if (
|
|
37
|
+
if (node == null) {
|
|
36
38
|
_resolve();
|
|
37
39
|
return;
|
|
38
40
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { MLElement } from '../node/element';
|
|
2
2
|
import type { MLNode } from '../node/node';
|
|
3
|
-
import type { RuleConfigValue } from '@markuplint/ml-config';
|
|
3
|
+
import type { PlainData, RuleConfigValue } from '@markuplint/ml-config';
|
|
4
4
|
/**
|
|
5
5
|
*
|
|
6
6
|
* @see https://dom.spec.whatwg.org/#ref-for-dom-childnode-before%E2%91%A0
|
|
7
7
|
*/
|
|
8
|
-
export declare function before<T extends RuleConfigValue, O =
|
|
8
|
+
export declare function before<T extends RuleConfigValue, O extends PlainData = undefined>(
|
|
9
9
|
node: MLNode<T, O>,
|
|
10
10
|
...additionalNodes: ReadonlyArray<MLNode<T, O> | string>
|
|
11
11
|
): void;
|
|
@@ -13,7 +13,7 @@ export declare function before<T extends RuleConfigValue, O = null>(
|
|
|
13
13
|
*
|
|
14
14
|
* @see https://dom.spec.whatwg.org/#ref-for-dom-childnode-after%E2%91%A0
|
|
15
15
|
*/
|
|
16
|
-
export declare function after<T extends RuleConfigValue, O =
|
|
16
|
+
export declare function after<T extends RuleConfigValue, O extends PlainData = undefined>(
|
|
17
17
|
node: MLNode<T, O>,
|
|
18
18
|
...additionalNodes: ReadonlyArray<MLNode<T, O> | string>
|
|
19
19
|
): void;
|
|
@@ -21,7 +21,7 @@ export declare function after<T extends RuleConfigValue, O = null>(
|
|
|
21
21
|
*
|
|
22
22
|
* @see https://dom.spec.whatwg.org/#ref-for-dom-childnode-replacewith%E2%91%A0
|
|
23
23
|
*/
|
|
24
|
-
export declare function replaceWith<T extends RuleConfigValue, O =
|
|
24
|
+
export declare function replaceWith<T extends RuleConfigValue, O extends PlainData = undefined>(
|
|
25
25
|
node: MLNode<T, O>,
|
|
26
26
|
...additionalNodes: ReadonlyArray<MLNode<T, O> | string>
|
|
27
27
|
): void;
|
|
@@ -29,18 +29,18 @@ export declare function replaceWith<T extends RuleConfigValue, O = null>(
|
|
|
29
29
|
*
|
|
30
30
|
* @see https://dom.spec.whatwg.org/#ref-for-dom-childnode-remove%E2%91%A0
|
|
31
31
|
*/
|
|
32
|
-
export declare function remove<T extends RuleConfigValue, O =
|
|
32
|
+
export declare function remove<T extends RuleConfigValue, O extends PlainData = undefined>(node: MLNode<T, O>): void;
|
|
33
33
|
/**
|
|
34
34
|
*
|
|
35
35
|
* @see https://dom.spec.whatwg.org/#ref-for-dom-nondocumenttypechildnode-previouselementsibling%E2%91%A0
|
|
36
36
|
*/
|
|
37
|
-
export declare function previousElementSibling<T extends RuleConfigValue, O =
|
|
37
|
+
export declare function previousElementSibling<T extends RuleConfigValue, O extends PlainData = undefined>(
|
|
38
38
|
node: MLNode<T, O>,
|
|
39
39
|
): MLElement<T, O> | null;
|
|
40
40
|
/**
|
|
41
41
|
*
|
|
42
42
|
* @see https://dom.spec.whatwg.org/#ref-for-dom-nondocumenttypechildnode-nextelementsibling%E2%91%A0
|
|
43
43
|
*/
|
|
44
|
-
export declare function nextElementSibling<T extends RuleConfigValue, O =
|
|
44
|
+
export declare function nextElementSibling<T extends RuleConfigValue, O extends PlainData = undefined>(
|
|
45
45
|
node: MLNode<T, O>,
|
|
46
46
|
): MLElement<T, O> | null;
|
|
@@ -7,7 +7,11 @@ const unexpected_call_error_1 = tslib_1.__importDefault(require("../node/unexpec
|
|
|
7
7
|
*
|
|
8
8
|
* @see https://dom.spec.whatwg.org/#ref-for-dom-childnode-before%E2%91%A0
|
|
9
9
|
*/
|
|
10
|
-
function before(
|
|
10
|
+
function before(
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
12
|
+
node,
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
14
|
+
...additionalNodes) {
|
|
11
15
|
throw new unexpected_call_error_1.default('Not supported "before" method');
|
|
12
16
|
}
|
|
13
17
|
exports.before = before;
|
|
@@ -15,7 +19,11 @@ exports.before = before;
|
|
|
15
19
|
*
|
|
16
20
|
* @see https://dom.spec.whatwg.org/#ref-for-dom-childnode-after%E2%91%A0
|
|
17
21
|
*/
|
|
18
|
-
function after(
|
|
22
|
+
function after(
|
|
23
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
24
|
+
node,
|
|
25
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
26
|
+
...additionalNodes) {
|
|
19
27
|
throw new unexpected_call_error_1.default('Not supported "after" method');
|
|
20
28
|
}
|
|
21
29
|
exports.after = after;
|
|
@@ -23,7 +31,11 @@ exports.after = after;
|
|
|
23
31
|
*
|
|
24
32
|
* @see https://dom.spec.whatwg.org/#ref-for-dom-childnode-replacewith%E2%91%A0
|
|
25
33
|
*/
|
|
26
|
-
function replaceWith(
|
|
34
|
+
function replaceWith(
|
|
35
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
36
|
+
node,
|
|
37
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
38
|
+
...additionalNodes) {
|
|
27
39
|
throw new unexpected_call_error_1.default('Not supported "replaceWith" method');
|
|
28
40
|
}
|
|
29
41
|
exports.replaceWith = replaceWith;
|
|
@@ -31,7 +43,9 @@ exports.replaceWith = replaceWith;
|
|
|
31
43
|
*
|
|
32
44
|
* @see https://dom.spec.whatwg.org/#ref-for-dom-childnode-remove%E2%91%A0
|
|
33
45
|
*/
|
|
34
|
-
function remove(
|
|
46
|
+
function remove(
|
|
47
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
48
|
+
node) {
|
|
35
49
|
throw new unexpected_call_error_1.default('Not supported "remove" method');
|
|
36
50
|
}
|
|
37
51
|
exports.remove = remove;
|
|
@@ -39,7 +53,9 @@ exports.remove = remove;
|
|
|
39
53
|
*
|
|
40
54
|
* @see https://dom.spec.whatwg.org/#ref-for-dom-nondocumenttypechildnode-previouselementsibling%E2%91%A0
|
|
41
55
|
*/
|
|
42
|
-
function previousElementSibling(
|
|
56
|
+
function previousElementSibling(
|
|
57
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
58
|
+
node) {
|
|
43
59
|
var _a, _b;
|
|
44
60
|
let prevNode = node.prevNode;
|
|
45
61
|
while (prevNode) {
|
|
@@ -57,7 +73,9 @@ exports.previousElementSibling = previousElementSibling;
|
|
|
57
73
|
*
|
|
58
74
|
* @see https://dom.spec.whatwg.org/#ref-for-dom-nondocumenttypechildnode-nextelementsibling%E2%91%A0
|
|
59
75
|
*/
|
|
60
|
-
function nextElementSibling(
|
|
76
|
+
function nextElementSibling(
|
|
77
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
78
|
+
node) {
|
|
61
79
|
var _a, _b;
|
|
62
80
|
let nextNode = node.nextNode;
|
|
63
81
|
while (nextNode) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { MLElement } from '../node/element';
|
|
2
2
|
import type { MLNode } from '../node/node';
|
|
3
|
-
import type { RuleConfigValue } from '@markuplint/ml-config';
|
|
4
|
-
export declare function getChildren<T extends RuleConfigValue, O =
|
|
3
|
+
import type { PlainData, RuleConfigValue } from '@markuplint/ml-config';
|
|
4
|
+
export declare function getChildren<T extends RuleConfigValue, O extends PlainData = undefined>(
|
|
5
5
|
node: MLNode<T, O>,
|
|
6
6
|
): HTMLCollectionOf<MLElement<T, O>>;
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getChildren = void 0;
|
|
4
4
|
const node_list_1 = require("../node/node-list");
|
|
5
|
-
function getChildren(
|
|
5
|
+
function getChildren(
|
|
6
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
7
|
+
node) {
|
|
6
8
|
return (0, node_list_1.toHTMLCollection)(Array.from(node.childNodes).filter((child) => {
|
|
7
9
|
return child.nodeType === child.ELEMENT_NODE;
|
|
8
10
|
}));
|
|
@@ -1,11 +1,14 @@
|
|
|
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
|
|
8
|
+
export declare class MLAttr<T extends RuleConfigValue, O extends PlainData = undefined>
|
|
9
|
+
extends MLNode<T, O, MLASTAttr>
|
|
10
|
+
implements Attr
|
|
11
|
+
{
|
|
9
12
|
#private;
|
|
10
13
|
readonly candidate?: string;
|
|
11
14
|
readonly endQuote: MLToken | null;
|
package/lib/ml-dom/node/attr.js
CHANGED
|
@@ -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(
|
|
13
|
-
|
|
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
|
|
47
|
-
tslib_1.__classPrivateFieldSet(this, _MLAttr_potentialValue, this._astToken.value.raw
|
|
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,9 +2,13 @@ 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 =
|
|
7
|
+
export declare class MLBlock<T extends RuleConfigValue, O extends PlainData = undefined> extends MLNode<
|
|
8
|
+
T,
|
|
9
|
+
O,
|
|
10
|
+
MLASTPreprocessorSpecificBlock
|
|
11
|
+
> {
|
|
8
12
|
readonly isTransparent: boolean;
|
|
9
13
|
constructor(astNode: MLASTPreprocessorSpecificBlock, document: MLDocument<T, O>);
|
|
10
14
|
/**
|
package/lib/ml-dom/node/block.js
CHANGED
|
@@ -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(
|
|
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(
|
|
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(
|
|
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(
|
|
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,10 +1,10 @@
|
|
|
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
5
|
export declare abstract class MLCharacterData<
|
|
6
6
|
T extends RuleConfigValue,
|
|
7
|
-
O =
|
|
7
|
+
O extends PlainData = undefined,
|
|
8
8
|
A extends MLASTAbstractNode = MLASTAbstractNode,
|
|
9
9
|
>
|
|
10
10
|
extends MLNode<T, O, A>
|
|
@@ -50,7 +50,9 @@ class MLCharacterData extends node_1.MLNode {
|
|
|
50
50
|
/**
|
|
51
51
|
* @implements DOM API: `CharacterData`
|
|
52
52
|
*/
|
|
53
|
-
after(
|
|
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(
|
|
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(
|
|
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,11 +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 =
|
|
7
|
+
import type { PlainData, RuleConfigValue } from '@markuplint/ml-config';
|
|
8
|
+
export type MLChildNode<T extends RuleConfigValue, O extends PlainData = undefined> =
|
|
9
9
|
| MLDocumentType<T, O>
|
|
10
10
|
| MLCharacterData<T, O>
|
|
11
11
|
| MLText<T, O>
|
|
12
12
|
| MLElement<T, O>
|
|
13
13
|
| MLBlock<T, O>;
|
|
14
|
-
export declare function isChildNode<T extends RuleConfigValue, 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(
|
|
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,8 +1,8 @@
|
|
|
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 =
|
|
5
|
+
export declare class MLComment<T extends RuleConfigValue, O extends PlainData = undefined>
|
|
6
6
|
extends MLCharacterData<T, O, MLASTComment>
|
|
7
7
|
implements Comment
|
|
8
8
|
{
|