diff --git a/.githooks/pre-commit b/.githooks/pre-commit new file mode 100755 index 0000000..e874da3 --- /dev/null +++ b/.githooks/pre-commit @@ -0,0 +1,2 @@ +#!/bin/sh +npx --no-install lint-staged diff --git a/package.json b/package.json index a34e2b2..3c19313 100644 --- a/package.json +++ b/package.json @@ -29,18 +29,19 @@ "build": "textlint-scripts build", "prepublish": "npm run --if-present build", "test": "textlint-scripts test", - "prettier": "prettier --write \"**/*.{js,jsx,ts,tsx,css}\"", - "watch": "textlint-scripts build --watch" + "watch": "textlint-scripts build --watch", + "format": "prettier --write \"**/*.{js,jsx,ts,tsx,css}\"", + "prepare": "git config --local core.hooksPath .githooks" }, "prettier": { - "printWidth": 120, "singleQuote": false, - "tabWidth": 4 + "printWidth": 120, + "tabWidth": 4, + "trailingComma": "none" }, "devDependencies": { - "husky": "^1.1.1", "lint-staged": "^7.3.0", - "prettier": "^1.8.1", + "prettier": "^3.1.0", "textlint-scripts": "^12.0.1", "textlint-tester": "12.0.0" }, @@ -54,8 +55,7 @@ }, "lint-staged": { "*.{js,jsx,ts,tsx,css}": [ - "prettier --write", - "git add" + "prettier --write" ] }, "dependencies": { diff --git a/src/parser/PairMaker.js b/src/parser/PairMaker.js index 7eb221c..e3c26e3 100644 --- a/src/parser/PairMaker.js +++ b/src/parser/PairMaker.js @@ -72,7 +72,7 @@ const PAIR_MARKS = [ // create entries // [start.key, mark] // [end.key, mark] -const PAIR_MARKS_ENTRIES = PAIR_MARKS.map(mark => { +const PAIR_MARKS_ENTRIES = PAIR_MARKS.map((mark) => { return [ [mark.start, mark], [mark.end, mark] @@ -86,13 +86,13 @@ const PAIR_MARKS_ENTRIES = PAIR_MARKS.map(mark => { const PAIR_MARKS_KEY_Map = new Map(PAIR_MARKS_ENTRIES); const matchPair = (string) => { return PAIR_MARKS_KEY_Map.get(string); -} +}; // For readme // console.log(PAIR_MARKS.map(pair => `- ${pair.key}: \`${pair.start}\` and \`${pair.end}\``).join("\n")); export class PairMaker { /** - * @param {import("./SourceCode").SourceCode} sourceCode - * @returns + * @param {import("./SourceCode").SourceCode} sourceCode + * @returns */ mark(sourceCode) { const string = sourceCode.read(); @@ -100,20 +100,20 @@ export class PairMaker { return; } - const matchedPair = matchPair(string) - if (!matchedPair){ + const matchedPair = matchPair(string); + if (!matchedPair) { return; } // support nested pair // {"{test}"} if (sourceCode.isInContext(matchedPair)) { // check that string is end mark? - const pair = PAIR_MARKS.find(pair => pair.end === string); + const pair = PAIR_MARKS.find((pair) => pair.end === string); if (pair) { sourceCode.leaveContext(pair); } } else { - const pair = PAIR_MARKS.find(pair => pair.start === string); + const pair = PAIR_MARKS.find((pair) => pair.start === string); if (pair) { sourceCode.enterContext(pair); } diff --git a/src/parser/SourceCode.js b/src/parser/SourceCode.js index 3836006..9cb582f 100644 --- a/src/parser/SourceCode.js +++ b/src/parser/SourceCode.js @@ -17,7 +17,7 @@ export class SourceCode { } leaveContext(pairMark) { - const index = this.contextLocations.findIndex(context => { + const index = this.contextLocations.findIndex((context) => { return context.pairMark.key === pairMark.key; }); if (index !== -1) { @@ -29,7 +29,7 @@ export class SourceCode { if (!pairMark) { return this.contextLocations.length > 0; } - return this.contextLocations.some(contextLocation => contextLocation.pairMark.key === pairMark.key); + return this.contextLocations.some((contextLocation) => contextLocation.pairMark.key === pairMark.key); } /** diff --git a/src/textlint-rule-no-unmatched-pair.js b/src/textlint-rule-no-unmatched-pair.js index 6dc9328..8930f56 100644 --- a/src/textlint-rule-no-unmatched-pair.js +++ b/src/textlint-rule-no-unmatched-pair.js @@ -4,7 +4,7 @@ import { PairMaker } from "./parser/PairMaker.js"; import { SourceCode } from "./parser/SourceCode.js"; import { IgnoreNodeManager } from "textlint-rule-helper"; -const report = context => { +const report = (context) => { const { Syntax, report, RuleError } = context; const ignoreNodeManager = new IgnoreNodeManager(); return { @@ -19,29 +19,37 @@ const report = context => { Syntax.BlockQuote, Syntax.Comment ]); - sentences.children.filter(node => node.type === SentenceSplitterSyntax.Sentence).forEach(sentence => { - const source = new SourceCode(sentence.raw); - const pairMaker = new PairMaker(); - const sentenceIndex = sentence.range[0]; - while (source.canRead) { - // If the character is in ignored range, skip it - const characterIndex = sentenceIndex + source.index; - // console.log(characterIndex, source.text[source.index], ignoreNodeManager.isIgnoredIndex(characterIndex)); - if (!ignoreNodeManager.isIgnoredIndex(characterIndex)) { - pairMaker.mark(source); + sentences.children + .filter((node) => node.type === SentenceSplitterSyntax.Sentence) + .forEach((sentence) => { + const source = new SourceCode(sentence.raw); + const pairMaker = new PairMaker(); + const sentenceIndex = sentence.range[0]; + while (source.canRead) { + // If the character is in ignored range, skip it + const characterIndex = sentenceIndex + source.index; + // console.log(characterIndex, source.text[source.index], ignoreNodeManager.isIgnoredIndex(characterIndex)); + if (!ignoreNodeManager.isIgnoredIndex(characterIndex)) { + pairMaker.mark(source); + } + source.peek(); } - source.peek(); - } - // Report Error for each existing context keys - source.contextLocations.forEach((contextLocation) => { - report(node, new RuleError(`Not found pair character for ${contextLocation.pairMark.start}. + // Report Error for each existing context keys + source.contextLocations.forEach((contextLocation) => { + report( + node, + new RuleError( + `Not found pair character for ${contextLocation.pairMark.start}. You should close this sentence with ${contextLocation.pairMark.end}. -This pair mark is called ${contextLocation.pairMark.key}.`, { - index: (sentenceIndex - node.range[0]) + contextLocation.index - })); +This pair mark is called ${contextLocation.pairMark.key}.`, + { + index: sentenceIndex - node.range[0] + contextLocation.index + } + ) + ); + }); }); - }); } }; }; diff --git a/test/textlint-rule-no-unmatched-pair-test.js b/test/textlint-rule-no-unmatched-pair-test.js index 410090d..135a622 100644 --- a/test/textlint-rule-no-unmatched-pair-test.js +++ b/test/textlint-rule-no-unmatched-pair-test.js @@ -11,7 +11,8 @@ tester.run("textlint-rule-no-unmatched-pair", rule, { 'test {"{ABC`{"{ABC}"}`}"} ok.', "これは(秘密)です。", `John said "Hello World!".`, - "`(` is ok.", "文字列リテラルには3種類ありますが、まずは`\"`(ダブルクオート)と`'`(シングルクオート)について見ていきます。", + "`(` is ok.", + "文字列リテラルには3種類ありますが、まずは`\"`(ダブルクオート)と`'`(シングルクオート)について見ていきます。", `a is b. \`"\`(ダブルクオート)と\`'\`(シングルクオート)に意味的な違いはありません。 @@ -21,7 +22,8 @@ tester.run("textlint-rule-no-unmatched-pair", rule, { また操作と表示が1対1で更新される場合、1つの操作に対して複数の箇所の表示が更新されることもあります。 今回のTodoアプリでもTodoリスト(\`#js-todo-list\`)とTodoアイテム数(\`#js-todo-count\`)の2箇所を更新する必要があることからも分かります。 -`, `\`Object.assign\`メソッドは、\`target\`オブジェクトに対して、1つ以上の\`sources\`オブジェクトを指定します。 +`, + `\`Object.assign\`メソッドは、\`target\`オブジェクトに対して、1つ以上の\`sources\`オブジェクトを指定します。 \`sources\`オブジェクト自身がもつ列挙可能なプロパティを第一引数の\`target\`オブジェクトに対してコピーします。 \`Object.assign\`メソッドの返り値は、\`target\`オブジェクトになります。`, // 箇条書き @@ -63,14 +65,16 @@ This pair mark is called double quote.` ] }, { - text: "`src/App.js`にファイルを作成し、次のような内容のJavaScriptモジュールとします。\n" - + "モジュールは、基本的には何かしらを外部に公開(`export`)します。", + text: + "`src/App.js`にファイルを作成し、次のような内容のJavaScriptモジュールとします。\n" + + "モジュールは、基本的には何かしらを外部に公開(`export`)します。", errors: [ { index: 74 } ] - }, { + }, + { text: `このように\`count\`変数が自動解放されずに保持できているのは「(\`increment\`)関数が外側のスコープにある(\`count\`)変数への参照を保持できる」ためです。このような性質のことをクロージャー(関数閉包)と呼びます。クロージャーは静的スコープと変数は参照され続けていればデータは保持されるという2つの性質によって成り立っています。`, errors: [ { @@ -79,7 +83,8 @@ This pair mark is called double quote.` index: 104 } ] - },{ + }, + { text: `DUMMY DUUMY. @@ -93,4 +98,3 @@ This pair mark is called double quote.` } ] }); - diff --git a/yarn.lock b/yarn.lock index 2eb7937..9910d20 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1596,11 +1596,6 @@ chokidar@3.5.1, chokidar@^3.4.0: optionalDependencies: fsevents "~2.3.1" -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -1753,7 +1748,7 @@ core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -cosmiconfig@^5.0.2, cosmiconfig@^5.0.7: +cosmiconfig@^5.0.2: version "5.2.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== @@ -1772,17 +1767,6 @@ cross-spawn@^5.0.1: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -1933,13 +1917,6 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -end-of-stream@^1.1.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" - integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== - dependencies: - once "^1.4.0" - error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -1990,19 +1967,6 @@ execa@^0.9.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - expand-brackets@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" @@ -2235,23 +2199,11 @@ get-stdin@^5.0.1: resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" integrity sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g= -get-stdin@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" - integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== - get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -2398,22 +2350,6 @@ hosted-git-info@^2.1.4: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" integrity sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w== -husky@^1.1.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/husky/-/husky-1.3.1.tgz#26823e399300388ca2afff11cfa8a86b0033fae0" - integrity sha512-86U6sVVVf4b5NYSZ0yvv88dRgBSSXXmHaiq5pP4KDj5JVzdwKgBjEtUPOm8hcoytezFwbU+7gotXNhpHdystlg== - dependencies: - cosmiconfig "^5.0.7" - execa "^1.0.0" - find-up "^3.0.0" - get-stdin "^6.0.0" - is-ci "^2.0.0" - pkg-dir "^3.0.0" - please-upgrade-node "^3.1.1" - read-pkg "^4.0.1" - run-node "^1.0.0" - slash "^2.0.0" - import-fresh@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" @@ -2510,13 +2446,6 @@ is-buffer@^2.0.0: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - is-core-module@^2.2.0: version "2.4.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1" @@ -3374,11 +3303,6 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - node-modules-regexp@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" @@ -3490,7 +3414,7 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= @@ -3647,7 +3571,7 @@ path-is-inside@^1.0.2: resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= -path-key@^2.0.0, path-key@^2.0.1: +path-key@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= @@ -3741,7 +3665,7 @@ pkg-to-readme@^1.1.0: object.assign "^4.0.3" read-pkg-up "^1.0.1" -please-upgrade-node@^3.0.2, please-upgrade-node@^3.1.1: +please-upgrade-node@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz#ed320051dfcc5024fae696712c8288993595e8ac" integrity sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ== @@ -3763,10 +3687,10 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier@^1.8.1: - version "1.18.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.18.2.tgz#6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea" - integrity sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw== +prettier@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.1.0.tgz#c6d16474a5f764ea1a4a373c593b779697744d5e" + integrity sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw== pretty-format@^23.6.0: version "23.6.0" @@ -3786,14 +3710,6 @@ pseudomap@^1.0.2: resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -3845,15 +3761,6 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" -read-pkg@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-4.0.1.tgz#963625378f3e1c4d48c85872b5a6ec7d5d093237" - integrity sha1-ljYlN48+HE1IyFhytabsfV0JMjc= - dependencies: - normalize-package-data "^2.3.2" - parse-json "^4.0.0" - pify "^3.0.0" - readable-stream@^2.0.2: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" @@ -4099,11 +4006,6 @@ rimraf@2.6.3: dependencies: glob "^7.1.3" -run-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/run-node/-/run-node-1.0.0.tgz#46b50b946a2aa2d4947ae1d886e9856fd9cabe5e" - integrity sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A== - rxjs@^6.3.3: version "6.5.2" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7" @@ -4133,7 +4035,7 @@ semver-compare@^1.0.0: resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= -"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.6.0: version "5.7.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==