diff --git a/package.json b/package.json index c5ae4a0f6..f20a6d9cc 100644 --- a/package.json +++ b/package.json @@ -177,6 +177,7 @@ "@testing-library/react": "^14.0.0", "@testing-library/react-hooks": "^8.0.1", "@testing-library/user-event": "^14.5.1", + "@types/yargs": "^17.0.24", "@typescript-eslint/eslint-plugin": "^6.0.0", "@typescript-eslint/parser": "^6.0.0", "babel-plugin-transform-require-context": "^0.1.1", @@ -201,6 +202,7 @@ "stylelint": "^15.10.3", "stylelint-config-standard-scss": "^11.0.0", "tailwindcss": "^3.3.3", + "vite-plugin-checker": "^0.6.2", "vite-plugin-pwa": "^0.16.5", "vitest": "^0.34.4", "yargs": "^17.6.2" diff --git a/src/actions/__tests__/rules.test.ts b/src/actions/__tests__/rules.test.ts index 4574adc2e..624e2dd0d 100644 --- a/src/actions/__tests__/rules.test.ts +++ b/src/actions/__tests__/rules.test.ts @@ -4,7 +4,7 @@ import { mockStore, rootState } from 'soapbox/jest/test-helpers'; import { fetchRules, RULES_FETCH_REQUEST, RULES_FETCH_SUCCESS } from '../rules'; describe('fetchRules()', () => { - it('sets the rules', (done) => { + it('sets the rules', async () => { const rules = require('soapbox/__fixtures__/rules.json'); __stub((mock) => { @@ -12,15 +12,12 @@ describe('fetchRules()', () => { }); const store = mockStore(rootState); + await store.dispatch(fetchRules()); - store.dispatch(fetchRules()).then((context) => { - const actions = store.getActions(); + const actions = store.getActions(); - expect(actions[0].type).toEqual(RULES_FETCH_REQUEST); - expect(actions[1].type).toEqual(RULES_FETCH_SUCCESS); - expect(actions[1].payload[0].id).toEqual('1'); - - done(); - }).catch(console.error); + expect(actions[0].type).toEqual(RULES_FETCH_REQUEST); + expect(actions[1].type).toEqual(RULES_FETCH_SUCCESS); + expect(actions[1].payload[0].id).toEqual('1'); }); }); diff --git a/src/actions/__tests__/statuses.test.ts b/src/actions/__tests__/statuses.test.ts index 8b057802d..120d24807 100644 --- a/src/actions/__tests__/statuses.test.ts +++ b/src/actions/__tests__/statuses.test.ts @@ -8,7 +8,7 @@ import { normalizeStatus } from 'soapbox/normalizers/status'; import { deleteStatus, fetchContext } from '../statuses'; describe('fetchContext()', () => { - it('handles Mitra context', done => { + it('handles Mitra context', async () => { const statuses = require('soapbox/__fixtures__/mitra-context.json'); __stub(mock => { @@ -17,15 +17,11 @@ describe('fetchContext()', () => { }); const store = mockStore(rootState); + await store.dispatch(fetchContext('017ed505-5926-392f-256a-f86d5075df70')); + const actions = store.getActions(); - store.dispatch(fetchContext('017ed505-5926-392f-256a-f86d5075df70')).then(() => { - const actions = store.getActions(); - - expect(actions[3].type).toEqual(STATUSES_IMPORT); - expect(actions[3].statuses[0].id).toEqual('017ed503-bc96-301a-e871-2c23b30ddd05'); - - done(); - }).catch(console.error); + expect(actions[3].type).toEqual(STATUSES_IMPORT); + expect(actions[3].statuses[0].id).toEqual('017ed503-bc96-301a-e871-2c23b30ddd05'); }); }); diff --git a/src/features/public-layout/components/__tests__/header.test.tsx b/src/features/public-layout/components/__tests__/header.test.tsx index d69198efa..4472ce7b4 100644 --- a/src/features/public-layout/components/__tests__/header.test.tsx +++ b/src/features/public-layout/components/__tests__/header.test.tsx @@ -1,6 +1,6 @@ import React from 'react'; -import { storeOpen, storePepeOpen } from 'soapbox/jest/mock-stores'; +import { storeOpen } from 'soapbox/jest/mock-stores'; import { render, screen } from 'soapbox/jest/test-helpers'; import Header from '../header'; @@ -22,11 +22,4 @@ describe('
', () => { expect(screen.getByText('Register')).toBeInTheDocument(); }); }); - - describe('with registrations closed, Pepe enabled', () => { - it('displays the signup button', () => { - render(
, undefined, storePepeOpen); - expect(screen.getByText('Register')).toBeInTheDocument(); - }); - }); }); \ No newline at end of file diff --git a/src/features/ui/components/__tests__/cta-banner.test.tsx b/src/features/ui/components/__tests__/cta-banner.test.tsx index f6d66de13..f35c76b48 100644 --- a/src/features/ui/components/__tests__/cta-banner.test.tsx +++ b/src/features/ui/components/__tests__/cta-banner.test.tsx @@ -1,6 +1,6 @@ import React from 'react'; -import { storeClosed, storeLoggedIn, storeOpen, storePepeOpen } from 'soapbox/jest/mock-stores'; +import { storeClosed, storeLoggedIn, storeOpen } from 'soapbox/jest/mock-stores'; import { render, screen } from '../../../../jest/test-helpers'; import CtaBanner from '../cta-banner'; @@ -24,11 +24,4 @@ describe('', () => { expect(screen.queryAllByTestId('cta-banner')).toHaveLength(0); }); }); - - describe('with Pepe enabled', () => { - it('renders the banner', () => { - render(, undefined, storePepeOpen); - expect(screen.getByTestId('cta-banner')).toHaveTextContent(/sign up/i); - }); - }); }); diff --git a/src/features/ui/components/__tests__/navbar.test.tsx b/src/features/ui/components/__tests__/navbar.test.tsx index f46d9db72..5cf8eb6b4 100644 --- a/src/features/ui/components/__tests__/navbar.test.tsx +++ b/src/features/ui/components/__tests__/navbar.test.tsx @@ -1,6 +1,6 @@ import React from 'react'; -import { storeOpen, storePepeOpen } from 'soapbox/jest/mock-stores'; +import { storeOpen } from 'soapbox/jest/mock-stores'; import { render, screen } from 'soapbox/jest/test-helpers'; import Navbar from '../navbar'; @@ -22,11 +22,4 @@ describe('', () => { expect(screen.getByText('Sign up')).toBeInTheDocument(); }); }); - - describe('with registrations closed, Pepe enabled', () => { - it('displays the signup button', () => { - render(, undefined, storePepeOpen); - expect(screen.getByText('Sign up')).toBeInTheDocument(); - }); - }); }); diff --git a/src/features/ui/components/modals/__tests__/landing-page-modal.test.tsx b/src/features/ui/components/modals/__tests__/landing-page-modal.test.tsx index b56fb6b8d..bcd64224b 100644 --- a/src/features/ui/components/modals/__tests__/landing-page-modal.test.tsx +++ b/src/features/ui/components/modals/__tests__/landing-page-modal.test.tsx @@ -1,6 +1,6 @@ import React from 'react'; -import { storeOpen, storePepeOpen } from 'soapbox/jest/mock-stores'; +import { storeOpen } from 'soapbox/jest/mock-stores'; import { render, screen } from 'soapbox/jest/test-helpers'; import LandingPageModal from '../landing-page-modal'; @@ -22,11 +22,4 @@ describe('', () => { expect(screen.getByText('Register')).toBeInTheDocument(); }); }); - - describe('with registrations closed, Pepe enabled', () => { - it('displays the signup button', () => { - render(, undefined, storePepeOpen); - expect(screen.getByText('Register')).toBeInTheDocument(); - }); - }); }); diff --git a/src/features/ui/components/modals/__tests__/unauthorized-modal.test.tsx b/src/features/ui/components/modals/__tests__/unauthorized-modal.test.tsx index 02c3486db..e94c0b9a7 100644 --- a/src/features/ui/components/modals/__tests__/unauthorized-modal.test.tsx +++ b/src/features/ui/components/modals/__tests__/unauthorized-modal.test.tsx @@ -1,6 +1,6 @@ import React from 'react'; -import { storeOpen, storePepeOpen } from 'soapbox/jest/mock-stores'; +import { storeOpen } from 'soapbox/jest/mock-stores'; import { render, screen } from 'soapbox/jest/test-helpers'; import UnauthorizedModal from '../unauthorized-modal'; @@ -22,11 +22,4 @@ describe('', () => { expect(screen.getByText('Sign up')).toBeInTheDocument(); }); }); - - describe('with registrations closed, Pepe enabled', () => { - it('displays the signup button', () => { - render(, undefined, storePepeOpen); - expect(screen.getByText('Sign up')).toBeInTheDocument(); - }); - }); }); diff --git a/src/features/ui/components/panels/__tests__/sign-up-panel.test.tsx b/src/features/ui/components/panels/__tests__/sign-up-panel.test.tsx index 0ff47848a..22a3fe00e 100644 --- a/src/features/ui/components/panels/__tests__/sign-up-panel.test.tsx +++ b/src/features/ui/components/panels/__tests__/sign-up-panel.test.tsx @@ -1,6 +1,6 @@ import React from 'react'; -import { storeOpen, storePepeOpen } from 'soapbox/jest/mock-stores'; +import { storeOpen } from 'soapbox/jest/mock-stores'; import { render, screen } from 'soapbox/jest/test-helpers'; import SignUpPanel from '../sign-up-panel'; @@ -17,11 +17,4 @@ describe('', () => { expect(screen.getByTestId('sign-up-panel')).toBeInTheDocument(); }); }); - - describe('with registrations closed, Pepe enabled', () => { - it('successfully renders', () => { - render(, undefined, storePepeOpen); - expect(screen.getByTestId('sign-up-panel')).toBeInTheDocument(); - }); - }); }); diff --git a/src/jest/factory.ts b/src/jest/factory.ts index 2f21df069..df0437719 100644 --- a/src/jest/factory.ts +++ b/src/jest/factory.ts @@ -2,7 +2,6 @@ import { v4 as uuidv4 } from 'uuid'; import { accountSchema, - adSchema, cardSchema, groupMemberSchema, groupRelationshipSchema, @@ -11,7 +10,6 @@ import { relationshipSchema, statusSchema, type Account, - type Ad, type Card, type Group, type GroupMember, @@ -73,12 +71,6 @@ function buildGroupMember( }, props)); } -function buildAd(props: PartialDeep = {}): Ad { - return adSchema.parse(Object.assign({ - card: buildCard(), - }, props)); -} - function buildRelationship(props: PartialDeep = {}): Relationship { return relationshipSchema.parse(Object.assign({ id: uuidv4(), @@ -94,7 +86,6 @@ function buildStatus(props: PartialDeep = {}) { export { buildAccount, - buildAd, buildCard, buildGroup, buildGroupMember, diff --git a/src/normalizers/soapbox/soapbox-config.ts b/src/normalizers/soapbox/soapbox-config.ts index 4f25992ef..403c92a32 100644 --- a/src/normalizers/soapbox/soapbox-config.ts +++ b/src/normalizers/soapbox/soapbox-config.ts @@ -11,7 +11,6 @@ import { toTailwind } from 'soapbox/utils/tailwind'; import { generateAccent } from 'soapbox/utils/theme'; import type { - Ad, PromoPanelItem, FooterItem, CryptoAddress, @@ -68,7 +67,6 @@ export const CryptoAddressRecord = ImmutableRecord({ }); export const SoapboxConfigRecord = ImmutableRecord({ - ads: ImmutableList(), appleAppId: null, authProvider: '', logo: '', diff --git a/src/types/soapbox.ts b/src/types/soapbox.ts index e9baff635..459339750 100644 --- a/src/types/soapbox.ts +++ b/src/types/soapbox.ts @@ -19,7 +19,3 @@ export { CryptoAddress, SoapboxConfig, }; - -export type { - Ad, -} from 'soapbox/schemas'; \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index c7f16ba8a..80b556b0c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -12,6 +12,7 @@ "moduleResolution": "node", "resolveJsonModule": true, "esModuleInterop": true, + "skipLibCheck": true, "paths": { "soapbox/*": ["src/*"], }, diff --git a/vite.config.ts b/vite.config.ts index ca86db12d..eb7f9560c 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -5,6 +5,7 @@ import { fileURLToPath, URL } from 'node:url'; import react from '@vitejs/plugin-react'; import { visualizer } from 'rollup-plugin-visualizer'; import { defineConfig } from 'vite'; +import checker from 'vite-plugin-checker'; import compileTime from 'vite-plugin-compile-time'; import { createHtmlPlugin } from 'vite-plugin-html'; import { VitePWA } from 'vite-plugin-pwa'; @@ -28,6 +29,7 @@ export default defineConfig({ port: 3036, }, plugins: [ + checker({ typescript: true }), // @ts-ignore vitePluginRequire.default(), compileTime(), diff --git a/yarn.lock b/yarn.lock index 6f2102f78..1f4382e0a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -39,7 +39,7 @@ jsonpointer "^5.0.0" leven "^3.1.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.22.13": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.13": version "7.22.13" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== @@ -2474,6 +2474,18 @@ resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.0.tgz#53ef263e5239728b56096b0a869595135b7952d2" integrity sha512-kr90f+ERiQtKWMz5rP32ltJ/BtULDI5RVO0uavn1HQUOwjx0R1h0rnDYNL0CepF1zL5bSY6FISAfd9tOdDhU5Q== +"@types/yargs-parser@*": + version "21.0.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" + integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== + +"@types/yargs@^17.0.24": + version "17.0.24" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.24.tgz#b3ef8d50ad4aa6aecf6ddc97c580a00f5aa11902" + integrity sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw== + dependencies: + "@types/yargs-parser" "*" + "@typescript-eslint/eslint-plugin@^6.0.0": version "6.7.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.0.tgz#ed2a38867190f8a688af85ad7c8a74670b8b3675" @@ -3385,7 +3397,7 @@ check-error@^1.0.2: resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== -"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.3: +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.1, chokidar@^3.5.3: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -3519,7 +3531,7 @@ commander@^7.2.0: resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== -commander@^8.3.0: +commander@^8.0.0, commander@^8.3.0: version "8.3.0" resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== @@ -4587,7 +4599,7 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.5, fast-glob@^3.2.9, fast-glob@^3.3.1: +fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.5, fast-glob@^3.2.7, fast-glob@^3.2.9, fast-glob@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== @@ -5961,6 +5973,11 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== +lodash.pick@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + integrity sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q== + lodash.sortby@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" @@ -7816,7 +7833,7 @@ semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.4, semver@^7.3.8, semver@^7.5.4: +semver@^7.3.4, semver@^7.3.8, semver@^7.5.0, semver@^7.5.4: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== @@ -8408,6 +8425,11 @@ tiny-invariant@^1.0.2: resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw== +tiny-invariant@^1.1.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.1.tgz#8560808c916ef02ecfd55e66090df23a4b7aa642" + integrity sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw== + tiny-queue@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/tiny-queue/-/tiny-queue-0.2.1.tgz#25a67f2c6e253b2ca941977b5ef7442ef97a6046" @@ -8819,6 +8841,29 @@ vite-node@0.34.4: picocolors "^1.0.0" vite "^3.0.0 || ^4.0.0" +vite-plugin-checker@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/vite-plugin-checker/-/vite-plugin-checker-0.6.2.tgz#3790381734440033e6cb3cee9d92fcfdd69a4d71" + integrity sha512-YvvvQ+IjY09BX7Ab+1pjxkELQsBd4rPhWNw8WLBeFVxu/E7O+n6VYAqNsKdK/a2luFlX/sMpoWdGFfg4HvwdJQ== + dependencies: + "@babel/code-frame" "^7.12.13" + ansi-escapes "^4.3.0" + chalk "^4.1.1" + chokidar "^3.5.1" + commander "^8.0.0" + fast-glob "^3.2.7" + fs-extra "^11.1.0" + lodash.debounce "^4.0.8" + lodash.pick "^4.4.0" + npm-run-path "^4.0.1" + semver "^7.5.0" + strip-ansi "^6.0.0" + tiny-invariant "^1.1.0" + vscode-languageclient "^7.0.0" + vscode-languageserver "^7.0.0" + vscode-languageserver-textdocument "^1.0.1" + vscode-uri "^3.0.2" + vite-plugin-compile-time@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/vite-plugin-compile-time/-/vite-plugin-compile-time-0.2.1.tgz#5c9965ba9bf8278fbfbee107830a298918aeb518" @@ -8921,6 +8966,50 @@ vitest@^0.34.4: vite-node "0.34.4" why-is-node-running "^2.2.2" +vscode-jsonrpc@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0.tgz#108bdb09b4400705176b957ceca9e0880e9b6d4e" + integrity sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg== + +vscode-languageclient@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-7.0.0.tgz#b505c22c21ffcf96e167799757fca07a6bad0fb2" + integrity sha512-P9AXdAPlsCgslpP9pRxYPqkNYV7Xq8300/aZDpO35j1fJm/ncize8iGswzYlcvFw5DQUx4eVk+KvfXdL0rehNg== + dependencies: + minimatch "^3.0.4" + semver "^7.3.4" + vscode-languageserver-protocol "3.16.0" + +vscode-languageserver-protocol@3.16.0: + version "3.16.0" + resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0.tgz#34135b61a9091db972188a07d337406a3cdbe821" + integrity sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A== + dependencies: + vscode-jsonrpc "6.0.0" + vscode-languageserver-types "3.16.0" + +vscode-languageserver-textdocument@^1.0.1: + version "1.0.8" + resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz#9eae94509cbd945ea44bca8dcfe4bb0c15bb3ac0" + integrity sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q== + +vscode-languageserver-types@3.16.0: + version "3.16.0" + resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz#ecf393fc121ec6974b2da3efb3155644c514e247" + integrity sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA== + +vscode-languageserver@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-7.0.0.tgz#49b068c87cfcca93a356969d20f5d9bdd501c6b0" + integrity sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw== + dependencies: + vscode-languageserver-protocol "3.16.0" + +vscode-uri@^3.0.2: + version "3.0.7" + resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.7.tgz#6d19fef387ee6b46c479e5fb00870e15e58c1eb8" + integrity sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA== + vue-hot-reload-api@^2.3.0: version "2.3.4" resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2"