@markuplint/ml-core 2.3.2 → 3.0.0-alpha.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 (57) hide show
  1. package/lib/configs.d.ts +1 -1
  2. package/lib/configs.js +29 -9
  3. package/lib/index.d.ts +8 -8
  4. package/lib/index.js +18 -10
  5. package/lib/ml-core.d.ts +3 -3
  6. package/lib/ml-core.js +41 -42
  7. package/lib/ml-dom/document.d.ts +79 -70
  8. package/lib/ml-dom/helper/accname.d.ts +2 -2
  9. package/lib/ml-dom/helper/accname.js +2 -3
  10. package/lib/ml-dom/helper/create-node.d.ts +3 -4
  11. package/lib/ml-dom/helper/create-node.js +11 -15
  12. package/lib/ml-dom/helper/debug.d.ts +2 -2
  13. package/lib/ml-dom/helper/debug.js +35 -21
  14. package/lib/ml-dom/helper/getIndent.d.ts +5 -5
  15. package/lib/ml-dom/helper/getIndent.js +14 -14
  16. package/lib/ml-dom/helper/mapped-nodes.d.ts +51 -3
  17. package/lib/ml-dom/helper/match-selector.d.ts +10 -6
  18. package/lib/ml-dom/helper/node-store.d.ts +6 -3
  19. package/lib/ml-dom/helper/selector.d.ts +3 -3
  20. package/lib/ml-dom/helper/walkers.d.ts +5 -4
  21. package/lib/ml-dom/helper/walkers.js +39 -3
  22. package/lib/ml-dom/index.d.ts +8 -3
  23. package/lib/ml-dom/index.js +3 -15
  24. package/lib/ml-dom/node/attr.d.ts +5 -0
  25. package/lib/ml-dom/node/attr.js +17 -4
  26. package/lib/ml-dom/node/document.js +1 -1
  27. package/lib/ml-dom/node/dom-token-list.d.ts +20 -2
  28. package/lib/ml-dom/node/dom-token-list.js +85 -9
  29. package/lib/ml-dom/node/element.d.ts +4 -11
  30. package/lib/ml-dom/node/element.js +13 -36
  31. package/lib/ml-dom/node/node.js +2 -8
  32. package/lib/ml-dom/rule-mapper.d.ts +7 -7
  33. package/lib/ml-dom/tokens/abstract-element.d.ts +47 -42
  34. package/lib/ml-dom/tokens/attribute.d.ts +38 -38
  35. package/lib/ml-dom/tokens/comment.d.ts +7 -4
  36. package/lib/ml-dom/tokens/doctype.d.ts +12 -9
  37. package/lib/ml-dom/tokens/element-close-tag.d.ts +20 -17
  38. package/lib/ml-dom/tokens/element.d.ts +18 -15
  39. package/lib/ml-dom/tokens/node.d.ts +38 -31
  40. package/lib/ml-dom/tokens/omitted-element.d.ts +7 -4
  41. package/lib/ml-dom/tokens/preprocessor-specific-attribute.d.ts +20 -20
  42. package/lib/ml-dom/tokens/preprocessor-specific-block.d.ts +8 -5
  43. package/lib/ml-dom/tokens/text.d.ts +13 -9
  44. package/lib/ml-dom/tokens/token.d.ts +13 -13
  45. package/lib/ml-dom/types.d.ts +35 -13
  46. package/lib/ml-rule/ml-rule-context.d.ts +13 -10
  47. package/lib/ml-rule/ml-rule-context.js +12 -6
  48. package/lib/ml-rule/ml-rule.d.ts +8 -8
  49. package/lib/ml-rule/ml-rule.js +62 -62
  50. package/lib/ml-rule/types.d.ts +11 -1
  51. package/lib/ruleset/index.d.ts +2 -2
  52. package/lib/selector/match-selector.d.ts +5 -5
  53. package/lib/test/index.d.ts +2 -1
  54. package/lib/test/index.js +7 -2
  55. package/package.json +10 -9
  56. package/tsconfig.tsbuildinfo +1 -1
  57. package/markuplint-recommended.json +0 -196
package/lib/configs.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  import type { Config } from '@markuplint/ml-config';
2
- export declare const configs: Record<string, Config>;
2
+ export declare function getPreset(name: string): Promise<Config>;
package/lib/configs.js CHANGED
@@ -1,11 +1,31 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.configs = void 0;
4
- exports.configs = {
5
- recommended: require('../markuplint-recommended.json'),
6
- // For test
7
- ___test: {
8
- // @ts-ignore
9
- ___configs: 'test',
10
- },
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
11
24
  };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.getPreset = void 0;
27
+ async function getPreset(name) {
28
+ const json = await Promise.resolve().then(() => __importStar(require(`@markuplint/config-presets/preset.${name}.json`)));
29
+ return json.default;
30
+ }
31
+ exports.getPreset = getPreset;
package/lib/index.d.ts CHANGED
@@ -1,14 +1,14 @@
1
1
  export { RuleInfo, RuleConfig, RuleConfigValue } from '@markuplint/ml-config';
2
- export { getAttrSpecs } from '@markuplint/ml-spec';
2
+ export { ariaSpecs, contentModelCategoryToTagNames, getAttrSpecs, getComputedRole, getImplicitRole, getPermittedRoles, getRoleSpec, getSpec, resolveNamespace, } from '@markuplint/ml-spec';
3
+ export { default as Ruleset } from './ruleset';
4
+ export { enableDebug } from './debug';
5
+ export { getIndent } from './ml-dom/helper/getIndent';
6
+ export * from './configs';
3
7
  export * from './convert-ruleset';
4
8
  export * from './ml-core';
5
- export * from './ml-rule';
6
- export { default as Ruleset } from './ruleset';
7
9
  export * from './ml-dom';
10
+ export * from './ml-rule';
8
11
  export * from './plugin';
9
- export { getIndent } from './ml-dom/helper/getIndent';
10
- export * from './utils';
11
- export * from './types';
12
- export * from './configs';
13
12
  export * from './test';
14
- export { enableDebug } from './debug';
13
+ export * from './types';
14
+ export * from './utils';
package/lib/index.js CHANGED
@@ -1,21 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.enableDebug = exports.getIndent = exports.Ruleset = exports.getAttrSpecs = void 0;
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
4
  const tslib_1 = require("tslib");
5
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; } });
6
8
  Object.defineProperty(exports, "getAttrSpecs", { enumerable: true, get: function () { return ml_spec_1.getAttrSpecs; } });
7
- tslib_1.__exportStar(require("./convert-ruleset"), exports);
8
- tslib_1.__exportStar(require("./ml-core"), exports);
9
- tslib_1.__exportStar(require("./ml-rule"), exports);
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; } });
10
15
  var ruleset_1 = require("./ruleset");
11
16
  Object.defineProperty(exports, "Ruleset", { enumerable: true, get: function () { return tslib_1.__importDefault(ruleset_1).default; } });
12
- tslib_1.__exportStar(require("./ml-dom"), exports);
13
- tslib_1.__exportStar(require("./plugin"), exports);
17
+ var debug_1 = require("./debug");
18
+ Object.defineProperty(exports, "enableDebug", { enumerable: true, get: function () { return debug_1.enableDebug; } });
14
19
  var getIndent_1 = require("./ml-dom/helper/getIndent");
15
20
  Object.defineProperty(exports, "getIndent", { enumerable: true, get: function () { return getIndent_1.getIndent; } });
16
- tslib_1.__exportStar(require("./utils"), exports);
17
- tslib_1.__exportStar(require("./types"), exports);
18
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);
19
27
  tslib_1.__exportStar(require("./test"), exports);
20
- var debug_1 = require("./debug");
21
- Object.defineProperty(exports, "enableDebug", { enumerable: true, get: function () { return debug_1.enableDebug; } });
28
+ tslib_1.__exportStar(require("./types"), exports);
29
+ tslib_1.__exportStar(require("./utils"), exports);
package/lib/ml-core.d.ts CHANGED
@@ -9,11 +9,11 @@ export declare type MLCoreParams = {
9
9
  } & MLFabric;
10
10
  export declare class MLCore {
11
11
  #private;
12
+ get document(): ParserError | Document<RuleConfigValue, unknown>;
12
13
  constructor({ parser, sourceCode, ruleset, rules, locale, schemas, parserOptions, filename, debug }: MLCoreParams);
13
- get document(): Document<RuleConfigValue, unknown> | ParserError;
14
- verify(fix?: boolean): Promise<Violation[]>;
15
14
  setCode(sourceCode: string): void;
16
15
  update({ parser, ruleset, rules, locale, schemas, parserOptions }: Partial<MLFabric>): void;
17
- private _parse;
16
+ verify(fix?: boolean): Promise<Violation[]>;
18
17
  private _createDocument;
18
+ private _parse;
19
19
  }
package/lib/ml-core.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- var _MLCore_filename, _MLCore_document, _MLCore_parser, _MLCore_sourceCode, _MLCore_ast, _MLCore_ruleset, _MLCore_locale, _MLCore_rules, _MLCore_schemas, _MLCore_ignoreFrontMatter;
2
+ var _MLCore_ast, _MLCore_document, _MLCore_filename, _MLCore_ignoreFrontMatter, _MLCore_locale, _MLCore_parser, _MLCore_rules, _MLCore_ruleset, _MLCore_schemas, _MLCore_sourceCode;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.MLCore = void 0;
5
5
  const tslib_1 = require("tslib");
@@ -10,16 +10,16 @@ const resultLog = debug_1.log.extend('result');
10
10
  class MLCore {
11
11
  constructor({ parser, sourceCode, ruleset, rules, locale, schemas, parserOptions, filename, debug }) {
12
12
  var _a, _b, _c;
13
- _MLCore_filename.set(this, void 0);
14
- _MLCore_document.set(this, void 0);
15
- _MLCore_parser.set(this, void 0);
16
- _MLCore_sourceCode.set(this, void 0);
17
13
  _MLCore_ast.set(this, null);
18
- _MLCore_ruleset.set(this, void 0);
14
+ _MLCore_document.set(this, void 0);
15
+ _MLCore_filename.set(this, void 0);
16
+ _MLCore_ignoreFrontMatter.set(this, void 0);
19
17
  _MLCore_locale.set(this, void 0);
18
+ _MLCore_parser.set(this, void 0);
20
19
  _MLCore_rules.set(this, void 0);
20
+ _MLCore_ruleset.set(this, void 0);
21
21
  _MLCore_schemas.set(this, void 0);
22
- _MLCore_ignoreFrontMatter.set(this, void 0);
22
+ _MLCore_sourceCode.set(this, void 0);
23
23
  if (debug) {
24
24
  (0, debug_1.enableDebug)();
25
25
  }
@@ -41,6 +41,27 @@ class MLCore {
41
41
  get document() {
42
42
  return tslib_1.__classPrivateFieldGet(this, _MLCore_document, "f");
43
43
  }
44
+ setCode(sourceCode) {
45
+ tslib_1.__classPrivateFieldSet(this, _MLCore_sourceCode, sourceCode, "f");
46
+ this._parse();
47
+ this._createDocument();
48
+ }
49
+ update({ parser, ruleset, rules, locale, schemas, parserOptions }) {
50
+ var _a, _b, _c;
51
+ tslib_1.__classPrivateFieldSet(this, _MLCore_parser, parser !== null && parser !== void 0 ? parser : tslib_1.__classPrivateFieldGet(this, _MLCore_parser, "f"), "f");
52
+ tslib_1.__classPrivateFieldSet(this, _MLCore_ruleset, {
53
+ rules: (_a = ruleset === null || ruleset === void 0 ? void 0 : ruleset.rules) !== null && _a !== void 0 ? _a : tslib_1.__classPrivateFieldGet(this, _MLCore_ruleset, "f").rules,
54
+ nodeRules: (_b = ruleset === null || ruleset === void 0 ? void 0 : ruleset.nodeRules) !== null && _b !== void 0 ? _b : tslib_1.__classPrivateFieldGet(this, _MLCore_ruleset, "f").nodeRules,
55
+ childNodeRules: (_c = ruleset === null || ruleset === void 0 ? void 0 : ruleset.childNodeRules) !== null && _c !== void 0 ? _c : tslib_1.__classPrivateFieldGet(this, _MLCore_ruleset, "f").childNodeRules,
56
+ }, "f");
57
+ tslib_1.__classPrivateFieldSet(this, _MLCore_rules, rules !== null && rules !== void 0 ? rules : tslib_1.__classPrivateFieldGet(this, _MLCore_rules, "f"), "f");
58
+ tslib_1.__classPrivateFieldSet(this, _MLCore_locale, locale !== null && locale !== void 0 ? locale : tslib_1.__classPrivateFieldGet(this, _MLCore_locale, "f"), "f");
59
+ tslib_1.__classPrivateFieldSet(this, _MLCore_schemas, schemas !== null && schemas !== void 0 ? schemas : tslib_1.__classPrivateFieldGet(this, _MLCore_schemas, "f"), "f");
60
+ if (parserOptions && parserOptions.ignoreFrontMatter !== tslib_1.__classPrivateFieldGet(this, _MLCore_ignoreFrontMatter, "f")) {
61
+ this._parse();
62
+ }
63
+ this._createDocument();
64
+ }
44
65
  async verify(fix = false) {
45
66
  (0, debug_1.log)('verify: start');
46
67
  const violations = [];
@@ -62,7 +83,7 @@ class MLCore {
62
83
  continue;
63
84
  }
64
85
  (0, debug_1.log)('%s Rule: verify', rule.name);
65
- const results = await rule.verify(tslib_1.__classPrivateFieldGet(this, _MLCore_document, "f"), tslib_1.__classPrivateFieldGet(this, _MLCore_locale, "f"), ruleInfo, fix).catch(e => {
86
+ const results = await rule.verify(tslib_1.__classPrivateFieldGet(this, _MLCore_document, "f"), tslib_1.__classPrivateFieldGet(this, _MLCore_locale, "f"), fix).catch(e => {
66
87
  if (e instanceof parser_utils_1.ParserError) {
67
88
  return e;
68
89
  }
@@ -101,34 +122,17 @@ class MLCore {
101
122
  (0, debug_1.log)('verify: end');
102
123
  return violations;
103
124
  }
104
- setCode(sourceCode) {
105
- tslib_1.__classPrivateFieldSet(this, _MLCore_sourceCode, sourceCode, "f");
106
- this._parse();
107
- this._createDocument();
108
- }
109
- update({ parser, ruleset, rules, locale, schemas, parserOptions }) {
110
- var _a, _b, _c;
111
- tslib_1.__classPrivateFieldSet(this, _MLCore_parser, parser !== null && parser !== void 0 ? parser : tslib_1.__classPrivateFieldGet(this, _MLCore_parser, "f"), "f");
112
- tslib_1.__classPrivateFieldSet(this, _MLCore_ruleset, {
113
- rules: (_a = ruleset === null || ruleset === void 0 ? void 0 : ruleset.rules) !== null && _a !== void 0 ? _a : tslib_1.__classPrivateFieldGet(this, _MLCore_ruleset, "f").rules,
114
- nodeRules: (_b = ruleset === null || ruleset === void 0 ? void 0 : ruleset.nodeRules) !== null && _b !== void 0 ? _b : tslib_1.__classPrivateFieldGet(this, _MLCore_ruleset, "f").nodeRules,
115
- childNodeRules: (_c = ruleset === null || ruleset === void 0 ? void 0 : ruleset.childNodeRules) !== null && _c !== void 0 ? _c : tslib_1.__classPrivateFieldGet(this, _MLCore_ruleset, "f").childNodeRules,
116
- }, "f");
117
- tslib_1.__classPrivateFieldSet(this, _MLCore_rules, rules !== null && rules !== void 0 ? rules : tslib_1.__classPrivateFieldGet(this, _MLCore_rules, "f"), "f");
118
- tslib_1.__classPrivateFieldSet(this, _MLCore_locale, locale !== null && locale !== void 0 ? locale : tslib_1.__classPrivateFieldGet(this, _MLCore_locale, "f"), "f");
119
- tslib_1.__classPrivateFieldSet(this, _MLCore_schemas, schemas !== null && schemas !== void 0 ? schemas : tslib_1.__classPrivateFieldGet(this, _MLCore_schemas, "f"), "f");
120
- if (parserOptions && parserOptions.ignoreFrontMatter !== tslib_1.__classPrivateFieldGet(this, _MLCore_ignoreFrontMatter, "f")) {
121
- this._parse();
125
+ _createDocument() {
126
+ if (!tslib_1.__classPrivateFieldGet(this, _MLCore_ast, "f")) {
127
+ return;
122
128
  }
123
- this._createDocument();
124
- }
125
- _parse() {
126
129
  try {
127
- tslib_1.__classPrivateFieldSet(this, _MLCore_ast, tslib_1.__classPrivateFieldGet(this, _MLCore_parser, "f").parse(tslib_1.__classPrivateFieldGet(this, _MLCore_sourceCode, "f"), 0, 0, 0, tslib_1.__classPrivateFieldGet(this, _MLCore_ignoreFrontMatter, "f")), "f");
130
+ 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"), {
131
+ filename: tslib_1.__classPrivateFieldGet(this, _MLCore_filename, "f"),
132
+ endTag: tslib_1.__classPrivateFieldGet(this, _MLCore_parser, "f").endTag,
133
+ }), "f");
128
134
  }
129
135
  catch (err) {
130
- (0, debug_1.log)('Caught the parse error: %O', err);
131
- tslib_1.__classPrivateFieldSet(this, _MLCore_ast, null, "f");
132
136
  if (err instanceof parser_utils_1.ParserError) {
133
137
  tslib_1.__classPrivateFieldSet(this, _MLCore_document, err, "f");
134
138
  }
@@ -137,18 +141,13 @@ class MLCore {
137
141
  }
138
142
  }
139
143
  }
140
- _createDocument() {
141
- if (!tslib_1.__classPrivateFieldGet(this, _MLCore_ast, "f")) {
142
- return;
143
- }
144
+ _parse() {
144
145
  try {
145
- 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"), {
146
- filename: tslib_1.__classPrivateFieldGet(this, _MLCore_filename, "f"),
147
- tagNameCaseSensitive: tslib_1.__classPrivateFieldGet(this, _MLCore_parser, "f").tagNameCaseSensitive,
148
- endTag: tslib_1.__classPrivateFieldGet(this, _MLCore_parser, "f").endTag,
149
- }), "f");
146
+ tslib_1.__classPrivateFieldSet(this, _MLCore_ast, tslib_1.__classPrivateFieldGet(this, _MLCore_parser, "f").parse(tslib_1.__classPrivateFieldGet(this, _MLCore_sourceCode, "f"), 0, 0, 0, tslib_1.__classPrivateFieldGet(this, _MLCore_ignoreFrontMatter, "f")), "f");
150
147
  }
151
148
  catch (err) {
149
+ (0, debug_1.log)('Caught the parse error: %O', err);
150
+ tslib_1.__classPrivateFieldSet(this, _MLCore_ast, null, "f");
152
151
  if (err instanceof parser_utils_1.ParserError) {
153
152
  tslib_1.__classPrivateFieldSet(this, _MLCore_document, err, "f");
154
153
  }
@@ -159,4 +158,4 @@ class MLCore {
159
158
  }
160
159
  }
161
160
  exports.MLCore = MLCore;
162
- _MLCore_filename = new WeakMap(), _MLCore_document = new WeakMap(), _MLCore_parser = new WeakMap(), _MLCore_sourceCode = new WeakMap(), _MLCore_ast = new WeakMap(), _MLCore_ruleset = new WeakMap(), _MLCore_locale = new WeakMap(), _MLCore_rules = new WeakMap(), _MLCore_schemas = new WeakMap(), _MLCore_ignoreFrontMatter = new WeakMap();
161
+ _MLCore_ast = new WeakMap(), _MLCore_document = new WeakMap(), _MLCore_filename = new WeakMap(), _MLCore_ignoreFrontMatter = new WeakMap(), _MLCore_locale = new WeakMap(), _MLCore_parser = new WeakMap(), _MLCore_rules = new WeakMap(), _MLCore_ruleset = new WeakMap(), _MLCore_schemas = new WeakMap(), _MLCore_sourceCode = new WeakMap();
@@ -12,74 +12,83 @@ import { MLDOMDoctype } from './tokens';
12
12
  * markuplint DOM Document
13
13
  */
14
14
  export default class MLDOMDocument<T extends RuleConfigValue, O = null> {
15
- #private;
16
- /**
17
- * An array of markuplint DOM nodes
18
- */
19
- nodeList: ReadonlyArray<AnonymousNode<T, O>>;
20
- /**
21
- *
22
- */
23
- currentRule: MLRule<T, O> | null;
24
- /**
25
- *
26
- */
27
- isFragment: boolean;
28
- /**
29
- *
30
- */
31
- specs: Readonly<MLMLSpec>;
32
- /**
33
- *
34
- */
35
- readonly endTag: 'xml' | 'omittable' | 'never';
36
- /**
37
- *
38
- */
39
- readonly nodeStore: NodeStore;
40
- /**
41
- * Window object for calling the `getComputedStyle` and the `getPropertyValue` that are needed by **Accessible Name and Description Computation**.
42
- * But it always returns the empty object.
43
- * (It may improve to possible to compute the name from the `style` attribute in the future.)
44
- */
45
- readonly defaultView: {
46
- getComputedStyle(_el: MLDOMElement<any, any>): {
47
- getPropertyValue(_propName: string): {};
48
- };
49
- };
50
- /**
51
- * It could be used in rule, make sure it is immutable
52
- */
53
- get filename(): string | undefined;
54
- /**
55
- *
56
- * @param ast node list of markuplint AST
57
- * @param ruleset ruleset object
58
- */
59
- constructor(ast: MLASTDocument, ruleset: Ruleset, schemas: readonly [MLMLSpec, ...ExtendedSpec[]], options?: {
60
- filename?: string;
61
- tagNameCaseSensitive?: boolean;
62
- endTag?: 'xml' | 'omittable' | 'never';
63
- });
64
- get doctype(): MLDOMDoctype<T, O> | null;
65
- get tree(): AnonymousNode<T, O>[];
66
- walk(walker: Walker<T, O>): Promise<void>;
67
- /**
68
- *
69
- * @param type
70
- * @param walker
71
- * @param skipWhenRuleIsDisabled
72
- */
73
- walkOn(type: 'Element', walker: Walker<T, O, MLDOMElement<T, O>>, skipWhenRuleIsDisabled?: boolean): Promise<void>;
74
- walkOn(type: 'Text', walker: Walker<T, O, MLDOMText<T, O>>, skipWhenRuleIsDisabled?: boolean): Promise<void>;
75
- walkOn(type: 'Comment', walker: Walker<T, O, MLDOMComment<T, O>>, skipWhenRuleIsDisabled?: boolean): Promise<void>;
76
- walkOn(type: 'ElementCloseTag', walker: Walker<T, O, MLDOMElementCloseTag<T, O>>, skipWhenRuleIsDisabled?: boolean): Promise<void>;
77
- setRule(rule: MLRule<T, O> | null): void;
78
- matchNodes(query: string): MLDOMElement<T, O>[];
79
- querySelectorAll(query: string): MLDOMElement<T, O>[];
80
- querySelector(query: string): MLDOMElement<T, O>;
81
- getElementById(id: string): MLDOMElement<T, O>;
82
- toString(): string;
83
- debugMap(): string[];
84
- private _ruleMapping;
15
+ #private;
16
+ /**
17
+ * An array of markuplint DOM nodes
18
+ */
19
+ nodeList: ReadonlyArray<AnonymousNode<T, O>>;
20
+ /**
21
+ *
22
+ */
23
+ currentRule: MLRule<T, O> | null;
24
+ /**
25
+ *
26
+ */
27
+ isFragment: boolean;
28
+ /**
29
+ *
30
+ */
31
+ specs: Readonly<MLMLSpec>;
32
+ /**
33
+ *
34
+ */
35
+ readonly endTag: 'xml' | 'omittable' | 'never';
36
+ /**
37
+ *
38
+ */
39
+ readonly nodeStore: NodeStore;
40
+ /**
41
+ * Window object for calling the `getComputedStyle` and the `getPropertyValue` that are needed by **Accessible Name and Description Computation**.
42
+ * But it always returns the empty object.
43
+ * (It may improve to possible to compute the name from the `style` attribute in the future.)
44
+ */
45
+ readonly defaultView: {
46
+ getComputedStyle(_el: MLDOMElement<any, any>): {
47
+ getPropertyValue(_propName: string): {};
48
+ };
49
+ };
50
+ /**
51
+ * It could be used in rule, make sure it is immutable
52
+ */
53
+ get filename(): string | undefined;
54
+ /**
55
+ *
56
+ * @param ast node list of markuplint AST
57
+ * @param ruleset ruleset object
58
+ */
59
+ constructor(
60
+ ast: MLASTDocument,
61
+ ruleset: Ruleset,
62
+ schemas: readonly [MLMLSpec, ...ExtendedSpec[]],
63
+ options?: {
64
+ filename?: string;
65
+ tagNameCaseSensitive?: boolean;
66
+ endTag?: 'xml' | 'omittable' | 'never';
67
+ },
68
+ );
69
+ get doctype(): MLDOMDoctype<T, O> | null;
70
+ get tree(): AnonymousNode<T, O>[];
71
+ walk(walker: Walker<T, O>): Promise<void>;
72
+ /**
73
+ *
74
+ * @param type
75
+ * @param walker
76
+ * @param skipWhenRuleIsDisabled
77
+ */
78
+ walkOn(type: 'Element', walker: Walker<T, O, MLDOMElement<T, O>>, skipWhenRuleIsDisabled?: boolean): Promise<void>;
79
+ walkOn(type: 'Text', walker: Walker<T, O, MLDOMText<T, O>>, skipWhenRuleIsDisabled?: boolean): Promise<void>;
80
+ walkOn(type: 'Comment', walker: Walker<T, O, MLDOMComment<T, O>>, skipWhenRuleIsDisabled?: boolean): Promise<void>;
81
+ walkOn(
82
+ type: 'ElementCloseTag',
83
+ walker: Walker<T, O, MLDOMElementCloseTag<T, O>>,
84
+ skipWhenRuleIsDisabled?: boolean,
85
+ ): Promise<void>;
86
+ setRule(rule: MLRule<T, O> | null): void;
87
+ matchNodes(query: string): MLDOMElement<T, O>[];
88
+ querySelectorAll(query: string): MLDOMElement<T, O>[];
89
+ querySelector(query: string): MLDOMElement<T, O>;
90
+ getElementById(id: string): MLDOMElement<T, O>;
91
+ toString(): string;
92
+ debugMap(): string[];
93
+ private _ruleMapping;
85
94
  }
@@ -1,2 +1,2 @@
1
- import type MLDOMAbstractElement from '../tokens/abstract-element';
2
- export declare function getAccname(el: MLDOMAbstractElement<any, any>): string;
1
+ import type { MLElement } from '../node/element';
2
+ export declare function getAccname(el: MLElement<any, any>): string;
@@ -1,13 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getAccname = void 0;
4
- const dom_accessibility_api_1 = require("dom-accessibility-api");
4
+ const ml_spec_1 = require("@markuplint/ml-spec");
5
5
  const debug_1 = require("../../debug");
6
6
  const accnameLog = debug_1.log.extend('accname');
7
7
  function getAccname(el) {
8
8
  try {
9
- // @ts-ignore
10
- const name = (0, dom_accessibility_api_1.computeAccessibleName)(el);
9
+ const name = (0, ml_spec_1.getAccname)(el);
11
10
  return name;
12
11
  }
13
12
  catch (err) {
@@ -1,6 +1,5 @@
1
- import type { Document } from '../';
2
- import type { MappedNode } from './mapped-nodes';
1
+ import type { MLDocument } from '../node/document';
2
+ import type { MappedNode } from '../node/types';
3
3
  import type { MLASTAbstructNode } from '@markuplint/ml-ast';
4
4
  import type { RuleConfigValue } from '@markuplint/ml-config';
5
- import { MLDOMElement } from '../tokens';
6
- export declare function createNode<N extends MLASTAbstructNode, T extends RuleConfigValue, O = null>(astNode: N, document: Document<T, O>, pearNode?: MLDOMElement<T, O>): MappedNode<N, T, O>;
5
+ export declare function createNode<N extends MLASTAbstructNode, T extends RuleConfigValue, O = null>(astNode: N, document: MLDocument<T, O>): MappedNode<N, T, O>;
@@ -1,32 +1,28 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createNode = void 0;
4
- const tslib_1 = require("tslib");
5
- const tokens_1 = require("../tokens");
6
- const preprocessor_specific_block_1 = tslib_1.__importDefault(require("../tokens/preprocessor-specific-block"));
7
- function createNode(astNode, document, pearNode) {
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, document) {
8
10
  const _astNode = astNode;
9
11
  switch (_astNode.type) {
10
12
  case 'doctype': {
11
- return new tokens_1.MLDOMDoctype(_astNode, document);
13
+ return new document_type_1.MLDocumentType(_astNode, document);
12
14
  }
13
15
  case 'starttag': {
14
- return new tokens_1.MLDOMElement(_astNode, document);
15
- }
16
- case 'endtag': {
17
- return new tokens_1.MLDOMElementCloseTag(_astNode, document, pearNode);
16
+ return new element_1.MLElement(_astNode, document);
18
17
  }
19
18
  case 'psblock': {
20
- return new preprocessor_specific_block_1.default(_astNode, document);
19
+ return new block_1.MLBlock(_astNode, document);
21
20
  }
22
21
  case 'comment': {
23
- return new tokens_1.MLDOMComment(_astNode, document);
22
+ return new comment_1.MLComment(_astNode, document);
24
23
  }
25
24
  case 'text': {
26
- return new tokens_1.MLDOMText(_astNode, document);
27
- }
28
- case 'omittedtag': {
29
- return new tokens_1.MLDOMOmittedElement(_astNode, document);
25
+ return new text_1.MLText(_astNode, document);
30
26
  }
31
27
  }
32
28
  throw new TypeError(`Invalid AST node typs "${astNode.type}"`);
@@ -1,2 +1,2 @@
1
- import type { AnonymousNode } from '@markuplint/ml-core';
2
- export declare function nodeListToDebugMaps(nodeList: Readonly<AnonymousNode<any, any>[]>, withAttr?: boolean): string[];
1
+ import type { MLNode } from '../node/node';
2
+ export declare function nodeListToDebugMaps(nodeList: Readonly<MLNode<any, any>[]>, withAttr?: boolean): string[];
@@ -5,33 +5,33 @@ function nodeListToDebugMaps(nodeList, withAttr = false) {
5
5
  return nodeList
6
6
  .map(n => {
7
7
  const r = [];
8
- if (n.type !== 'OmittedElement') {
9
- r.push(tokenDebug(n));
10
- if (n.type === 'Element') {
11
- r.push(` namespaceURI: ${!!n.namespaceURI}`);
12
- r.push(` isInFragmentDocument: ${!!n.isInFragmentDocument}`);
13
- r.push(` isForeignElement: ${!!n.isForeignElement}`);
14
- r.push(` isCustomElement: ${!!n.isCustomElement}`);
15
- }
16
- if (withAttr && 'attributes' in n) {
8
+ if (n.is(n.ELEMENT_NODE) && n.isOmitted) {
9
+ r.push(`[N/A]>[N/A](N/A)${n.nodeName}: ${visibleWhiteSpace(n.raw)}`);
10
+ return r;
11
+ }
12
+ r.push(tokenDebug(n));
13
+ if (n.is(n.ELEMENT_NODE)) {
14
+ r.push(` namespaceURI: ${!!n.namespaceURI}`);
15
+ r.push(` isInFragmentDocument: ${!!n.isInFragmentDocument}`);
16
+ r.push(` isForeignElement: ${!!n.isForeignElement}`);
17
+ r.push(` isCustomElement: ${!!n.isCustomElement}`);
18
+ if (withAttr) {
17
19
  r.push(...attributesToDebugMaps(n.attributes)
18
20
  .flat()
19
21
  .map(l => ` ${l}`));
20
22
  }
21
23
  }
22
- else {
23
- r.push(`[N/A]>[N/A](N/A)${n.nodeName}: ${visibleWhiteSpace(n.raw)}`);
24
- }
25
24
  return r;
26
25
  })
27
26
  .flat();
28
27
  }
29
28
  exports.nodeListToDebugMaps = nodeListToDebugMaps;
30
29
  function attributesToDebugMaps(attributes) {
31
- return attributes.map(n => {
30
+ return attributes
31
+ .map(n => {
32
32
  const r = [
33
33
  tokenDebug({
34
- name: n.potentialName,
34
+ name: n.name,
35
35
  startOffset: n.startOffset,
36
36
  endOffset: n.endOffset,
37
37
  startLine: n.startLine,
@@ -41,26 +41,40 @@ function attributesToDebugMaps(attributes) {
41
41
  raw: n.raw,
42
42
  }),
43
43
  ];
44
- if (n.attrType === 'html-attr') {
44
+ if (n.spacesBeforeName) {
45
45
  r.push(` ${tokenDebug(n.spacesBeforeName, 'bN')}`);
46
- r.push(` ${tokenDebug(n.name, 'name')}`);
46
+ }
47
+ if (n.nameNode) {
48
+ r.push(` ${tokenDebug(n.nameNode, 'name')}`);
49
+ }
50
+ if (n.spacesBeforeEqual) {
47
51
  r.push(` ${tokenDebug(n.spacesBeforeEqual, 'bE')}`);
52
+ }
53
+ if (n.equal) {
48
54
  r.push(` ${tokenDebug(n.equal, 'equal')}`);
55
+ }
56
+ if (n.spacesAfterEqual) {
49
57
  r.push(` ${tokenDebug(n.spacesAfterEqual, 'aE')}`);
58
+ }
59
+ if (n.startQuote) {
50
60
  r.push(` ${tokenDebug(n.startQuote, 'sQ')}`);
61
+ }
62
+ if (n.valueNode) {
51
63
  r.push(` ${tokenDebug(n.valueNode, 'value')}`);
64
+ }
65
+ if (n.endQuote) {
52
66
  r.push(` ${tokenDebug(n.endQuote, 'eQ')}`);
67
+ }
68
+ if (n.spacesBeforeName) {
53
69
  r.push(` isDirective: ${!!n.isDirective}`);
54
70
  r.push(` isDynamicValue: ${!!n.isDynamicValue}`);
55
71
  }
56
- if (n.potentialName != null) {
57
- r.push(` potentialName: ${visibleWhiteSpace(n.potentialName)}`);
58
- }
59
- if (n.attrType === 'html-attr' && n.candidate) {
72
+ if (n.candidate) {
60
73
  r.push(` candidate: ${visibleWhiteSpace(n.candidate)}`);
61
74
  }
62
75
  return r;
63
- });
76
+ })
77
+ .flat();
64
78
  }
65
79
  function tokenDebug(n, type = '') {
66
80
  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)}`;
@@ -1,18 +1,18 @@
1
- import type { MLDOMNode, MLDOMText } from '../tokens';
2
- import type { AnonymousNode } from '../types';
1
+ import type { MLNode } from '../node/node';
2
+ import type { MLText } from '../node/text';
3
3
  /**
4
4
  *
5
5
  * @deprecated
6
6
  * @param node
7
7
  */
8
- export declare function getIndent(node: AnonymousNode<any, any>): MLDOMIndentation | null;
8
+ export declare function getIndent(node: MLNode<any, any>): MLDOMIndentation | null;
9
9
  declare class MLDOMIndentation {
10
10
  #private;
11
11
  readonly line: number;
12
- constructor(originTextNode: MLDOMText<any, any>, raw: string, line: number, parentNode: MLDOMNode<any, any>);
12
+ get raw(): string;
13
13
  get type(): 'tab' | 'space' | 'mixed' | 'none';
14
14
  get width(): number;
15
- get raw(): string;
15
+ constructor(originTextNode: MLText<any, any>, raw: string, line: number, parentNode: MLNode<any, any>);
16
16
  fix(raw: string): void;
17
17
  }
18
18
  export {};