prh 5.4.3 → 6.0.1

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 (45) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/LICENSE +21 -0
  3. package/README.md +16 -1
  4. package/lib/changeset/changeset.js +33 -34
  5. package/lib/changeset/changeset.js.map +1 -1
  6. package/lib/changeset/diff.d.ts +2 -2
  7. package/lib/changeset/diff.js +37 -48
  8. package/lib/changeset/diff.js.map +1 -1
  9. package/lib/changeset/index.js +10 -9
  10. package/lib/changeset/index.js.map +1 -1
  11. package/lib/cli.d.ts +1 -0
  12. package/lib/cli.js +58 -58
  13. package/lib/cli.js.map +1 -1
  14. package/lib/engine.js +42 -44
  15. package/lib/engine.js.map +1 -1
  16. package/lib/index.js +46 -58
  17. package/lib/index.js.map +1 -1
  18. package/lib/options.js +4 -4
  19. package/lib/options.js.map +1 -1
  20. package/lib/paragraph.js +17 -17
  21. package/lib/paragraph.js.map +1 -1
  22. package/lib/raw.js.map +1 -1
  23. package/lib/rule.js +61 -62
  24. package/lib/rule.js.map +1 -1
  25. package/lib/ruleSpec.js +7 -7
  26. package/lib/ruleSpec.js.map +1 -1
  27. package/lib/target.js +19 -19
  28. package/lib/target.js.map +1 -1
  29. package/lib/targetPattern.js +18 -18
  30. package/lib/targetPattern.js.map +1 -1
  31. package/lib/utils/content.js +6 -6
  32. package/lib/utils/content.js.map +1 -1
  33. package/lib/utils/regexp.js +50 -42
  34. package/lib/utils/regexp.js.map +1 -1
  35. package/package.json +24 -25
  36. package/prh-rules/files/review.yml +2 -0
  37. package/prh-rules/languages/ja/typo.yml +10 -1
  38. package/prh-rules/media/WEB+DB_PRESS.yml +19 -6
  39. package/prh-rules/media/techbooster.yml +5 -3
  40. package/prh-rules/package-lock.json +145 -0
  41. package/prh-rules/package.json +1 -1
  42. package/tsconfig.json +6 -6
  43. package/.gitmodules +0 -3
  44. package/.npmignore +0 -30
  45. package/yarn.lock +0 -1643
@@ -1,9 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var regexpRegexp = /^\/(.*)\/([gimy]*)$/;
4
- var hankakuAlphaNum = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
5
- var zenkakuAlphaNum = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
6
- exports.supportRegExpUnicodeFlag = (function () {
3
+ exports.jpChar = exports.jpKanji = exports.jpKana = exports.jpHira = exports.supportRegExpUnicodeFlag = void 0;
4
+ exports.concat = concat;
5
+ exports.combine = combine;
6
+ exports.addBoundary = addBoundary;
7
+ exports.parseRegExpString = parseRegExpString;
8
+ exports.spreadAlphaNum = spreadAlphaNum;
9
+ exports.addDefaultFlags = addDefaultFlags;
10
+ exports.escapeSpecialChars = escapeSpecialChars;
11
+ exports.collectAll = collectAll;
12
+ exports.equals = equals;
13
+ const regexpRegexp = /^\/(.*)\/([gimy]*)$/;
14
+ const hankakuAlphaNum = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
15
+ const zenkakuAlphaNum = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
16
+ exports.supportRegExpUnicodeFlag = (() => {
7
17
  try {
8
18
  new RegExp("", "u");
9
19
  return true;
@@ -18,20 +28,21 @@ exports.jpKana = /[ァ-ヺ]/;
18
28
  // http://tama-san.com/?p=196
19
29
  exports.jpKanji = /(?:[々〇〻\u3400-\u9FFF\uF900-\uFAFF]|[\uD840-\uD87F][\uDC00-\uDFFF])/;
20
30
  exports.jpChar = combine([exports.jpHira, exports.jpKana, exports.jpKanji]);
21
- var regexpSpecialChars = "¥*+.?{}()[]^$-|/".split("");
31
+ const regexpSpecialChars = "¥*+.?{}()[]^$-|/".split("");
22
32
  function concat(args, flags) {
23
- var prevFlags = flags || "";
24
- var foundRegExp = false;
25
- var result = args.reduce(function (p, c) {
33
+ let prevFlags = flags || "";
34
+ let foundRegExp = false;
35
+ const result = args.reduce((p, c) => {
26
36
  if (typeof c === "string") {
27
37
  return p + c;
28
38
  }
29
39
  else if (c instanceof RegExp) {
30
40
  c.flags.split("").sort();
31
- var currentFlags = c.flags.split("").sort().join("");
41
+ const currentFlags = c.flags.split("").sort().join("");
32
42
  if (foundRegExp) {
33
43
  if (prevFlags !== currentFlags) {
34
- throw new Error("combining different flags " + prevFlags + " and " + currentFlags);
44
+ throw new Error(`combining different flags ${prevFlags} and ${currentFlags}.
45
+ The pattern ${c} has different flag with other patterns.`);
35
46
  }
36
47
  }
37
48
  prevFlags = currentFlags;
@@ -39,25 +50,26 @@ function concat(args, flags) {
39
50
  return p + c.source;
40
51
  }
41
52
  else {
42
- throw new Error("unknown type: " + c);
53
+ throw new Error(`unknown type: ${c}`);
43
54
  }
44
55
  }, "");
45
56
  return new RegExp(result, prevFlags);
46
57
  }
47
- exports.concat = concat;
48
58
  function combine(args, flags) {
49
- var prevFlags = flags || "";
50
- var foundRegExp = false;
51
- var result = args.map(function (arg) {
59
+ let prevFlags = flags || "";
60
+ let foundRegExp = false;
61
+ const result = args
62
+ .map((arg) => {
52
63
  if (typeof arg === "string") {
53
64
  return arg;
54
65
  }
55
66
  else if (arg instanceof RegExp) {
56
67
  arg.flags.split("").sort();
57
- var currentFlags = arg.flags.split("").sort().join("");
68
+ const currentFlags = arg.flags.split("").sort().join("");
58
69
  if (foundRegExp) {
59
70
  if (prevFlags !== currentFlags) {
60
- throw new Error("combining different flags " + prevFlags + " and " + currentFlags);
71
+ throw new Error(`combining different flags ${prevFlags} and ${currentFlags}.
72
+ The pattern ${arg} has different flag with other patterns.`);
61
73
  }
62
74
  }
63
75
  prevFlags = currentFlags;
@@ -65,15 +77,15 @@ function combine(args, flags) {
65
77
  return arg.source;
66
78
  }
67
79
  else {
68
- throw new Error("unknown type: " + arg);
80
+ throw new Error(`unknown type: ${arg}`);
69
81
  }
70
- }).join("|");
82
+ })
83
+ .join("|");
71
84
  return concat(["(?:", result, ")"], foundRegExp ? prevFlags : void 0);
72
85
  }
73
- exports.combine = combine;
74
86
  function addBoundary(arg) {
75
- var result;
76
- var flags = "";
87
+ let result;
88
+ let flags = "";
77
89
  if (typeof arg === "string") {
78
90
  result = arg;
79
91
  }
@@ -82,40 +94,40 @@ function addBoundary(arg) {
82
94
  flags = arg.flags;
83
95
  }
84
96
  else {
85
- throw new Error("unknown type: " + arg);
97
+ throw new Error(`unknown type: ${arg}`);
86
98
  }
87
99
  return concat(["\\b", result, "\\b"], flags);
88
100
  }
89
- exports.addBoundary = addBoundary;
90
101
  function parseRegExpString(str) {
91
- var result = str.match(regexpRegexp);
102
+ const result = str.match(regexpRegexp);
92
103
  if (!result) {
93
104
  return null;
94
105
  }
95
106
  return new RegExp(result[1], result[2]);
96
107
  }
97
- exports.parseRegExpString = parseRegExpString;
98
108
  function spreadAlphaNum(str) {
99
- var result = str.split("").map(function (v) {
100
- var tmpIdx1 = hankakuAlphaNum.indexOf(v.toUpperCase());
101
- var tmpIdx2 = hankakuAlphaNum.indexOf(v.toLowerCase());
109
+ const result = str
110
+ .split("")
111
+ .map((v) => {
112
+ const tmpIdx1 = hankakuAlphaNum.indexOf(v.toUpperCase());
113
+ const tmpIdx2 = hankakuAlphaNum.indexOf(v.toLowerCase());
102
114
  if (tmpIdx1 === -1 && tmpIdx2 === -1) {
103
115
  // not alpha num
104
116
  return v;
105
117
  }
106
118
  else if (tmpIdx1 === tmpIdx2) {
107
119
  // num
108
- return "[" + v + zenkakuAlphaNum.charAt(tmpIdx1) + "]";
120
+ return `[${v}${zenkakuAlphaNum.charAt(tmpIdx1)}]`;
109
121
  }
110
122
  else {
111
- return "[" + v.toUpperCase() + v.toLowerCase() + zenkakuAlphaNum.charAt(tmpIdx1) + zenkakuAlphaNum.charAt(tmpIdx2) + "]";
123
+ return `[${v.toUpperCase()}${v.toLowerCase()}${zenkakuAlphaNum.charAt(tmpIdx1)}${zenkakuAlphaNum.charAt(tmpIdx2)}]`;
112
124
  }
113
- }).join("");
125
+ })
126
+ .join("");
114
127
  return new RegExp(result);
115
128
  }
116
- exports.spreadAlphaNum = spreadAlphaNum;
117
129
  function addDefaultFlags(regexp) {
118
- var flags = "gm";
130
+ let flags = "gm";
119
131
  if (exports.supportRegExpUnicodeFlag) {
120
132
  flags += "u";
121
133
  }
@@ -124,14 +136,12 @@ function addDefaultFlags(regexp) {
124
136
  }
125
137
  return new RegExp(regexp.source, flags);
126
138
  }
127
- exports.addDefaultFlags = addDefaultFlags;
128
139
  function escapeSpecialChars(str) {
129
- regexpSpecialChars.forEach(function (char) {
130
- str = str.replace(new RegExp("\\" + char, "g"), "\\" + char);
140
+ regexpSpecialChars.forEach((char) => {
141
+ str = str.replace(new RegExp(`\\${char}`, "g"), `\\${char}`);
131
142
  });
132
143
  return str;
133
144
  }
134
- exports.escapeSpecialChars = escapeSpecialChars;
135
145
  function collectAll(regexp, src) {
136
146
  if (!regexp.global) {
137
147
  throw new Error("g flag is required");
@@ -139,8 +149,8 @@ function collectAll(regexp, src) {
139
149
  if (!regexp.source) {
140
150
  throw new Error("source is required");
141
151
  }
142
- var resultList = [];
143
- var result;
152
+ const resultList = [];
153
+ let result;
144
154
  do {
145
155
  result = regexp.exec(src);
146
156
  if (result) {
@@ -149,7 +159,6 @@ function collectAll(regexp, src) {
149
159
  } while (result);
150
160
  return resultList;
151
161
  }
152
- exports.collectAll = collectAll;
153
162
  function equals(a, b) {
154
163
  if (a.source !== b.source) {
155
164
  return false;
@@ -165,5 +174,4 @@ function equals(a, b) {
165
174
  }
166
175
  return true;
167
176
  }
168
- exports.equals = equals;
169
177
  //# sourceMappingURL=regexp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"regexp.js","sourceRoot":"","sources":["regexp.ts"],"names":[],"mappings":"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","sourcesContent":["const regexpRegexp = /^\\/(.*)\\/([gimy]*)$/;\n\nconst hankakuAlphaNum = \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\";\nconst zenkakuAlphaNum = \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\";\n\nexport const supportRegExpUnicodeFlag = (() => {\n try {\n new RegExp(\"\", \"u\");\n return true;\n } catch (e) {\n return false;\n }\n})();\n\n// http://www.tamasoft.co.jp/ja/general-info/unicode.html\nexport const jpHira = /[ぁ-ゖ]/;\nexport const jpKana = /[ァ-ヺ]/;\n// http://tama-san.com/?p=196\nexport const jpKanji = /(?:[々〇〻\\u3400-\\u9FFF\\uF900-\\uFAFF]|[\\uD840-\\uD87F][\\uDC00-\\uDFFF])/;\nexport const jpChar = combine([jpHira, jpKana, jpKanji]);\n\nconst regexpSpecialChars = \"¥*+.?{}()[]^$-|/\".split(\"\");\n\nexport function concat(args: (string | RegExp)[], flags?: string): RegExp {\n let prevFlags = flags || \"\";\n let foundRegExp = false;\n const result = args.reduce<string>((p, c) => {\n if (typeof c === \"string\") {\n return p + c;\n } else if (c instanceof RegExp) {\n c.flags.split(\"\").sort();\n const currentFlags = c.flags.split(\"\").sort().join(\"\");\n if (foundRegExp) {\n if (prevFlags !== currentFlags) {\n throw new Error(`combining different flags ${prevFlags} and ${currentFlags}`);\n }\n }\n prevFlags = currentFlags;\n foundRegExp = true;\n return p + c.source;\n } else {\n throw new Error(`unknown type: ${c}`);\n }\n }, \"\");\n return new RegExp(result, prevFlags);\n}\n\nexport function combine(args: (string | RegExp)[], flags?: string): RegExp {\n let prevFlags = flags || \"\";\n let foundRegExp = false;\n const result = args.map(arg => {\n if (typeof arg === \"string\") {\n return arg;\n } else if (arg instanceof RegExp) {\n arg.flags.split(\"\").sort();\n const currentFlags = arg.flags.split(\"\").sort().join(\"\");\n if (foundRegExp) {\n if (prevFlags !== currentFlags) {\n throw new Error(`combining different flags ${prevFlags} and ${currentFlags}`);\n }\n }\n prevFlags = currentFlags;\n foundRegExp = true;\n return arg.source;\n } else {\n throw new Error(`unknown type: ${arg}`);\n }\n }).join(\"|\");\n return concat([\"(?:\", result, \")\"], foundRegExp ? prevFlags : void 0);\n}\n\nexport function addBoundary(arg: string | RegExp): RegExp {\n let result: string;\n let flags = \"\";\n if (typeof arg === \"string\") {\n result = arg;\n } else if (arg instanceof RegExp) {\n result = arg.source;\n flags = arg.flags;\n } else {\n throw new Error(`unknown type: ${arg}`);\n }\n return concat([\"\\\\b\", result, \"\\\\b\"], flags);\n}\n\nexport function parseRegExpString(str: string): RegExp | null {\n const result = str.match(regexpRegexp);\n if (!result) {\n return null;\n }\n return new RegExp(result[1], result[2]);\n}\n\nexport function spreadAlphaNum(str: string): RegExp {\n const result = str.split(\"\").map(v => {\n const tmpIdx1 = hankakuAlphaNum.indexOf(v.toUpperCase());\n const tmpIdx2 = hankakuAlphaNum.indexOf(v.toLowerCase());\n if (tmpIdx1 === -1 && tmpIdx2 === -1) {\n // not alpha num\n return v;\n } else if (tmpIdx1 === tmpIdx2) {\n // num\n return `[${v}${zenkakuAlphaNum.charAt(tmpIdx1)}]`;\n } else {\n return `[${v.toUpperCase()}${v.toLowerCase()}${zenkakuAlphaNum.charAt(tmpIdx1)}${zenkakuAlphaNum.charAt(tmpIdx2)}]`;\n }\n }).join(\"\");\n return new RegExp(result);\n}\n\nexport function addDefaultFlags(regexp: RegExp) {\n let flags = \"gm\";\n if (supportRegExpUnicodeFlag) {\n flags += \"u\";\n }\n if (regexp.ignoreCase) {\n flags += \"i\";\n }\n return new RegExp(regexp.source, flags);\n}\n\nexport function escapeSpecialChars(str: string): string {\n regexpSpecialChars.forEach(char => {\n str = str.replace(new RegExp(`\\\\${char}`, \"g\"), `\\\\${char}`);\n });\n return str;\n}\n\nexport function collectAll(regexp: RegExp, src: string) {\n if (!regexp.global) {\n throw new Error(\"g flag is required\");\n }\n if (!regexp.source) {\n throw new Error(\"source is required\");\n }\n const resultList: RegExpExecArray[] = [];\n let result: RegExpExecArray | null;\n do {\n result = regexp.exec(src);\n if (result) {\n resultList.push(result);\n }\n } while (result);\n\n return resultList;\n}\n\nexport function equals(a: RegExp, b: RegExp) {\n if (a.source !== b.source) {\n return false;\n }\n if (a.global !== b.global) {\n return false;\n }\n if (a.ignoreCase !== b.ignoreCase) {\n return false;\n }\n if (a.multiline !== b.multiline) {\n return false;\n }\n\n return true;\n}\n"]}
1
+ {"version":3,"file":"regexp.js","sourceRoot":"","sources":["regexp.ts"],"names":[],"mappings":"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","sourcesContent":["const regexpRegexp = /^\\/(.*)\\/([gimy]*)$/;\n\nconst hankakuAlphaNum = \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\";\nconst zenkakuAlphaNum =\n \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\";\n\nexport const supportRegExpUnicodeFlag = (() => {\n try {\n new RegExp(\"\", \"u\");\n return true;\n } catch (e) {\n return false;\n }\n})();\n\n// http://www.tamasoft.co.jp/ja/general-info/unicode.html\nexport const jpHira = /[ぁ-ゖ]/;\nexport const jpKana = /[ァ-ヺ]/;\n// http://tama-san.com/?p=196\nexport const jpKanji = /(?:[々〇〻\\u3400-\\u9FFF\\uF900-\\uFAFF]|[\\uD840-\\uD87F][\\uDC00-\\uDFFF])/;\nexport const jpChar = combine([jpHira, jpKana, jpKanji]);\n\nconst regexpSpecialChars = \"¥*+.?{}()[]^$-|/\".split(\"\");\n\nexport function concat(args: (string | RegExp)[], flags?: string): RegExp {\n let prevFlags = flags || \"\";\n let foundRegExp = false;\n const result = args.reduce<string>((p, c) => {\n if (typeof c === \"string\") {\n return p + c;\n } else if (c instanceof RegExp) {\n c.flags.split(\"\").sort();\n const currentFlags = c.flags.split(\"\").sort().join(\"\");\n if (foundRegExp) {\n if (prevFlags !== currentFlags) {\n throw new Error(`combining different flags ${prevFlags} and ${currentFlags}.\nThe pattern ${c} has different flag with other patterns.`);\n }\n }\n prevFlags = currentFlags;\n foundRegExp = true;\n return p + c.source;\n } else {\n throw new Error(`unknown type: ${c}`);\n }\n }, \"\");\n return new RegExp(result, prevFlags);\n}\n\nexport function combine(args: (string | RegExp)[], flags?: string): RegExp {\n let prevFlags = flags || \"\";\n let foundRegExp = false;\n const result = args\n .map((arg) => {\n if (typeof arg === \"string\") {\n return arg;\n } else if (arg instanceof RegExp) {\n arg.flags.split(\"\").sort();\n const currentFlags = arg.flags.split(\"\").sort().join(\"\");\n if (foundRegExp) {\n if (prevFlags !== currentFlags) {\n throw new Error(`combining different flags ${prevFlags} and ${currentFlags}.\nThe pattern ${arg} has different flag with other patterns.`);\n }\n }\n prevFlags = currentFlags;\n foundRegExp = true;\n return arg.source;\n } else {\n throw new Error(`unknown type: ${arg}`);\n }\n })\n .join(\"|\");\n return concat([\"(?:\", result, \")\"], foundRegExp ? prevFlags : void 0);\n}\n\nexport function addBoundary(arg: string | RegExp): RegExp {\n let result: string;\n let flags = \"\";\n if (typeof arg === \"string\") {\n result = arg;\n } else if (arg instanceof RegExp) {\n result = arg.source;\n flags = arg.flags;\n } else {\n throw new Error(`unknown type: ${arg}`);\n }\n return concat([\"\\\\b\", result, \"\\\\b\"], flags);\n}\n\nexport function parseRegExpString(str: string): RegExp | null {\n const result = str.match(regexpRegexp);\n if (!result) {\n return null;\n }\n return new RegExp(result[1], result[2]);\n}\n\nexport function spreadAlphaNum(str: string): RegExp {\n const result = str\n .split(\"\")\n .map((v) => {\n const tmpIdx1 = hankakuAlphaNum.indexOf(v.toUpperCase());\n const tmpIdx2 = hankakuAlphaNum.indexOf(v.toLowerCase());\n if (tmpIdx1 === -1 && tmpIdx2 === -1) {\n // not alpha num\n return v;\n } else if (tmpIdx1 === tmpIdx2) {\n // num\n return `[${v}${zenkakuAlphaNum.charAt(tmpIdx1)}]`;\n } else {\n return `[${v.toUpperCase()}${v.toLowerCase()}${zenkakuAlphaNum.charAt(tmpIdx1)}${zenkakuAlphaNum.charAt(tmpIdx2)}]`;\n }\n })\n .join(\"\");\n return new RegExp(result);\n}\n\nexport function addDefaultFlags(regexp: RegExp) {\n let flags = \"gm\";\n if (supportRegExpUnicodeFlag) {\n flags += \"u\";\n }\n if (regexp.ignoreCase) {\n flags += \"i\";\n }\n return new RegExp(regexp.source, flags);\n}\n\nexport function escapeSpecialChars(str: string): string {\n regexpSpecialChars.forEach((char) => {\n str = str.replace(new RegExp(`\\\\${char}`, \"g\"), `\\\\${char}`);\n });\n return str;\n}\n\nexport function collectAll(regexp: RegExp, src: string) {\n if (!regexp.global) {\n throw new Error(\"g flag is required\");\n }\n if (!regexp.source) {\n throw new Error(\"source is required\");\n }\n const resultList: RegExpExecArray[] = [];\n let result: RegExpExecArray | null;\n do {\n result = regexp.exec(src);\n if (result) {\n resultList.push(result);\n }\n } while (result);\n\n return resultList;\n}\n\nexport function equals(a: RegExp, b: RegExp) {\n if (a.source !== b.source) {\n return false;\n }\n if (a.global !== b.global) {\n return false;\n }\n if (a.ignoreCase !== b.ignoreCase) {\n return false;\n }\n if (a.multiline !== b.multiline) {\n return false;\n }\n\n return true;\n}\n"]}
package/package.json CHANGED
@@ -1,23 +1,27 @@
1
1
  {
2
2
  "name": "prh",
3
- "version": "5.4.3",
3
+ "version": "6.0.1",
4
4
  "description": "proofreading helper",
5
5
  "main": "index.js",
6
6
  "bin": {
7
- "prh": "./bin/prh"
7
+ "prh": "bin/prh"
8
8
  },
9
9
  "directories": {
10
10
  "test": "test"
11
11
  },
12
+ "engines": {
13
+ "node": ">=22"
14
+ },
12
15
  "scripts": {
13
- "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s",
14
- "build": "tslint --fix --type-check -c tslint.json -p tsconfig.json && tsfmt -r && tsc",
15
- "test": "npm run build && mocha --reporter spec --require intelli-espower-loader",
16
+ "build": "tsc",
17
+ "lint": "eslint lib/ test/",
18
+ "format": "prettier --write 'lib/**/*.ts' 'test/**/*.ts'",
19
+ "test": "npm run build && vitest run",
16
20
  "update-submodules": "git submodule foreach 'git pull --rebase'"
17
21
  },
18
22
  "repository": {
19
23
  "type": "git",
20
- "url": "https://github.com/prh/prh.git"
24
+ "url": "git+https://github.com/prh/prh.git"
21
25
  },
22
26
  "author": "vvakame",
23
27
  "license": "MIT",
@@ -26,26 +30,21 @@
26
30
  },
27
31
  "homepage": "https://github.com/prh/prh",
28
32
  "dependencies": {
29
- "commandpost": "^1.2.1",
30
- "diff": "^3.3.0",
31
- "js-yaml": "^3.9.1"
33
+ "commander": "^14.0.3",
34
+ "diff": "^8.0.3",
35
+ "js-yaml": "^4.1.0"
32
36
  },
33
37
  "devDependencies": {
34
- "@types/diff": "^3.2.0",
35
- "@types/glob": "^5.0.30",
36
- "@types/js-yaml": "^3.9.0",
37
- "@types/mkdirp": "^0.5.0",
38
- "@types/mocha": "^2.2.32",
39
- "@types/node": "^8.0.19",
40
- "conventional-changelog-cli": "^1.3.2",
41
- "glob": "^7.1.2",
42
- "intelli-espower-loader": "^1.0.1",
43
- "mkdirp": "^0.5.1",
44
- "mocha": "^3.5.0",
45
- "power-assert": "^1.4.4",
46
- "source-map-support": "^0.4.5",
47
- "tslint": "^5.5.0",
48
- "typescript": "^2.4.2",
49
- "typescript-formatter": "^6.0.0"
38
+ "@eslint/js": "^10.0.1",
39
+ "@types/diff": "^8.0.0",
40
+ "@types/js-yaml": "^4.0.0",
41
+ "@types/node": "^25.2.3",
42
+ "eslint": "^10.0.0",
43
+ "eslint-config-prettier": "^10.1.8",
44
+ "glob": "^13.0.5",
45
+ "prettier": "^3.0.0",
46
+ "typescript": "^5.7.0",
47
+ "typescript-eslint": "^8.0.0",
48
+ "vitest": "^4.0.18"
50
49
  }
51
50
  }
@@ -7,6 +7,8 @@ version: 1
7
7
  targets:
8
8
  - file: /\.re$/
9
9
  excludes:
10
+ # headlineのID部分はチェックしない
11
+ - pattern: /^=+\{[^}]+\}/
10
12
  # 一部ブロック記法は中身をチェックしないようにする
11
13
  # TODO 肯定的後読みが使えるようになったら [引数] 部分がチェック対象になるようにする
12
14
  - pattern: /^\/\/(list|emlist|listnum|emlistnum|cmd|source|graph)(?:\[.*?\])*\{\n(?:.*\n)*?\/\/\}/m
@@ -10,6 +10,15 @@ rules:
10
10
  - expected: なるほど
11
11
  pattern: なほるど
12
12
  - expected: で
13
- pattern: でで
13
+ pattern: /(?<!ま)でで(?!(きる|きます|す))/
14
+ specs:
15
+ - from: でで
16
+ to: で
17
+ - from: そこでで、
18
+ to: そこで、
19
+ - from: Aでできる
20
+ to: Aでできる
21
+ - from: Aまでです
22
+ to: Aまでです
14
23
  - expected: を
15
24
  pattern: をを
@@ -587,11 +587,17 @@ rules:
587
587
  expected: づら$1
588
588
  - pattern: んで([たなるろよ])
589
589
  expected: んでい$1
590
- - pattern: /てな(?!く)/
591
- expected: ていな
590
+ - pattern: /ってな(?!く)/
591
+ expected: っていな
592
592
  specs:
593
593
  - from: わかってない
594
594
  to: わかっていない
595
+ - from: 言ってない
596
+ to: 言っていない
597
+ - from: 走ってない
598
+ to: 走っていない
599
+ - from: 持てない
600
+ to: 持てない
595
601
  - from: 消えてなくなる
596
602
  to: 消えてなくなる
597
603
  - pattern: /([^捨当立])てる/
@@ -611,6 +617,8 @@ rules:
611
617
  - することができ
612
618
  - することが可能で
613
619
  expected: でき
620
+ - pattern: するようになります
621
+ expected: します
614
622
  - pattern: るようになります
615
623
  expected: ます
616
624
  - pattern: て欲し
@@ -653,7 +661,7 @@ rules:
653
661
  - 取り敢えず
654
662
  expected: とりあえず
655
663
  - pattern: /([^有])無([かくいけし])/
656
- expected: $1な$1
664
+ expected: $1な$2
657
665
  - pattern: /尚([^早徳])/
658
666
  expected: なお$1
659
667
  - pattern:
@@ -1329,8 +1337,13 @@ rules:
1329
1337
  expected: 内蔵
1330
1338
  - pattern: /なか([かでに])/
1331
1339
  expected: 中$1
1332
- - pattern: /なら([ばびぶべぼん])/
1340
+ - pattern: /なら(ば(?!、)|[びぶべぼん])/
1333
1341
  expected: 並$1
1342
+ specs:
1343
+ - from: ならびに
1344
+ to: 並びに
1345
+ - from: ならば、
1346
+ to: ならば、
1334
1347
  - pattern: /著わ([さしすせそ])/
1335
1348
  expected: 著$1
1336
1349
  - pattern: 著い
@@ -1665,8 +1678,6 @@ rules:
1665
1678
  pattern: /\bWeb Socket\b/
1666
1679
  - expected: $1Web$2
1667
1680
  pattern: /(?:([^/])ウェブ)|(?:ウェブ([^/\+]))/
1668
- - expected: $1Web$2
1669
- pattern: /(?:([^/])\bWEB)|(?:WEB\b([^/\+]))/
1670
1681
  - expected: $1Web$2
1671
1682
  pattern: /(?:([^/])ウェッブ)|(?:ウェッブ([^/\+]))/
1672
1683
  - expected: O/Rマッ
@@ -3020,3 +3031,5 @@ rules:
3020
3031
  pattern: /([^も])のの/
3021
3032
  - expected: は
3022
3033
  pattern: /はは/
3034
+ - expected: "WEB+DB PRESS"
3035
+ pattern: /WEB\+DB PRESS/i
@@ -91,7 +91,7 @@ rules:
91
91
  pattern: 綺麗
92
92
  prh: 漢字で書かず、ひらがなで書くと読みやすくなります
93
93
  - expected: こと
94
- pattern: /(記|大|仕|返|無|食|見|議)?事(?!情|件|前|後|象|例|実|体|態|項|務|業|柄)/
94
+ pattern: /(記|大|仕|返|無|食|見|議|当)?事(?!情|件|前|後|象|例|実|体|態|項|務|業|柄|故)/
95
95
  regexpMustEmpty: $1
96
96
  prh: 漢字で書かず、ひらがなで書くと読みやすくなります
97
97
  specs:
@@ -105,6 +105,8 @@ rules:
105
105
  to: 事象
106
106
  - from: 事柄
107
107
  to: 事柄
108
+ - from: 当事
109
+ to: 当事
108
110
  - expected: $1とき
109
111
  pattern: /(の)時(?!点|代|々|間)/
110
112
  specs:
@@ -276,7 +278,7 @@ rules:
276
278
  prh: C87でざきさんがやらかした思い出
277
279
 
278
280
  # その他
279
- - expected: コード保管
280
- pattern: コード補完
281
+ - expected: コード補完
282
+ pattern: コード保管
281
283
  prh: コード補完の間違いと思われます。
282
284
 
@@ -0,0 +1,145 @@
1
+ {
2
+ "name": "prh-rules",
3
+ "version": "1.0.0",
4
+ "lockfileVersion": 1,
5
+ "requires": true,
6
+ "dependencies": {
7
+ "argparse": {
8
+ "version": "1.0.10",
9
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
10
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
11
+ "requires": {
12
+ "sprintf-js": "~1.0.2"
13
+ }
14
+ },
15
+ "balanced-match": {
16
+ "version": "1.0.0",
17
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
18
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
19
+ "dev": true
20
+ },
21
+ "brace-expansion": {
22
+ "version": "1.1.11",
23
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
24
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
25
+ "dev": true,
26
+ "requires": {
27
+ "balanced-match": "^1.0.0",
28
+ "concat-map": "0.0.1"
29
+ }
30
+ },
31
+ "commandpost": {
32
+ "version": "1.4.0",
33
+ "resolved": "https://registry.npmjs.org/commandpost/-/commandpost-1.4.0.tgz",
34
+ "integrity": "sha512-aE2Y4MTFJ870NuB/+2z1cXBhSBBzRydVVjzhFC4gtenEhpnj15yu0qptWGJsO9YGrcPZ3ezX8AWb1VA391MKpQ=="
35
+ },
36
+ "concat-map": {
37
+ "version": "0.0.1",
38
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
39
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
40
+ "dev": true
41
+ },
42
+ "diff": {
43
+ "version": "3.5.0",
44
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
45
+ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA=="
46
+ },
47
+ "esprima": {
48
+ "version": "4.0.1",
49
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
50
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
51
+ },
52
+ "glob": {
53
+ "version": "4.5.3",
54
+ "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz",
55
+ "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=",
56
+ "dev": true,
57
+ "requires": {
58
+ "inflight": "^1.0.4",
59
+ "inherits": "2",
60
+ "minimatch": "^2.0.1",
61
+ "once": "^1.3.0"
62
+ }
63
+ },
64
+ "glob-expand": {
65
+ "version": "0.2.1",
66
+ "resolved": "https://registry.npmjs.org/glob-expand/-/glob-expand-0.2.1.tgz",
67
+ "integrity": "sha1-GwiKwnK1cViHC3aBYRHaRhimag8=",
68
+ "dev": true,
69
+ "requires": {
70
+ "glob": "~4.5.x",
71
+ "lodash": "~4.13.x"
72
+ }
73
+ },
74
+ "inflight": {
75
+ "version": "1.0.6",
76
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
77
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
78
+ "dev": true,
79
+ "requires": {
80
+ "once": "^1.3.0",
81
+ "wrappy": "1"
82
+ }
83
+ },
84
+ "inherits": {
85
+ "version": "2.0.4",
86
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
87
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
88
+ "dev": true
89
+ },
90
+ "js-yaml": {
91
+ "version": "3.13.1",
92
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
93
+ "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
94
+ "requires": {
95
+ "argparse": "^1.0.7",
96
+ "esprima": "^4.0.0"
97
+ }
98
+ },
99
+ "lodash": {
100
+ "version": "4.13.1",
101
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.13.1.tgz",
102
+ "integrity": "sha1-g+SxCRP0hJbU0W/sSlYK8u50S2g=",
103
+ "dev": true
104
+ },
105
+ "minimatch": {
106
+ "version": "2.0.10",
107
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz",
108
+ "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=",
109
+ "dev": true,
110
+ "requires": {
111
+ "brace-expansion": "^1.0.0"
112
+ }
113
+ },
114
+ "once": {
115
+ "version": "1.4.0",
116
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
117
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
118
+ "dev": true,
119
+ "requires": {
120
+ "wrappy": "1"
121
+ }
122
+ },
123
+ "prh": {
124
+ "version": "5.4.3",
125
+ "resolved": "https://registry.npmjs.org/prh/-/prh-5.4.3.tgz",
126
+ "integrity": "sha512-W5+gzqOrVLKayPh+2QCur7KYZPsLRfDJd4Tyz5lIXAWwqaX/LQ40FX/P3/Hbfgf7w+EQPdR1yOx6BVf+frG40w==",
127
+ "requires": {
128
+ "commandpost": "^1.2.1",
129
+ "diff": "^3.3.0",
130
+ "js-yaml": "^3.9.1"
131
+ }
132
+ },
133
+ "sprintf-js": {
134
+ "version": "1.0.3",
135
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
136
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
137
+ },
138
+ "wrappy": {
139
+ "version": "1.0.2",
140
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
141
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
142
+ "dev": true
143
+ }
144
+ }
145
+ }
@@ -17,7 +17,7 @@
17
17
  },
18
18
  "homepage": "https://github.com/prh/rules#readme",
19
19
  "dependencies": {
20
- "prh": "^1.0.3"
20
+ "prh": "^5.4.3"
21
21
  },
22
22
  "devDependencies": {
23
23
  "glob-expand": "^0.2.1"
package/tsconfig.json CHANGED
@@ -1,13 +1,12 @@
1
1
  {
2
2
  "compilerOptions": {
3
- "target": "es5",
3
+ "target": "es2020",
4
4
  "module": "commonjs",
5
5
  "lib": [
6
- "es2016"
6
+ "es2020"
7
7
  ],
8
8
  "types": [
9
- "node",
10
- "mocha"
9
+ "node"
11
10
  ],
12
11
  "strict": true,
13
12
  "stripInternal": true,
@@ -19,10 +18,11 @@
19
18
  "noFallthroughCasesInSwitch": true,
20
19
  "newLine": "LF",
21
20
  "noEmitOnError": true,
22
- "inlineSources": true
21
+ "inlineSources": true,
22
+ "skipLibCheck": true
23
23
  },
24
24
  "include": [
25
25
  "lib/**/*.ts",
26
26
  "test/**/*.ts"
27
27
  ]
28
- }
28
+ }
package/.gitmodules DELETED
@@ -1,3 +0,0 @@
1
- [submodule "prh-rules"]
2
- path = prh-rules
3
- url = https://github.com/prh/rules.git