@markuplint/ml-core 2.3.0 → 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.
- package/lib/configs.d.ts +1 -1
- package/lib/configs.js +29 -9
- package/lib/index.d.ts +8 -8
- package/lib/index.js +18 -10
- package/lib/ml-core.d.ts +3 -3
- package/lib/ml-core.js +41 -42
- package/lib/ml-dom/document.d.ts +79 -70
- package/lib/ml-dom/helper/accname.d.ts +2 -2
- package/lib/ml-dom/helper/accname.js +2 -3
- package/lib/ml-dom/helper/create-node.d.ts +3 -4
- package/lib/ml-dom/helper/create-node.js +11 -15
- package/lib/ml-dom/helper/debug.d.ts +2 -2
- package/lib/ml-dom/helper/debug.js +35 -21
- package/lib/ml-dom/helper/getIndent.d.ts +5 -5
- package/lib/ml-dom/helper/getIndent.js +14 -14
- package/lib/ml-dom/helper/mapped-nodes.d.ts +51 -3
- package/lib/ml-dom/helper/match-selector.d.ts +10 -6
- package/lib/ml-dom/helper/node-store.d.ts +6 -3
- package/lib/ml-dom/helper/selector.d.ts +4 -4
- package/lib/ml-dom/helper/walkers.d.ts +5 -4
- package/lib/ml-dom/helper/walkers.js +39 -3
- package/lib/ml-dom/index.d.ts +8 -3
- package/lib/ml-dom/index.js +3 -15
- package/lib/ml-dom/manipulations/child-node-methods.d.ts +33 -0
- package/lib/ml-dom/manipulations/child-node-methods.js +73 -0
- package/lib/ml-dom/manipulations/get-children.d.ts +4 -0
- package/lib/ml-dom/manipulations/get-children.js +10 -0
- package/lib/ml-dom/node/attr.d.ts +98 -0
- package/lib/ml-dom/node/attr.js +157 -0
- package/lib/ml-dom/node/block.d.ts +38 -0
- package/lib/ml-dom/node/block.js +53 -0
- package/lib/ml-dom/node/character-data.d.ts +57 -0
- package/lib/ml-dom/node/character-data.js +87 -0
- package/lib/ml-dom/node/child-node.d.ts +9 -0
- package/lib/ml-dom/node/child-node.js +10 -0
- package/lib/ml-dom/node/comment.d.ts +17 -0
- package/lib/ml-dom/node/comment.js +24 -0
- package/lib/ml-dom/node/document-fragment.d.ts +24 -0
- package/lib/ml-dom/node/document-fragment.js +33 -0
- package/lib/ml-dom/node/document-type.d.ts +38 -0
- package/lib/ml-dom/node/document-type.js +52 -0
- package/lib/ml-dom/node/document.d.ts +1554 -0
- package/lib/ml-dom/node/document.js +2117 -0
- package/lib/ml-dom/node/dom-token-list.d.ts +33 -0
- package/lib/ml-dom/node/dom-token-list.js +137 -0
- package/lib/ml-dom/node/element.d.ts +1825 -0
- package/lib/ml-dom/node/element.js +2460 -0
- package/lib/ml-dom/node/named-node-map.d.ts +42 -0
- package/lib/ml-dom/node/named-node-map.js +64 -0
- package/lib/ml-dom/node/node-list.d.ts +6 -0
- package/lib/ml-dom/node/node-list.js +39 -0
- package/lib/ml-dom/node/node-store.d.ts +14 -0
- package/lib/ml-dom/node/node-store.js +32 -0
- package/lib/ml-dom/node/node.d.ts +475 -0
- package/lib/ml-dom/node/node.js +666 -0
- package/lib/ml-dom/node/parent-node.d.ts +66 -0
- package/lib/ml-dom/node/parent-node.js +131 -0
- package/lib/ml-dom/node/rule-mapper.d.ts +17 -0
- package/lib/ml-dom/node/rule-mapper.js +49 -0
- package/lib/ml-dom/node/text.d.ts +51 -0
- package/lib/ml-dom/node/text.js +76 -0
- package/lib/ml-dom/node/types.d.ts +25 -0
- package/lib/ml-dom/node/types.js +2 -0
- package/lib/ml-dom/node/unexpected-call-error.d.ts +2 -0
- package/lib/ml-dom/node/unexpected-call-error.js +5 -0
- package/lib/ml-dom/rule-mapper.d.ts +7 -7
- package/lib/ml-dom/token/token.d.ts +47 -0
- package/lib/ml-dom/token/token.js +89 -0
- package/lib/ml-dom/tokens/abstract-element.d.ts +47 -42
- package/lib/ml-dom/tokens/attribute.d.ts +38 -38
- package/lib/ml-dom/tokens/comment.d.ts +7 -4
- package/lib/ml-dom/tokens/doctype.d.ts +12 -9
- package/lib/ml-dom/tokens/element-close-tag.d.ts +20 -17
- package/lib/ml-dom/tokens/element.d.ts +18 -15
- package/lib/ml-dom/tokens/node.d.ts +38 -31
- package/lib/ml-dom/tokens/omitted-element.d.ts +7 -4
- package/lib/ml-dom/tokens/preprocessor-specific-attribute.d.ts +20 -20
- package/lib/ml-dom/tokens/preprocessor-specific-block.d.ts +8 -5
- package/lib/ml-dom/tokens/text.d.ts +13 -9
- package/lib/ml-dom/tokens/token.d.ts +13 -13
- package/lib/ml-dom/types.d.ts +35 -13
- package/lib/ml-rule/ml-rule-context.d.ts +13 -10
- package/lib/ml-rule/ml-rule-context.js +12 -6
- package/lib/ml-rule/ml-rule.d.ts +8 -8
- package/lib/ml-rule/ml-rule.js +62 -62
- package/lib/ml-rule/types.d.ts +11 -1
- package/lib/ruleset/index.d.ts +2 -2
- package/lib/selector/is-pure-html-element.d.ts +1 -0
- package/lib/selector/is-pure-html-element.js +7 -0
- package/lib/selector/match-selector.d.ts +14 -0
- package/lib/selector/match-selector.js +230 -0
- package/lib/selector/selector.d.ts +9 -0
- package/lib/selector/selector.js +561 -0
- package/lib/test/index.d.ts +2 -1
- package/lib/test/index.js +7 -2
- package/package.json +10 -9
- package/tsconfig.tsbuildinfo +1 -1
- 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
|
|
2
|
+
export declare function getPreset(name: string): Promise<Config>;
|
package/lib/configs.js
CHANGED
|
@@ -1,11 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
|
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.
|
|
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
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
-
|
|
13
|
-
|
|
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
|
-
|
|
21
|
-
|
|
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
|
-
constructor({ parser, sourceCode, ruleset, rules, locale, schemas, parserOptions, filename, debug }: MLCoreParams);
|
|
13
12
|
get document(): ParserError | Document<RuleConfigValue, unknown>;
|
|
14
|
-
|
|
13
|
+
constructor({ parser, sourceCode, ruleset, rules, locale, schemas, parserOptions, filename, debug }: MLCoreParams);
|
|
15
14
|
setCode(sourceCode: string): void;
|
|
16
15
|
update({ parser, ruleset, rules, locale, schemas, parserOptions }: Partial<MLFabric>): void;
|
|
17
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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"),
|
|
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
|
-
|
|
105
|
-
tslib_1.
|
|
106
|
-
|
|
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,
|
|
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
|
-
|
|
141
|
-
if (!tslib_1.__classPrivateFieldGet(this, _MLCore_ast, "f")) {
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
+
_parse() {
|
|
144
145
|
try {
|
|
145
|
-
tslib_1.__classPrivateFieldSet(this,
|
|
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
|
-
|
|
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();
|
package/lib/ml-dom/document.d.ts
CHANGED
|
@@ -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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
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
|
|
2
|
-
export declare function getAccname(el:
|
|
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
|
|
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
|
-
|
|
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 {
|
|
2
|
-
import type { MappedNode } from '
|
|
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
|
-
|
|
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
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
|
|
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
|
|
13
|
+
return new document_type_1.MLDocumentType(_astNode, document);
|
|
12
14
|
}
|
|
13
15
|
case 'starttag': {
|
|
14
|
-
return new
|
|
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
|
|
19
|
+
return new block_1.MLBlock(_astNode, document);
|
|
21
20
|
}
|
|
22
21
|
case 'comment': {
|
|
23
|
-
return new
|
|
22
|
+
return new comment_1.MLComment(_astNode, document);
|
|
24
23
|
}
|
|
25
24
|
case 'text': {
|
|
26
|
-
return new
|
|
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 {
|
|
2
|
-
export declare function nodeListToDebugMaps(nodeList: Readonly<
|
|
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.
|
|
9
|
-
r.push(
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
|
|
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
|
|
30
|
+
return attributes
|
|
31
|
+
.map(n => {
|
|
32
32
|
const r = [
|
|
33
33
|
tokenDebug({
|
|
34
|
-
name: n.
|
|
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.
|
|
44
|
+
if (n.spacesBeforeName) {
|
|
45
45
|
r.push(` ${tokenDebug(n.spacesBeforeName, 'bN')}`);
|
|
46
|
-
|
|
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.
|
|
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 {
|
|
2
|
-
import type {
|
|
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:
|
|
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
|
-
|
|
12
|
+
get raw(): string;
|
|
13
13
|
get type(): 'tab' | 'space' | 'mixed' | 'none';
|
|
14
14
|
get width(): number;
|
|
15
|
-
|
|
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 {};
|