@markuplint/ml-core 3.5.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.
Files changed (53) hide show
  1. package/lib/index.d.ts +11 -1
  2. package/lib/ml-core.d.ts +22 -11
  3. package/lib/ml-dom/helper/accname.js +3 -2
  4. package/lib/ml-dom/helper/create-node.d.ts +5 -1
  5. package/lib/ml-dom/helper/debug.js +3 -2
  6. package/lib/ml-dom/helper/getIndent.d.ts +7 -7
  7. package/lib/ml-dom/helper/getIndent.js +7 -9
  8. package/lib/ml-dom/helper/walkers.d.ts +14 -4
  9. package/lib/ml-dom/helper/walkers.js +1 -1
  10. package/lib/ml-dom/manipulations/child-node-methods.d.ts +18 -5
  11. package/lib/ml-dom/manipulations/get-children.d.ts +3 -1
  12. package/lib/ml-dom/node/attr.d.ts +93 -90
  13. package/lib/ml-dom/node/attr.js +3 -3
  14. package/lib/ml-dom/node/block.d.ts +35 -31
  15. package/lib/ml-dom/node/character-data.d.ts +59 -52
  16. package/lib/ml-dom/node/child-node.d.ts +9 -2
  17. package/lib/ml-dom/node/comment.d.ts +15 -12
  18. package/lib/ml-dom/node/document-fragment.d.ts +22 -19
  19. package/lib/ml-dom/node/document-type.d.ts +34 -31
  20. package/lib/ml-dom/node/document.d.ts +1600 -1583
  21. package/lib/ml-dom/node/document.js +15 -12
  22. package/lib/ml-dom/node/dom-token-list.d.ts +26 -26
  23. package/lib/ml-dom/node/dom-token-list.js +1 -1
  24. package/lib/ml-dom/node/element.d.ts +1902 -1896
  25. package/lib/ml-dom/node/element.js +18 -13
  26. package/lib/ml-dom/node/named-node-map.d.ts +44 -39
  27. package/lib/ml-dom/node/named-node-map.js +2 -1
  28. package/lib/ml-dom/node/node-list.d.ts +9 -3
  29. package/lib/ml-dom/node/node-list.js +2 -1
  30. package/lib/ml-dom/node/node-store.d.ts +8 -3
  31. package/lib/ml-dom/node/node.d.ts +491 -471
  32. package/lib/ml-dom/node/node.js +6 -3
  33. package/lib/ml-dom/node/parent-node.d.ts +66 -57
  34. package/lib/ml-dom/node/parent-node.js +6 -3
  35. package/lib/ml-dom/node/rule-mapper.d.ts +7 -7
  36. package/lib/ml-dom/node/rule-mapper.js +2 -1
  37. package/lib/ml-dom/node/text.d.ts +49 -46
  38. package/lib/ml-dom/node/types.d.ts +80 -12
  39. package/lib/ml-dom/node/unexpected-call-error.d.ts +1 -2
  40. package/lib/ml-dom/token/token.d.ts +44 -44
  41. package/lib/ml-rule/create-rule.d.ts +3 -1
  42. package/lib/ml-rule/create-test-rule.d.ts +5 -3
  43. package/lib/ml-rule/ml-rule-context.d.ts +55 -47
  44. package/lib/ml-rule/ml-rule.d.ts +33 -23
  45. package/lib/ml-rule/ml-rule.js +4 -5
  46. package/lib/ml-rule/types.d.ts +31 -13
  47. package/lib/plugin/plugin.d.ts +3 -1
  48. package/lib/plugin/types.d.ts +5 -5
  49. package/lib/ruleset/index.d.ts +4 -4
  50. package/lib/test/index.d.ts +19 -7
  51. package/lib/types.d.ts +8 -8
  52. package/lib/utils/get-location-from-chars.d.ts +9 -4
  53. package/package.json +10 -11
@@ -639,7 +639,8 @@ class MLElement extends parent_node_1.MLParentNode {
639
639
  * @see https://dom.spec.whatwg.org/#ref-for-dom-element-id%E2%91%A0
640
640
  */
641
641
  get id() {
642
- return this.getAttribute('id') || '';
642
+ var _a;
643
+ return (_a = this.getAttribute('id')) !== null && _a !== void 0 ? _a : '';
643
644
  }
644
645
  /**
645
646
  * **IT THROWS AN ERROR WHEN CALLING THIS.**
@@ -1789,7 +1790,7 @@ class MLElement extends parent_node_1.MLParentNode {
1789
1790
  return (0, child_node_methods_1.previousElementSibling)(this);
1790
1791
  }
1791
1792
  get raw() {
1792
- var _a, _b;
1793
+ var _a, _b, _c;
1793
1794
  if (((_a = this.pretenderContext) === null || _a === void 0 ? void 0 : _a.type) === 'pretender') {
1794
1795
  return this.originRaw;
1795
1796
  }
@@ -1800,7 +1801,7 @@ class MLElement extends parent_node_1.MLParentNode {
1800
1801
  gap = gap + this.fixedNodeName.length - this.nodeName.length;
1801
1802
  }
1802
1803
  for (const attr of Array.from(this.attributes)) {
1803
- const startOffset = (((_b = attr.spacesBeforeName) === null || _b === void 0 ? void 0 : _b.startOffset) || attr.startOffset) - this.startOffset;
1804
+ const startOffset = ((_c = (_b = attr.spacesBeforeName) === null || _b === void 0 ? void 0 : _b.startOffset) !== null && _c !== void 0 ? _c : attr.startOffset) - this.startOffset;
1804
1805
  const fixedAttr = attr.toString();
1805
1806
  if (attr.originRaw !== fixedAttr) {
1806
1807
  fixed = (0, string_splice_1.stringSplice)(fixed, startOffset + gap, attr.originRaw.length, fixedAttr);
@@ -1890,7 +1891,8 @@ class MLElement extends parent_node_1.MLParentNode {
1890
1891
  * @see https://dom.spec.whatwg.org/#ref-for-dom-element-slot%E2%91%A0
1891
1892
  */
1892
1893
  get slot() {
1893
- return this.getAttribute('slot') || '';
1894
+ var _a;
1895
+ return (_a = this.getAttribute('slot')) !== null && _a !== void 0 ? _a : '';
1894
1896
  }
1895
1897
  /**
1896
1898
  * **IT THROWS AN ERROR WHEN CALLING THIS.**
@@ -1947,7 +1949,7 @@ class MLElement extends parent_node_1.MLParentNode {
1947
1949
  }
1948
1950
  get textContent() {
1949
1951
  return Array.from(this.childNodes)
1950
- .map(child => child.textContent || '')
1952
+ .map(child => { var _a; return (_a = child.textContent) !== null && _a !== void 0 ? _a : ''; })
1951
1953
  .join('');
1952
1954
  }
1953
1955
  /**
@@ -2135,7 +2137,8 @@ class MLElement extends parent_node_1.MLParentNode {
2135
2137
  * @see https://dom.spec.whatwg.org/#dom-element-getattributenode
2136
2138
  */
2137
2139
  getAttributeNode(qualifiedName) {
2138
- return this.getAttributeToken(qualifiedName)[0] || null;
2140
+ var _a;
2141
+ return (_a = this.getAttributeToken(qualifiedName)[0]) !== null && _a !== void 0 ? _a : null;
2139
2142
  }
2140
2143
  /**
2141
2144
  * **IT THROWS AN ERROR WHEN CALLING THIS.**
@@ -2284,7 +2287,7 @@ class MLElement extends parent_node_1.MLParentNode {
2284
2287
  * @see https://dom.spec.whatwg.org/#dom-element-hasattributes
2285
2288
  */
2286
2289
  hasAttributes() {
2287
- return !!this.attributes.length;
2290
+ return this.attributes.length > 0;
2288
2291
  }
2289
2292
  /**
2290
2293
  * @implements `@markuplint/ml-core` API: `MLElement`
@@ -2400,14 +2403,15 @@ class MLElement extends parent_node_1.MLParentNode {
2400
2403
  */
2401
2404
  matches(selector) {
2402
2405
  var _a;
2403
- return !!(0, selector_1.createSelector)(selector, this.ownerMLDocument.specs).match(
2406
+ return ((0, selector_1.createSelector)(selector, this.ownerMLDocument.specs).match(
2404
2407
  // Prioritize the pretender
2405
- ((_a = this.pretenderContext) === null || _a === void 0 ? void 0 : _a.type) === 'pretender' ? this.pretenderContext.as : this);
2408
+ ((_a = this.pretenderContext) === null || _a === void 0 ? void 0 : _a.type) === 'pretender' ? this.pretenderContext.as : this) !== false);
2406
2409
  }
2407
2410
  /**
2408
2411
  * Pretenders Initialization
2409
2412
  */
2410
2413
  pretending(pretenders) {
2414
+ var _a;
2411
2415
  const pretenderConfig = pretenders === null || pretenders === void 0 ? void 0 : pretenders.find(option => this.matches(option.selector));
2412
2416
  if (!pretenderConfig) {
2413
2417
  return;
@@ -2421,16 +2425,17 @@ class MLElement extends parent_node_1.MLParentNode {
2421
2425
  }
2422
2426
  else {
2423
2427
  nodeName = pretenderConfig.as.element;
2424
- namespace = pretenderConfig.as.namespace || namespace;
2428
+ namespace = (_a = pretenderConfig.as.namespace) !== null && _a !== void 0 ? _a : namespace;
2425
2429
  if (pretenderConfig.as.inheritAttrs) {
2426
2430
  attributes.push(...this._astToken.attributes);
2427
2431
  }
2428
2432
  if (pretenderConfig.as.attrs) {
2429
2433
  attributes.push(...pretenderConfig.as.attrs.map(({ name, value }, i) => {
2430
- const _value = value
2434
+ var _a;
2435
+ const _value = value != null
2431
2436
  ? typeof value === 'string'
2432
2437
  ? value
2433
- : this.getAttribute(value.fromAttr) || ''
2438
+ : (_a = this.getAttribute(value.fromAttr)) !== null && _a !== void 0 ? _a : ''
2434
2439
  : '';
2435
2440
  return {
2436
2441
  ...this._astToken,
@@ -2683,7 +2688,7 @@ class MLElement extends parent_node_1.MLParentNode {
2683
2688
  }
2684
2689
  const children = this.getChildElementsAndTextNodeWithoutWhitespaces();
2685
2690
  const attrs = this.attributes.map(attr => attr.toNormalizeString());
2686
- const attrString = attrs.length ? ' ' + attrs.join('') : '';
2691
+ const attrString = attrs.length > 0 ? ' ' + attrs.join('') : '';
2687
2692
  const startTag = `<${this.nodeName}${attrString}>`;
2688
2693
  const childNodes = children.map(node => {
2689
2694
  if (node.is(node.ELEMENT_NODE)) {
@@ -1,42 +1,47 @@
1
1
  import type { MLAttr } from './attr';
2
2
  import type { PlainData, RuleConfigValue } from '@markuplint/ml-config';
3
- export declare class MLNamedNodeMap<T extends RuleConfigValue, O extends PlainData = undefined> extends Array<MLAttr<T, O>> implements NamedNodeMap {
4
- getNamedItem(qualifiedName: string): MLAttr<T, O> | null;
5
- /**
6
- * **IT THROWS AN ERROR WHEN CALLING THIS.**
7
- *
8
- * @unsupported
9
- * @implements DOM API: `NamedNodeMap`
10
- */
11
- getNamedItemNS(namespace: string | null, localName: string): Attr | null;
12
- item(index: number): MLAttr<T, O> | null;
13
- /**
14
- * **IT THROWS AN ERROR WHEN CALLING THIS.**
15
- *
16
- * @unsupported
17
- * @implements DOM API: `NamedNodeMap`
18
- */
19
- removeNamedItem(qualifiedName: string): MLAttr<T, O>;
20
- /**
21
- * **IT THROWS AN ERROR WHEN CALLING THIS.**
22
- *
23
- * @unsupported
24
- * @implements DOM API: `NamedNodeMap`
25
- */
26
- removeNamedItemNS(namespace: string | null, localName: string): MLAttr<T, O>;
27
- /**
28
- * **IT THROWS AN ERROR WHEN CALLING THIS.**
29
- *
30
- * @unsupported
31
- * @implements DOM API: `NamedNodeMap`
32
- */
33
- setNamedItem(attr: MLAttr<T, O>): MLAttr<T, O> | null;
34
- /**
35
- * **IT THROWS AN ERROR WHEN CALLING THIS.**
36
- *
37
- * @unsupported
38
- * @implements DOM API: `NamedNodeMap`
39
- */
40
- setNamedItemNS(attr: MLAttr<T, O>): MLAttr<T, O> | null;
3
+ export declare class MLNamedNodeMap<T extends RuleConfigValue, O extends PlainData = undefined>
4
+ extends Array<MLAttr<T, O>>
5
+ implements NamedNodeMap
6
+ {
7
+ getNamedItem(qualifiedName: string): MLAttr<T, O> | null;
8
+ /**
9
+ * **IT THROWS AN ERROR WHEN CALLING THIS.**
10
+ *
11
+ * @unsupported
12
+ * @implements DOM API: `NamedNodeMap`
13
+ */
14
+ getNamedItemNS(namespace: string | null, localName: string): Attr | null;
15
+ item(index: number): MLAttr<T, O> | null;
16
+ /**
17
+ * **IT THROWS AN ERROR WHEN CALLING THIS.**
18
+ *
19
+ * @unsupported
20
+ * @implements DOM API: `NamedNodeMap`
21
+ */
22
+ removeNamedItem(qualifiedName: string): MLAttr<T, O>;
23
+ /**
24
+ * **IT THROWS AN ERROR WHEN CALLING THIS.**
25
+ *
26
+ * @unsupported
27
+ * @implements DOM API: `NamedNodeMap`
28
+ */
29
+ removeNamedItemNS(namespace: string | null, localName: string): MLAttr<T, O>;
30
+ /**
31
+ * **IT THROWS AN ERROR WHEN CALLING THIS.**
32
+ *
33
+ * @unsupported
34
+ * @implements DOM API: `NamedNodeMap`
35
+ */
36
+ setNamedItem(attr: MLAttr<T, O>): MLAttr<T, O> | null;
37
+ /**
38
+ * **IT THROWS AN ERROR WHEN CALLING THIS.**
39
+ *
40
+ * @unsupported
41
+ * @implements DOM API: `NamedNodeMap`
42
+ */
43
+ setNamedItemNS(attr: MLAttr<T, O>): MLAttr<T, O> | null;
41
44
  }
42
- export declare function toNamedNodeMap<T extends RuleConfigValue, O extends PlainData = undefined>(nodes: ReadonlyArray<MLAttr<T, O>>): MLNamedNodeMap<T, O>;
45
+ export declare function toNamedNodeMap<T extends RuleConfigValue, O extends PlainData = undefined>(
46
+ nodes: ReadonlyArray<MLAttr<T, O>>,
47
+ ): MLNamedNodeMap<T, O>;
@@ -5,7 +5,8 @@ const tslib_1 = require("tslib");
5
5
  const unexpected_call_error_1 = tslib_1.__importDefault(require("./unexpected-call-error"));
6
6
  class MLNamedNodeMap extends Array {
7
7
  getNamedItem(qualifiedName) {
8
- return this.find(attr => attr.name === qualifiedName) || null;
8
+ var _a;
9
+ return (_a = this.find(attr => attr.name === qualifiedName)) !== null && _a !== void 0 ? _a : null;
9
10
  }
10
11
  /**
11
12
  * **IT THROWS AN ERROR WHEN CALLING THIS.**
@@ -1,6 +1,12 @@
1
1
  import type { MLChildNode } from './child-node';
2
2
  import type { MLElement } from './element';
3
3
  import type { PlainData, RuleConfigValue } from '@markuplint/ml-config';
4
- export declare function toNodeList<T extends RuleConfigValue, O extends PlainData, N extends MLChildNode<T, O>>(nodes: ReadonlyArray<N>): NodeListOf<N>;
5
- export declare function toHTMLCollection<T extends RuleConfigValue, O extends PlainData = undefined>(nodes: ReadonlyArray<MLElement<T, O>>): HTMLCollectionOf<MLElement<T, O>>;
6
- export declare function nodeListToHTMLCollection<T extends RuleConfigValue, O extends PlainData = undefined>(nodeList: NodeListOf<MLChildNode<T, O>>): HTMLCollectionOf<MLElement<T, O>>;
4
+ export declare function toNodeList<T extends RuleConfigValue, O extends PlainData, N extends MLChildNode<T, O>>(
5
+ nodes: ReadonlyArray<N>,
6
+ ): NodeListOf<N>;
7
+ export declare function toHTMLCollection<T extends RuleConfigValue, O extends PlainData = undefined>(
8
+ nodes: ReadonlyArray<MLElement<T, O>>,
9
+ ): HTMLCollectionOf<MLElement<T, O>>;
10
+ export declare function nodeListToHTMLCollection<T extends RuleConfigValue, O extends PlainData = undefined>(
11
+ nodeList: NodeListOf<MLChildNode<T, O>>,
12
+ ): HTMLCollectionOf<MLElement<T, O>>;
@@ -34,7 +34,8 @@ class MLHTMLCollection extends Array {
34
34
  return (_a = this[index]) !== null && _a !== void 0 ? _a : null;
35
35
  }
36
36
  namedItem(name) {
37
- return this.find(el => el.getAttribute('name') === name) || null;
37
+ var _a;
38
+ return (_a = this.find(el => el.getAttribute('name') === name)) !== null && _a !== void 0 ? _a : null;
38
39
  }
39
40
  }
40
41
  function toHTMLCollection(
@@ -3,9 +3,14 @@ import type { MappedNode } from './types';
3
3
  import type { MLASTAbstractNode } from '@markuplint/ml-ast';
4
4
  import type { PlainData, RuleConfigValue } from '@markuplint/ml-config';
5
5
  declare class NodeStore {
6
- #private;
7
- getNode<N extends MLASTAbstractNode, T extends RuleConfigValue, O extends PlainData = undefined>(astNode: N): MappedNode<N, T, O>;
8
- setNode<A extends MLASTAbstractNode, T extends RuleConfigValue, O extends PlainData = undefined>(astNode: A, node: MLNode<T, O, A>): void;
6
+ #private;
7
+ getNode<N extends MLASTAbstractNode, T extends RuleConfigValue, O extends PlainData = undefined>(
8
+ astNode: N,
9
+ ): MappedNode<N, T, O>;
10
+ setNode<A extends MLASTAbstractNode, T extends RuleConfigValue, O extends PlainData = undefined>(
11
+ astNode: A,
12
+ node: MLNode<T, O, A>,
13
+ ): void;
9
14
  }
10
15
  /**
11
16
  * `NodeStore` Singleton