@markuplint/ml-core 2.3.4 → 2.3.5

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 (47) hide show
  1. package/lib/ml-core.d.ts +1 -1
  2. package/lib/ml-dom/manipulations/child-node-methods.d.ts +33 -0
  3. package/lib/ml-dom/manipulations/child-node-methods.js +73 -0
  4. package/lib/ml-dom/manipulations/get-children.d.ts +4 -0
  5. package/lib/ml-dom/manipulations/get-children.js +10 -0
  6. package/lib/ml-dom/node/attr.d.ts +98 -0
  7. package/lib/ml-dom/node/attr.js +157 -0
  8. package/lib/ml-dom/node/block.d.ts +38 -0
  9. package/lib/ml-dom/node/block.js +53 -0
  10. package/lib/ml-dom/node/character-data.d.ts +57 -0
  11. package/lib/ml-dom/node/character-data.js +87 -0
  12. package/lib/ml-dom/node/child-node.d.ts +9 -0
  13. package/lib/ml-dom/node/child-node.js +10 -0
  14. package/lib/ml-dom/node/comment.d.ts +17 -0
  15. package/lib/ml-dom/node/comment.js +24 -0
  16. package/lib/ml-dom/node/document-fragment.d.ts +24 -0
  17. package/lib/ml-dom/node/document-fragment.js +33 -0
  18. package/lib/ml-dom/node/document-type.d.ts +38 -0
  19. package/lib/ml-dom/node/document-type.js +52 -0
  20. package/lib/ml-dom/node/document.d.ts +1599 -0
  21. package/lib/ml-dom/node/document.js +2172 -0
  22. package/lib/ml-dom/node/dom-token-list.d.ts +33 -0
  23. package/lib/ml-dom/node/dom-token-list.js +137 -0
  24. package/lib/ml-dom/node/element.d.ts +1900 -0
  25. package/lib/ml-dom/node/element.js +2683 -0
  26. package/lib/ml-dom/node/named-node-map.d.ts +42 -0
  27. package/lib/ml-dom/node/named-node-map.js +64 -0
  28. package/lib/ml-dom/node/node-list.d.ts +6 -0
  29. package/lib/ml-dom/node/node-list.js +39 -0
  30. package/lib/ml-dom/node/node-store.d.ts +14 -0
  31. package/lib/ml-dom/node/node-store.js +32 -0
  32. package/lib/ml-dom/node/node.d.ts +482 -0
  33. package/lib/ml-dom/node/node.js +675 -0
  34. package/lib/ml-dom/node/parent-node.d.ts +66 -0
  35. package/lib/ml-dom/node/parent-node.js +131 -0
  36. package/lib/ml-dom/node/rule-mapper.d.ts +17 -0
  37. package/lib/ml-dom/node/rule-mapper.js +49 -0
  38. package/lib/ml-dom/node/text.d.ts +51 -0
  39. package/lib/ml-dom/node/text.js +76 -0
  40. package/lib/ml-dom/node/types.d.ts +35 -0
  41. package/lib/ml-dom/node/types.js +2 -0
  42. package/lib/ml-dom/node/unexpected-call-error.d.ts +2 -0
  43. package/lib/ml-dom/node/unexpected-call-error.js +5 -0
  44. package/lib/ml-dom/token/token.d.ts +47 -0
  45. package/lib/ml-dom/token/token.js +89 -0
  46. package/package.json +4 -4
  47. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,33 @@
1
+ import type { MLAttr } from './attr';
2
+ import type { RuleInfo } from '@markuplint/ml-config';
3
+ type Scope = {
4
+ raw: string;
5
+ startOffset: number;
6
+ startLine: number;
7
+ startCol: number;
8
+ rule: RuleInfo<any, any>;
9
+ };
10
+ export declare class MLDomTokenList extends Array<string> implements DOMTokenList {
11
+ #private;
12
+ constructor(tokens: string, ownerAttrs: MLAttr<any, any>[]);
13
+ get value(): string;
14
+ add(...tokens: string[]): void;
15
+ /**
16
+ * @implements `@markuplint/ml-core` API: `MLDomTokenList`
17
+ */
18
+ allTokens(): Scope[];
19
+ contains(token: string): boolean;
20
+ forEach(callbackfn: (value: string, index: number, parent: any) => void, thisArg?: any): void;
21
+ item(index: number): string | null;
22
+ /**
23
+ * @implements `@markuplint/ml-core` API: `MLDomTokenList`
24
+ */
25
+ pick(token: string): Scope | null;
26
+ remove(...tokens: string[]): void;
27
+ replace(token: string, newToken: string): boolean;
28
+ supports(token: string): boolean;
29
+ toString(): string;
30
+ toggle(token: string, force?: boolean): boolean;
31
+ private _pick;
32
+ }
33
+ export {};
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ var _MLDomTokenList_origin, _MLDomTokenList_ownerAttrs, _MLDomTokenList_set;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.MLDomTokenList = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const parser_utils_1 = require("@markuplint/parser-utils");
7
+ const unexpected_call_error_1 = tslib_1.__importDefault(require("./unexpected-call-error"));
8
+ class MLDomTokenList extends Array {
9
+ constructor(tokens, ownerAttrs) {
10
+ const list = tokens
11
+ .split(/\s+/)
12
+ .map(t => t.trim())
13
+ .filter(t => !!t);
14
+ super(...list);
15
+ _MLDomTokenList_origin.set(this, void 0);
16
+ /**
17
+ * In some cases, an author specifies multiple attributes or directives.
18
+ * The reference is not always one.
19
+ */
20
+ _MLDomTokenList_ownerAttrs.set(this, void 0);
21
+ _MLDomTokenList_set.set(this, void 0);
22
+ tslib_1.__classPrivateFieldSet(this, _MLDomTokenList_origin, tokens, "f");
23
+ tslib_1.__classPrivateFieldSet(this, _MLDomTokenList_ownerAttrs, ownerAttrs, "f");
24
+ tslib_1.__classPrivateFieldSet(this, _MLDomTokenList_set, new Set(list), "f");
25
+ }
26
+ get value() {
27
+ return this.join(' ');
28
+ }
29
+ add(...tokens) {
30
+ for (const token of tokens) {
31
+ if (tslib_1.__classPrivateFieldGet(this, _MLDomTokenList_set, "f").has(token)) {
32
+ continue;
33
+ }
34
+ tslib_1.__classPrivateFieldGet(this, _MLDomTokenList_set, "f").add(token);
35
+ this.push(token);
36
+ }
37
+ tslib_1.__classPrivateFieldSet(this, _MLDomTokenList_origin, tslib_1.__classPrivateFieldGet(this, _MLDomTokenList_origin, "f") + tokens.join(' '), "f");
38
+ }
39
+ /**
40
+ * @implements `@markuplint/ml-core` API: `MLDomTokenList`
41
+ */
42
+ allTokens() {
43
+ let offset = 0;
44
+ const tokens = Array.from(this);
45
+ const locs = [];
46
+ while (tokens.length) {
47
+ const token = tokens.shift();
48
+ if (!token) {
49
+ break;
50
+ }
51
+ const loc = this._pick(token, offset);
52
+ if (!loc) {
53
+ offset = 0;
54
+ continue;
55
+ }
56
+ offset = loc._searchedIndex;
57
+ locs.push({
58
+ raw: loc.raw,
59
+ startOffset: loc.startOffset,
60
+ startLine: loc.startLine,
61
+ startCol: loc.startCol,
62
+ rule: loc.rule,
63
+ });
64
+ }
65
+ return locs;
66
+ }
67
+ contains(token) {
68
+ return tslib_1.__classPrivateFieldGet(this, _MLDomTokenList_set, "f").has(token);
69
+ }
70
+ forEach(callbackfn, thisArg) {
71
+ this.forEach.bind(this)((v, i) => callbackfn(v, i, thisArg !== null && thisArg !== void 0 ? thisArg : this));
72
+ }
73
+ item(index) {
74
+ var _a;
75
+ return (_a = this[index]) !== null && _a !== void 0 ? _a : null;
76
+ }
77
+ /**
78
+ * @implements `@markuplint/ml-core` API: `MLDomTokenList`
79
+ */
80
+ pick(token) {
81
+ const r = this._pick(token);
82
+ if (!r) {
83
+ return null;
84
+ }
85
+ return {
86
+ raw: r.raw,
87
+ startOffset: r.startOffset,
88
+ startLine: r.startLine,
89
+ startCol: r.startCol,
90
+ rule: r.rule,
91
+ };
92
+ }
93
+ remove(...tokens) {
94
+ throw new unexpected_call_error_1.default('Not supported "remove" method');
95
+ }
96
+ replace(token, newToken) {
97
+ throw new unexpected_call_error_1.default('Not supported "replace" method');
98
+ }
99
+ supports(token) {
100
+ throw new unexpected_call_error_1.default('Not supported "supports" method');
101
+ }
102
+ toString() {
103
+ return this.value;
104
+ }
105
+ toggle(token, force) {
106
+ throw new unexpected_call_error_1.default('Not supported "toggle" method');
107
+ }
108
+ _pick(token, _offset = 0) {
109
+ var _a, _b, _c, _d, _e, _f;
110
+ token = token.trim().split(/\s+/g)[0];
111
+ if (!token) {
112
+ return null;
113
+ }
114
+ for (const ownerAttr of tslib_1.__classPrivateFieldGet(this, _MLDomTokenList_ownerAttrs, "f")) {
115
+ if (ownerAttr.isDynamicValue) {
116
+ continue;
117
+ }
118
+ const startOffset = tslib_1.__classPrivateFieldGet(this, _MLDomTokenList_origin, "f").indexOf(token, _offset);
119
+ if (startOffset === -1) {
120
+ continue;
121
+ }
122
+ const startLine = (0, parser_utils_1.getLine)(tslib_1.__classPrivateFieldGet(this, _MLDomTokenList_origin, "f"), startOffset);
123
+ const startCol = (0, parser_utils_1.getCol)(tslib_1.__classPrivateFieldGet(this, _MLDomTokenList_origin, "f"), startOffset);
124
+ return {
125
+ raw: token,
126
+ startOffset: ((_b = (_a = ownerAttr.valueNode) === null || _a === void 0 ? void 0 : _a.startOffset) !== null && _b !== void 0 ? _b : 0) + startOffset,
127
+ startLine: ((_d = (_c = ownerAttr.valueNode) === null || _c === void 0 ? void 0 : _c.startLine) !== null && _d !== void 0 ? _d : 0) + (startLine - 1),
128
+ startCol: ((_f = (_e = ownerAttr.valueNode) === null || _e === void 0 ? void 0 : _e.startCol) !== null && _f !== void 0 ? _f : 0) + (startCol - 1),
129
+ rule: ownerAttr.rule,
130
+ _searchedIndex: startOffset,
131
+ };
132
+ }
133
+ return null;
134
+ }
135
+ }
136
+ exports.MLDomTokenList = MLDomTokenList;
137
+ _MLDomTokenList_origin = new WeakMap(), _MLDomTokenList_ownerAttrs = new WeakMap(), _MLDomTokenList_set = new WeakMap();