wikiparser-node 1.9.2 → 1.9.3

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 (110) hide show
  1. package/dist/base.d.ts +9 -3
  2. package/dist/index.js +0 -1
  3. package/dist/lib/element.d.ts +1 -0
  4. package/dist/lib/element.js +23 -249
  5. package/dist/lib/node.d.ts +3 -1
  6. package/dist/lib/range.js +12 -12
  7. package/dist/lib/text.d.ts +2 -1
  8. package/dist/lib/text.js +8 -2
  9. package/dist/mixin/hidden.js +5 -0
  10. package/dist/mixin/syntax.js +2 -1
  11. package/dist/parser/selector.js +223 -20
  12. package/dist/parser/table.js +3 -3
  13. package/dist/src/arg.d.ts +1 -2
  14. package/dist/src/arg.js +3 -2
  15. package/dist/src/atom.d.ts +5 -3
  16. package/dist/src/atom.js +28 -2
  17. package/dist/src/attribute.d.ts +1 -2
  18. package/dist/src/attribute.js +5 -2
  19. package/dist/src/attributes.d.ts +1 -2
  20. package/dist/src/attributes.js +7 -2
  21. package/dist/src/converter.d.ts +1 -2
  22. package/dist/src/converter.js +5 -2
  23. package/dist/src/converterFlags.d.ts +1 -2
  24. package/dist/src/converterFlags.js +5 -2
  25. package/dist/src/converterRule.d.ts +1 -3
  26. package/dist/src/converterRule.js +5 -3
  27. package/dist/src/extLink.d.ts +1 -2
  28. package/dist/src/extLink.js +5 -2
  29. package/dist/src/gallery.d.ts +1 -2
  30. package/dist/src/gallery.js +7 -4
  31. package/dist/src/heading.d.ts +1 -2
  32. package/dist/src/heading.js +3 -2
  33. package/dist/src/hidden.d.ts +1 -2
  34. package/dist/src/hidden.js +3 -2
  35. package/dist/src/html.d.ts +1 -2
  36. package/dist/src/html.js +3 -2
  37. package/dist/src/imageParameter.d.ts +1 -2
  38. package/dist/src/imageParameter.js +3 -2
  39. package/dist/src/imagemap.d.ts +1 -2
  40. package/dist/src/imagemap.js +3 -2
  41. package/dist/src/imagemapLink.d.ts +1 -1
  42. package/dist/src/imagemapLink.js +5 -1
  43. package/dist/src/index.d.ts +2 -1
  44. package/dist/src/index.js +26 -1
  45. package/dist/src/link/base.d.ts +1 -2
  46. package/dist/src/link/base.js +5 -3
  47. package/dist/src/link/category.d.ts +1 -1
  48. package/dist/src/link/category.js +5 -1
  49. package/dist/src/link/file.d.ts +1 -1
  50. package/dist/src/link/file.js +3 -1
  51. package/dist/src/link/galleryImage.d.ts +1 -2
  52. package/dist/src/link/galleryImage.js +7 -33
  53. package/dist/src/link/index.d.ts +1 -2
  54. package/dist/src/link/index.js +5 -2
  55. package/dist/src/link/redirectTarget.d.ts +1 -2
  56. package/dist/src/link/redirectTarget.js +5 -2
  57. package/dist/src/magicLink.d.ts +2 -2
  58. package/dist/src/magicLink.js +8 -5
  59. package/dist/src/nested.d.ts +1 -2
  60. package/dist/src/nested.js +3 -2
  61. package/dist/src/nowiki/base.d.ts +1 -2
  62. package/dist/src/nowiki/base.js +1 -3
  63. package/dist/src/nowiki/comment.d.ts +1 -2
  64. package/dist/src/nowiki/comment.js +3 -2
  65. package/dist/src/nowiki/dd.d.ts +1 -1
  66. package/dist/src/nowiki/dd.js +3 -1
  67. package/dist/src/nowiki/doubleUnderscore.d.ts +1 -2
  68. package/dist/src/nowiki/doubleUnderscore.js +3 -2
  69. package/dist/src/nowiki/hr.d.ts +1 -1
  70. package/dist/src/nowiki/hr.js +3 -1
  71. package/dist/src/nowiki/index.d.ts +1 -1
  72. package/dist/src/nowiki/index.js +3 -1
  73. package/dist/src/nowiki/list.d.ts +1 -1
  74. package/dist/src/nowiki/list.js +3 -1
  75. package/dist/src/nowiki/listBase.d.ts +1 -1
  76. package/dist/src/nowiki/noinclude.d.ts +1 -5
  77. package/dist/src/nowiki/noinclude.js +3 -5
  78. package/dist/src/nowiki/quote.d.ts +1 -4
  79. package/dist/src/nowiki/quote.js +3 -4
  80. package/dist/src/onlyinclude.d.ts +1 -2
  81. package/dist/src/onlyinclude.js +3 -2
  82. package/dist/src/paramTag/index.d.ts +1 -2
  83. package/dist/src/paramTag/index.js +3 -2
  84. package/dist/src/parameter.d.ts +1 -7
  85. package/dist/src/parameter.js +3 -7
  86. package/dist/src/pre.d.ts +1 -2
  87. package/dist/src/pre.js +3 -2
  88. package/dist/src/redirect.d.ts +1 -2
  89. package/dist/src/redirect.js +3 -2
  90. package/dist/src/syntax.d.ts +4 -4
  91. package/dist/src/syntax.js +6 -3
  92. package/dist/src/table/base.d.ts +1 -2
  93. package/dist/src/table/base.js +0 -1
  94. package/dist/src/table/index.d.ts +1 -10
  95. package/dist/src/table/index.js +3 -10
  96. package/dist/src/table/td.d.ts +1 -7
  97. package/dist/src/table/td.js +3 -7
  98. package/dist/src/table/tr.d.ts +1 -1
  99. package/dist/src/table/tr.js +3 -1
  100. package/dist/src/table/trBase.d.ts +1 -1
  101. package/dist/src/tagPair/ext.d.ts +1 -2
  102. package/dist/src/tagPair/ext.js +7 -4
  103. package/dist/src/tagPair/include.d.ts +1 -3
  104. package/dist/src/tagPair/include.js +5 -3
  105. package/dist/src/tagPair/index.d.ts +1 -1
  106. package/dist/src/transclude.d.ts +1 -2
  107. package/dist/src/transclude.js +8 -5
  108. package/dist/util/constants.js +2 -2
  109. package/dist/util/debug.js +0 -2
  110. package/package.json +1 -1
@@ -9,7 +9,6 @@ import type { LintError } from '../base';
9
9
  */
10
10
  export declare abstract class RedirectToken extends Token {
11
11
  #private;
12
- readonly type = "redirect";
13
12
  readonly childNodes: readonly [SyntaxToken, RedirectTargetToken];
14
13
  abstract get firstChild(): SyntaxToken;
15
14
  abstract get lastChild(): RedirectTargetToken;
@@ -18,6 +17,7 @@ export declare abstract class RedirectToken extends Token {
18
17
  abstract get firstElementChild(): SyntaxToken;
19
18
  abstract get lastElementChild(): RedirectTargetToken;
20
19
  abstract get previousElementSibling(): undefined;
20
+ get type(): 'redirect';
21
21
  /**
22
22
  * @param pre leading whitespace
23
23
  * @param syntax 重定向魔术字
@@ -26,6 +26,5 @@ export declare abstract class RedirectToken extends Token {
26
26
  * @param post trailing whitespace
27
27
  */
28
28
  constructor(pre: string, syntax: string | undefined, link: string, text: string | undefined, post: string, config?: Parser.Config, accum?: Token[]);
29
- /** @override */
30
29
  cloneNode(): this;
31
30
  }
@@ -62,10 +62,12 @@ let RedirectToken = (() => {
62
62
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
63
63
  __runInitializers(_classThis, _classExtraInitializers);
64
64
  }
65
- type = 'redirect';
66
65
  #pre;
67
66
  #post;
68
67
  /* NOT FOR BROWSER END */
68
+ get type() {
69
+ return 'redirect';
70
+ }
69
71
  /**
70
72
  * @param pre leading whitespace
71
73
  * @param syntax 重定向魔术字
@@ -103,7 +105,6 @@ let RedirectToken = (() => {
103
105
  return super.print({ pre: this.#pre, post: this.#post });
104
106
  }
105
107
  /* NOT FOR BROWSER */
106
- /** @override */
107
108
  cloneNode() {
108
109
  const cloned = this.cloneChildNodes(), config = this.getAttribute('config');
109
110
  return debug_1.Shadow.run(() => {
@@ -1,17 +1,17 @@
1
1
  import { Token } from './index';
2
2
  import type { Config } from '../base';
3
3
  import type { SyntaxBase } from '../mixin/syntax';
4
- declare type SyntaxTypes = 'plain' | 'heading-trail' | 'magic-word-name' | 'table-syntax' | 'redirect-syntax';
4
+ declare type SyntaxTypes = 'heading-trail' | 'magic-word-name' | 'table-syntax' | 'redirect-syntax';
5
5
  /** NOT FOR BROWSER */
6
6
  export interface SyntaxToken extends SyntaxBase {
7
7
  }
8
8
  /** NOT FOR BROWSER END */
9
9
  /** 满足特定语法格式的plain Token */
10
10
  export declare class SyntaxToken extends Token {
11
- type: SyntaxTypes;
11
+ #private;
12
+ get type(): SyntaxTypes;
12
13
  /** @param pattern 语法正则 */
13
- constructor(wikitext: string | undefined, pattern: RegExp, type?: SyntaxTypes, config?: Config, accum?: Token[], acceptable?: Acceptable);
14
- /** @override */
14
+ constructor(wikitext: string | undefined, pattern: RegExp, type: SyntaxTypes, config?: Config, accum?: Token[], acceptable?: Acceptable);
15
15
  cloneNode(): this;
16
16
  }
17
17
  export {};
@@ -56,10 +56,14 @@ let SyntaxToken = (() => {
56
56
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
57
57
  __runInitializers(_classThis, _classExtraInitializers);
58
58
  }
59
+ #type;
60
+ get type() {
61
+ return this.#type;
62
+ }
59
63
  /** @param pattern 语法正则 */
60
- constructor(wikitext, pattern, type = 'plain', config, accum, acceptable) {
64
+ constructor(wikitext, pattern, type, config, accum, acceptable) {
61
65
  super(wikitext, config, accum, acceptable);
62
- this.type = type;
66
+ this.#type = type;
63
67
  /* NOT FOR BROWSER */
64
68
  this.setAttribute('pattern', pattern);
65
69
  }
@@ -68,7 +72,6 @@ let SyntaxToken = (() => {
68
72
  return [];
69
73
  }
70
74
  /* NOT FOR BROWSER */
71
- /** @override */
72
75
  cloneNode() {
73
76
  const cloned = this.cloneChildNodes(), config = this.getAttribute('config'), acceptable = this.getAcceptable();
74
77
  return debug_1.Shadow.run(() => {
@@ -7,7 +7,7 @@ declare type TableTypes = 'table' | 'tr' | 'td';
7
7
  export interface TableBaseToken extends AttributesParentBase {
8
8
  }
9
9
  export declare abstract class TableBaseToken extends Token {
10
- type: TableTypes;
10
+ abstract get type(): TableTypes;
11
11
  readonly childNodes: readonly [SyntaxToken, AttributesToken, ...Token[]];
12
12
  abstract get firstChild(): SyntaxToken;
13
13
  abstract get lastChild(): Token;
@@ -21,7 +21,6 @@ export declare abstract class TableBaseToken extends Token {
21
21
  * @param attr 表格属性
22
22
  */
23
23
  constructor(pattern: RegExp, syntax: string, type: TableTypes, attr?: string, config?: Parser.Config, accum?: Token[], acceptable?: Acceptable);
24
- /** @override */
25
24
  cloneNode(): this;
26
25
  /** 转义表格语法 */
27
26
  escape(): void;
@@ -42,7 +42,6 @@ class TableBaseToken extends (0, attributesParent_1.attributesParent)(1)(index_2
42
42
  this.protectChildren(0, 1);
43
43
  }
44
44
  /* NOT FOR BROWSER */
45
- /** @override */
46
45
  cloneNode() {
47
46
  const [syntax, attr, ...cloned] = this.cloneChildNodes();
48
47
  return debug_1.Shadow.run(() => {
@@ -28,11 +28,11 @@ export declare class Layout extends Array<TableCoords[]> {
28
28
  * @classdesc `{childNodes: [SyntaxToken, AttributesToken, ?Token, ...TdToken, ...TrToken, ?SyntaxToken]}`
29
29
  */
30
30
  export declare abstract class TableToken extends TrBaseToken {
31
- readonly type = "table";
32
31
  readonly childNodes: readonly [SyntaxToken, AttributesToken, ...(TdToken | TrToken)[], SyntaxToken] | readonly [SyntaxToken, AttributesToken, ...(TdToken | TrToken)[]];
33
32
  abstract get lastChild(): AttributesToken | TdToken | TrToken | SyntaxToken;
34
33
  abstract get children(): [SyntaxToken, AttributesToken, ...(TdToken | TrToken)[], SyntaxToken] | [SyntaxToken, AttributesToken, ...(TdToken | TrToken)[]];
35
34
  abstract get lastElementChild(): AttributesToken | TdToken | TrToken | SyntaxToken;
35
+ get type(): 'table';
36
36
  /** 表格是否闭合 */
37
37
  get closed(): boolean;
38
38
  set closed(closed: boolean);
@@ -86,7 +86,6 @@ export declare abstract class TableToken extends TrBaseToken {
86
86
  * @throws `SyntaxError` 表格的闭合部分非法
87
87
  */
88
88
  insertAt<T extends Token>(token: T, i?: number): T;
89
- /** @override */
90
89
  getRowCount(): number;
91
90
  /** 获取下一行 */
92
91
  getNextRow(): TrToken | undefined;
@@ -141,14 +140,6 @@ export declare abstract class TableToken extends TrBaseToken {
141
140
  * @param attr 表格属性
142
141
  */
143
142
  fillTable(inner: string | Token, subtype?: TdSubtypes, attr?: TdAttrs): void;
144
- /**
145
- * @override
146
- * @param inner 单元格内部wikitext
147
- * @param coords 单元格坐标
148
- * @param subtype 单元格类型
149
- * @param attr 单元格属性
150
- * @throws `RangeError` 指定的坐标不是单元格起始点
151
- */
152
143
  insertTableCell(inner: string | Token, coords: TableCoords | TableRenderedCoords, subtype?: TdSubtypes, attr?: TdAttrs): TdToken;
153
144
  /**
154
145
  * 插入表格行
@@ -47,8 +47,10 @@ exports.Layout = Layout;
47
47
  * @classdesc `{childNodes: [SyntaxToken, AttributesToken, ?Token, ...TdToken, ...TrToken, ?SyntaxToken]}`
48
48
  */
49
49
  class TableToken extends trBase_1.TrBaseToken {
50
- type = 'table';
51
50
  /* NOT FOR BROWSER END */
51
+ get type() {
52
+ return 'table';
53
+ }
52
54
  /** 表格是否闭合 */
53
55
  get closed() {
54
56
  return this.lastChild.type === 'table-syntax';
@@ -256,7 +258,6 @@ class TableToken extends trBase_1.TrBaseToken {
256
258
  }
257
259
  return super.insertAt(token, i);
258
260
  }
259
- /** @override */
260
261
  getRowCount() {
261
262
  return super.getRowCount() + this.childNodes.filter(child => child.type === 'tr' && child.getRowCount()).length;
262
263
  }
@@ -342,14 +343,6 @@ class TableToken extends trBase_1.TrBaseToken {
342
343
  require('../../addon/table');
343
344
  this.fillTable(inner, subtype, attr);
344
345
  }
345
- /**
346
- * @override
347
- * @param inner 单元格内部wikitext
348
- * @param coords 单元格坐标
349
- * @param subtype 单元格类型
350
- * @param attr 单元格属性
351
- * @throws `RangeError` 指定的坐标不是单元格起始点
352
- */
353
346
  insertTableCell(inner, coords, subtype, attr) {
354
347
  require('../../addon/table');
355
348
  return this.insertTableCell(inner, coords, subtype, attr);
@@ -17,7 +17,6 @@ export type TdAttrs = Record<string, string | true> & TdSpanAttrs;
17
17
  */
18
18
  export declare abstract class TdToken extends TableBaseToken {
19
19
  #private;
20
- readonly type = "td";
21
20
  readonly childNodes: readonly [SyntaxToken, AttributesToken, Token];
22
21
  abstract get parentNode(): TrToken | TableToken | undefined;
23
22
  abstract get nextSibling(): this | TrToken | SyntaxToken | undefined;
@@ -25,6 +24,7 @@ export declare abstract class TdToken extends TableBaseToken {
25
24
  abstract get children(): [SyntaxToken, AttributesToken, Token];
26
25
  abstract get parentElement(): TrToken | TableToken | undefined;
27
26
  abstract get nextElementSibling(): this | TrToken | SyntaxToken | undefined;
27
+ get type(): 'td';
28
28
  /** rowspan */
29
29
  get rowspan(): number;
30
30
  /** colspan */
@@ -44,18 +44,12 @@ export declare abstract class TdToken extends TableBaseToken {
44
44
  constructor(syntax: string, inner?: string, config?: Parser.Config, accum?: Token[]);
45
45
  /** 是否位于行首 */
46
46
  isIndependent(): boolean;
47
- /**
48
- * @override
49
- * @param key 属性键
50
- */
51
47
  getAttr<T extends string>(key: T): TdAttrGetter<T>;
52
48
  /** @override */
53
49
  json(): AST;
54
- /** @override */
55
50
  cloneNode(): this;
56
51
  /** 改为独占一行 */
57
52
  independence(): void;
58
- /** @override */
59
53
  getAttrs(): TdAttrs;
60
54
  /**
61
55
  * @override
@@ -64,10 +64,12 @@ let TdToken = (() => {
64
64
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
65
65
  __runInitializers(_classThis, _classExtraInitializers);
66
66
  }
67
- type = 'td';
68
67
  #innerSyntax = '';
69
68
  #syntax;
70
69
  /* NOT FOR BROWSER END */
70
+ get type() {
71
+ return 'td';
72
+ }
71
73
  /** rowspan */
72
74
  get rowspan() {
73
75
  return this.getAttr('rowspan');
@@ -242,10 +244,6 @@ let TdToken = (() => {
242
244
  isIndependent() {
243
245
  return this.firstChild.text().startsWith('\n');
244
246
  }
245
- /**
246
- * @override
247
- * @param key 属性键
248
- */
249
247
  getAttr(key) {
250
248
  const value = super.getAttr(key);
251
249
  key = key.toLowerCase().trim();
@@ -263,7 +261,6 @@ let TdToken = (() => {
263
261
  return json;
264
262
  }
265
263
  /* NOT FOR BROWSER */
266
- /** @override */
267
264
  cloneNode() {
268
265
  const token = super.cloneNode();
269
266
  token.setAttribute('innerSyntax', this.#innerSyntax);
@@ -300,7 +297,6 @@ let TdToken = (() => {
300
297
  this.setSyntax(subtype, escape);
301
298
  }
302
299
  }
303
- /** @override */
304
300
  getAttrs() {
305
301
  const attr = super.getAttrs();
306
302
  if ('rowspan' in attr) {
@@ -7,7 +7,6 @@ import type { Token, TdToken, TableToken, SyntaxToken, AttributesToken } from '.
7
7
  */
8
8
  export declare abstract class TrToken extends TrBaseToken {
9
9
  #private;
10
- readonly type = "tr";
11
10
  readonly childNodes: readonly [SyntaxToken, AttributesToken, ...TdToken[]];
12
11
  abstract get lastChild(): AttributesToken | TdToken;
13
12
  abstract get parentNode(): TableToken | undefined;
@@ -18,6 +17,7 @@ export declare abstract class TrToken extends TrBaseToken {
18
17
  abstract get parentElement(): TableToken | undefined;
19
18
  abstract get nextElementSibling(): this | SyntaxToken | undefined;
20
19
  abstract get previousElementSibling(): Token;
20
+ get type(): 'tr';
21
21
  /**
22
22
  * @param syntax 表格语法
23
23
  * @param attr 表格属性
@@ -9,8 +9,10 @@ const trBase_1 = require("./trBase");
9
9
  * @classdesc `{childNodes: [SyntaxToken, AttributesToken, ?Token, ...TdToken]}`
10
10
  */
11
11
  class TrToken extends trBase_1.TrBaseToken {
12
- type = 'tr';
13
12
  /* NOT FOR BROWSER END */
13
+ get type() {
14
+ return 'tr';
15
+ }
14
16
  /**
15
17
  * @param syntax 表格语法
16
18
  * @param attr 表格属性
@@ -14,7 +14,7 @@ export interface TableCoords {
14
14
  /** 表格行或表格 */
15
15
  export declare abstract class TrBaseToken extends TableBaseToken {
16
16
  #private;
17
- type: 'table' | 'tr';
17
+ abstract get type(): 'table' | 'tr';
18
18
  /** 获取行数 */
19
19
  getRowCount(): number;
20
20
  /**
@@ -11,13 +11,13 @@ export interface ExtToken extends AttributesParentBase {
11
11
  * @classdesc `{childNodes: [AttributesToken, Token]}`
12
12
  */
13
13
  export declare abstract class ExtToken extends TagPairToken {
14
- readonly type = "ext";
15
14
  closed: true;
16
15
  readonly childNodes: readonly [AttributesToken, Token];
17
16
  abstract get firstChild(): AttributesToken;
18
17
  abstract get lastChild(): Token;
19
18
  abstract get children(): [AttributesToken, Token];
20
19
  abstract get firstElementChild(): AttributesToken;
20
+ get type(): 'ext';
21
21
  /**
22
22
  * @param name 标签名
23
23
  * @param attr 标签属性
@@ -25,6 +25,5 @@ export declare abstract class ExtToken extends TagPairToken {
25
25
  * @param closed 是否封闭
26
26
  */
27
27
  constructor(name: string, attr?: string, inner?: string, closed?: string, config?: Parser.Config, accum?: Token[]);
28
- /** @override */
29
28
  cloneNode(): this;
30
29
  }
@@ -74,8 +74,10 @@ let ExtToken = (() => {
74
74
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
75
75
  __runInitializers(_classThis, _classExtraInitializers);
76
76
  }
77
- type = 'ext';
78
77
  /* NOT FOR BROWSER END */
78
+ get type() {
79
+ return 'ext';
80
+ }
79
81
  /**
80
82
  * @param name 标签名
81
83
  * @param attr 标签属性
@@ -164,11 +166,13 @@ let ExtToken = (() => {
164
166
  default: {
165
167
  const { NowikiToken } = require('../nowiki/index');
166
168
  // @ts-expect-error abstract class
167
- innerToken = new NowikiToken(inner, newConfig);
169
+ innerToken = new NowikiToken(inner, newConfig, accum);
168
170
  }
169
171
  }
170
172
  innerToken.setAttribute('name', lcName);
171
- innerToken.type = 'ext-inner';
173
+ if (innerToken.type === 'plain') {
174
+ innerToken.type = 'ext-inner';
175
+ }
172
176
  super(name, attrToken, innerToken, closed, config, accum);
173
177
  this.seal('closed', true);
174
178
  }
@@ -184,7 +188,6 @@ let ExtToken = (() => {
184
188
  return errors;
185
189
  }
186
190
  /* NOT FOR BROWSER */
187
- /** @override */
188
191
  cloneNode() {
189
192
  const inner = this.lastChild.cloneNode(), tags = this.getAttribute('tags'), config = this.getAttribute('config'), attr = this.firstChild.toString();
190
193
  return debug_1.Shadow.run(() => {
@@ -6,14 +6,13 @@ import type { AstText, Token } from '../../internal';
6
6
  * @classdesc `{childNodes: [AstText, AstText]}`
7
7
  */
8
8
  export declare abstract class IncludeToken extends TagPairToken {
9
- readonly type = "include";
10
9
  readonly childNodes: readonly [AstText, AstText];
11
10
  abstract get firstChild(): AstText;
12
11
  abstract get lastChild(): AstText;
13
12
  abstract get children(): [];
14
13
  abstract get firstElementChild(): undefined;
15
14
  abstract get lastElementChild(): undefined;
16
- /** @override */
15
+ get type(): 'include';
17
16
  get innerText(): string | undefined;
18
17
  set innerText(text: string | undefined);
19
18
  /**
@@ -23,7 +22,6 @@ export declare abstract class IncludeToken extends TagPairToken {
23
22
  * @param closed 是否封闭
24
23
  */
25
24
  constructor(name: string, attr?: string, inner?: string, closed?: string, config?: Config, accum?: Token[]);
26
- /** @override */
27
25
  cloneNode(): this;
28
26
  /**
29
27
  * @override
@@ -60,8 +60,11 @@ let IncludeToken = (() => {
60
60
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
61
61
  __runInitializers(_classThis, _classExtraInitializers);
62
62
  }
63
- type = 'include';
64
- /** @override */
63
+ /* NOT FOR BROWSER END */
64
+ get type() {
65
+ return 'include';
66
+ }
67
+ /* NOT FOR BROWSER */
65
68
  get innerText() {
66
69
  return this.selfClosing ? undefined : this.lastChild.data;
67
70
  }
@@ -100,7 +103,6 @@ let IncludeToken = (() => {
100
103
  return [e];
101
104
  }
102
105
  /* NOT FOR BROWSER */
103
- /** @override */
104
106
  cloneNode() {
105
107
  const tags = this.getAttribute('tags'), config = this.getAttribute('config'), { innerText } = this, closing = this.selfClosing || !this.closed ? undefined : tags[1];
106
108
  // @ts-expect-error abstract class
@@ -4,10 +4,10 @@ import type { AstNodes } from '../../lib/node';
4
4
  /** 成对标签 */
5
5
  export declare abstract class TagPairToken extends Token {
6
6
  #private;
7
- type: 'ext' | 'include';
8
7
  readonly name: string;
9
8
  closed: boolean;
10
9
  selfClosing: boolean;
10
+ abstract get type(): 'ext' | 'include';
11
11
  readonly childNodes: readonly [AstNodes, AstNodes];
12
12
  abstract get firstChild(): AstNodes;
13
13
  abstract get lastChild(): AstNodes;
@@ -10,7 +10,6 @@ import type { LintError } from '../base';
10
10
  */
11
11
  export declare abstract class TranscludeToken extends Token {
12
12
  #private;
13
- type: 'template' | 'magic-word';
14
13
  readonly modifier: string;
15
14
  readonly name: string;
16
15
  readonly childNodes: readonly [AtomToken | SyntaxToken, ...ParameterToken[]] | readonly [SyntaxToken, AtomToken, AtomToken, ...ParameterToken[]];
@@ -19,6 +18,7 @@ export declare abstract class TranscludeToken extends Token {
19
18
  abstract get children(): [AtomToken | SyntaxToken, ...ParameterToken[]] | [SyntaxToken, AtomToken, AtomToken, ...ParameterToken[]];
20
19
  abstract get firstElementChild(): AtomToken | SyntaxToken;
21
20
  abstract get lastElementChild(): AtomToken | SyntaxToken | ParameterToken;
21
+ get type(): 'template' | 'magic-word';
22
22
  /** 是否存在重复参数 */
23
23
  get duplication(): boolean;
24
24
  set duplication(duplication: boolean);
@@ -62,7 +62,6 @@ export declare abstract class TranscludeToken extends Token {
62
62
  * @throws `Error` 不是可接受的魔术字
63
63
  */
64
64
  getPossibleValues(): Token[];
65
- /** @override */
66
65
  cloneNode(): this;
67
66
  /** 替换引用 */
68
67
  subst(): void;
@@ -24,12 +24,16 @@ const insensitiveVars = new Set([
24
24
  * @classdesc `{childNodes: [AtomToken|SyntaxToken, ...AtomToken, ...ParameterToken]}`
25
25
  */
26
26
  class TranscludeToken extends index_2.Token {
27
- type = 'template';
28
27
  modifier = '';
29
- #keys = new Set();
30
- /* NOT FOR BROWSER END */
28
+ #type = 'template';
31
29
  #raw = false;
32
30
  #args = new Map();
31
+ #keys = new Set();
32
+ /* NOT FOR BROWSER END */
33
+ get type() {
34
+ return this.#type;
35
+ }
36
+ /* NOT FOR BROWSER */
33
37
  /** 是否存在重复参数 */
34
38
  get duplication() {
35
39
  return this.isTemplate() && Boolean(this.hasDuplicatedArgs());
@@ -65,7 +69,7 @@ class TranscludeToken extends index_2.Token {
65
69
  const [magicWord, ...arg] = title.split(':'), cleaned = (0, string_1.removeComment)(magicWord), name = cleaned[arg.length > 0 ? 'trimStart' : 'trim'](), lcName = name.toLowerCase(), canonicalName = insensitive[lcName], isSensitive = sensitive.includes(name), isVar = isSensitive || insensitiveVars.has(canonicalName);
66
70
  if (isVar || isFunction && canonicalName) {
67
71
  this.setAttribute('name', canonicalName ?? lcName);
68
- this.type = 'magic-word';
72
+ this.#type = 'magic-word';
69
73
  // eslint-disable-next-line @typescript-eslint/no-unused-expressions
70
74
  /^\s*uc\s*$/iu;
71
75
  const pattern = new RegExp(String.raw `^\s*${name}\s*$`, isSensitive ? 'u' : 'iu'), token = new syntax_1.SyntaxToken(magicWord, pattern, 'magic-word-name', config, accum, {
@@ -394,7 +398,6 @@ class TranscludeToken extends index_2.Token {
394
398
  : (0, string_1.print)(childNodes, { sep: '|' })}}}</span>`;
395
399
  }
396
400
  /* NOT FOR BROWSER */
397
- /** @override */
398
401
  cloneNode() {
399
402
  const [first, ...cloned] = this.cloneChildNodes(), config = this.getAttribute('config');
400
403
  return debug_1.Shadow.run(() => {
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.aliases = exports.constants = exports.parsers = exports.mixins = exports.classes = exports.BuildMethod = exports.MAX_STAGE = void 0;
3
+ exports.aliases = exports.parsers = exports.mixins = exports.classes = exports.BuildMethod = exports.MAX_STAGE = void 0;
4
4
  exports.MAX_STAGE = 11;
5
5
  var BuildMethod;
6
6
  (function (BuildMethod) {
@@ -8,7 +8,7 @@ var BuildMethod;
8
8
  BuildMethod[BuildMethod["Text"] = 1] = "Text";
9
9
  })(BuildMethod || (exports.BuildMethod = BuildMethod = {}));
10
10
  /* NOT FOR BROWSER */
11
- exports.classes = {}, exports.mixins = {}, exports.parsers = {}, exports.constants = {};
11
+ exports.classes = {}, exports.mixins = {}, exports.parsers = {};
12
12
  exports.aliases = [
13
13
  ['AstText'],
14
14
  ['CommentToken', 'ExtToken', 'IncludeToken', 'NoincludeToken'],
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.undo = exports.mixin = exports.emptyArray = exports.setChildNodes = exports.isToken = exports.Shadow = void 0;
4
- const constants_1 = require("./constants");
5
4
  exports.Shadow = {
6
5
  running: false,
7
6
  /** @private */
@@ -94,4 +93,3 @@ const undo = (e, data) => {
94
93
  }
95
94
  };
96
95
  exports.undo = undo;
97
- constants_1.constants['Shadow'] = __filename;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wikiparser-node",
3
- "version": "1.9.2",
3
+ "version": "1.9.3",
4
4
  "description": "A Node.js parser for MediaWiki markup with AST",
5
5
  "keywords": [
6
6
  "mediawiki",