wikiparser-node 1.21.2 → 1.22.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 (97) hide show
  1. package/README.md +9 -5
  2. package/bundle/bundle-es8.min.js +25 -25
  3. package/bundle/bundle-lsp.min.js +26 -26
  4. package/bundle/bundle.min.js +25 -25
  5. package/config/default.json +15 -11
  6. package/config/enwiki.json +1 -1
  7. package/config/jawiki.json +1 -1
  8. package/config/minimum.json +2 -3
  9. package/config/moegirl.json +152 -15
  10. package/config/zhwiki.json +1 -1
  11. package/dist/addon/token.js +3 -0
  12. package/dist/base.d.mts +16 -9
  13. package/dist/base.d.ts +16 -9
  14. package/dist/bin/config.js +23 -11
  15. package/dist/index.d.ts +33 -4
  16. package/dist/index.js +37 -2
  17. package/dist/lib/element.d.ts +4 -4
  18. package/dist/lib/element.js +6 -5
  19. package/dist/lib/lintConfig.d.ts +13 -0
  20. package/dist/lib/lintConfig.js +278 -0
  21. package/dist/lib/lsp.d.ts +7 -7
  22. package/dist/lib/lsp.js +18 -20
  23. package/dist/lib/node.d.ts +1 -1
  24. package/dist/lib/node.js +646 -606
  25. package/dist/lib/range.d.ts +2 -2
  26. package/dist/lib/range.js +2 -2
  27. package/dist/lib/text.js +76 -62
  28. package/dist/lib/title.d.ts +11 -4
  29. package/dist/lib/title.js +16 -6
  30. package/dist/mixin/attributesParent.d.ts +6 -6
  31. package/dist/mixin/attributesParent.js +4 -4
  32. package/dist/mixin/cached.d.ts +5 -0
  33. package/dist/mixin/cached.js +22 -0
  34. package/dist/mixin/clone.d.ts +5 -0
  35. package/dist/mixin/clone.js +23 -0
  36. package/dist/mixin/hidden.js +68 -18
  37. package/dist/mixin/sol.js +1 -1
  38. package/dist/parser/commentAndExt.js +6 -4
  39. package/dist/parser/converter.js +1 -1
  40. package/dist/parser/html.js +3 -3
  41. package/dist/parser/table.js +2 -2
  42. package/dist/src/arg.js +24 -17
  43. package/dist/src/atom.js +76 -31
  44. package/dist/src/attribute.js +79 -39
  45. package/dist/src/attributes.d.ts +7 -7
  46. package/dist/src/attributes.js +417 -366
  47. package/dist/src/commented.js +81 -35
  48. package/dist/src/converter.js +13 -7
  49. package/dist/src/converterFlags.js +33 -22
  50. package/dist/src/converterRule.js +263 -216
  51. package/dist/src/extLink.js +21 -16
  52. package/dist/src/gallery.js +44 -27
  53. package/dist/src/heading.js +48 -43
  54. package/dist/src/hidden.js +14 -9
  55. package/dist/src/html.js +92 -60
  56. package/dist/src/imageParameter.js +13 -6
  57. package/dist/src/imagemap.js +32 -25
  58. package/dist/src/index.d.ts +2 -2
  59. package/dist/src/index.js +61 -50
  60. package/dist/src/link/base.d.ts +1 -1
  61. package/dist/src/link/base.js +35 -23
  62. package/dist/src/link/file.js +409 -354
  63. package/dist/src/link/galleryImage.js +9 -5
  64. package/dist/src/link/index.d.ts +1 -1
  65. package/dist/src/link/index.js +8 -4
  66. package/dist/src/link/redirectTarget.js +7 -3
  67. package/dist/src/magicLink.js +39 -26
  68. package/dist/src/nested.js +122 -74
  69. package/dist/src/nowiki/base.js +5 -2
  70. package/dist/src/nowiki/comment.js +5 -1
  71. package/dist/src/nowiki/index.js +4 -4
  72. package/dist/src/nowiki/quote.js +32 -46
  73. package/dist/src/onlyinclude.js +17 -9
  74. package/dist/src/paramTag/index.js +21 -14
  75. package/dist/src/parameter.js +26 -20
  76. package/dist/src/pre.js +91 -45
  77. package/dist/src/syntax.js +14 -10
  78. package/dist/src/table/index.js +554 -501
  79. package/dist/src/table/td.d.ts +1 -1
  80. package/dist/src/table/td.js +91 -82
  81. package/dist/src/table/trBase.js +183 -130
  82. package/dist/src/tagPair/ext.js +38 -23
  83. package/dist/src/tagPair/include.js +5 -5
  84. package/dist/src/tagPair/index.js +2 -3
  85. package/dist/src/tagPair/translate.js +150 -103
  86. package/dist/src/transclude.d.ts +15 -1
  87. package/dist/src/transclude.js +56 -21
  88. package/dist/util/html.js +46 -41
  89. package/dist/util/lint.js +7 -9
  90. package/dist/util/sharable.js +1 -1
  91. package/dist/util/sharable.mjs +2 -2
  92. package/dist/util/string.js +13 -7
  93. package/extensions/dist/base.js +9 -2
  94. package/extensions/typings.d.ts +2 -1
  95. package/i18n/zh-hans.json +1 -1
  96. package/i18n/zh-hant.json +1 -1
  97. package/package.json +20 -15
@@ -1,4 +1,11 @@
1
1
  "use strict";
2
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
3
+ var useValue = arguments.length > 2;
4
+ for (var i = 0; i < initializers.length; i++) {
5
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
6
+ }
7
+ return useValue ? value : void 0;
8
+ };
2
9
  var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
3
10
  function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
4
11
  var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
@@ -26,13 +33,6 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn,
26
33
  if (target) Object.defineProperty(target, contextIn.name, descriptor);
27
34
  done = true;
28
35
  };
29
- var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
30
- var useValue = arguments.length > 2;
31
- for (var i = 0; i < initializers.length; i++) {
32
- value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
33
- }
34
- return useValue ? value : void 0;
35
- };
36
36
  var __importDefault = (this && this.__importDefault) || function (mod) {
37
37
  return (mod && mod.__esModule) ? mod : { "default": mod };
38
38
  };
@@ -42,7 +42,7 @@ const padded_1 = require("../mixin/padded");
42
42
  const index_1 = require("./index");
43
43
  /* NOT FOR BROWSER */
44
44
  const constants_1 = require("../util/constants");
45
- const html_1 = require("../util/html");
45
+ const clone_1 = require("../mixin/clone");
46
46
  const noEscape_1 = require("../mixin/noEscape");
47
47
  const index_2 = __importDefault(require("../index"));
48
48
  /* NOT FOR BROWSER END */
@@ -58,10 +58,14 @@ let OnlyincludeToken = (() => {
58
58
  let _classExtraInitializers = [];
59
59
  let _classThis;
60
60
  let _classSuper = index_1.Token;
61
+ let _instanceExtraInitializers = [];
62
+ let _cloneNode_decorators;
61
63
  var OnlyincludeToken = class extends _classSuper {
62
64
  static { _classThis = this; }
63
65
  static {
64
66
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
67
+ _cloneNode_decorators = [clone_1.clone];
68
+ __esDecorate(this, null, _cloneNode_decorators, { kind: "method", name: "cloneNode", static: false, private: false, access: { has: obj => "cloneNode" in obj, get: obj => obj.cloneNode }, metadata: _metadata }, null, _instanceExtraInitializers);
65
69
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
66
70
  OnlyincludeToken = _classThis = _classDescriptor.value;
67
71
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
@@ -101,7 +105,11 @@ let OnlyincludeToken = (() => {
101
105
  }
102
106
  /* NOT FOR BROWSER */
103
107
  cloneNode() {
104
- return (0, html_1.cloneNode)(this, () => new OnlyincludeToken(undefined, this.getAttribute('config')));
108
+ return new OnlyincludeToken(undefined, this.getAttribute('config'));
109
+ }
110
+ constructor() {
111
+ super(...arguments);
112
+ __runInitializers(this, _instanceExtraInitializers);
105
113
  }
106
114
  };
107
115
  return OnlyincludeToken = _classThis;
@@ -1,4 +1,11 @@
1
1
  "use strict";
2
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
3
+ var useValue = arguments.length > 2;
4
+ for (var i = 0; i < initializers.length; i++) {
5
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
6
+ }
7
+ return useValue ? value : void 0;
8
+ };
2
9
  var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
3
10
  function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
4
11
  var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
@@ -26,13 +33,6 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn,
26
33
  if (target) Object.defineProperty(target, contextIn.name, descriptor);
27
34
  done = true;
28
35
  };
29
- var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
30
- var useValue = arguments.length > 2;
31
- for (var i = 0; i < initializers.length; i++) {
32
- value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
33
- }
34
- return useValue ? value : void 0;
35
- };
36
36
  var __importDefault = (this && this.__importDefault) || function (mod) {
37
37
  return (mod && mod.__esModule) ? mod : { "default": mod };
38
38
  };
@@ -47,7 +47,7 @@ const index_2 = require("../index");
47
47
  const atom_1 = require("../atom");
48
48
  /* NOT FOR BROWSER */
49
49
  const constants_1 = require("../../util/constants");
50
- const html_1 = require("../../util/html");
50
+ const clone_1 = require("../../mixin/clone");
51
51
  const singleLine_1 = require("../../mixin/singleLine");
52
52
  /* NOT FOR BROWSER END */
53
53
  /**
@@ -60,10 +60,14 @@ let ParamTagToken = (() => {
60
60
  let _classExtraInitializers = [];
61
61
  let _classThis;
62
62
  let _classSuper = index_2.Token;
63
+ let _instanceExtraInitializers = [];
64
+ let _cloneNode_decorators;
63
65
  var ParamTagToken = class extends _classSuper {
64
66
  static { _classThis = this; }
65
67
  static {
66
68
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
69
+ _cloneNode_decorators = [clone_1.clone];
70
+ __esDecorate(this, null, _cloneNode_decorators, { kind: "method", name: "cloneNode", static: false, private: false, access: { has: obj => "cloneNode" in obj, get: obj => obj.cloneNode }, metadata: _metadata }, null, _instanceExtraInitializers);
67
71
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
68
72
  ParamTagToken = _classThis = _classDescriptor.value;
69
73
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
@@ -78,6 +82,7 @@ let ParamTagToken = (() => {
78
82
  super(undefined, config, accum, {
79
83
  AtomToken: ':',
80
84
  });
85
+ __runInitializers(this, _instanceExtraInitializers);
81
86
  if (wikitext) {
82
87
  const SingleLineAtomToken = (0, singleLine_1.singleLine)(!acceptable)(atom_1.AtomToken);
83
88
  this.append(...wikitext.split('\n')
@@ -91,18 +96,22 @@ let ParamTagToken = (() => {
91
96
  }
92
97
  /** @private */
93
98
  lint(start = this.getAbsoluteIndex()) {
99
+ const rule = 'no-ignored', s = index_1.default.lintConfig.getSeverity(rule, this.name);
100
+ if (!s) {
101
+ return [];
102
+ }
94
103
  const rect = new rect_1.BoundingRect(this, start), msg = index_1.default.msg('invalid parameter of <$1>', this.name), errors = [];
95
104
  for (const child of this.childNodes) {
96
105
  child.setAttribute('aIndex', start);
97
106
  const grandChildren = child.childNodes
98
107
  .filter(({ type }) => type !== 'comment' && type !== 'include' && type !== 'noinclude');
99
108
  if (grandChildren.some(({ type }) => type === 'ext')) {
100
- errors.push((0, lint_1.generateForChild)(child, rect, 'no-ignored', msg));
109
+ errors.push((0, lint_1.generateForChild)(child, rect, rule, msg, s));
101
110
  }
102
111
  else {
103
112
  const i = grandChildren.findIndex(({ type }) => type !== 'text'), str = grandChildren.slice(0, i === -1 ? undefined : i).map(String).join('');
104
113
  if (str && !(i === -1 ? /^[a-z]+(?:\[\])?\s*=/iu : /^[a-z]+(?:\[\])?\s*(?:=|$)/iu).test(str)) {
105
- const e = (0, lint_1.generateForChild)(child, rect, 'no-ignored', msg);
114
+ const e = (0, lint_1.generateForChild)(child, rect, rule, msg, s);
106
115
  e.suggestions = [{ desc: 'remove', range: [e.startIndex, e.endIndex], text: '' }];
107
116
  errors.push(e);
108
117
  }
@@ -119,10 +128,8 @@ let ParamTagToken = (() => {
119
128
  }
120
129
  /* NOT FOR BROWSER */
121
130
  cloneNode() {
122
- return (0, html_1.cloneNode)(this, () => {
123
- const C = this.constructor;
124
- return new C(this.getAttribute('include'), undefined, this.getAttribute('config'));
125
- });
131
+ const C = this.constructor;
132
+ return new C(this.getAttribute('include'), undefined, this.getAttribute('config'));
126
133
  }
127
134
  };
128
135
  return ParamTagToken = _classThis;
@@ -40,12 +40,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
40
40
  exports.ParameterToken = void 0;
41
41
  const string_1 = require("../util/string");
42
42
  const lint_1 = require("../util/lint");
43
- const index_1 = require("./index");
43
+ const index_1 = __importDefault(require("../index"));
44
+ const index_2 = require("./index");
44
45
  /* NOT FOR BROWSER */
45
46
  const debug_1 = require("../util/debug");
46
47
  const constants_1 = require("../util/constants");
47
48
  const fixed_1 = require("../mixin/fixed");
48
- const index_2 = __importDefault(require("../index"));
49
49
  /* NOT FOR BROWSER END */
50
50
  // eslint-disable-next-line @typescript-eslint/no-unused-expressions
51
51
  /https?:\/\/(?:\[[\da-f:.]+\]|[^[\]<>"\t\n\p{Zs}])[^[\]<>"\0\t\n\p{Zs}]*$/iu;
@@ -61,7 +61,7 @@ let ParameterToken = (() => {
61
61
  let _classDescriptor;
62
62
  let _classExtraInitializers = [];
63
63
  let _classThis;
64
- let _classSuper = index_1.Token;
64
+ let _classSuper = index_2.Token;
65
65
  var ParameterToken = class extends _classSuper {
66
66
  static { _classThis = this; }
67
67
  static {
@@ -116,9 +116,9 @@ let ParameterToken = (() => {
116
116
  */
117
117
  constructor(key, value, config, accum = []) {
118
118
  super(undefined, config, accum);
119
- const keyToken = new index_1.Token(typeof key === 'number' ? undefined : key, config, accum, {
119
+ const keyToken = new index_2.Token(typeof key === 'number' ? undefined : key, config, accum, {
120
120
  'Stage-11': ':', '!HeadingToken': '',
121
- }), token = new index_1.Token(value, config, accum);
121
+ }), token = new index_2.Token(value, config, accum);
122
122
  keyToken.type = 'parameter-key';
123
123
  keyToken.setAttribute('stage', 2);
124
124
  token.type = 'parameter-value';
@@ -175,16 +175,22 @@ let ParameterToken = (() => {
175
175
  }
176
176
  /** @private */
177
177
  lint(start = this.getAbsoluteIndex(), re) {
178
- const errors = super.lint(start, re), { firstChild } = this, link = linkRegex.exec(firstChild.text())?.[0];
179
- if (link && new URL(link).search) {
180
- const e = (0, lint_1.generateForChild)(firstChild, { start }, 'unescaped', 'unescaped query string in an anonymous parameter');
181
- e.startIndex = e.endIndex;
182
- e.startLine = e.endLine;
183
- e.startCol = e.endCol;
184
- e.endIndex++;
185
- e.endCol++;
186
- e.fix = { desc: 'escape', range: [e.startIndex, e.endIndex], text: '{{=}}' };
187
- errors.push(e);
178
+ const errors = super.lint(start, re), rule = 'unescaped', s = index_1.default.lintConfig.getSeverity(rule);
179
+ if (s) {
180
+ const { firstChild } = this, link = linkRegex.exec(firstChild.text())?.[0];
181
+ try {
182
+ if (link && new URL(link).search) {
183
+ const msg = 'unescaped query string in an anonymous parameter', e = (0, lint_1.generateForChild)(firstChild, { start }, rule, msg, s);
184
+ e.startIndex = e.endIndex;
185
+ e.startLine = e.endLine;
186
+ e.startCol = e.endCol;
187
+ e.endIndex++;
188
+ e.endCol++;
189
+ e.fix = { desc: 'escape', range: [e.startIndex, e.endIndex], text: '{{=}}' };
190
+ errors.push(e);
191
+ }
192
+ }
193
+ catch { }
188
194
  }
189
195
  return errors;
190
196
  }
@@ -213,7 +219,7 @@ let ParameterToken = (() => {
213
219
  });
214
220
  }
215
221
  safeReplaceWith(token) {
216
- index_2.default.warn(`${this.constructor.name}.safeReplaceWith regress to AstNode.replaceWith.`);
222
+ index_1.default.warn(`${this.constructor.name}.safeReplaceWith regress to AstNode.replaceWith.`);
217
223
  this.replaceWith(token);
218
224
  }
219
225
  /**
@@ -232,7 +238,7 @@ let ParameterToken = (() => {
232
238
  * @param value parameter value / 参数值
233
239
  */
234
240
  setValue(value) {
235
- const { childNodes } = index_2.default
241
+ const { childNodes } = index_1.default
236
242
  .parse(value, this.getAttribute('include'), undefined, this.getAttribute('config'));
237
243
  this.lastChild.safeReplaceChildren(childNodes);
238
244
  }
@@ -254,14 +260,14 @@ let ParameterToken = (() => {
254
260
  else if (anon) {
255
261
  parentNode?.anonToNamed();
256
262
  }
257
- const root = index_2.default
263
+ const root = index_1.default
258
264
  .parse(key, this.getAttribute('include'), undefined, this.getAttribute('config')), name = this.trimName(root, false);
259
265
  if (this.name === name) {
260
- index_2.default.warn('The actual parameter name is not changed', name);
266
+ index_1.default.warn('The actual parameter name is not changed', name);
261
267
  }
262
268
  else if (parentNode?.hasArg(name)) {
263
269
  if (force) {
264
- index_2.default.warn('Parameter renaming causes duplicated parameters', name);
270
+ index_1.default.warn('Parameter renaming causes duplicated parameters', name);
265
271
  }
266
272
  else {
267
273
  throw new RangeError(`Parameter renaming causes duplicated parameters: ${name}`);
package/dist/src/pre.js CHANGED
@@ -1,63 +1,109 @@
1
1
  "use strict";
2
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
3
+ var useValue = arguments.length > 2;
4
+ for (var i = 0; i < initializers.length; i++) {
5
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
6
+ }
7
+ return useValue ? value : void 0;
8
+ };
9
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
10
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
11
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
12
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
13
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
14
+ var _, done = false;
15
+ for (var i = decorators.length - 1; i >= 0; i--) {
16
+ var context = {};
17
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
18
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
19
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
20
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
21
+ if (kind === "accessor") {
22
+ if (result === void 0) continue;
23
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
24
+ if (_ = accept(result.get)) descriptor.get = _;
25
+ if (_ = accept(result.set)) descriptor.set = _;
26
+ if (_ = accept(result.init)) initializers.unshift(_);
27
+ }
28
+ else if (_ = accept(result)) {
29
+ if (kind === "field") initializers.unshift(_);
30
+ else descriptor[key] = _;
31
+ }
32
+ }
33
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
34
+ done = true;
35
+ };
2
36
  Object.defineProperty(exports, "__esModule", { value: true });
3
37
  exports.PreToken = void 0;
4
38
  const constants_1 = require("../util/constants");
5
39
  const index_1 = require("./index");
6
40
  const noinclude_1 = require("./nowiki/noinclude");
7
41
  /* NOT FOR BROWSER */
8
- const html_1 = require("../util/html");
42
+ const clone_1 = require("../mixin/clone");
9
43
  /**
10
44
  * `<pre>`
11
45
  * @classdesc `{childNodes: (AstText|NoincludeToken|ConverterToken)[]}`
12
46
  */
13
- class PreToken extends index_1.Token {
14
- /* NOT FOR BROWSER END */
15
- get type() {
16
- return 'ext-inner';
17
- }
18
- /** @class */
19
- constructor(wikitext, config, accum = []) {
20
- if (wikitext) {
21
- const opening = /<nowiki>/giu, closing = /<\/nowiki>/giu, { length } = opening.source;
22
- let i = opening.exec(wikitext);
23
- if (i) {
24
- closing.lastIndex = i.index + length;
25
- }
26
- let j = closing.exec(wikitext), lastIndex = 0, str = '';
27
- while (i && j) {
28
- // @ts-expect-error abstract class
29
- new noinclude_1.NoincludeToken(i[0], config, accum);
30
- // @ts-expect-error abstract class
31
- new noinclude_1.NoincludeToken(j[0], config, accum);
32
- str += `${wikitext.slice(lastIndex, i.index)}\0${accum.length - 1}n\x7F${wikitext.slice(i.index + length, j.index)}\0${accum.length}n\x7F`;
33
- lastIndex = j.index + length + 1;
34
- opening.lastIndex = lastIndex;
35
- i = opening.exec(wikitext);
47
+ let PreToken = (() => {
48
+ let _classSuper = index_1.Token;
49
+ let _instanceExtraInitializers = [];
50
+ let _cloneNode_decorators;
51
+ return class PreToken extends _classSuper {
52
+ static {
53
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
54
+ _cloneNode_decorators = [clone_1.clone];
55
+ __esDecorate(this, null, _cloneNode_decorators, { kind: "method", name: "cloneNode", static: false, private: false, access: { has: obj => "cloneNode" in obj, get: obj => obj.cloneNode }, metadata: _metadata }, null, _instanceExtraInitializers);
56
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
57
+ }
58
+ /* NOT FOR BROWSER END */
59
+ get type() {
60
+ return 'ext-inner';
61
+ }
62
+ /** @class */
63
+ constructor(wikitext, config, accum = []) {
64
+ if (wikitext) {
65
+ const opening = /<nowiki>/giu, closing = /<\/nowiki>/giu, { length } = opening.source;
66
+ let i = opening.exec(wikitext);
36
67
  if (i) {
37
68
  closing.lastIndex = i.index + length;
38
69
  }
39
- j = closing.exec(wikitext);
70
+ let j = closing.exec(wikitext), lastIndex = 0, str = '';
71
+ while (i && j) {
72
+ // @ts-expect-error abstract class
73
+ new noinclude_1.NoincludeToken(i[0], config, accum);
74
+ // @ts-expect-error abstract class
75
+ new noinclude_1.NoincludeToken(j[0], config, accum);
76
+ str += `${wikitext.slice(lastIndex, i.index)}\0${accum.length - 1}n\x7F${wikitext.slice(i.index + length, j.index)}\0${accum.length}n\x7F`;
77
+ lastIndex = j.index + length + 1;
78
+ opening.lastIndex = lastIndex;
79
+ i = opening.exec(wikitext);
80
+ if (i) {
81
+ closing.lastIndex = i.index + length;
82
+ }
83
+ j = closing.exec(wikitext);
84
+ }
85
+ wikitext = str + wikitext.slice(lastIndex);
40
86
  }
41
- wikitext = str + wikitext.slice(lastIndex);
87
+ super(wikitext, config, accum, {
88
+ AstText: ':', NoincludeToken: ':', ConverterToken: ':',
89
+ });
90
+ __runInitializers(this, _instanceExtraInitializers);
91
+ this.setAttribute('stage', constants_1.MAX_STAGE - 1);
42
92
  }
43
- super(wikitext, config, accum, {
44
- AstText: ':', NoincludeToken: ':', ConverterToken: ':',
45
- });
46
- this.setAttribute('stage', constants_1.MAX_STAGE - 1);
47
- }
48
- /** @private */
49
- isPlain() {
50
- return true;
51
- }
52
- /** @private */
53
- lint(start = this.getAbsoluteIndex()) {
54
- return super.lint(start, /<\s*\/\s*(pre)\b/giu);
55
- }
56
- /* NOT FOR BROWSER */
57
- cloneNode() {
58
- // @ts-expect-error abstract class
59
- return (0, html_1.cloneNode)(this, () => new PreToken(undefined, this.getAttribute('config')));
60
- }
61
- }
93
+ /** @private */
94
+ isPlain() {
95
+ return true;
96
+ }
97
+ /** @private */
98
+ lint(start = this.getAbsoluteIndex()) {
99
+ return super.lint(start, /<\s*\/\s*(pre)\b/giu);
100
+ }
101
+ /* NOT FOR BROWSER */
102
+ cloneNode() {
103
+ // @ts-expect-error abstract class
104
+ return new PreToken(undefined, this.getAttribute('config'));
105
+ }
106
+ };
107
+ })();
62
108
  exports.PreToken = PreToken;
63
109
  constants_1.classes['PreToken'] = __filename;
@@ -1,4 +1,11 @@
1
1
  "use strict";
2
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
3
+ var useValue = arguments.length > 2;
4
+ for (var i = 0; i < initializers.length; i++) {
5
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
6
+ }
7
+ return useValue ? value : void 0;
8
+ };
2
9
  var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
3
10
  function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
4
11
  var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
@@ -26,19 +33,12 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn,
26
33
  if (target) Object.defineProperty(target, contextIn.name, descriptor);
27
34
  done = true;
28
35
  };
29
- var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
30
- var useValue = arguments.length > 2;
31
- for (var i = 0; i < initializers.length; i++) {
32
- value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
33
- }
34
- return useValue ? value : void 0;
35
- };
36
36
  Object.defineProperty(exports, "__esModule", { value: true });
37
37
  exports.SyntaxToken = void 0;
38
38
  const index_1 = require("./index");
39
39
  /* NOT FOR BROWSER */
40
40
  const constants_1 = require("../util/constants");
41
- const html_1 = require("../util/html");
41
+ const clone_1 = require("../mixin/clone");
42
42
  const syntax_1 = require("../mixin/syntax");
43
43
  /**
44
44
  * plain token that satisfies specific grammar syntax
@@ -51,16 +51,20 @@ let SyntaxToken = (() => {
51
51
  let _classExtraInitializers = [];
52
52
  let _classThis;
53
53
  let _classSuper = index_1.Token;
54
+ let _instanceExtraInitializers = [];
55
+ let _cloneNode_decorators;
54
56
  var SyntaxToken = class extends _classSuper {
55
57
  static { _classThis = this; }
56
58
  static {
57
59
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
60
+ _cloneNode_decorators = [clone_1.clone];
61
+ __esDecorate(this, null, _cloneNode_decorators, { kind: "method", name: "cloneNode", static: false, private: false, access: { has: obj => "cloneNode" in obj, get: obj => obj.cloneNode }, metadata: _metadata }, null, _instanceExtraInitializers);
58
62
  __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
59
63
  SyntaxToken = _classThis = _classDescriptor.value;
60
64
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
61
65
  __runInitializers(_classThis, _classExtraInitializers);
62
66
  }
63
- #type;
67
+ #type = __runInitializers(this, _instanceExtraInitializers);
64
68
  get type() {
65
69
  return this.#type;
66
70
  }
@@ -80,7 +84,7 @@ let SyntaxToken = (() => {
80
84
  }
81
85
  /* NOT FOR BROWSER */
82
86
  cloneNode() {
83
- return (0, html_1.cloneNode)(this, () => new SyntaxToken(undefined, this.pattern, this.type, this.getAttribute('config'), [], this.getAcceptable()));
87
+ return new SyntaxToken(undefined, this.pattern, this.type, this.getAttribute('config'), [], this.getAcceptable());
84
88
  }
85
89
  };
86
90
  return SyntaxToken = _classThis;