wikiparser-node 1.6.2 → 1.7.0-beta.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 (167) hide show
  1. package/bundle/bundle.min.js +38 -0
  2. package/config/default.json +5 -0
  3. package/config/enwiki.json +4 -814
  4. package/config/llwiki.json +5 -35
  5. package/config/minimum.json +3 -0
  6. package/config/moegirl.json +5 -44
  7. package/config/zhwiki.json +6 -466
  8. package/extensions/dist/base.js +64 -0
  9. package/extensions/dist/editor.js +159 -0
  10. package/extensions/dist/highlight.js +58 -0
  11. package/extensions/dist/lint.js +60 -0
  12. package/extensions/editor.css +64 -0
  13. package/extensions/ui.css +144 -0
  14. package/i18n/zh-hans.json +2 -1
  15. package/i18n/zh-hant.json +2 -1
  16. package/package.json +31 -16
  17. package/config/.schema.json +0 -172
  18. package/dist/addon/table.d.ts +0 -1
  19. package/dist/addon/table.js +0 -485
  20. package/dist/base.d.ts +0 -69
  21. package/dist/base.js +0 -38
  22. package/dist/index.d.ts +0 -31
  23. package/dist/index.js +0 -212
  24. package/dist/internal.d.ts +0 -44
  25. package/dist/lib/element.d.ts +0 -151
  26. package/dist/lib/element.js +0 -618
  27. package/dist/lib/node.d.ts +0 -146
  28. package/dist/lib/node.js +0 -426
  29. package/dist/lib/range.d.ts +0 -104
  30. package/dist/lib/range.js +0 -385
  31. package/dist/lib/ranges.d.ts +0 -28
  32. package/dist/lib/ranges.js +0 -126
  33. package/dist/lib/text.d.ts +0 -63
  34. package/dist/lib/text.js +0 -354
  35. package/dist/lib/title.d.ts +0 -40
  36. package/dist/lib/title.js +0 -179
  37. package/dist/mixin/attributesParent.d.ts +0 -50
  38. package/dist/mixin/attributesParent.js +0 -81
  39. package/dist/mixin/fixed.d.ts +0 -6
  40. package/dist/mixin/fixed.js +0 -30
  41. package/dist/mixin/flagsParent.d.ts +0 -72
  42. package/dist/mixin/flagsParent.js +0 -59
  43. package/dist/mixin/hidden.d.ts +0 -5
  44. package/dist/mixin/hidden.js +0 -24
  45. package/dist/mixin/magicLinkParent.d.ts +0 -40
  46. package/dist/mixin/magicLinkParent.js +0 -42
  47. package/dist/mixin/singleLine.d.ts +0 -6
  48. package/dist/mixin/singleLine.js +0 -26
  49. package/dist/mixin/sol.d.ts +0 -6
  50. package/dist/mixin/sol.js +0 -43
  51. package/dist/mixin/syntax.d.ts +0 -9
  52. package/dist/mixin/syntax.js +0 -50
  53. package/dist/parser/braces.js +0 -130
  54. package/dist/parser/commentAndExt.js +0 -89
  55. package/dist/parser/converter.js +0 -40
  56. package/dist/parser/externalLinks.js +0 -45
  57. package/dist/parser/hrAndDoubleUnderscore.js +0 -40
  58. package/dist/parser/html.js +0 -38
  59. package/dist/parser/links.js +0 -97
  60. package/dist/parser/list.js +0 -97
  61. package/dist/parser/magicLinks.js +0 -42
  62. package/dist/parser/quotes.js +0 -67
  63. package/dist/parser/selector.js +0 -190
  64. package/dist/parser/table.js +0 -123
  65. package/dist/src/arg.d.ts +0 -58
  66. package/dist/src/arg.js +0 -214
  67. package/dist/src/atom.d.ts +0 -12
  68. package/dist/src/atom.js +0 -27
  69. package/dist/src/attribute.d.ts +0 -71
  70. package/dist/src/attribute.js +0 -502
  71. package/dist/src/attributes.d.ts +0 -109
  72. package/dist/src/attributes.js +0 -356
  73. package/dist/src/converter.d.ts +0 -33
  74. package/dist/src/converter.js +0 -134
  75. package/dist/src/converterFlags.d.ts +0 -87
  76. package/dist/src/converterFlags.js +0 -242
  77. package/dist/src/converterRule.d.ts +0 -77
  78. package/dist/src/converterRule.js +0 -209
  79. package/dist/src/extLink.d.ts +0 -43
  80. package/dist/src/extLink.js +0 -191
  81. package/dist/src/gallery.d.ts +0 -54
  82. package/dist/src/gallery.js +0 -139
  83. package/dist/src/heading.d.ts +0 -47
  84. package/dist/src/heading.js +0 -190
  85. package/dist/src/hidden.d.ts +0 -7
  86. package/dist/src/hidden.js +0 -23
  87. package/dist/src/html.d.ts +0 -65
  88. package/dist/src/html.js +0 -358
  89. package/dist/src/imageParameter.d.ts +0 -65
  90. package/dist/src/imageParameter.js +0 -257
  91. package/dist/src/imagemap.d.ts +0 -54
  92. package/dist/src/imagemap.js +0 -144
  93. package/dist/src/imagemapLink.d.ts +0 -31
  94. package/dist/src/imagemapLink.js +0 -93
  95. package/dist/src/index.d.ts +0 -143
  96. package/dist/src/index.js +0 -851
  97. package/dist/src/link/base.d.ts +0 -52
  98. package/dist/src/link/base.js +0 -228
  99. package/dist/src/link/category.d.ts +0 -13
  100. package/dist/src/link/category.js +0 -28
  101. package/dist/src/link/file.d.ts +0 -98
  102. package/dist/src/link/file.js +0 -272
  103. package/dist/src/link/galleryImage.d.ts +0 -32
  104. package/dist/src/link/galleryImage.js +0 -158
  105. package/dist/src/link/index.d.ts +0 -56
  106. package/dist/src/link/index.js +0 -133
  107. package/dist/src/magicLink.d.ts +0 -59
  108. package/dist/src/magicLink.js +0 -223
  109. package/dist/src/nested.d.ts +0 -43
  110. package/dist/src/nested.js +0 -105
  111. package/dist/src/nowiki/base.d.ts +0 -31
  112. package/dist/src/nowiki/base.js +0 -93
  113. package/dist/src/nowiki/comment.d.ts +0 -25
  114. package/dist/src/nowiki/comment.js +0 -76
  115. package/dist/src/nowiki/dd.d.ts +0 -8
  116. package/dist/src/nowiki/dd.js +0 -24
  117. package/dist/src/nowiki/doubleUnderscore.d.ts +0 -18
  118. package/dist/src/nowiki/doubleUnderscore.js +0 -101
  119. package/dist/src/nowiki/hr.d.ts +0 -5
  120. package/dist/src/nowiki/hr.js +0 -63
  121. package/dist/src/nowiki/index.d.ts +0 -16
  122. package/dist/src/nowiki/index.js +0 -27
  123. package/dist/src/nowiki/list.d.ts +0 -16
  124. package/dist/src/nowiki/list.js +0 -109
  125. package/dist/src/nowiki/listBase.d.ts +0 -5
  126. package/dist/src/nowiki/listBase.js +0 -61
  127. package/dist/src/nowiki/noinclude.d.ts +0 -10
  128. package/dist/src/nowiki/noinclude.js +0 -23
  129. package/dist/src/nowiki/quote.d.ts +0 -14
  130. package/dist/src/nowiki/quote.js +0 -131
  131. package/dist/src/onlyinclude.d.ts +0 -16
  132. package/dist/src/onlyinclude.js +0 -57
  133. package/dist/src/paramTag/index.d.ts +0 -37
  134. package/dist/src/paramTag/index.js +0 -77
  135. package/dist/src/paramTag/inputbox.d.ts +0 -8
  136. package/dist/src/paramTag/inputbox.js +0 -22
  137. package/dist/src/parameter.d.ts +0 -70
  138. package/dist/src/parameter.js +0 -264
  139. package/dist/src/pre.d.ts +0 -31
  140. package/dist/src/pre.js +0 -59
  141. package/dist/src/syntax.d.ts +0 -20
  142. package/dist/src/syntax.js +0 -86
  143. package/dist/src/table/base.d.ts +0 -27
  144. package/dist/src/table/base.js +0 -81
  145. package/dist/src/table/index.d.ts +0 -242
  146. package/dist/src/table/index.js +0 -497
  147. package/dist/src/table/td.d.ts +0 -86
  148. package/dist/src/table/td.js +0 -355
  149. package/dist/src/table/tr.d.ts +0 -32
  150. package/dist/src/table/tr.js +0 -58
  151. package/dist/src/table/trBase.d.ts +0 -53
  152. package/dist/src/table/trBase.js +0 -156
  153. package/dist/src/tagPair/ext.d.ts +0 -32
  154. package/dist/src/tagPair/ext.js +0 -203
  155. package/dist/src/tagPair/include.d.ts +0 -35
  156. package/dist/src/tagPair/include.js +0 -74
  157. package/dist/src/tagPair/index.d.ts +0 -27
  158. package/dist/src/tagPair/index.js +0 -128
  159. package/dist/src/transclude.d.ts +0 -167
  160. package/dist/src/transclude.js +0 -717
  161. package/dist/util/constants.js +0 -27
  162. package/dist/util/debug.js +0 -81
  163. package/dist/util/diff.js +0 -83
  164. package/dist/util/lint.js +0 -31
  165. package/dist/util/string.js +0 -60
  166. package/errors/README +0 -1
  167. package/printed/README +0 -1
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.aliases = exports.parsers = exports.mixins = exports.classes = exports.BuildMethod = exports.MAX_STAGE = void 0;
4
- exports.MAX_STAGE = 11;
5
- var BuildMethod;
6
- (function (BuildMethod) {
7
- BuildMethod[BuildMethod["String"] = 0] = "String";
8
- BuildMethod[BuildMethod["Text"] = 1] = "Text";
9
- })(BuildMethod || (exports.BuildMethod = BuildMethod = {}));
10
- /* NOT FOR BROWSER */
11
- exports.classes = {};
12
- exports.mixins = {};
13
- exports.parsers = {};
14
- exports.aliases = [
15
- ['AstText'],
16
- ['CommentToken', 'ExtToken', 'IncludeToken', 'NoincludeToken'],
17
- ['ArgToken', 'TranscludeToken', 'HeadingToken'],
18
- ['HtmlToken'],
19
- ['TableToken'],
20
- ['HrToken', 'DoubleUnderscoreToken'],
21
- ['LinkToken', 'FileToken', 'CategoryToken'],
22
- ['QuoteToken'],
23
- ['ExtLinkToken'],
24
- ['MagicLinkToken'],
25
- ['ListToken', 'DdToken'],
26
- ['ConverterToken'],
27
- ];
@@ -1,81 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.undo = exports.emptyArray = exports.setChildNodes = exports.isToken = exports.Shadow = void 0;
4
- exports.Shadow = {
5
- running: false,
6
- /** @private */
7
- run(callback) {
8
- const { running } = this;
9
- this.running = true;
10
- try {
11
- const result = callback();
12
- this.running = running;
13
- return result;
14
- }
15
- catch (e) {
16
- this.running = running;
17
- throw e;
18
- }
19
- },
20
- };
21
- /**
22
- * 是否是某一特定类型的节点
23
- * @param type 节点类型
24
- */
25
- const isToken = (type) => (node) => node.type === type;
26
- exports.isToken = isToken;
27
- /**
28
- * 更新chldNodes
29
- * @param parent 父节点
30
- * @param position 子节点位置
31
- * @param deleteCount 移除的子节点数量
32
- * @param inserted 插入的子节点
33
- */
34
- const setChildNodes = (parent, position, deleteCount, inserted = []) => {
35
- const childNodes = [...parent.childNodes], removed = childNodes.splice(position, deleteCount, ...inserted);
36
- parent.setAttribute('childNodes', childNodes);
37
- for (const node of inserted) {
38
- node.setAttribute('parentNode', parent);
39
- }
40
- /* NOT FOR BROWSER */
41
- for (const node of removed) {
42
- node.setAttribute('parentNode', undefined);
43
- }
44
- /* NOT FOR BROWSER END */
45
- return removed;
46
- };
47
- exports.setChildNodes = setChildNodes;
48
- /**
49
- * 生成一个指定长度的空数组
50
- * @param n 数组长度
51
- * @param callback 回调函数
52
- */
53
- const emptyArray = (n, callback) => new Array(n).fill(undefined).map((_, i) => callback(i));
54
- exports.emptyArray = emptyArray;
55
- /* NOT FOR BROWSER */
56
- /**
57
- * 撤销最近一次Mutation
58
- * @param e 事件
59
- * @param data 事件数据
60
- * @throws `RangeError` 无法撤销的事件类型
61
- */
62
- const undo = (e, data) => {
63
- const { target, type } = e;
64
- switch (data.type) {
65
- case 'remove':
66
- (0, exports.setChildNodes)(target, data.position, 0, [data.removed]);
67
- break;
68
- case 'insert':
69
- (0, exports.setChildNodes)(target, data.position, 1);
70
- break;
71
- case 'replace':
72
- (0, exports.setChildNodes)(target.parentNode, data.position, 1, [data.oldToken]);
73
- break;
74
- case 'text':
75
- target.replaceData(data.oldText);
76
- break;
77
- default:
78
- throw new RangeError(`Unable to undo events with an unknown type: ${type}`);
79
- }
80
- };
81
- exports.undo = undo;
package/dist/util/diff.js DELETED
@@ -1,83 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.info = exports.error = exports.diff = exports.cmd = void 0;
4
- const fs = require("fs/promises");
5
- const child_process_1 = require("child_process");
6
- const chalk = require("chalk");
7
- process.on('unhandledRejection', e => {
8
- console.error(e);
9
- });
10
- /**
11
- * 将shell命令转化为Promise对象
12
- * @param command shell指令
13
- * @param args shell输入参数
14
- */
15
- const cmd = (command, args) => new Promise(resolve => {
16
- let timer, shell;
17
- /**
18
- * 清除进程并返回
19
- * @param val 返回值
20
- */
21
- const r = (val) => {
22
- clearTimeout(timer);
23
- shell?.kill('SIGINT');
24
- resolve(val);
25
- };
26
- try {
27
- shell = (0, child_process_1.spawn)(command, args);
28
- timer = setTimeout(() => {
29
- shell.kill('SIGINT');
30
- }, 60 * 1000);
31
- let buf = '';
32
- shell.stdout.on('data', data => {
33
- buf += String(data);
34
- });
35
- shell.stdout.on('end', () => {
36
- r(buf);
37
- });
38
- shell.on('exit', () => {
39
- r(shell.killed ? undefined : '');
40
- });
41
- shell.on('error', () => {
42
- r(undefined);
43
- });
44
- }
45
- catch {
46
- r(undefined);
47
- }
48
- });
49
- exports.cmd = cmd;
50
- /**
51
- * 比较两个文件
52
- * @param oldStr 旧文本
53
- * @param newStr 新文本
54
- * @param uid 唯一标识
55
- */
56
- const diff = async (oldStr, newStr, uid) => {
57
- if (oldStr === newStr) {
58
- return;
59
- }
60
- const oldFile = `diffOld${uid}`, newFile = `diffNew${uid}`;
61
- await Promise.all([fs.writeFile(oldFile, oldStr), fs.writeFile(newFile, newStr)]);
62
- const stdout = await (0, exports.cmd)('git', [
63
- 'diff',
64
- '--color-words=[\xC0-\xFF][\x80-\xBF]+|<?/?\\w+/?>?|[^[:space:]]',
65
- '-U0',
66
- '--no-index',
67
- oldFile,
68
- newFile,
69
- ]);
70
- console.log(stdout?.split('\n').slice(4).join('\n'));
71
- await Promise.all([fs.unlink(oldFile), fs.unlink(newFile)]);
72
- };
73
- exports.diff = diff;
74
- /** @implements */
75
- const error = (msg, ...args) => {
76
- console.error(chalk.red(msg), ...args);
77
- };
78
- exports.error = error;
79
- /** @implements */
80
- const info = (msg, ...args) => {
81
- console.info(chalk.green(msg), ...args);
82
- };
83
- exports.info = info;
package/dist/util/lint.js DELETED
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateForSelf = exports.generateForChild = void 0;
4
- const index_1 = require("../index");
5
- /**
6
- * 生成lint函数
7
- * @param func lint函数
8
- */
9
- const factory = (func) => (token, boundingRect, rule, msg, severity = 'error') => {
10
- const { start } = boundingRect, { top, left } = 'top' in boundingRect ? boundingRect : token.getRootNode().posFromIndex(start), { offsetHeight, offsetWidth } = token, { startIndex, startLine, startCol } = func(token, start, top, left);
11
- return {
12
- rule,
13
- message: index_1.default.msg(msg),
14
- severity,
15
- startIndex,
16
- endIndex: startIndex + String(token).length,
17
- startLine,
18
- endLine: startLine + offsetHeight - 1,
19
- startCol,
20
- endCol: offsetHeight === 1 ? startCol + offsetWidth : offsetWidth,
21
- };
22
- };
23
- exports.generateForChild = factory((child, start, line, col) => {
24
- const index = child.getRelativeIndex(), { top, left } = child.parentNode.posFromIndex(index);
25
- return {
26
- startIndex: start + index,
27
- startLine: line + top,
28
- startCol: top ? left : col + left,
29
- };
30
- });
31
- exports.generateForSelf = factory((_, startIndex, startLine, startCol) => ({ startIndex, startLine, startCol }));
@@ -1,60 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.normalizeSpace = exports.print = exports.escape = exports.noWrap = exports.decodeHtml = exports.text = exports.escapeRegExp = exports.removeComment = exports.tidy = exports.extUrlChar = exports.extUrlCharFirst = void 0;
4
- const commonExtUrlChar = '[^[\\]<>"\0-\x1F\x7F\\p{Zs}\uFFFD]';
5
- exports.extUrlCharFirst = `(?:\\[[\\da-f:.]+\\]|${commonExtUrlChar})`;
6
- exports.extUrlChar = `(?:${commonExtUrlChar}|\0\\d+[c!~]\x7F)*`;
7
- /**
8
- * 生成正则替换函数
9
- * @param regex 正则表达式
10
- * @param replace 替换字符串或函数
11
- */
12
- const factory = (regex, replace) => (str) => str.replace(regex, replace);
13
- /** 清理解析专用的不可见字符 */
14
- exports.tidy = factory(/[\0\x7F]/gu, '');
15
- /** remove half-parsed comment-like tokens */
16
- exports.removeComment = factory(/\0\d+c\x7F/gu, '');
17
- /** escape special chars for RegExp constructor */
18
- exports.escapeRegExp = factory(/[\\{}()|.?*+^$[\]]/gu, '\\$&');
19
- /**
20
- * extract effective wikitext
21
- * @param childNodes a Token's contents
22
- * @param separator delimiter between nodes
23
- */
24
- const text = (childNodes, separator = '') => childNodes.map(child => typeof child === 'string' ? child : child.text()).join(separator);
25
- exports.text = text;
26
- const names = { lt: '<', gt: '>', lbrack: '[', rbrack: ']', lbrace: '{', rbrace: '}' };
27
- /** decode HTML entities */
28
- exports.decodeHtml = factory(/&(?:#(\d+|x[\da-fA-F]+)|([lLgG][tT]|[lr]brac[ke]));/gu, (_, code, name) => code
29
- ? String.fromCodePoint(Number(`${/^x/iu.test(code) ? '0' : ''}${code}`))
30
- : names[name.toLowerCase()]);
31
- /** escape newlines */
32
- exports.noWrap = factory(/\n/gu, '\\n');
33
- const entities = { '&': 'amp', '<': 'lt', '>': 'gt' };
34
- /** escape HTML entities */
35
- exports.escape = factory(/[&<>]/gu, p => `&${entities[p]};`);
36
- /**
37
- * 以HTML格式打印
38
- * @param childNodes 子节点
39
- * @param opt 选项
40
- */
41
- const print = (childNodes, opt = {}) => {
42
- const { pre = '', post = '', sep = '' } = opt;
43
- return `${pre}${childNodes.map(child => child.print()).join(sep)}${post}`;
44
- };
45
- exports.print = print;
46
- /* NOT FOR BROWSER */
47
- /**
48
- * convert newline in text nodes to single whitespace
49
- * @param token 父节点
50
- */
51
- const normalizeSpace = (token) => {
52
- if (token) {
53
- for (const child of token.childNodes) {
54
- if (child.type === 'text') {
55
- child.replaceData(child.data.replace(/\n+/gu, ' '));
56
- }
57
- }
58
- }
59
- };
60
- exports.normalizeSpace = normalizeSpace;
package/errors/README DELETED
@@ -1 +0,0 @@
1
- 这里记录解析失败时处于半解析状态的维基文本以及错误信息。
package/printed/README DELETED
@@ -1 +0,0 @@
1
- 这里存放以 JSON 格式打印的 AST。