@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
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2017-2019 Yusuke Hirao
3
+ Copyright (c) 2017-2024 Yusuke Hirao
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -1,12 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPreset = void 0;
4
- async function getPreset(name) {
5
- const res = await fetch(`@markuplint/config-presets/preset.${name}.json`).catch(() => new Error());
6
- if (res instanceof Error) {
7
- throw new ReferenceError(`Preset markuplint:${name} is not found`);
8
- }
9
- const json = await res.json();
10
- return json;
1
+ export async function getPreset(name) {
2
+ const res = await fetch(`@markuplint/config-presets/preset.${name}.json`).catch(
3
+ () =>
4
+ // eslint-disable-next-line unicorn/error-message
5
+ new Error(),
6
+ );
7
+ if (res instanceof Error) {
8
+ throw new ReferenceError(`Preset markuplint:${name} is not found`);
9
+ }
10
+ const json = await res.json();
11
+ return json;
11
12
  }
12
- exports.getPreset = getPreset;
@@ -1,3 +1,3 @@
1
1
  import type { Config } from '@markuplint/ml-config';
2
- import Ruleset from './ruleset';
2
+ import { Ruleset } from './ruleset/index.js';
3
3
  export declare function convertRuleset(config?: Config): Ruleset;
@@ -1,9 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.convertRuleset = void 0;
4
- const tslib_1 = require("tslib");
5
- const ruleset_1 = tslib_1.__importDefault(require("./ruleset"));
6
- function convertRuleset(config = {}) {
7
- return new ruleset_1.default(config);
1
+ import { Ruleset } from './ruleset/index.js';
2
+ export function convertRuleset(config = {}) {
3
+ return new Ruleset(config);
8
4
  }
9
- exports.convertRuleset = convertRuleset;
package/lib/debug.js CHANGED
@@ -1,18 +1,13 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.enableDebug = exports.log = void 0;
4
- const tslib_1 = require("tslib");
5
- const debug_1 = tslib_1.__importDefault(require("debug"));
1
+ import debug from 'debug';
6
2
  const CLI_NS = 'markuplint-cli';
7
- exports.log = (0, debug_1.default)('ml-core');
8
- function enableDebug() {
9
- if (!exports.log.enabled) {
10
- debug_1.default.enable(`${exports.log.namespace}*`);
11
- (0, exports.log)(`Debug enable: ${exports.log.namespace}`);
12
- if (!debug_1.default.enabled(CLI_NS)) {
13
- debug_1.default.enable(`${exports.log.namespace}*,${CLI_NS}*`);
14
- (0, exports.log)(`Debug enable: ${exports.log.namespace}, ${CLI_NS}`);
3
+ export const log = debug('ml-core');
4
+ export function enableDebug() {
5
+ if (!log.enabled) {
6
+ debug.enable(`${log.namespace}*`);
7
+ log(`Debug enable: ${log.namespace}`);
8
+ if (!debug.enabled(CLI_NS)) {
9
+ debug.enable(`${log.namespace}*,${CLI_NS}*`);
10
+ log(`Debug enable: ${log.namespace}, ${CLI_NS}`);
15
11
  }
16
12
  }
17
13
  }
18
- exports.enableDebug = enableDebug;
package/lib/index.d.ts CHANGED
@@ -1,24 +1,14 @@
1
1
  export { RuleInfo, RuleConfig, RuleConfigValue } from '@markuplint/ml-config';
2
- export {
3
- ariaSpecs,
4
- contentModelCategoryToTagNames,
5
- getAttrSpecs,
6
- getComputedRole,
7
- getImplicitRole,
8
- getPermittedRoles,
9
- getRoleSpec,
10
- getSpec,
11
- resolveNamespace,
12
- } from '@markuplint/ml-spec';
13
- export { default as Ruleset } from './ruleset';
14
- export { enableDebug } from './debug';
15
- export { getIndent } from './ml-dom/helper/getIndent';
16
- export * from './configs';
17
- export * from './convert-ruleset';
18
- export * from './ml-core';
19
- export * from './ml-dom';
20
- export * from './ml-rule';
21
- export * from './plugin';
22
- export * from './test';
23
- export * from './types';
24
- export * from './utils';
2
+ export { ariaSpecs, contentModelCategoryToTagNames, getAttrSpecs, getComputedRole, getImplicitRole, getPermittedRoles, getRoleSpec, getSpec, resolveNamespace, } from '@markuplint/ml-spec';
3
+ export { Ruleset } from './ruleset/index.js';
4
+ export { enableDebug } from './debug.js';
5
+ export { getIndent } from './ml-dom/helper/get-indent.js';
6
+ export * from './convert-ruleset.js';
7
+ export * from './ml-core.js';
8
+ export * from './ml-dom/index.js';
9
+ export * from './ml-rule/index.js';
10
+ export * from './plugin/index.js';
11
+ export * from './test/index.js';
12
+ export * from './types.js';
13
+ export * from './utils/index.js';
14
+ export { AccessibilityProperties } from './ml-dom/node/types.js';
package/lib/index.js CHANGED
@@ -1,29 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getIndent = exports.enableDebug = exports.Ruleset = exports.resolveNamespace = exports.getSpec = exports.getRoleSpec = exports.getPermittedRoles = exports.getImplicitRole = exports.getComputedRole = exports.getAttrSpecs = exports.contentModelCategoryToTagNames = exports.ariaSpecs = void 0;
4
- const tslib_1 = require("tslib");
5
- var ml_spec_1 = require("@markuplint/ml-spec");
6
- Object.defineProperty(exports, "ariaSpecs", { enumerable: true, get: function () { return ml_spec_1.ariaSpecs; } });
7
- Object.defineProperty(exports, "contentModelCategoryToTagNames", { enumerable: true, get: function () { return ml_spec_1.contentModelCategoryToTagNames; } });
8
- Object.defineProperty(exports, "getAttrSpecs", { enumerable: true, get: function () { return ml_spec_1.getAttrSpecs; } });
9
- Object.defineProperty(exports, "getComputedRole", { enumerable: true, get: function () { return ml_spec_1.getComputedRole; } });
10
- Object.defineProperty(exports, "getImplicitRole", { enumerable: true, get: function () { return ml_spec_1.getImplicitRole; } });
11
- Object.defineProperty(exports, "getPermittedRoles", { enumerable: true, get: function () { return ml_spec_1.getPermittedRoles; } });
12
- Object.defineProperty(exports, "getRoleSpec", { enumerable: true, get: function () { return ml_spec_1.getRoleSpec; } });
13
- Object.defineProperty(exports, "getSpec", { enumerable: true, get: function () { return ml_spec_1.getSpec; } });
14
- Object.defineProperty(exports, "resolveNamespace", { enumerable: true, get: function () { return ml_spec_1.resolveNamespace; } });
15
- var ruleset_1 = require("./ruleset");
16
- Object.defineProperty(exports, "Ruleset", { enumerable: true, get: function () { return tslib_1.__importDefault(ruleset_1).default; } });
17
- var debug_1 = require("./debug");
18
- Object.defineProperty(exports, "enableDebug", { enumerable: true, get: function () { return debug_1.enableDebug; } });
19
- var getIndent_1 = require("./ml-dom/helper/getIndent");
20
- Object.defineProperty(exports, "getIndent", { enumerable: true, get: function () { return getIndent_1.getIndent; } });
21
- tslib_1.__exportStar(require("./configs"), exports);
22
- tslib_1.__exportStar(require("./convert-ruleset"), exports);
23
- tslib_1.__exportStar(require("./ml-core"), exports);
24
- tslib_1.__exportStar(require("./ml-dom"), exports);
25
- tslib_1.__exportStar(require("./ml-rule"), exports);
26
- tslib_1.__exportStar(require("./plugin"), exports);
27
- tslib_1.__exportStar(require("./test"), exports);
28
- tslib_1.__exportStar(require("./types"), exports);
29
- tslib_1.__exportStar(require("./utils"), exports);
1
+ export { ariaSpecs, contentModelCategoryToTagNames, getAttrSpecs, getComputedRole, getImplicitRole, getPermittedRoles, getRoleSpec, getSpec, resolveNamespace, } from '@markuplint/ml-spec';
2
+ export { Ruleset } from './ruleset/index.js';
3
+ export { enableDebug } from './debug.js';
4
+ export { getIndent } from './ml-dom/helper/get-indent.js';
5
+ export * from './convert-ruleset.js';
6
+ export * from './ml-core.js';
7
+ export * from './ml-dom/index.js';
8
+ export * from './ml-rule/index.js';
9
+ export * from './plugin/index.js';
10
+ export * from './test/index.js';
11
+ export * from './types.js';
12
+ export * from './utils/index.js';
package/lib/ml-core.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import type { MLFabric } from './types';
1
+ import type { MLFabric } from './types.js';
2
2
  import type { PlainData, RuleConfigValue, Violation } from '@markuplint/ml-config';
3
3
  import { ParserError } from '@markuplint/parser-utils';
4
- import { Document } from './ml-dom';
4
+ import { Document } from './ml-dom/index.js';
5
5
  export type MLCoreParams = {
6
6
  readonly sourceCode: string;
7
7
  readonly filename: string;
@@ -9,10 +9,10 @@ export type MLCoreParams = {
9
9
  } & MLFabric;
10
10
  export declare class MLCore {
11
11
  #private;
12
- constructor({ parser, sourceCode, ruleset, rules, locale, schemas, parserOptions, pretenders, filename, debug, }: MLCoreParams);
13
- get document(): Document<RuleConfigValue, PlainData> | ParserError;
12
+ constructor({ parser, sourceCode, ruleset, rules, locale, schemas, parserOptions, pretenders, filename, debug, configErrors, }: MLCoreParams);
13
+ get document(): ParserError | Document<RuleConfigValue, PlainData>;
14
14
  setCode(sourceCode: string): void;
15
- update({ parser, ruleset, rules, locale, schemas, parserOptions }: Partial<MLFabric>): void;
15
+ update({ parser, ruleset, rules, locale, schemas, parserOptions, configErrors }: Partial<MLFabric>): void;
16
16
  verify(fix?: boolean): Promise<Violation[]>;
17
17
  private _createDocument;
18
18
  private _parse;
package/lib/ml-core.js CHANGED
@@ -1,15 +1,21 @@
1
- "use strict";
2
- var _MLCore_ast, _MLCore_document, _MLCore_filename, _MLCore_locale, _MLCore_parser, _MLCore_parserOptions, _MLCore_pretenders, _MLCore_rules, _MLCore_ruleset, _MLCore_schemas, _MLCore_sourceCode;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.MLCore = void 0;
5
- const tslib_1 = require("tslib");
6
- const parser_utils_1 = require("@markuplint/parser-utils");
7
- const debug_1 = require("./debug");
8
- const ml_dom_1 = require("./ml-dom");
9
- const resultLog = debug_1.log.extend('result');
10
- class MLCore {
11
- constructor({ parser, sourceCode, ruleset, rules, locale, schemas, parserOptions, pretenders, filename, debug, }) {
12
- var _a, _b, _c;
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 _MLCore_ast, _MLCore_document, _MLCore_filename, _MLCore_locale, _MLCore_parser, _MLCore_parserOptions, _MLCore_pretenders, _MLCore_rules, _MLCore_ruleset, _MLCore_schemas, _MLCore_sourceCode, _MLCore_configErrors;
13
+ import { ParserError } from '@markuplint/parser-utils';
14
+ import { log, enableDebug } from './debug.js';
15
+ import { Document } from './ml-dom/index.js';
16
+ const resultLog = log.extend('result');
17
+ export class MLCore {
18
+ constructor({ parser, sourceCode, ruleset, rules, locale, schemas, parserOptions, pretenders, filename, debug, configErrors, }) {
13
19
  _MLCore_ast.set(this, null);
14
20
  _MLCore_document.set(this, void 0);
15
21
  _MLCore_filename.set(this, void 0);
@@ -21,80 +27,92 @@ class MLCore {
21
27
  _MLCore_ruleset.set(this, void 0);
22
28
  _MLCore_schemas.set(this, void 0);
23
29
  _MLCore_sourceCode.set(this, void 0);
30
+ _MLCore_configErrors.set(this, void 0);
24
31
  if (debug) {
25
- (0, debug_1.enableDebug)();
32
+ enableDebug();
26
33
  }
27
- tslib_1.__classPrivateFieldSet(this, _MLCore_parser, parser, "f");
28
- tslib_1.__classPrivateFieldSet(this, _MLCore_sourceCode, sourceCode, "f");
29
- tslib_1.__classPrivateFieldSet(this, _MLCore_parserOptions, parserOptions, "f");
30
- tslib_1.__classPrivateFieldSet(this, _MLCore_ruleset, {
31
- rules: (_a = ruleset.rules) !== null && _a !== void 0 ? _a : {},
32
- nodeRules: (_b = ruleset.nodeRules) !== null && _b !== void 0 ? _b : [],
33
- childNodeRules: (_c = ruleset.childNodeRules) !== null && _c !== void 0 ? _c : [],
34
+ __classPrivateFieldSet(this, _MLCore_parser, parser, "f");
35
+ __classPrivateFieldSet(this, _MLCore_sourceCode, sourceCode, "f");
36
+ __classPrivateFieldSet(this, _MLCore_parserOptions, parserOptions, "f");
37
+ __classPrivateFieldSet(this, _MLCore_ruleset, {
38
+ rules: ruleset.rules ?? {},
39
+ nodeRules: ruleset.nodeRules ?? [],
40
+ childNodeRules: ruleset.childNodeRules ?? [],
34
41
  }, "f");
35
- tslib_1.__classPrivateFieldSet(this, _MLCore_locale, locale, "f");
36
- tslib_1.__classPrivateFieldSet(this, _MLCore_schemas, schemas, "f");
37
- tslib_1.__classPrivateFieldSet(this, _MLCore_filename, filename, "f");
38
- tslib_1.__classPrivateFieldSet(this, _MLCore_rules, rules.slice(), "f");
39
- tslib_1.__classPrivateFieldSet(this, _MLCore_pretenders, pretenders.slice(), "f");
42
+ __classPrivateFieldSet(this, _MLCore_locale, locale, "f");
43
+ __classPrivateFieldSet(this, _MLCore_schemas, schemas, "f");
44
+ __classPrivateFieldSet(this, _MLCore_filename, filename, "f");
45
+ __classPrivateFieldSet(this, _MLCore_rules, [...rules], "f");
46
+ __classPrivateFieldSet(this, _MLCore_pretenders, [...pretenders], "f");
47
+ __classPrivateFieldSet(this, _MLCore_configErrors, [...(configErrors ?? [])], "f");
40
48
  this._parse();
41
49
  this._createDocument();
42
50
  }
43
51
  get document() {
44
- return tslib_1.__classPrivateFieldGet(this, _MLCore_document, "f");
52
+ return __classPrivateFieldGet(this, _MLCore_document, "f");
45
53
  }
46
54
  setCode(sourceCode) {
47
- tslib_1.__classPrivateFieldSet(this, _MLCore_sourceCode, sourceCode, "f");
55
+ __classPrivateFieldSet(this, _MLCore_sourceCode, sourceCode, "f");
48
56
  this._parse();
49
57
  this._createDocument();
50
58
  }
51
- update({ parser, ruleset, rules, locale, schemas, parserOptions }) {
52
- var _a, _b, _c, _d;
53
- tslib_1.__classPrivateFieldSet(this, _MLCore_parser, parser !== null && parser !== void 0 ? parser : tslib_1.__classPrivateFieldGet(this, _MLCore_parser, "f"), "f");
54
- tslib_1.__classPrivateFieldSet(this, _MLCore_ruleset, {
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
- 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
- childNodeRules: (_c = ruleset === null || ruleset === void 0 ? void 0 : ruleset.childNodeRules) !== null && _c !== void 0 ? _c : tslib_1.__classPrivateFieldGet(this, _MLCore_ruleset, "f").childNodeRules,
59
+ update({ parser, ruleset, rules, locale, schemas, parserOptions, configErrors }) {
60
+ __classPrivateFieldSet(this, _MLCore_parser, parser ?? __classPrivateFieldGet(this, _MLCore_parser, "f"), "f");
61
+ __classPrivateFieldSet(this, _MLCore_ruleset, {
62
+ rules: ruleset?.rules ?? __classPrivateFieldGet(this, _MLCore_ruleset, "f").rules,
63
+ nodeRules: ruleset?.nodeRules ?? __classPrivateFieldGet(this, _MLCore_ruleset, "f").nodeRules,
64
+ childNodeRules: ruleset?.childNodeRules ?? __classPrivateFieldGet(this, _MLCore_ruleset, "f").childNodeRules,
58
65
  }, "f");
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
- tslib_1.__classPrivateFieldSet(this, _MLCore_locale, locale !== null && locale !== void 0 ? locale : tslib_1.__classPrivateFieldGet(this, _MLCore_locale, "f"), "f");
61
- tslib_1.__classPrivateFieldSet(this, _MLCore_schemas, schemas !== null && schemas !== void 0 ? schemas : tslib_1.__classPrivateFieldGet(this, _MLCore_schemas, "f"), "f");
66
+ __classPrivateFieldSet(this, _MLCore_rules, rules?.slice() ?? __classPrivateFieldGet(this, _MLCore_rules, "f"), "f");
67
+ __classPrivateFieldSet(this, _MLCore_locale, locale ?? __classPrivateFieldGet(this, _MLCore_locale, "f"), "f");
68
+ __classPrivateFieldSet(this, _MLCore_schemas, schemas ?? __classPrivateFieldGet(this, _MLCore_schemas, "f"), "f");
69
+ __classPrivateFieldSet(this, _MLCore_configErrors, [...(configErrors ?? [])], "f");
62
70
  if (parserOptions &&
63
- (parserOptions.ignoreFrontMatter !== tslib_1.__classPrivateFieldGet(this, _MLCore_parserOptions, "f").ignoreFrontMatter ||
64
- parserOptions.authoredElementName !== tslib_1.__classPrivateFieldGet(this, _MLCore_parserOptions, "f").authoredElementName)) {
71
+ (parserOptions.ignoreFrontMatter !== __classPrivateFieldGet(this, _MLCore_parserOptions, "f").ignoreFrontMatter ||
72
+ parserOptions.authoredElementName !== __classPrivateFieldGet(this, _MLCore_parserOptions, "f").authoredElementName)) {
65
73
  this._parse();
66
74
  }
67
75
  this._createDocument();
68
76
  }
69
77
  async verify(fix = false) {
70
- (0, debug_1.log)('verify: start');
78
+ log('verify: start');
71
79
  const violations = [];
72
- if (tslib_1.__classPrivateFieldGet(this, _MLCore_document, "f") instanceof parser_utils_1.ParserError) {
80
+ if (__classPrivateFieldGet(this, _MLCore_document, "f") instanceof ParserError) {
73
81
  violations.push({
74
82
  ruleId: 'parse-error',
75
83
  severity: 'error',
76
- message: tslib_1.__classPrivateFieldGet(this, _MLCore_document, "f").message,
77
- col: tslib_1.__classPrivateFieldGet(this, _MLCore_document, "f").col,
78
- line: tslib_1.__classPrivateFieldGet(this, _MLCore_document, "f").line,
79
- raw: tslib_1.__classPrivateFieldGet(this, _MLCore_document, "f").raw,
84
+ message: __classPrivateFieldGet(this, _MLCore_document, "f").message,
85
+ col: __classPrivateFieldGet(this, _MLCore_document, "f").col,
86
+ line: __classPrivateFieldGet(this, _MLCore_document, "f").line,
87
+ raw: __classPrivateFieldGet(this, _MLCore_document, "f").raw,
80
88
  });
81
- (0, debug_1.log)('verify: error %o', tslib_1.__classPrivateFieldGet(this, _MLCore_document, "f").message);
89
+ log('verify: error %o', __classPrivateFieldGet(this, _MLCore_document, "f").message);
82
90
  return violations;
83
91
  }
84
- for (const rule of tslib_1.__classPrivateFieldGet(this, _MLCore_rules, "f")) {
85
- const ruleInfo = rule.getRuleInfo(tslib_1.__classPrivateFieldGet(this, _MLCore_ruleset, "f"), rule.name);
92
+ for (const error of __classPrivateFieldGet(this, _MLCore_configErrors, "f")) {
93
+ violations.push({
94
+ ruleId: 'config-error',
95
+ severity: 'warning',
96
+ message: error.message,
97
+ col: 1,
98
+ line: 1,
99
+ raw: '',
100
+ });
101
+ }
102
+ for (const rule of __classPrivateFieldGet(this, _MLCore_rules, "f")) {
103
+ const ruleInfo = rule.getRuleInfo(__classPrivateFieldGet(this, _MLCore_ruleset, "f"), rule.name);
86
104
  if (ruleInfo.disabled && ruleInfo.nodeRules.length === 0 && ruleInfo.childNodeRules.length === 0) {
87
105
  continue;
88
106
  }
89
- (0, debug_1.log)('%s Rule: verify', rule.name);
90
- const results = await rule.verify(tslib_1.__classPrivateFieldGet(this, _MLCore_document, "f"), tslib_1.__classPrivateFieldGet(this, _MLCore_locale, "f"), fix).catch(e => {
91
- if (e instanceof parser_utils_1.ParserError) {
92
- return e;
107
+ log('%s Rule: verify', rule.name);
108
+ const results = await rule.verify(__classPrivateFieldGet(this, _MLCore_document, "f"), __classPrivateFieldGet(this, _MLCore_locale, "f"), fix).catch(error => {
109
+ if (error instanceof ParserError) {
110
+ return error;
93
111
  }
94
- throw e;
112
+ throw error;
95
113
  });
96
- if (results instanceof parser_utils_1.ParserError) {
97
- (0, debug_1.log)('%s Rule: verify error %o', rule.name, results.message);
114
+ if (results instanceof ParserError) {
115
+ log('%s Rule: verify error %o', rule.name, results.message);
98
116
  violations.push({
99
117
  ruleId: 'parse-error',
100
118
  severity: 'error',
@@ -107,9 +125,10 @@ class MLCore {
107
125
  else {
108
126
  violations.push(...results);
109
127
  }
110
- (0, debug_1.log)('%s Rule: verify end', rule.name);
128
+ log('%s Rule: verify end', rule.name);
111
129
  }
112
130
  if (resultLog.enabled) {
131
+ // eslint-disable-next-line unicorn/no-array-reduce
113
132
  const { e, w, i } = violations.reduce((c, v) => {
114
133
  if (v.severity === 'error')
115
134
  c.e += 1;
@@ -123,45 +142,44 @@ class MLCore {
123
142
  resultLog('Warning: %d', w);
124
143
  resultLog('Info: %d', i);
125
144
  }
126
- (0, debug_1.log)('verify: end');
145
+ log('verify: end');
127
146
  return violations;
128
147
  }
129
148
  _createDocument() {
130
- if (!tslib_1.__classPrivateFieldGet(this, _MLCore_ast, "f")) {
149
+ if (!__classPrivateFieldGet(this, _MLCore_ast, "f")) {
131
150
  return;
132
151
  }
133
152
  try {
134
- tslib_1.__classPrivateFieldSet(this, _MLCore_document, new ml_dom_1.Document(tslib_1.__classPrivateFieldGet(this, _MLCore_ast, "f"), tslib_1.__classPrivateFieldGet(this, _MLCore_ruleset, "f"), tslib_1.__classPrivateFieldGet(this, _MLCore_schemas, "f"), {
135
- filename: tslib_1.__classPrivateFieldGet(this, _MLCore_filename, "f"),
136
- endTag: tslib_1.__classPrivateFieldGet(this, _MLCore_parser, "f").endTag,
137
- booleanish: tslib_1.__classPrivateFieldGet(this, _MLCore_parser, "f").booleanish,
138
- pretenders: tslib_1.__classPrivateFieldGet(this, _MLCore_pretenders, "f"),
153
+ __classPrivateFieldSet(this, _MLCore_document, new Document(__classPrivateFieldGet(this, _MLCore_ast, "f"), __classPrivateFieldGet(this, _MLCore_ruleset, "f"), __classPrivateFieldGet(this, _MLCore_schemas, "f"), {
154
+ filename: __classPrivateFieldGet(this, _MLCore_filename, "f"),
155
+ endTag: __classPrivateFieldGet(this, _MLCore_parser, "f").endTag,
156
+ booleanish: __classPrivateFieldGet(this, _MLCore_parser, "f").booleanish,
157
+ pretenders: __classPrivateFieldGet(this, _MLCore_pretenders, "f"),
139
158
  }), "f");
140
159
  }
141
- catch (err) {
142
- if (err instanceof parser_utils_1.ParserError) {
143
- tslib_1.__classPrivateFieldSet(this, _MLCore_document, err, "f");
160
+ catch (error) {
161
+ if (error instanceof ParserError) {
162
+ __classPrivateFieldSet(this, _MLCore_document, error, "f");
144
163
  }
145
164
  else {
146
- throw err;
165
+ throw error;
147
166
  }
148
167
  }
149
168
  }
150
169
  _parse() {
151
170
  try {
152
- tslib_1.__classPrivateFieldSet(this, _MLCore_ast, tslib_1.__classPrivateFieldGet(this, _MLCore_parser, "f").parse(tslib_1.__classPrivateFieldGet(this, _MLCore_sourceCode, "f"), tslib_1.__classPrivateFieldGet(this, _MLCore_parserOptions, "f")), "f");
171
+ __classPrivateFieldSet(this, _MLCore_ast, __classPrivateFieldGet(this, _MLCore_parser, "f").parse(__classPrivateFieldGet(this, _MLCore_sourceCode, "f"), __classPrivateFieldGet(this, _MLCore_parserOptions, "f")), "f");
153
172
  }
154
- catch (err) {
155
- (0, debug_1.log)('Caught the parse error: %O', err);
156
- tslib_1.__classPrivateFieldSet(this, _MLCore_ast, null, "f");
157
- if (err instanceof parser_utils_1.ParserError) {
158
- tslib_1.__classPrivateFieldSet(this, _MLCore_document, err, "f");
173
+ catch (error) {
174
+ log('Caught the parse error: %O', error);
175
+ __classPrivateFieldSet(this, _MLCore_ast, null, "f");
176
+ if (error instanceof ParserError) {
177
+ __classPrivateFieldSet(this, _MLCore_document, error, "f");
159
178
  }
160
179
  else {
161
- throw err;
180
+ throw error;
162
181
  }
163
182
  }
164
183
  }
165
184
  }
166
- exports.MLCore = MLCore;
167
- _MLCore_ast = new WeakMap(), _MLCore_document = new WeakMap(), _MLCore_filename = new WeakMap(), _MLCore_locale = new WeakMap(), _MLCore_parser = new WeakMap(), _MLCore_parserOptions = new WeakMap(), _MLCore_pretenders = new WeakMap(), _MLCore_rules = new WeakMap(), _MLCore_ruleset = new WeakMap(), _MLCore_schemas = new WeakMap(), _MLCore_sourceCode = new WeakMap();
185
+ _MLCore_ast = new WeakMap(), _MLCore_document = new WeakMap(), _MLCore_filename = new WeakMap(), _MLCore_locale = new WeakMap(), _MLCore_parser = new WeakMap(), _MLCore_parserOptions = new WeakMap(), _MLCore_pretenders = new WeakMap(), _MLCore_rules = new WeakMap(), _MLCore_ruleset = new WeakMap(), _MLCore_schemas = new WeakMap(), _MLCore_sourceCode = new WeakMap(), _MLCore_configErrors = new WeakMap();
@@ -1,3 +1,3 @@
1
- import type { MLElement } from '../node/element';
1
+ import type { MLElement } from '../node/element.js';
2
2
  import type { ARIAVersion } from '@markuplint/ml-spec';
3
3
  export declare function getAccname(el: MLElement<any, any>, version: ARIAVersion): string;
@@ -1,10 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getAccname = void 0;
4
- const ml_spec_1 = require("@markuplint/ml-spec");
5
- const debug_1 = require("../../debug");
6
- const accnameLog = debug_1.log.extend('accname');
7
- function getAccname(
1
+ import { getAccname as get, getComputedRole } from '@markuplint/ml-spec';
2
+ import { log } from '../../debug.js';
3
+ const accnameLog = log.extend('accname');
4
+ export function getAccname(
8
5
  // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
9
6
  el, version) {
10
7
  let accname = safeGet(el);
@@ -19,14 +16,13 @@ el, version) {
19
16
  return '';
20
17
  }
21
18
  if (isFromContent(el, version)) {
22
- return Array.from(el.childNodes)
19
+ return [...el.childNodes]
23
20
  .map(child => {
24
- var _a;
25
21
  if (child.is(child.ELEMENT_NODE)) {
26
22
  return getAccname(child, version);
27
23
  }
28
24
  if (child.is(child.TEXT_NODE)) {
29
- return (_a = child.textContent) !== null && _a !== void 0 ? _a : '';
25
+ return child.textContent ?? '';
30
26
  }
31
27
  return '';
32
28
  })
@@ -34,25 +30,23 @@ el, version) {
34
30
  }
35
31
  return '';
36
32
  }
37
- exports.getAccname = getAccname;
38
33
  function safeGet(
39
34
  // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
40
35
  el) {
41
36
  try {
42
- const name = (0, ml_spec_1.getAccname)(el);
37
+ const name = get(el);
43
38
  return name;
44
39
  }
45
- catch (err) {
40
+ catch (error) {
46
41
  accnameLog('Raw: %s', el.raw);
47
- accnameLog('Error: %O', err);
42
+ accnameLog('Error: %O', error);
48
43
  return '';
49
44
  }
50
45
  }
51
46
  function getAccnameFromPretender(
52
47
  // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
53
48
  el) {
54
- var _a, _b;
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
+ if (el.pretenderContext?.type === 'pretender' && el.pretenderContext.aria?.name != null) {
56
50
  if (typeof el.pretenderContext.aria.name === 'boolean') {
57
51
  return 'some-name(Pretender Options)';
58
52
  }
@@ -72,7 +66,6 @@ el) {
72
66
  function isFromContent(
73
67
  // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
74
68
  el, version) {
75
- var _a;
76
- const role = (0, ml_spec_1.getComputedRole)(el.ownerMLDocument.specs, el, version);
77
- return !!((_a = role.role) === null || _a === void 0 ? void 0 : _a.accessibleNameFromContent);
69
+ const role = getComputedRole(el.ownerMLDocument.specs, el, version);
70
+ return !!role.role?.accessibleNameFromContent;
78
71
  }
@@ -1,9 +1,5 @@
1
- import type { MLDocument } from '../node/document';
2
- import type { MappedNode } from '../node/types';
3
- import type { MLASTAbstractNode } from '@markuplint/ml-ast';
1
+ import type { MLDocument } from '../node/document.js';
2
+ import type { MappedNode } from '../node/types.js';
3
+ import type { MLASTNode } from '@markuplint/ml-ast';
4
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>;
5
+ export declare function createNode<N extends MLASTNode, T extends RuleConfigValue, O extends PlainData = undefined>(astNode: N, document: MLDocument<T, O>): MappedNode<N, T, O>;
@@ -1,32 +1,53 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createNode = void 0;
4
- const block_1 = require("../node/block");
5
- const comment_1 = require("../node/comment");
6
- const document_type_1 = require("../node/document-type");
7
- const element_1 = require("../node/element");
8
- const text_1 = require("../node/text");
9
- function createNode(astNode,
1
+ import { MLBlock } from '../node/block.js';
2
+ import { MLComment } from '../node/comment.js';
3
+ import { MLDocumentType } from '../node/document-type.js';
4
+ import { MLElement } from '../node/element.js';
5
+ import { MLText } from '../node/text.js';
6
+ export function createNode(astNode,
10
7
  // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
11
8
  document) {
12
- const _astNode = astNode;
13
- switch (_astNode.type) {
9
+ switch (astNode.type) {
14
10
  case 'doctype': {
15
- return new document_type_1.MLDocumentType(_astNode, document);
11
+ return new MLDocumentType(astNode, document);
16
12
  }
17
13
  case 'starttag': {
18
- return new element_1.MLElement(_astNode, document);
14
+ return new MLElement(astNode, document);
19
15
  }
20
16
  case 'psblock': {
21
- return new block_1.MLBlock(_astNode, document);
17
+ return new MLBlock(astNode, document);
22
18
  }
23
19
  case 'comment': {
24
- return new comment_1.MLComment(_astNode, document);
20
+ return new MLComment(astNode, document);
25
21
  }
26
22
  case 'text': {
27
- return new text_1.MLText(_astNode, document);
23
+ return new MLText(astNode, document);
24
+ }
25
+ case 'invalid': {
26
+ switch (astNode.kind) {
27
+ case 'starttag': {
28
+ return new MLElement({
29
+ ...astNode,
30
+ type: 'starttag',
31
+ nodeName: 'x-invalid',
32
+ namespace: 'http://www.w3.org/1999/xhtml',
33
+ elementType: 'web-component',
34
+ attributes: [],
35
+ childNodes: [],
36
+ pairNode: null,
37
+ tagOpenChar: '',
38
+ tagCloseChar: '',
39
+ isGhost: false,
40
+ }, document);
41
+ }
42
+ default: {
43
+ return new MLText({
44
+ ...astNode,
45
+ type: 'text',
46
+ nodeName: '#text',
47
+ }, document);
48
+ }
49
+ }
28
50
  }
29
51
  }
30
52
  throw new TypeError(`Invalid AST node types "${astNode.type}"`);
31
53
  }
32
- exports.createNode = createNode;
@@ -1,2 +1,2 @@
1
- import type { MLNode } from '../node/node';
1
+ import type { MLNode } from '../node/node.js';
2
2
  export declare function nodeListToDebugMaps(nodeList: Readonly<MLNode<any, any>[]>, withAttr?: boolean): string[];