wikilint 2.7.1 → 2.9.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 (86) hide show
  1. package/dist/base.d.ts +2 -2
  2. package/dist/base.js +1 -0
  3. package/dist/index.d.ts +1 -3
  4. package/dist/index.js +7 -2
  5. package/dist/lib/element.d.ts +0 -6
  6. package/dist/lib/element.js +2 -6
  7. package/dist/lib/node.d.ts +1 -1
  8. package/dist/lib/node.js +1 -1
  9. package/dist/lib/text.d.ts +0 -6
  10. package/dist/lib/text.js +4 -8
  11. package/dist/parser/braces.js +10 -1
  12. package/dist/parser/externalLinks.js +1 -1
  13. package/dist/parser/magicLinks.js +34 -17
  14. package/dist/parser/table.js +1 -1
  15. package/dist/src/arg.d.ts +0 -2
  16. package/dist/src/arg.js +2 -2
  17. package/dist/src/attribute.d.ts +0 -2
  18. package/dist/src/attribute.js +2 -2
  19. package/dist/src/attributes.d.ts +0 -2
  20. package/dist/src/attributes.js +1 -1
  21. package/dist/src/converter.js +1 -1
  22. package/dist/src/converterFlags.d.ts +0 -2
  23. package/dist/src/converterFlags.js +1 -1
  24. package/dist/src/converterRule.js +1 -1
  25. package/dist/src/extLink.d.ts +0 -2
  26. package/dist/src/extLink.js +2 -2
  27. package/dist/src/gallery.d.ts +0 -2
  28. package/dist/src/gallery.js +2 -2
  29. package/dist/src/heading.d.ts +0 -2
  30. package/dist/src/heading.js +3 -3
  31. package/dist/src/html.d.ts +0 -2
  32. package/dist/src/html.js +2 -2
  33. package/dist/src/imageParameter.d.ts +0 -2
  34. package/dist/src/imageParameter.js +1 -1
  35. package/dist/src/imagemap.d.ts +0 -2
  36. package/dist/src/imagemap.js +2 -2
  37. package/dist/src/index.d.ts +1 -1
  38. package/dist/src/index.js +29 -15
  39. package/dist/src/link/base.d.ts +0 -2
  40. package/dist/src/link/base.js +1 -1
  41. package/dist/src/link/file.d.ts +0 -2
  42. package/dist/src/link/file.js +1 -1
  43. package/dist/src/link/galleryImage.d.ts +0 -2
  44. package/dist/src/link/galleryImage.js +2 -3
  45. package/dist/src/link/index.d.ts +0 -2
  46. package/dist/src/link/index.js +1 -1
  47. package/dist/src/link/redirectTarget.d.ts +0 -2
  48. package/dist/src/link/redirectTarget.js +3 -3
  49. package/dist/src/magicLink.d.ts +7 -5
  50. package/dist/src/magicLink.js +37 -5
  51. package/dist/src/nested.d.ts +0 -2
  52. package/dist/src/nested.js +3 -3
  53. package/dist/src/nowiki/comment.d.ts +0 -2
  54. package/dist/src/nowiki/comment.js +1 -1
  55. package/dist/src/nowiki/index.d.ts +0 -2
  56. package/dist/src/nowiki/index.js +1 -1
  57. package/dist/src/nowiki/quote.d.ts +0 -2
  58. package/dist/src/nowiki/quote.js +1 -1
  59. package/dist/src/paramTag/index.d.ts +0 -2
  60. package/dist/src/paramTag/index.js +2 -2
  61. package/dist/src/parameter.d.ts +0 -2
  62. package/dist/src/parameter.js +2 -2
  63. package/dist/src/pre.d.ts +0 -2
  64. package/dist/src/pre.js +1 -1
  65. package/dist/src/redirect.d.ts +0 -4
  66. package/dist/src/redirect.js +3 -3
  67. package/dist/src/syntax.d.ts +0 -2
  68. package/dist/src/syntax.js +1 -1
  69. package/dist/src/table/index.d.ts +0 -2
  70. package/dist/src/table/index.js +1 -1
  71. package/dist/src/table/td.d.ts +0 -2
  72. package/dist/src/table/td.js +2 -2
  73. package/dist/src/table/trBase.d.ts +0 -2
  74. package/dist/src/table/trBase.js +2 -2
  75. package/dist/src/tagPair/ext.d.ts +0 -2
  76. package/dist/src/tagPair/ext.js +1 -1
  77. package/dist/src/tagPair/include.d.ts +0 -2
  78. package/dist/src/tagPair/include.js +1 -1
  79. package/dist/src/tagPair/index.js +2 -2
  80. package/dist/src/transclude.d.ts +0 -2
  81. package/dist/src/transclude.js +2 -2
  82. package/dist/util/lint.js +1 -1
  83. package/dist/util/string.js +1 -1
  84. package/i18n/zh-hans.json +1 -0
  85. package/i18n/zh-hant.json +1 -0
  86. package/package.json +4 -4
@@ -7,7 +7,7 @@ const base_1 = require("./base");
7
7
  const td_1 = require("./td");
8
8
  /** 表格行或表格 */
9
9
  class TrBaseToken extends base_1.TableBaseToken {
10
- /** @override */
10
+ /** @private */
11
11
  lint(start = this.getAbsoluteIndex(), re) {
12
12
  const errors = super.lint(start, re), inter = this.childNodes.find(({ type }) => type === 'table-inter');
13
13
  if (!inter) {
@@ -15,7 +15,7 @@ class TrBaseToken extends base_1.TableBaseToken {
15
15
  }
16
16
  const first = inter.childNodes.find(child => child.text().trim()), tdPattern = /^\s*(?:!|\{\{\s*![!-]?\s*\}\})/u, isArg = (0, debug_1.isToken)('arg'), isTransclude = (0, debug_1.isToken)('magic-word');
17
17
  if (!first
18
- || tdPattern.test(String(first))
18
+ || tdPattern.test(first.toString())
19
19
  || isArg(first) && tdPattern.test(first.default || '')) {
20
20
  return errors;
21
21
  }
@@ -20,6 +20,4 @@ export declare abstract class ExtToken extends TagPairToken {
20
20
  * @param closed 是否封闭
21
21
  */
22
22
  constructor(name: string, attr?: string, inner?: string, closed?: string, config?: Parser.Config, accum?: Token[]);
23
- /** @override */
24
- lint(start?: number, re?: RegExp): LintError[];
25
23
  }
@@ -118,7 +118,7 @@ class ExtToken extends index_3.TagPairToken {
118
118
  super(name, attrToken, innerToken, closed, config, accum);
119
119
  this.seal('closed', true);
120
120
  }
121
- /** @override */
121
+ /** @private */
122
122
  lint(start = this.getAbsoluteIndex(), re) {
123
123
  const errors = super.lint(start, re);
124
124
  let rect;
@@ -14,7 +14,5 @@ export declare abstract class IncludeToken extends TagPairToken {
14
14
  * @param closed 是否封闭
15
15
  */
16
16
  constructor(name: string, attr?: string, inner?: string, closed?: string, config?: Parser.Config, accum?: Token[]);
17
- /** @override */
18
- lint(start?: number): LintError[];
19
17
  }
20
18
  export {};
@@ -20,7 +20,7 @@ class IncludeToken extends (0, hidden_1.hiddenToken)(index_2.TagPairToken) {
20
20
  constructor(name, attr = '', inner, closed, config = index_1.default.getConfig(), accum = []) {
21
21
  super(name, attr, inner ?? '', inner === undefined ? closed : closed ?? '', config, accum);
22
22
  }
23
- /** @override */
23
+ /** @private */
24
24
  lint(start = this.getAbsoluteIndex()) {
25
25
  if (this.closed) {
26
26
  return [];
@@ -32,8 +32,8 @@ class TagPairToken extends index_2.Token {
32
32
  toString() {
33
33
  const { selfClosing, firstChild, lastChild, } = this, [opening, closing] = this.#tags;
34
34
  return selfClosing
35
- ? `<${opening}${String(firstChild)}/>`
36
- : `<${opening}${String(firstChild)}>${String(lastChild)}${this.closed ? `</${closing}>` : ''}`;
35
+ ? `<${opening}${firstChild.toString()}/>`
36
+ : `<${opening}${firstChild.toString()}>${lastChild.toString()}${this.closed ? `</${closing}>` : ''}`;
37
37
  }
38
38
  /** @override */
39
39
  text() {
@@ -30,8 +30,6 @@ export declare abstract class TranscludeToken extends Token {
30
30
  isTemplate(): boolean;
31
31
  /** @override */
32
32
  text(): string;
33
- /** @override */
34
- lint(start?: number, re?: RegExp): LintError[];
35
33
  /**
36
34
  * @override
37
35
  * @param token 待插入的子节点
@@ -131,7 +131,7 @@ class TranscludeToken extends index_2.Token {
131
131
  /** @private */
132
132
  toString() {
133
133
  return `{{${this.modifier}${this.type === 'magic-word'
134
- ? `${String(this.firstChild)}${this.length === 1 ? '' : ':'}${this.childNodes.slice(1).map(String).join('|')}`
134
+ ? `${this.firstChild.toString()}${this.length === 1 ? '' : ':'}${this.childNodes.slice(1).map(String).join('|')}`
135
135
  : super.toString('|')}}}`;
136
136
  }
137
137
  /** @override */
@@ -156,7 +156,7 @@ class TranscludeToken extends index_2.Token {
156
156
  getGaps() {
157
157
  return 1;
158
158
  }
159
- /** @override */
159
+ /** @private */
160
160
  lint(start = this.getAbsoluteIndex(), re) {
161
161
  const errors = super.lint(start, re), { type, childNodes, length } = this;
162
162
  let rect;
package/dist/util/lint.js CHANGED
@@ -13,7 +13,7 @@ const factory = (func) => (token, boundingRect, rule, msg, severity = 'error') =
13
13
  message: index_1.default.msg(msg),
14
14
  severity,
15
15
  startIndex,
16
- endIndex: startIndex + String(token).length,
16
+ endIndex: startIndex + token.toString().length,
17
17
  startLine,
18
18
  endLine: startLine + offsetHeight - 1,
19
19
  startCol,
@@ -11,7 +11,7 @@ exports.extUrlChar = `(?:${commonExtUrlChar}|\0\\d+[c!~]\x7F)*`;
11
11
  */
12
12
  const factory = (regex, replace) => (str) => str.replace(regex, replace);
13
13
  /** 清理解析专用的不可见字符 */
14
- exports.tidy = factory(/[\0\x7F]/gu, '');
14
+ exports.tidy = factory(/[\0\x7F]|\r$/gmu, '');
15
15
  /** remove half-parsed comment-like tokens */
16
16
  exports.removeComment = factory(/\0\d+c\x7F/gu, '');
17
17
  /** escape special chars for RegExp constructor */
package/i18n/zh-hans.json CHANGED
@@ -28,6 +28,7 @@
28
28
  "invalid conversion flag": "无效的转换标记",
29
29
  "invalid gallery image": "无效的图库图片",
30
30
  "invalid gallery image parameter": "无效的图库图片参数",
31
+ "invalid ISBN": "无效的ISBN",
31
32
  "invalid link in <imagemap>": "无效的<imagemap>链接",
32
33
  "invalid parameter of <$1>": "<$1>的无效参数",
33
34
  "invalid self-closing tag": "无效自封闭标签",
package/i18n/zh-hant.json CHANGED
@@ -28,6 +28,7 @@
28
28
  "invalid conversion flag": "無效的轉換標記",
29
29
  "invalid gallery image": "無效的圖庫圖片",
30
30
  "invalid gallery image parameter": "無效的圖庫圖片參數",
31
+ "invalid ISBN": "無效的ISBN",
31
32
  "invalid link in <imagemap>": "無效的<imagemap>連結",
32
33
  "invalid parameter of <$1>": "<$1>的無效參數",
33
34
  "invalid self-closing tag": "無效自封閉標籤",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wikilint",
3
- "version": "2.7.1",
3
+ "version": "2.9.0",
4
4
  "description": "A Node.js linter for MediaWiki markup",
5
5
  "keywords": [
6
6
  "mediawiki",
@@ -27,12 +27,13 @@
27
27
  "wikilint": "./bin/cli.js"
28
28
  },
29
29
  "main": "./dist/index.js",
30
+ "types": "./dist/index.d.ts",
30
31
  "repository": {
31
32
  "type": "git",
32
33
  "url": "git+https://github.com/bhsd-harry/wikiparser-node.git"
33
34
  },
34
35
  "scripts": {
35
- "declaration": "grep -rl --include='*.d.ts' '@private' dist/ | xargs bash sed.sh -i -E '/^\\s+\\/\\*\\* @private/,+1d'; grep -rl --include='*.d.ts' '/util/' dist/ | xargs bash sed.sh -i -E '/^import .+\\/util\\//d'; node ./dist/bin/declaration.js",
36
+ "declaration": "grep -rl --include='*.d.ts' '@private' dist/ | xargs bash sed.sh -i -E '/^\\s+\\/\\*\\* @private/,+1d'; grep -rl --include='*.d.ts' '/util/' dist/ | xargs bash sed.sh -i -E '/^import .+\\/util\\//d'; bash sed.sh -i -E 's/abstract (lint|print)\\b/\\1/' dist/lib/node.d.ts; node ./dist/bin/declaration.js",
36
37
  "prepublishOnly": "npm run build",
37
38
  "build:core": "bash build.sh",
38
39
  "build": "npm run build:core",
@@ -41,6 +42,7 @@
41
42
  "lint:ts": "tsc --noEmit && eslint --cache .",
42
43
  "lint:json": "v8r -s config/.schema.json config/*.json",
43
44
  "lint": "npm run lint:ts && npm run lint:json",
45
+ "prof": "node --prof dist/test/prof.js && node --prof-process isolate-0x*-v8.log > test/prof.txt && bash sed.sh -i '0,/Bottom up/d' test/prof.txt && rm isolate-0x*-v8.log",
44
46
  "test": "node dist/test/test.js",
45
47
  "test:end": "pkill -x http-server",
46
48
  "test:real": "node dist/test/real.js"
@@ -49,10 +51,8 @@
49
51
  "chalk": "^4.1.2"
50
52
  },
51
53
  "devDependencies": {
52
- "@cypress/request": "^3.0.1",
53
54
  "@stylistic/eslint-plugin": "^1.5.4",
54
55
  "@types/node": "^20.11.6",
55
- "@types/request": "^2.48.12",
56
56
  "@typescript-eslint/eslint-plugin": "^7.1.0",
57
57
  "@typescript-eslint/parser": "^7.1.0",
58
58
  "eslint": "^8.56.0",