@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.
Files changed (105) hide show
  1. package/LICENSE +1 -1
  2. package/lib/configs.browser.js +11 -11
  3. package/lib/convert-ruleset.d.ts +1 -1
  4. package/lib/convert-ruleset.js +3 -8
  5. package/lib/debug.js +9 -14
  6. package/lib/index.d.ts +13 -23
  7. package/lib/index.js +12 -29
  8. package/lib/ml-core.d.ts +5 -5
  9. package/lib/ml-core.js +94 -76
  10. package/lib/ml-dom/helper/accname.d.ts +1 -1
  11. package/lib/ml-dom/helper/accname.js +12 -19
  12. package/lib/ml-dom/helper/create-node.d.ts +4 -8
  13. package/lib/ml-dom/helper/create-node.js +38 -17
  14. package/lib/ml-dom/helper/debug.d.ts +1 -1
  15. package/lib/ml-dom/helper/debug.js +13 -22
  16. package/lib/ml-dom/helper/get-indent.d.ts +18 -0
  17. package/lib/ml-dom/helper/get-indent.js +112 -0
  18. package/lib/ml-dom/helper/walkers.d.ts +5 -15
  19. package/lib/ml-dom/helper/walkers.js +3 -8
  20. package/lib/ml-dom/index.d.ts +9 -9
  21. package/lib/ml-dom/index.js +1 -5
  22. package/lib/ml-dom/manipulations/child-node-methods.d.ts +7 -20
  23. package/lib/ml-dom/manipulations/child-node-methods.js +13 -25
  24. package/lib/ml-dom/manipulations/get-children.d.ts +3 -5
  25. package/lib/ml-dom/manipulations/get-children.js +3 -7
  26. package/lib/ml-dom/node/attr.d.ts +113 -98
  27. package/lib/ml-dom/node/attr.js +93 -50
  28. package/lib/ml-dom/node/block.d.ts +35 -39
  29. package/lib/ml-dom/node/block.js +8 -14
  30. package/lib/ml-dom/node/character-data.d.ts +55 -62
  31. package/lib/ml-dom/node/character-data.js +11 -16
  32. package/lib/ml-dom/node/child-node.d.ts +8 -15
  33. package/lib/ml-dom/node/child-node.js +1 -5
  34. package/lib/ml-dom/node/comment.d.ts +14 -17
  35. package/lib/ml-dom/node/comment.js +2 -6
  36. package/lib/ml-dom/node/document-fragment.d.ts +22 -25
  37. package/lib/ml-dom/node/document-fragment.js +4 -9
  38. package/lib/ml-dom/node/document-type.d.ts +35 -38
  39. package/lib/ml-dom/node/document-type.js +8 -14
  40. package/lib/ml-dom/node/document.d.ts +1598 -1614
  41. package/lib/ml-dom/node/document.js +330 -275
  42. package/lib/ml-dom/node/dom-token-list.d.ts +27 -27
  43. package/lib/ml-dom/node/dom-token-list.js +36 -32
  44. package/lib/ml-dom/node/element-close-tag.d.ts +20 -0
  45. package/lib/ml-dom/node/element-close-tag.js +39 -0
  46. package/lib/ml-dom/node/element.d.ts +1957 -1951
  47. package/lib/ml-dom/node/element.js +364 -348
  48. package/lib/ml-dom/node/named-node-map.d.ts +40 -45
  49. package/lib/ml-dom/node/named-node-map.js +10 -18
  50. package/lib/ml-dom/node/node-list.d.ts +5 -11
  51. package/lib/ml-dom/node/node-list.js +8 -16
  52. package/lib/ml-dom/node/node-store.d.ts +6 -11
  53. package/lib/ml-dom/node/node-store.js +14 -13
  54. package/lib/ml-dom/node/node.d.ts +480 -500
  55. package/lib/ml-dom/node/node.js +83 -73
  56. package/lib/ml-dom/node/parent-node.d.ts +60 -69
  57. package/lib/ml-dom/node/parent-node.js +32 -29
  58. package/lib/ml-dom/node/rule-mapper.d.ts +9 -9
  59. package/lib/ml-dom/node/rule-mapper.js +26 -21
  60. package/lib/ml-dom/node/text.d.ts +48 -51
  61. package/lib/ml-dom/node/text.js +8 -13
  62. package/lib/ml-dom/node/types.d.ts +42 -90
  63. package/lib/ml-dom/node/types.js +1 -2
  64. package/lib/ml-dom/node/unexpected-call-error.d.ts +2 -1
  65. package/lib/ml-dom/node/unexpected-call-error.js +1 -4
  66. package/lib/ml-dom/token/token.d.ts +45 -45
  67. package/lib/ml-dom/token/token.js +32 -26
  68. package/lib/ml-rule/create-rule.d.ts +2 -4
  69. package/lib/ml-rule/create-rule.js +1 -5
  70. package/lib/ml-rule/create-test-rule.d.ts +5 -7
  71. package/lib/ml-rule/create-test-rule.js +3 -7
  72. package/lib/ml-rule/index.d.ts +3 -3
  73. package/lib/ml-rule/index.js +3 -6
  74. package/lib/ml-rule/ml-rule-context.d.ts +49 -57
  75. package/lib/ml-rule/ml-rule-context.js +11 -11
  76. package/lib/ml-rule/ml-rule.d.ts +26 -36
  77. package/lib/ml-rule/ml-rule.js +34 -31
  78. package/lib/ml-rule/types.d.ts +18 -33
  79. package/lib/ml-rule/types.js +1 -2
  80. package/lib/plugin/index.d.ts +2 -2
  81. package/lib/plugin/index.js +2 -5
  82. package/lib/plugin/plugin.d.ts +2 -4
  83. package/lib/plugin/plugin.js +1 -5
  84. package/lib/plugin/types.d.ts +6 -6
  85. package/lib/plugin/types.js +1 -2
  86. package/lib/ruleset/index.d.ts +5 -5
  87. package/lib/ruleset/index.js +4 -8
  88. package/lib/test/index.d.ts +11 -21
  89. package/lib/test/index.js +18 -24
  90. package/lib/types.d.ts +11 -11
  91. package/lib/types.js +1 -2
  92. package/lib/utils/get-location-from-chars.d.ts +4 -9
  93. package/lib/utils/get-location-from-chars.js +4 -8
  94. package/lib/utils/index.d.ts +1 -1
  95. package/lib/utils/index.js +1 -5
  96. package/lib/utils/string-splice.js +1 -5
  97. package/package.json +19 -15
  98. package/lib/configs.d.ts +0 -2
  99. package/lib/configs.js +0 -34
  100. package/lib/ml-dom/helper/getIndent.d.ts +0 -18
  101. package/lib/ml-dom/helper/getIndent.js +0 -106
  102. package/test/ml-dom/helper/accname.spec.js +0 -85
  103. package/test/ml-dom/helper/create-node.spec.js +0 -18
  104. package/test/ml-dom/index.spec.js +0 -680
  105. package/test/ml-dom/ml-rule/create-rule.spec.js +0 -108
@@ -1,11 +1,7 @@
1
- "use strict";
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(` namespaceURI: ${!!n.namespaceURI}`);
17
- r.push(` elementType: ${n.elementType}`);
18
- r.push(` isInFragmentDocument: ${n.isInFragmentDocument()}`);
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(` isDirective: ${!!n.isDirective}`);
74
- r.push(` isDynamicValue: ${!!n.isDynamicValue}`);
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
- 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)}`;
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.replace(/\n/g, '⏎').replace(/\t/g, '→').replace(/\s/g, '␣');
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
- node: N,
5
- ) => void | Promise<void> | Promise<void>[];
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>(
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
- "use strict";
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(Array.from(node.childNodes), walker);
6
+ syncWalk([...node.childNodes], walker);
10
7
  }
11
8
  walker(node);
12
9
  }
13
10
  }
14
- exports.syncWalk = syncWalk;
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;
@@ -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';
@@ -1,5 +1 @@
1
- "use strict";
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
- "use strict";
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 unexpected_call_error_1.default('Not supported "before" method');
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 unexpected_call_error_1.default('Not supported "after" method');
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 unexpected_call_error_1.default('Not supported "replaceWith" method');
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 unexpected_call_error_1.default('Not supported "remove" method');
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
- ((_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.uuid) === ((_b = prevNode.parentNode) === null || _b === void 0 ? void 0 : _b.uuid)) &&
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
- ((_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.uuid) === ((_b = nextNode.parentNode) === null || _b === void 0 ? void 0 : _b.uuid)) &&
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
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
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 (0, node_list_1.toHTMLCollection)(Array.from(node.childNodes).filter((child) => {
5
+ return toHTMLCollection([...node.childNodes].filter((child) => {
9
6
  return child.nodeType === child.ELEMENT_NODE;
10
7
  }));
11
8
  }
12
- exports.getChildren = getChildren;