diff --git a/.eslintrc.json b/.eslintrc.json index 849f68c5..fdf6197b 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -19,8 +19,29 @@ "plugin:import/errors", "plugin:import/warnings" ], - "plugins": ["@typescript-eslint", "prettier"], + "plugins": ["@typescript-eslint", "prettier", "folders", "unicorn"], "rules": { + // kebab-case + "folders/match-regex": [2, "^[a-z-]+$", "/src/"], + "unicorn/filename-case": [ + "error", + { + "cases": { + "camelCase": true, + "pascalCase": true + } + } + ], + "import/no-internal-modules": [ + "error", { + "forbid": [ + "commands/*", + "features/*", + "utils/*", + "test/utils/*" + ] + } + ], "eqeqeq": "warn", "no-throw-literal": "warn", "semi": "off", diff --git a/package.json b/package.json index 61ace77d..858cb2a2 100644 --- a/package.json +++ b/package.json @@ -280,8 +280,10 @@ "del-cli": "^4.0.1", "eslint": "^8.5.0", "eslint-config-prettier": "^8.3.0", + "eslint-plugin-folders": "^1.0.3", "eslint-plugin-import": "^2.25.3", "eslint-plugin-prettier": "^4.0.0", + "eslint-plugin-unicorn": "^40.1.0", "glob": "^7.2.0", "husky": "^7.0.4", "jest": "^27.4.5", diff --git a/src/commands/extractRangeToNewNote.spec.ts b/src/commands/extractRangeToNewNote.spec.ts index 31ba06af..b854d0e5 100644 --- a/src/commands/extractRangeToNewNote.spec.ts +++ b/src/commands/extractRangeToNewNote.spec.ts @@ -8,7 +8,7 @@ import { rndName, createFile, openTextDocument, -} from '../test/testUtils'; +} from '../test/utils'; describe('extractRangeToNewNote command', () => { beforeEach(closeEditorsAndCleanWorkspace); diff --git a/src/commands/openDailyNote.spec.ts b/src/commands/openDailyNote.spec.ts index bd275cde..3bd147f7 100644 --- a/src/commands/openDailyNote.spec.ts +++ b/src/commands/openDailyNote.spec.ts @@ -2,7 +2,7 @@ import { commands, workspace } from 'vscode'; import moment from 'moment'; import openDailyNote from './openDailyNote'; -import { closeEditorsAndCleanWorkspace } from '../test/testUtils'; +import { closeEditorsAndCleanWorkspace } from '../test/utils'; describe('openDailyNote command', () => { beforeEach(closeEditorsAndCleanWorkspace); diff --git a/src/commands/openDocumentByReference.spec.ts b/src/commands/openDocumentByReference.spec.ts index f3664f23..e35a090c 100644 --- a/src/commands/openDocumentByReference.spec.ts +++ b/src/commands/openDocumentByReference.spec.ts @@ -11,7 +11,7 @@ import { closeEditorsAndCleanWorkspace, toPlainObject, updateMemoConfigProperty, -} from '../test/testUtils'; +} from '../test/utils'; describe('openDocumentByReference command', () => { beforeEach(closeEditorsAndCleanWorkspace); diff --git a/src/commands/openRandomNote.spec.ts b/src/commands/openRandomNote.spec.ts index ca43a614..f563cdd8 100644 --- a/src/commands/openRandomNote.spec.ts +++ b/src/commands/openRandomNote.spec.ts @@ -4,7 +4,7 @@ import { rndName, getOpenedFilenames, closeEditorsAndCleanWorkspace, -} from '../test/testUtils'; +} from '../test/utils'; describe('openRandomNote command', () => { beforeEach(closeEditorsAndCleanWorkspace); diff --git a/src/commands/openReferenceBeside.spec.ts b/src/commands/openReferenceBeside.spec.ts index e1988729..41188e31 100644 --- a/src/commands/openReferenceBeside.spec.ts +++ b/src/commands/openReferenceBeside.spec.ts @@ -8,7 +8,7 @@ import { rndName, toPlainObject, waitForExpect, -} from '../test/testUtils'; +} from '../test/utils'; describe('openReferenceBeside command', () => { beforeEach(closeEditorsAndCleanWorkspace); diff --git a/src/commands/openReferenceInDefaultApp.spec.ts b/src/commands/openReferenceInDefaultApp.spec.ts index dcf64ae9..3bfe1f3f 100644 --- a/src/commands/openReferenceInDefaultApp.spec.ts +++ b/src/commands/openReferenceInDefaultApp.spec.ts @@ -9,7 +9,7 @@ import { closeEditorsAndCleanWorkspace, openTextDocument, getWorkspaceFolder, -} from '../test/testUtils'; +} from '../test/utils'; describe('openReferenceInDefaultApp command', () => { beforeEach(async () => { diff --git a/src/extension.spec.ts b/src/extension.spec.ts index 369d5eea..720df3f0 100644 --- a/src/extension.spec.ts +++ b/src/extension.spec.ts @@ -1,6 +1,6 @@ import * as vscode from 'vscode'; -import { closeEditorsAndCleanWorkspace } from './test/testUtils'; +import { closeEditorsAndCleanWorkspace } from './test/utils'; const MEMO_EXTENSION_ID = 'svsool.markdown-memo'; diff --git a/src/features/BacklinksTreeDataProvider.spec.ts b/src/features/BacklinksTreeDataProvider.spec.ts index 4973aeb7..5101ea0d 100644 --- a/src/features/BacklinksTreeDataProvider.spec.ts +++ b/src/features/BacklinksTreeDataProvider.spec.ts @@ -11,7 +11,7 @@ import { toPlainObject, updateMemoConfigProperty, getMemoConfigProperty, -} from '../test/testUtils'; +} from '../test/utils'; const getChildren = async () => { const backlinksTreeDataProvider = new BacklinksTreeDataProvider(); diff --git a/src/features/DocumentLinkProvider.spec.ts b/src/features/DocumentLinkProvider.spec.ts index b3d5efd2..55079b5a 100644 --- a/src/features/DocumentLinkProvider.spec.ts +++ b/src/features/DocumentLinkProvider.spec.ts @@ -5,7 +5,7 @@ import { openTextDocument, closeEditorsAndCleanWorkspace, toPlainObject, -} from '../test/testUtils'; +} from '../test/utils'; describe('DocumentLinkProvider', () => { beforeEach(closeEditorsAndCleanWorkspace); diff --git a/src/features/ReferenceHoverProvider.spec.ts b/src/features/ReferenceHoverProvider.spec.ts index 36450e2d..d31068a7 100644 --- a/src/features/ReferenceHoverProvider.spec.ts +++ b/src/features/ReferenceHoverProvider.spec.ts @@ -9,7 +9,7 @@ import { openTextDocument, closeEditorsAndCleanWorkspace, toPlainObject, -} from '../test/testUtils'; +} from '../test/utils'; describe('ReferenceHoverProvider', () => { beforeEach(closeEditorsAndCleanWorkspace); diff --git a/src/features/ReferenceProvider.spec.ts b/src/features/ReferenceProvider.spec.ts index ff33abc5..2440e06b 100644 --- a/src/features/ReferenceProvider.spec.ts +++ b/src/features/ReferenceProvider.spec.ts @@ -7,7 +7,7 @@ import { openTextDocument, closeEditorsAndCleanWorkspace, toPlainObject, -} from '../test/testUtils'; +} from '../test/utils'; describe('ReferenceProvider', () => { beforeEach(closeEditorsAndCleanWorkspace); diff --git a/src/features/ReferenceRenameProvider.spec.ts b/src/features/ReferenceRenameProvider.spec.ts index 955e8ab2..d1c805cf 100644 --- a/src/features/ReferenceRenameProvider.spec.ts +++ b/src/features/ReferenceRenameProvider.spec.ts @@ -7,7 +7,7 @@ import { rndName, openTextDocument, closeEditorsAndCleanWorkspace, -} from '../test/testUtils'; +} from '../test/utils'; describe('ReferenceRenameProvider', () => { beforeEach(closeEditorsAndCleanWorkspace); diff --git a/src/features/codeActionProvider.spec.ts b/src/features/codeActionProvider.spec.ts index 98be33ba..73af3fdb 100644 --- a/src/features/codeActionProvider.spec.ts +++ b/src/features/codeActionProvider.spec.ts @@ -1,7 +1,7 @@ import vscode from 'vscode'; import codeActionProvider from './codeActionProvider'; -import { rndName, createFile, openTextDocument } from '../test/testUtils'; +import { rndName, createFile, openTextDocument } from '../test/utils'; describe('codeActionProvider', () => { it('should provide code actions', async () => { diff --git a/src/features/completionProvider.spec.ts b/src/features/completionProvider.spec.ts index e28da83a..dac5c15a 100644 --- a/src/features/completionProvider.spec.ts +++ b/src/features/completionProvider.spec.ts @@ -12,7 +12,7 @@ import { openTextDocument, closeEditorsAndCleanWorkspace, updateMemoConfigProperty, -} from '../test/testUtils'; +} from '../test/utils'; describe('provideCompletionItems()', () => { beforeEach(closeEditorsAndCleanWorkspace); diff --git a/src/features/extendMarkdownIt.spec.ts b/src/features/extendMarkdownIt.spec.ts index a0670005..1025c5ab 100644 --- a/src/features/extendMarkdownIt.spec.ts +++ b/src/features/extendMarkdownIt.spec.ts @@ -10,7 +10,7 @@ import { getImgUrlForMarkdownPreview, getFileUrlForMarkdownPreview, escapeForRegExp, -} from '../test/testUtils'; +} from '../test/utils'; describe('extendMarkdownIt feature', () => { beforeEach(closeEditorsAndCleanWorkspace); diff --git a/src/features/newVersionNotifier.spec.ts b/src/features/newVersionNotifier.spec.ts index fa683498..17b41099 100644 --- a/src/features/newVersionNotifier.spec.ts +++ b/src/features/newVersionNotifier.spec.ts @@ -2,7 +2,7 @@ import { ExtensionContext } from 'vscode'; import path from 'path'; import * as newVersionNotifier from './newVersionNotifier'; -import { closeEditorsAndCleanWorkspace } from '../test/testUtils'; +import { closeEditorsAndCleanWorkspace } from '../test/utils'; describe('newVersionNotifier feature', () => { beforeEach(closeEditorsAndCleanWorkspace); diff --git a/src/features/referenceContextWatcher.spec.ts b/src/features/referenceContextWatcher.spec.ts index c385a6b5..82af44ba 100644 --- a/src/features/referenceContextWatcher.spec.ts +++ b/src/features/referenceContextWatcher.spec.ts @@ -1,7 +1,7 @@ import { ExtensionContext } from 'vscode'; import * as referenceContextWatcher from './referenceContextWatcher'; -import { closeEditorsAndCleanWorkspace } from '../test/testUtils'; +import { closeEditorsAndCleanWorkspace } from '../test/utils'; describe('referenceContextWatcher feature', () => { beforeEach(closeEditorsAndCleanWorkspace); diff --git a/src/features/syntaxDecorations.spec.ts b/src/features/syntaxDecorations.spec.ts index f557e209..4e2bc8d6 100644 --- a/src/features/syntaxDecorations.spec.ts +++ b/src/features/syntaxDecorations.spec.ts @@ -6,7 +6,7 @@ import { rndName, openTextDocument, closeEditorsAndCleanWorkspace, -} from '../test/testUtils'; +} from '../test/utils'; describe('getDecorations', () => { beforeEach(closeEditorsAndCleanWorkspace); diff --git a/src/test/utils/index.ts b/src/test/utils/index.ts new file mode 100644 index 00000000..04bca77e --- /dev/null +++ b/src/test/utils/index.ts @@ -0,0 +1 @@ +export * from './utils'; diff --git a/src/test/testUtils.spec.ts b/src/test/utils/utils.spec.ts similarity index 85% rename from src/test/testUtils.spec.ts rename to src/test/utils/utils.spec.ts index 58cad68b..65d2e609 100644 --- a/src/test/testUtils.spec.ts +++ b/src/test/utils/utils.spec.ts @@ -1,8 +1,8 @@ import fs from 'fs'; -import { createFile, rndName, cleanWorkspace, closeEditorsAndCleanWorkspace } from './testUtils'; +import { createFile, rndName, cleanWorkspace, closeEditorsAndCleanWorkspace } from './utils'; -describe('cleanWorkspace()', function () { +describe('cleanWorkspace()', () => { beforeEach(closeEditorsAndCleanWorkspace); afterEach(closeEditorsAndCleanWorkspace); diff --git a/src/test/testUtils.ts b/src/test/utils/utils.ts similarity index 95% rename from src/test/testUtils.ts rename to src/test/utils/utils.ts index 56a6a981..bf39d35f 100644 --- a/src/test/testUtils.ts +++ b/src/test/utils/utils.ts @@ -4,9 +4,9 @@ import path from 'path'; import { workspace, Uri, commands, ConfigurationTarget } from 'vscode'; export { default as waitForExpect } from 'wait-for-expect'; -import { cache } from '../workspace'; -import * as utils from '../utils'; -import { WorkspaceCache } from '../types'; +import { cache } from '../../workspace'; +import * as utils from '../../utils'; +import { WorkspaceCache } from '../../types'; const { getWorkspaceFolder, @@ -126,7 +126,7 @@ const getDefaultConfigProperties = (): { description?: string; type?: string; }[] => { - return require('../../package.json').contributes.configuration.properties; + return require('../../../package.json').contributes.configuration.properties; }; export const updateConfigProperty = async ( diff --git a/src/utils/createDailyQuickPick.spec.ts b/src/utils/createDailyQuickPick.spec.ts index 90e69c7e..5c7e988c 100644 --- a/src/utils/createDailyQuickPick.spec.ts +++ b/src/utils/createDailyQuickPick.spec.ts @@ -1,7 +1,7 @@ import moment from 'moment'; import createDailyQuickPick from './createDailyQuickPick'; -import { closeEditorsAndCleanWorkspace, createFile } from '../test/testUtils'; +import { closeEditorsAndCleanWorkspace, createFile } from '../test/utils'; describe('createDailyQuickPick()', () => { beforeEach(closeEditorsAndCleanWorkspace); diff --git a/src/utils/externalUtils.spec.ts b/src/utils/externalUtils.spec.ts index 659a4dd4..be2c6f78 100644 --- a/src/utils/externalUtils.spec.ts +++ b/src/utils/externalUtils.spec.ts @@ -15,7 +15,7 @@ import { createFile, openTextDocument, rndName, -} from '../test/testUtils'; +} from '../test/utils'; describe('lineBreakOffsetsByLineIndex()', () => { it('should return offset for a single empty line', () => { diff --git a/src/utils/searchUtils.spec.ts b/src/utils/searchUtils.spec.ts index d4201b7b..b2d05cbe 100644 --- a/src/utils/searchUtils.spec.ts +++ b/src/utils/searchUtils.spec.ts @@ -4,7 +4,7 @@ import { createFile, getWorkspaceFolder, rndName, -} from '../test/testUtils'; +} from '../test/utils'; describe('search()', () => { beforeEach(closeEditorsAndCleanWorkspace); diff --git a/src/utils/utils.spec.ts b/src/utils/utils.spec.ts index 74b05430..9e2f638d 100644 --- a/src/utils/utils.spec.ts +++ b/src/utils/utils.spec.ts @@ -46,7 +46,7 @@ import { rndName, toPlainObject, updateConfigProperty, -} from '../test/testUtils'; +} from '../test/utils'; describe('containsImageExt()', () => { test.each(['png', 'jpg', 'jpeg', 'gif'])( diff --git a/src/workspace/cache/cache.spec.ts b/src/workspace/cache/cache.spec.ts index 74c32b29..0490c51d 100644 --- a/src/workspace/cache/cache.spec.ts +++ b/src/workspace/cache/cache.spec.ts @@ -16,7 +16,7 @@ import { closeEditorsAndCleanWorkspace, createFile, rndName, -} from '../../test/testUtils'; +} from '../../test/utils'; describe('cacheWorkspace()', () => { beforeEach(closeEditorsAndCleanWorkspace); diff --git a/src/workspace/file-watcher/fileWatcher.spec.ts b/src/workspace/file-watcher/fileWatcher.spec.ts index b31ff47c..0319829f 100644 --- a/src/workspace/file-watcher/fileWatcher.spec.ts +++ b/src/workspace/file-watcher/fileWatcher.spec.ts @@ -14,7 +14,7 @@ import { getWorkspaceCache, updateMemoConfigProperty, waitForExpect, -} from '../../test/testUtils'; +} from '../../test/utils'; describe('fileWatcher', () => { beforeEach(closeEditorsAndCleanWorkspace); diff --git a/yarn.lock b/yarn.lock index d3e1aa7d..aa648b4b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1897,6 +1897,11 @@ buffers@~0.1.1: resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" integrity sha1-skV5w77U1tOWru5tmorn9Ugqt7s= +builtin-modules@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887" + integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA== + call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -2037,7 +2042,7 @@ ci-info@^2.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== -ci-info@^3.2.0: +ci-info@^3.2.0, ci-info@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.0.tgz#b4ed1fb6818dea4803a55c623041f9165d2066b2" integrity sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw== @@ -2047,6 +2052,13 @@ cjs-module-lexer@^1.0.0: resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== +clean-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clean-regexp/-/clean-regexp-1.0.0.tgz#8df7c7aae51fd36874e8f8d05b9180bc11a3fed7" + integrity sha1-jffHquUf02h06PjQW5GAvBGj/tc= + dependencies: + escape-string-regexp "^1.0.5" + clean-stack@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" @@ -2926,6 +2938,11 @@ eslint-module-utils@^2.7.1: find-up "^2.1.0" pkg-dir "^2.0.0" +eslint-plugin-folders@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-folders/-/eslint-plugin-folders-1.0.3.tgz#db98fccdb8d0453de82e70d8b8de0e2b6222b6c6" + integrity sha512-NqJffMuET/Zb4HHrxs61f6ur6pM5dsgy/SxuxCto98oVJjDKDUhE/O2OOOc06bjYIeVnGPOjgkAuxjk0+Gp4LA== + eslint-plugin-import@^2.25.3: version "2.25.3" resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz#a554b5f66e08fb4f6dc99221866e57cfff824766" @@ -2952,6 +2969,26 @@ eslint-plugin-prettier@^4.0.0: dependencies: prettier-linter-helpers "^1.0.0" +eslint-plugin-unicorn@^40.1.0: + version "40.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-40.1.0.tgz#48975360e39d23df726e4b33e8dd5d650e184832" + integrity sha512-y5doK2DF9Sr5AqKEHbHxjFllJ167nKDRU01HDcWyv4Tnmaoe9iNxMrBnaybZvWZUaE3OC5Unu0lNIevYamloig== + dependencies: + "@babel/helper-validator-identifier" "^7.15.7" + ci-info "^3.3.0" + clean-regexp "^1.0.0" + eslint-utils "^3.0.0" + esquery "^1.4.0" + indent-string "^4.0.0" + is-builtin-module "^3.1.0" + lodash "^4.17.21" + pluralize "^8.0.0" + read-pkg-up "^7.0.1" + regexp-tree "^0.1.24" + safe-regex "^2.1.1" + semver "^7.3.5" + strip-indent "^3.0.0" + eslint-scope@5.1.1, eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" @@ -3851,6 +3888,13 @@ is-boolean-object@^1.1.0: call-bind "^1.0.2" has-tostringtag "^1.0.0" +is-builtin-module@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.1.0.tgz#6fdb24313b1c03b75f8b9711c0feb8c30b903b00" + integrity sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg== + dependencies: + builtin-modules "^3.0.0" + is-callable@^1.1.4: version "1.2.0" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" @@ -4931,7 +4975,7 @@ lodash.templatesettings@^4.0.0: dependencies: lodash._reinterpolate "^3.0.0" -lodash@^4.17.15, lodash@^4.17.19, lodash@^4.7.0: +lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -5779,6 +5823,11 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" +pluralize@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" + integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== + prebuild-install@^6.0.0: version "6.1.4" resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.1.4.tgz#ae3c0142ad611d58570b89af4986088a4937e00f" @@ -6059,6 +6108,11 @@ redent@^4.0.0: indent-string "^5.0.0" strip-indent "^4.0.0" +regexp-tree@^0.1.24, regexp-tree@~0.1.1: + version "0.1.24" + resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.24.tgz#3d6fa238450a4d66e5bc9c4c14bb720e2196829d" + integrity sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw== + regexpp@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" @@ -6174,6 +6228,13 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== +safe-regex@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-2.1.1.tgz#f7128f00d056e2fe5c11e81a1324dd974aadced2" + integrity sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A== + dependencies: + regexp-tree "~0.1.1" + "safer-buffer@>= 2.1.2 < 3": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"