@markuplint/ml-core 3.15.0 → 4.0.0-alpha.10
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/LICENSE +1 -1
- package/lib/configs.browser.js +11 -11
- package/lib/convert-ruleset.d.ts +1 -1
- package/lib/convert-ruleset.js +3 -8
- package/lib/debug.js +9 -14
- package/lib/index.d.ts +13 -23
- package/lib/index.js +12 -29
- package/lib/ml-core.d.ts +5 -5
- package/lib/ml-core.js +94 -76
- package/lib/ml-dom/helper/accname.d.ts +1 -1
- package/lib/ml-dom/helper/accname.js +12 -19
- package/lib/ml-dom/helper/create-node.d.ts +4 -8
- package/lib/ml-dom/helper/create-node.js +38 -17
- package/lib/ml-dom/helper/debug.d.ts +1 -1
- package/lib/ml-dom/helper/debug.js +13 -22
- package/lib/ml-dom/helper/get-indent.d.ts +18 -0
- package/lib/ml-dom/helper/get-indent.js +112 -0
- package/lib/ml-dom/helper/walkers.d.ts +5 -15
- package/lib/ml-dom/helper/walkers.js +3 -8
- package/lib/ml-dom/index.d.ts +9 -9
- package/lib/ml-dom/index.js +1 -5
- package/lib/ml-dom/manipulations/child-node-methods.d.ts +7 -20
- package/lib/ml-dom/manipulations/child-node-methods.js +13 -25
- package/lib/ml-dom/manipulations/get-children.d.ts +3 -5
- package/lib/ml-dom/manipulations/get-children.js +3 -7
- package/lib/ml-dom/node/attr.d.ts +113 -98
- package/lib/ml-dom/node/attr.js +93 -50
- package/lib/ml-dom/node/block.d.ts +35 -39
- package/lib/ml-dom/node/block.js +8 -14
- package/lib/ml-dom/node/character-data.d.ts +55 -62
- package/lib/ml-dom/node/character-data.js +11 -16
- package/lib/ml-dom/node/child-node.d.ts +8 -15
- package/lib/ml-dom/node/child-node.js +1 -5
- package/lib/ml-dom/node/comment.d.ts +14 -17
- package/lib/ml-dom/node/comment.js +2 -6
- package/lib/ml-dom/node/document-fragment.d.ts +22 -25
- package/lib/ml-dom/node/document-fragment.js +4 -9
- package/lib/ml-dom/node/document-type.d.ts +35 -38
- package/lib/ml-dom/node/document-type.js +8 -14
- package/lib/ml-dom/node/document.d.ts +1598 -1614
- package/lib/ml-dom/node/document.js +330 -275
- package/lib/ml-dom/node/dom-token-list.d.ts +27 -27
- package/lib/ml-dom/node/dom-token-list.js +36 -32
- package/lib/ml-dom/node/element-close-tag.d.ts +20 -0
- package/lib/ml-dom/node/element-close-tag.js +39 -0
- package/lib/ml-dom/node/element.d.ts +1957 -1951
- package/lib/ml-dom/node/element.js +364 -348
- package/lib/ml-dom/node/named-node-map.d.ts +40 -45
- package/lib/ml-dom/node/named-node-map.js +10 -18
- package/lib/ml-dom/node/node-list.d.ts +5 -11
- package/lib/ml-dom/node/node-list.js +8 -16
- package/lib/ml-dom/node/node-store.d.ts +6 -11
- package/lib/ml-dom/node/node-store.js +14 -13
- package/lib/ml-dom/node/node.d.ts +480 -500
- package/lib/ml-dom/node/node.js +83 -73
- package/lib/ml-dom/node/parent-node.d.ts +60 -69
- package/lib/ml-dom/node/parent-node.js +32 -29
- package/lib/ml-dom/node/rule-mapper.d.ts +9 -9
- package/lib/ml-dom/node/rule-mapper.js +26 -21
- package/lib/ml-dom/node/text.d.ts +48 -51
- package/lib/ml-dom/node/text.js +8 -13
- package/lib/ml-dom/node/types.d.ts +42 -90
- package/lib/ml-dom/node/types.js +1 -2
- package/lib/ml-dom/node/unexpected-call-error.d.ts +2 -1
- package/lib/ml-dom/node/unexpected-call-error.js +1 -4
- package/lib/ml-dom/token/token.d.ts +45 -45
- package/lib/ml-dom/token/token.js +32 -26
- package/lib/ml-rule/create-rule.d.ts +2 -4
- package/lib/ml-rule/create-rule.js +1 -5
- package/lib/ml-rule/create-test-rule.d.ts +5 -7
- package/lib/ml-rule/create-test-rule.js +3 -7
- package/lib/ml-rule/index.d.ts +3 -3
- package/lib/ml-rule/index.js +3 -6
- package/lib/ml-rule/ml-rule-context.d.ts +49 -57
- package/lib/ml-rule/ml-rule-context.js +11 -11
- package/lib/ml-rule/ml-rule.d.ts +26 -36
- package/lib/ml-rule/ml-rule.js +34 -31
- package/lib/ml-rule/types.d.ts +18 -33
- package/lib/ml-rule/types.js +1 -2
- package/lib/plugin/index.d.ts +2 -2
- package/lib/plugin/index.js +2 -5
- package/lib/plugin/plugin.d.ts +2 -4
- package/lib/plugin/plugin.js +1 -5
- package/lib/plugin/types.d.ts +6 -6
- package/lib/plugin/types.js +1 -2
- package/lib/ruleset/index.d.ts +5 -5
- package/lib/ruleset/index.js +4 -8
- package/lib/test/index.d.ts +11 -21
- package/lib/test/index.js +18 -24
- package/lib/types.d.ts +11 -11
- package/lib/types.js +1 -2
- package/lib/utils/get-location-from-chars.d.ts +4 -9
- package/lib/utils/get-location-from-chars.js +4 -8
- package/lib/utils/index.d.ts +1 -1
- package/lib/utils/index.js +1 -5
- package/lib/utils/string-splice.js +1 -5
- package/package.json +19 -15
- package/lib/configs.d.ts +0 -2
- package/lib/configs.js +0 -34
- package/lib/ml-dom/helper/getIndent.d.ts +0 -18
- package/lib/ml-dom/helper/getIndent.js +0 -106
- package/test/ml-dom/helper/accname.spec.js +0 -85
- package/test/ml-dom/helper/create-node.spec.js +0 -18
- package/test/ml-dom/index.spec.js +0 -680
- package/test/ml-dom/ml-rule/create-rule.spec.js +0 -108
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.nodeListToDebugMaps = void 0;
|
|
4
|
-
function nodeListToDebugMaps(
|
|
1
|
+
export function nodeListToDebugMaps(
|
|
5
2
|
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
6
3
|
nodeList, withAttr = false) {
|
|
7
|
-
return nodeList
|
|
8
|
-
.map(n => {
|
|
4
|
+
return nodeList.flatMap(n => {
|
|
9
5
|
const r = [];
|
|
10
6
|
if (n.is(n.ELEMENT_NODE) && n.isOmitted) {
|
|
11
7
|
r.push(`[N/A]>[N/A](N/A)${n.nodeName}: ${visibleWhiteSpace(n.raw)}`);
|
|
@@ -13,10 +9,9 @@ nodeList, withAttr = false) {
|
|
|
13
9
|
}
|
|
14
10
|
r.push(tokenDebug(n));
|
|
15
11
|
if (n.is(n.ELEMENT_NODE)) {
|
|
16
|
-
r.push(
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
r.push(` isForeignElement: ${!!n.isForeignElement}`);
|
|
12
|
+
r.push(
|
|
13
|
+
//
|
|
14
|
+
` namespaceURI: ${!!n.namespaceURI}`, ` elementType: ${n.elementType}`, ` isInFragmentDocument: ${n.isInFragmentDocument()}`, ` isForeignElement: ${!!n.isForeignElement}`);
|
|
20
15
|
if (withAttr) {
|
|
21
16
|
r.push(...attributesToDebugMaps(n.attributes)
|
|
22
17
|
.flat()
|
|
@@ -24,15 +19,12 @@ nodeList, withAttr = false) {
|
|
|
24
19
|
}
|
|
25
20
|
}
|
|
26
21
|
return r;
|
|
27
|
-
})
|
|
28
|
-
.flat();
|
|
22
|
+
});
|
|
29
23
|
}
|
|
30
|
-
exports.nodeListToDebugMaps = nodeListToDebugMaps;
|
|
31
24
|
function attributesToDebugMaps(
|
|
32
25
|
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
33
26
|
attributes) {
|
|
34
|
-
return attributes
|
|
35
|
-
.map(n => {
|
|
27
|
+
return attributes.flatMap(n => {
|
|
36
28
|
const r = [
|
|
37
29
|
tokenDebug({
|
|
38
30
|
name: n.name,
|
|
@@ -70,20 +62,19 @@ attributes) {
|
|
|
70
62
|
r.push(` ${tokenDebug(n.endQuote, 'eQ')}`);
|
|
71
63
|
}
|
|
72
64
|
if (n.spacesBeforeName) {
|
|
73
|
-
r.push(
|
|
74
|
-
|
|
65
|
+
r.push(
|
|
66
|
+
//
|
|
67
|
+
` isDirective: ${!!n.isDirective}`, ` isDynamicValue: ${!!n.isDynamicValue}`);
|
|
75
68
|
}
|
|
76
69
|
if (n.candidate) {
|
|
77
70
|
r.push(` candidate: ${visibleWhiteSpace(n.candidate)}`);
|
|
78
71
|
}
|
|
79
72
|
return r;
|
|
80
|
-
})
|
|
81
|
-
.flat();
|
|
73
|
+
});
|
|
82
74
|
}
|
|
83
75
|
function tokenDebug(n, type = '') {
|
|
84
|
-
|
|
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)}`;
|
|
76
|
+
return `[${n.startLine}:${n.startCol}]>[${n.endLine}:${n.endCol}](${n.startOffset},${n.endOffset})${n.nodeName ?? n.potentialName ?? n.name ?? n.type ?? type}: ${visibleWhiteSpace(n.raw)}`;
|
|
86
77
|
}
|
|
87
78
|
function visibleWhiteSpace(chars) {
|
|
88
|
-
return chars.
|
|
79
|
+
return chars.replaceAll('\n', '⏎').replaceAll('\t', '→').replaceAll(/\s/g, '␣');
|
|
89
80
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { MLNode } from '../node/node.js';
|
|
2
|
+
import type { MLText } from '../node/text.js';
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* @deprecated
|
|
6
|
+
* @param node
|
|
7
|
+
*/
|
|
8
|
+
export declare function getIndent(node: MLNode<any, any>): MLDOMIndentation | null;
|
|
9
|
+
declare class MLDOMIndentation {
|
|
10
|
+
#private;
|
|
11
|
+
readonly line: number;
|
|
12
|
+
constructor(originTextNode: MLText<any, any>, raw: string, line: number, parentNode: MLNode<any, any>);
|
|
13
|
+
get raw(): string;
|
|
14
|
+
get type(): 'tab' | 'space' | 'mixed' | 'none';
|
|
15
|
+
get width(): number;
|
|
16
|
+
fix(raw: string): void;
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
2
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
5
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
6
|
+
};
|
|
7
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
+
};
|
|
12
|
+
var _MLDOMIndentation_fixed, _MLDOMIndentation_node, _MLDOMIndentation_parent;
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
* @deprecated
|
|
16
|
+
* @param node
|
|
17
|
+
*/
|
|
18
|
+
export function getIndent(
|
|
19
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
20
|
+
node) {
|
|
21
|
+
const prevToken = node.prevToken;
|
|
22
|
+
if (!prevToken) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
if (node.is(node.TEXT_NODE)) {
|
|
26
|
+
if (node.isRawTextElementContent()) {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
const matched = node.raw.match(/^([\t\v\f\r \u00A0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*\n\s*)\S+/);
|
|
30
|
+
if (matched) {
|
|
31
|
+
const spaces = matched[1];
|
|
32
|
+
if (spaces) {
|
|
33
|
+
const spaceLines = spaces.split(/\r?\n/);
|
|
34
|
+
const line = spaceLines.length + node.startLine - 1;
|
|
35
|
+
const lastSpace = spaceLines.pop();
|
|
36
|
+
if (lastSpace != null) {
|
|
37
|
+
return new MLDOMIndentation(node, lastSpace, line, node);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
if (!prevToken.is(node.TEXT_NODE)) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
// One or more newlines and zero or more spaces or tabs.
|
|
47
|
+
// Or, If textNode is first token and that is filled spaces, tabs and newlines only.
|
|
48
|
+
const matched = isFirstToken(prevToken)
|
|
49
|
+
? prevToken.raw.match(/^(?:[\t ]*\r?\n)*([\t ]*)$/)
|
|
50
|
+
: prevToken.raw.match(/\r?\n([\t ]*)$/);
|
|
51
|
+
// console.log({ [`${this}`]: matched, _: prevToken.raw, f: prevToken._isFirstToken() });
|
|
52
|
+
if (matched) {
|
|
53
|
+
// Spaces will include empty string.
|
|
54
|
+
const spaces = matched[1];
|
|
55
|
+
if (spaces != null) {
|
|
56
|
+
return new MLDOMIndentation(prevToken, spaces, node.startLine, node);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
class MLDOMIndentation {
|
|
62
|
+
constructor(
|
|
63
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
64
|
+
originTextNode, raw, line,
|
|
65
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
66
|
+
parentNode) {
|
|
67
|
+
_MLDOMIndentation_fixed.set(this, void 0);
|
|
68
|
+
_MLDOMIndentation_node.set(this, void 0);
|
|
69
|
+
_MLDOMIndentation_parent.set(this, void 0);
|
|
70
|
+
this.line = line;
|
|
71
|
+
__classPrivateFieldSet(this, _MLDOMIndentation_node, originTextNode, "f");
|
|
72
|
+
__classPrivateFieldSet(this, _MLDOMIndentation_parent, parentNode, "f");
|
|
73
|
+
__classPrivateFieldSet(this, _MLDOMIndentation_fixed, raw, "f");
|
|
74
|
+
}
|
|
75
|
+
get raw() {
|
|
76
|
+
if (!__classPrivateFieldGet(this, _MLDOMIndentation_parent, "f").is(__classPrivateFieldGet(this, _MLDOMIndentation_parent, "f").TEXT_NODE) && this.line !== __classPrivateFieldGet(this, _MLDOMIndentation_node, "f").endLine) {
|
|
77
|
+
return '';
|
|
78
|
+
}
|
|
79
|
+
return __classPrivateFieldGet(this, _MLDOMIndentation_fixed, "f");
|
|
80
|
+
}
|
|
81
|
+
get type() {
|
|
82
|
+
if (!__classPrivateFieldGet(this, _MLDOMIndentation_parent, "f").is(__classPrivateFieldGet(this, _MLDOMIndentation_parent, "f").TEXT_NODE) && this.line !== __classPrivateFieldGet(this, _MLDOMIndentation_node, "f").endLine) {
|
|
83
|
+
return 'none';
|
|
84
|
+
}
|
|
85
|
+
const raw = __classPrivateFieldGet(this, _MLDOMIndentation_fixed, "f");
|
|
86
|
+
return raw === '' ? 'none' : /^\t+$/.test(raw) ? 'tab' : /^[^\t]+$/.test(raw) ? 'space' : 'mixed';
|
|
87
|
+
}
|
|
88
|
+
get width() {
|
|
89
|
+
if (!__classPrivateFieldGet(this, _MLDOMIndentation_parent, "f").is(__classPrivateFieldGet(this, _MLDOMIndentation_parent, "f").TEXT_NODE) && this.line !== __classPrivateFieldGet(this, _MLDOMIndentation_node, "f").endLine) {
|
|
90
|
+
return 0;
|
|
91
|
+
}
|
|
92
|
+
return __classPrivateFieldGet(this, _MLDOMIndentation_fixed, "f").length;
|
|
93
|
+
}
|
|
94
|
+
fix(raw) {
|
|
95
|
+
const current = __classPrivateFieldGet(this, _MLDOMIndentation_fixed, "f");
|
|
96
|
+
__classPrivateFieldSet(this, _MLDOMIndentation_fixed, raw, "f");
|
|
97
|
+
const node = __classPrivateFieldGet(this, _MLDOMIndentation_node, "f");
|
|
98
|
+
const line = node.startLine;
|
|
99
|
+
const lines = node.raw.split(/\r?\n/);
|
|
100
|
+
const index = this.line - line;
|
|
101
|
+
if (lines[index] != null) {
|
|
102
|
+
lines[index] = lines[index].replace(current, __classPrivateFieldGet(this, _MLDOMIndentation_fixed, "f"));
|
|
103
|
+
}
|
|
104
|
+
node.fix(lines.join('\n'));
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
_MLDOMIndentation_fixed = new WeakMap(), _MLDOMIndentation_node = new WeakMap(), _MLDOMIndentation_parent = new WeakMap();
|
|
108
|
+
function isFirstToken(
|
|
109
|
+
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
110
|
+
node) {
|
|
111
|
+
return !node.prevToken;
|
|
112
|
+
}
|
|
@@ -1,16 +1,6 @@
|
|
|
1
|
-
import type { MLNode } from '../node/node';
|
|
1
|
+
import type { MLNode } from '../node/node.js';
|
|
2
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
|
-
|
|
5
|
-
|
|
6
|
-
export
|
|
7
|
-
node: N,
|
|
8
|
-
) => void;
|
|
9
|
-
export declare function syncWalk<T extends RuleConfigValue, O extends PlainData = undefined>(
|
|
10
|
-
nodeList: ReadonlyArray<MLNode<T, O>>,
|
|
11
|
-
walker: SyncWalker<T, O>,
|
|
12
|
-
): void;
|
|
13
|
-
export declare function sequentialWalker<T extends RuleConfigValue, O extends PlainData = undefined, N = MLNode<T, O>>(
|
|
14
|
-
list: ReadonlyArray<N>,
|
|
15
|
-
walker: Walker<T, O, N>,
|
|
16
|
-
): Promise<void>;
|
|
3
|
+
export type Walker<T extends RuleConfigValue, O extends PlainData = undefined, N = MLNode<T, O>> = (node: N) => void | Promise<void> | Promise<void>[];
|
|
4
|
+
export type SyncWalker<T extends RuleConfigValue, O extends PlainData = undefined, N = MLNode<T, O>> = (node: N) => void;
|
|
5
|
+
export declare function syncWalk<T extends RuleConfigValue, O extends PlainData = undefined>(nodeList: ReadonlyArray<MLNode<T, O>>, walker: SyncWalker<T, O>): void;
|
|
6
|
+
export declare function sequentialWalker<T extends RuleConfigValue, O extends PlainData = undefined, N = MLNode<T, O>>(list: ReadonlyArray<N>, walker: Walker<T, O, N>): Promise<void>;
|
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.sequentialWalker = exports.syncWalk = void 0;
|
|
4
|
-
function syncWalk(
|
|
1
|
+
export function syncWalk(
|
|
5
2
|
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
6
3
|
nodeList, walker) {
|
|
7
4
|
for (const node of nodeList) {
|
|
8
5
|
if (node.is(node.ELEMENT_NODE) || node.is(node.MARKUPLINT_PREPROCESSOR_BLOCK)) {
|
|
9
|
-
syncWalk(
|
|
6
|
+
syncWalk([...node.childNodes], walker);
|
|
10
7
|
}
|
|
11
8
|
walker(node);
|
|
12
9
|
}
|
|
13
10
|
}
|
|
14
|
-
|
|
15
|
-
function sequentialWalker(list, walker) {
|
|
11
|
+
export function sequentialWalker(list, walker) {
|
|
16
12
|
if (list.length === 0) {
|
|
17
13
|
return Promise.resolve();
|
|
18
14
|
}
|
|
@@ -51,4 +47,3 @@ function sequentialWalker(list, walker) {
|
|
|
51
47
|
loop();
|
|
52
48
|
return promise;
|
|
53
49
|
}
|
|
54
|
-
exports.sequentialWalker = sequentialWalker;
|
package/lib/ml-dom/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export type { MLAttr as Attr } from './node/attr';
|
|
2
|
-
export type { MLBlock as Block } from './node/block';
|
|
3
|
-
export type { MLComment as Comment } from './node/comment';
|
|
4
|
-
export type { MLDocumentFragment as DocumentFragment } from './node/document-fragment';
|
|
5
|
-
export type { MLDocumentType as DocumentType } from './node/document-type';
|
|
6
|
-
export type { MLElement as Element } from './node/element';
|
|
7
|
-
export type { MLText as Text } from './node/text';
|
|
8
|
-
export type { MLChildNode as ChildNode } from './node/child-node';
|
|
9
|
-
export { MLDocument as Document } from './node/document';
|
|
1
|
+
export type { MLAttr as Attr } from './node/attr.js';
|
|
2
|
+
export type { MLBlock as Block } from './node/block.js';
|
|
3
|
+
export type { MLComment as Comment } from './node/comment.js';
|
|
4
|
+
export type { MLDocumentFragment as DocumentFragment } from './node/document-fragment.js';
|
|
5
|
+
export type { MLDocumentType as DocumentType } from './node/document-type.js';
|
|
6
|
+
export type { MLElement as Element } from './node/element.js';
|
|
7
|
+
export type { MLText as Text } from './node/text.js';
|
|
8
|
+
export type { MLChildNode as ChildNode } from './node/child-node.js';
|
|
9
|
+
export { MLDocument as Document } from './node/document.js';
|
package/lib/ml-dom/index.js
CHANGED
|
@@ -1,5 +1 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Document = void 0;
|
|
4
|
-
var document_1 = require("./node/document");
|
|
5
|
-
Object.defineProperty(exports, "Document", { enumerable: true, get: function () { return document_1.MLDocument; } });
|
|
1
|
+
export { MLDocument as Document } from './node/document.js';
|
|
@@ -1,30 +1,21 @@
|
|
|
1
|
-
import type { MLElement } from '../node/element';
|
|
2
|
-
import type { MLNode } from '../node/node';
|
|
1
|
+
import type { MLElement } from '../node/element.js';
|
|
2
|
+
import type { MLNode } from '../node/node.js';
|
|
3
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 extends PlainData = undefined>(
|
|
9
|
-
node: MLNode<T, O>,
|
|
10
|
-
...additionalNodes: ReadonlyArray<MLNode<T, O> | string>
|
|
11
|
-
): void;
|
|
8
|
+
export declare function before<T extends RuleConfigValue, O extends PlainData = undefined>(node: MLNode<T, O>, ...additionalNodes: ReadonlyArray<MLNode<T, O> | string>): void;
|
|
12
9
|
/**
|
|
13
10
|
*
|
|
14
11
|
* @see https://dom.spec.whatwg.org/#ref-for-dom-childnode-after%E2%91%A0
|
|
15
12
|
*/
|
|
16
|
-
export declare function after<T extends RuleConfigValue, O extends PlainData = undefined>(
|
|
17
|
-
node: MLNode<T, O>,
|
|
18
|
-
...additionalNodes: ReadonlyArray<MLNode<T, O> | string>
|
|
19
|
-
): void;
|
|
13
|
+
export declare function after<T extends RuleConfigValue, O extends PlainData = undefined>(node: MLNode<T, O>, ...additionalNodes: ReadonlyArray<MLNode<T, O> | string>): void;
|
|
20
14
|
/**
|
|
21
15
|
*
|
|
22
16
|
* @see https://dom.spec.whatwg.org/#ref-for-dom-childnode-replacewith%E2%91%A0
|
|
23
17
|
*/
|
|
24
|
-
export declare function replaceWith<T extends RuleConfigValue, O extends PlainData = undefined>(
|
|
25
|
-
node: MLNode<T, O>,
|
|
26
|
-
...additionalNodes: ReadonlyArray<MLNode<T, O> | string>
|
|
27
|
-
): void;
|
|
18
|
+
export declare function replaceWith<T extends RuleConfigValue, O extends PlainData = undefined>(node: MLNode<T, O>, ...additionalNodes: ReadonlyArray<MLNode<T, O> | string>): void;
|
|
28
19
|
/**
|
|
29
20
|
*
|
|
30
21
|
* @see https://dom.spec.whatwg.org/#ref-for-dom-childnode-remove%E2%91%A0
|
|
@@ -34,13 +25,9 @@ export declare function remove<T extends RuleConfigValue, O extends PlainData =
|
|
|
34
25
|
*
|
|
35
26
|
* @see https://dom.spec.whatwg.org/#ref-for-dom-nondocumenttypechildnode-previouselementsibling%E2%91%A0
|
|
36
27
|
*/
|
|
37
|
-
export declare function previousElementSibling<T extends RuleConfigValue, O extends PlainData = undefined>(
|
|
38
|
-
node: MLNode<T, O>,
|
|
39
|
-
): MLElement<T, O> | null;
|
|
28
|
+
export declare function previousElementSibling<T extends RuleConfigValue, O extends PlainData = undefined>(node: MLNode<T, O>): MLElement<T, O> | null;
|
|
40
29
|
/**
|
|
41
30
|
*
|
|
42
31
|
* @see https://dom.spec.whatwg.org/#ref-for-dom-nondocumenttypechildnode-nextelementsibling%E2%91%A0
|
|
43
32
|
*/
|
|
44
|
-
export declare function nextElementSibling<T extends RuleConfigValue, O extends PlainData = undefined>(
|
|
45
|
-
node: MLNode<T, O>,
|
|
46
|
-
): MLElement<T, O> | null;
|
|
33
|
+
export declare function nextElementSibling<T extends RuleConfigValue, O extends PlainData = undefined>(node: MLNode<T, O>): MLElement<T, O> | null;
|
|
@@ -1,66 +1,57 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.nextElementSibling = exports.previousElementSibling = exports.remove = exports.replaceWith = exports.after = exports.before = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const unexpected_call_error_1 = tslib_1.__importDefault(require("../node/unexpected-call-error"));
|
|
1
|
+
import { UnexpectedCallError } from '../node/unexpected-call-error.js';
|
|
6
2
|
/**
|
|
7
3
|
*
|
|
8
4
|
* @see https://dom.spec.whatwg.org/#ref-for-dom-childnode-before%E2%91%A0
|
|
9
5
|
*/
|
|
10
|
-
function before(
|
|
6
|
+
export function before(
|
|
11
7
|
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
12
8
|
node,
|
|
13
9
|
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
14
10
|
...additionalNodes) {
|
|
15
|
-
throw new
|
|
11
|
+
throw new UnexpectedCallError('Not supported "before" method');
|
|
16
12
|
}
|
|
17
|
-
exports.before = before;
|
|
18
13
|
/**
|
|
19
14
|
*
|
|
20
15
|
* @see https://dom.spec.whatwg.org/#ref-for-dom-childnode-after%E2%91%A0
|
|
21
16
|
*/
|
|
22
|
-
function after(
|
|
17
|
+
export function after(
|
|
23
18
|
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
24
19
|
node,
|
|
25
20
|
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
26
21
|
...additionalNodes) {
|
|
27
|
-
throw new
|
|
22
|
+
throw new UnexpectedCallError('Not supported "after" method');
|
|
28
23
|
}
|
|
29
|
-
exports.after = after;
|
|
30
24
|
/**
|
|
31
25
|
*
|
|
32
26
|
* @see https://dom.spec.whatwg.org/#ref-for-dom-childnode-replacewith%E2%91%A0
|
|
33
27
|
*/
|
|
34
|
-
function replaceWith(
|
|
28
|
+
export function replaceWith(
|
|
35
29
|
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
36
30
|
node,
|
|
37
31
|
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
38
32
|
...additionalNodes) {
|
|
39
|
-
throw new
|
|
33
|
+
throw new UnexpectedCallError('Not supported "replaceWith" method');
|
|
40
34
|
}
|
|
41
|
-
exports.replaceWith = replaceWith;
|
|
42
35
|
/**
|
|
43
36
|
*
|
|
44
37
|
* @see https://dom.spec.whatwg.org/#ref-for-dom-childnode-remove%E2%91%A0
|
|
45
38
|
*/
|
|
46
|
-
function remove(
|
|
39
|
+
export function remove(
|
|
47
40
|
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
48
41
|
node) {
|
|
49
|
-
throw new
|
|
42
|
+
throw new UnexpectedCallError('Not supported "remove" method');
|
|
50
43
|
}
|
|
51
|
-
exports.remove = remove;
|
|
52
44
|
/**
|
|
53
45
|
*
|
|
54
46
|
* @see https://dom.spec.whatwg.org/#ref-for-dom-nondocumenttypechildnode-previouselementsibling%E2%91%A0
|
|
55
47
|
*/
|
|
56
|
-
function previousElementSibling(
|
|
48
|
+
export function previousElementSibling(
|
|
57
49
|
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
58
50
|
node) {
|
|
59
|
-
var _a, _b;
|
|
60
51
|
let prevNode = node.prevNode;
|
|
61
52
|
while (prevNode) {
|
|
62
53
|
if (((node.parentNode === null && prevNode.parentNode === null) ||
|
|
63
|
-
|
|
54
|
+
node.parentNode?.uuid === prevNode.parentNode?.uuid) &&
|
|
64
55
|
prevNode.is(prevNode.ELEMENT_NODE)) {
|
|
65
56
|
return prevNode;
|
|
66
57
|
}
|
|
@@ -68,19 +59,17 @@ node) {
|
|
|
68
59
|
}
|
|
69
60
|
return null;
|
|
70
61
|
}
|
|
71
|
-
exports.previousElementSibling = previousElementSibling;
|
|
72
62
|
/**
|
|
73
63
|
*
|
|
74
64
|
* @see https://dom.spec.whatwg.org/#ref-for-dom-nondocumenttypechildnode-nextelementsibling%E2%91%A0
|
|
75
65
|
*/
|
|
76
|
-
function nextElementSibling(
|
|
66
|
+
export function nextElementSibling(
|
|
77
67
|
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
78
68
|
node) {
|
|
79
|
-
var _a, _b;
|
|
80
69
|
let nextNode = node.nextNode;
|
|
81
70
|
while (nextNode) {
|
|
82
71
|
if (((node.parentNode === null && nextNode.parentNode === null) ||
|
|
83
|
-
|
|
72
|
+
node.parentNode?.uuid === nextNode.parentNode?.uuid) &&
|
|
84
73
|
nextNode.is(nextNode.ELEMENT_NODE)) {
|
|
85
74
|
return nextNode;
|
|
86
75
|
}
|
|
@@ -88,4 +77,3 @@ node) {
|
|
|
88
77
|
}
|
|
89
78
|
return null;
|
|
90
79
|
}
|
|
91
|
-
exports.nextElementSibling = nextElementSibling;
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import type { MLElement } from '../node/element';
|
|
2
|
-
import type { MLNode } from '../node/node';
|
|
1
|
+
import type { MLElement } from '../node/element.js';
|
|
2
|
+
import type { MLNode } from '../node/node.js';
|
|
3
3
|
import type { PlainData, RuleConfigValue } from '@markuplint/ml-config';
|
|
4
|
-
export declare function getChildren<T extends RuleConfigValue, O extends PlainData = undefined>(
|
|
5
|
-
node: MLNode<T, O>,
|
|
6
|
-
): HTMLCollectionOf<MLElement<T, O>>;
|
|
4
|
+
export declare function getChildren<T extends RuleConfigValue, O extends PlainData = undefined>(node: MLNode<T, O>): HTMLCollectionOf<MLElement<T, O>>;
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.getChildren = void 0;
|
|
4
|
-
const node_list_1 = require("../node/node-list");
|
|
5
|
-
function getChildren(
|
|
1
|
+
import { toHTMLCollection } from '../node/node-list.js';
|
|
2
|
+
export function getChildren(
|
|
6
3
|
// eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
|
|
7
4
|
node) {
|
|
8
|
-
return
|
|
5
|
+
return toHTMLCollection([...node.childNodes].filter((child) => {
|
|
9
6
|
return child.nodeType === child.ELEMENT_NODE;
|
|
10
7
|
}));
|
|
11
8
|
}
|
|
12
|
-
exports.getChildren = getChildren;
|