From 5fd31c2f46502d77f5a3818e9a4cc3c65b09fb92 Mon Sep 17 00:00:00 2001 From: Brian Fletcher Date: Mon, 19 Jul 2021 17:20:59 +0100 Subject: [PATCH 01/64] remove repo filtering on the github credentials The github-org processor does not use the concept of repositories. As such filtering based on selected repositories does not make sense for that processer. The GithubCredentials was imposing what appears like an unnessesary restriction on the tokens using the repo name. By removing this restriction, it enalbes the github-org processor to work when a github app installation has a repository restriction. Signed-off-by: Brian Fletcher --- .changeset/serious-kiwis-wonder.md | 5 +++++ .../github/GithubCredentialsProvider.test.ts | 13 ++++++------ .../src/github/GithubCredentialsProvider.ts | 20 +++---------------- 3 files changed, 14 insertions(+), 24 deletions(-) create mode 100644 .changeset/serious-kiwis-wonder.md diff --git a/.changeset/serious-kiwis-wonder.md b/.changeset/serious-kiwis-wonder.md new file mode 100644 index 0000000000..4c6daa768b --- /dev/null +++ b/.changeset/serious-kiwis-wonder.md @@ -0,0 +1,5 @@ +--- +'@backstage/integration': patch +--- + +remove repo restriction from github creds provider diff --git a/packages/integration/src/github/GithubCredentialsProvider.test.ts b/packages/integration/src/github/GithubCredentialsProvider.test.ts index 85df1bb4e1..9472e0ae58 100644 --- a/packages/integration/src/github/GithubCredentialsProvider.test.ts +++ b/packages/integration/src/github/GithubCredentialsProvider.test.ts @@ -156,13 +156,12 @@ describe('GithubCredentialsProvider tests', () => { }, } as RestEndpointMethodTypes['apps']['createInstallationAccessToken']['response']); - await expect( - github.getCredentials({ - url: 'https://github.com/backstage', - }), - ).rejects.toThrow( - 'The Backstage GitHub application used in the backstage organization must be installed for the entire organization to be able to issue credentials without a specified repository.', - ); + const { token, headers } = await github.getCredentials({ + url: 'https://github.com/backstage', + }); + + expect(headers).toEqual({ Authorization: 'Bearer secret_token' }); + expect(token).toEqual('secret_token'); }); it('should throw if the app is suspended', async () => { diff --git a/packages/integration/src/github/GithubCredentialsProvider.ts b/packages/integration/src/github/GithubCredentialsProvider.ts index 899b233195..ea4fa737ec 100644 --- a/packages/integration/src/github/GithubCredentialsProvider.ts +++ b/packages/integration/src/github/GithubCredentialsProvider.ts @@ -23,7 +23,6 @@ import { DateTime } from 'luxon'; type InstallationData = { installationId: number; suspended: boolean; - repositorySelection: 'selected' | 'all'; }; class Cache { @@ -85,33 +84,21 @@ class GithubAppManager { owner: string, repo?: string, ): Promise<{ accessToken: string }> { - const { - installationId, - suspended, - repositorySelection, - } = await this.getInstallationData(owner); + const { installationId, suspended } = await this.getInstallationData(owner); if (suspended) { throw new Error( - `The GitHub application for ${[owner, repo] + `The GitHub application for ${[owner] .filter(Boolean) .join('/')} is suspended`, ); } - if (repositorySelection !== 'all' && !repo) { - throw new Error( - `The Backstage GitHub application used in the ${owner} organization must be installed for the entire organization to be able to issue credentials without a specified repository.`, - ); - } - const cacheKey = !repo ? owner : `${owner}/${repo}`; - const repositories = repositorySelection !== 'all' ? [repo!] : undefined; + const cacheKey = repo ? `${owner}/${repo}` : owner; - // Go and grab an access token for the app scoped to a repository if provided, if not use the organisation installation. return this.cache.getOrCreateToken(cacheKey, async () => { const result = await this.appClient.apps.createInstallationAccessToken({ installation_id: installationId, headers: HEADERS, - repositories, }); return { token: result.data.token, @@ -135,7 +122,6 @@ class GithubAppManager { return { installationId: installation.id, suspended: Boolean(installation.suspended_by), - repositorySelection: installation.repository_selection, }; } const notFoundError = new Error( From 2473096aa6176a71af4af6993262d935da49896b Mon Sep 17 00:00:00 2001 From: Brian Fletcher Date: Mon, 19 Jul 2021 18:13:00 +0100 Subject: [PATCH 02/64] Fix typos in the changeset file Signed-off-by: Brian Fletcher --- .changeset/serious-kiwis-wonder.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/serious-kiwis-wonder.md b/.changeset/serious-kiwis-wonder.md index 4c6daa768b..0deba49616 100644 --- a/.changeset/serious-kiwis-wonder.md +++ b/.changeset/serious-kiwis-wonder.md @@ -2,4 +2,4 @@ '@backstage/integration': patch --- -remove repo restriction from github creds provider +Remove repo restriction from GitHub credentials provider From 619cb40662dc7a7a114e4c62975fea70fe950379 Mon Sep 17 00:00:00 2001 From: Brian Fletcher Date: Mon, 19 Jul 2021 18:51:10 +0100 Subject: [PATCH 03/64] try to work around codeql failure for test purposes Signed-off-by: Brian Fletcher --- .../src/github/GithubCredentialsProvider.test.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/integration/src/github/GithubCredentialsProvider.test.ts b/packages/integration/src/github/GithubCredentialsProvider.test.ts index 9472e0ae58..a0eb3d9596 100644 --- a/packages/integration/src/github/GithubCredentialsProvider.test.ts +++ b/packages/integration/src/github/GithubCredentialsProvider.test.ts @@ -133,7 +133,7 @@ describe('GithubCredentialsProvider tests', () => { expect(token).toEqual('secret_token'); }); - it('should fail to issue tokens for an organization when the app is installed for a single repo', async () => { + it('should not fail to issue tokens for an organization when the app is installed for a single repo', async () => { octokit.apps.listInstallations.mockResolvedValue({ headers: { etag: '123', @@ -159,8 +159,8 @@ describe('GithubCredentialsProvider tests', () => { const { token, headers } = await github.getCredentials({ url: 'https://github.com/backstage', }); - - expect(headers).toEqual({ Authorization: 'Bearer secret_token' }); + const expectedToken = 'secret_token'; + expect(headers).toEqual({ Authorization: `Bearer ${expectedToken}` }); expect(token).toEqual('secret_token'); }); From b0578306b69aba6eb754119a7a2bf45cdb6b2eb0 Mon Sep 17 00:00:00 2001 From: Brian Fletcher Date: Tue, 20 Jul 2021 13:57:10 +0100 Subject: [PATCH 04/64] fix the github-disovery when the repos are filtered Signed-off-by: Brian Fletcher --- .../src/github/GithubCredentialsProvider.ts | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/packages/integration/src/github/GithubCredentialsProvider.ts b/packages/integration/src/github/GithubCredentialsProvider.ts index ea4fa737ec..ebd9fce745 100644 --- a/packages/integration/src/github/GithubCredentialsProvider.ts +++ b/packages/integration/src/github/GithubCredentialsProvider.ts @@ -100,6 +100,20 @@ class GithubAppManager { installation_id: installationId, headers: HEADERS, }); + if (repo && result.data.repository_selection === 'selected') { + const installationClient = new Octokit({ + auth: result.data.token, + }); + const repos = await installationClient.apps.listReposAccessibleToInstallation(); + const hasRepo = repos.data.repositories.some(repository => { + return repository.name === repo; + }); + if (!hasRepo) { + throw new Error( + `The Backstage GitHub application used in the ${owner} organization does not have access to a repository with the name ${repo}`, + ); + } + } return { token: result.data.token, expiresAt: DateTime.fromISO(result.data.expires_at), @@ -219,7 +233,10 @@ export class GithubCredentialsProvider { const parsed = parseGitUrl(opts.url); const owner = parsed.owner || parsed.name; - const repo = parsed.owner ? parsed.name : undefined; + let repo = parsed.owner ? parsed.name : undefined; + // the github-discovery plugin passes an • as a repo name. This simply means it wants access to all repos + // that are available to the installation. + repo = repo === '*' ? undefined : repo; let type: GithubCredentialType = 'app'; let token = await this.githubAppCredentialsMux.getAppToken(owner, repo); From 8db48b968c3d1404776ee2d3c5a2a69599c26af7 Mon Sep 17 00:00:00 2001 From: Shyam Saraswati Date: Thu, 5 Aug 2021 16:46:37 +1000 Subject: [PATCH 05/64] Add auth token to SonarQubeClient via IdentityApi Signed-off-by: Shyam Saraswati --- .changeset/little-tools-melt.md | 5 ++ .../sonarqube/src/api/SonarQubeClient.test.ts | 89 ++++++++++++++++++- plugins/sonarqube/src/api/SonarQubeClient.ts | 14 ++- plugins/sonarqube/src/plugin.ts | 10 ++- 4 files changed, 114 insertions(+), 4 deletions(-) create mode 100644 .changeset/little-tools-melt.md diff --git a/.changeset/little-tools-melt.md b/.changeset/little-tools-melt.md new file mode 100644 index 0000000000..5e55d27b7a --- /dev/null +++ b/.changeset/little-tools-melt.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-sonarqube': minor +--- + +Use IdentityApi to provide Auth Token for SonarQubeClient Api calls diff --git a/plugins/sonarqube/src/api/SonarQubeClient.test.ts b/plugins/sonarqube/src/api/SonarQubeClient.test.ts index 816cf19b5e..e308723289 100644 --- a/plugins/sonarqube/src/api/SonarQubeClient.test.ts +++ b/plugins/sonarqube/src/api/SonarQubeClient.test.ts @@ -20,9 +20,39 @@ import { setupServer } from 'msw/node'; import { FindingSummary, SonarQubeClient } from './index'; import { ComponentWrapper, MeasuresWrapper } from './types'; import { UrlPatternDiscovery } from '@backstage/core-app-api'; +import { IdentityApi } from '@backstage/core-plugin-api'; const server = setupServer(); +const identityApiAuthenticated: IdentityApi = { + getUserId() { + return 'jane-fonda'; + }, + getProfile() { + return { email: 'jane-fonda@spotify.com' }; + }, + async getIdToken() { + return Promise.resolve('fake-id-token'); + }, + async signOut() { + return Promise.resolve(); + }, +}; +const identityApiGuest: IdentityApi = { + getUserId() { + return 'guest'; + }, + getProfile() { + return {}; + }, + async getIdToken() { + return Promise.resolve(undefined); + }, + async signOut() { + return Promise.resolve(); + }, +}; + describe('SonarQubeClient', () => { msw.setupDefaultHandlers(server); @@ -161,7 +191,10 @@ describe('SonarQubeClient', () => { it('should report finding summary', async () => { setupHandlers(); - const client = new SonarQubeClient({ discoveryApi }); + const client = new SonarQubeClient({ + discoveryApi, + identityApi: identityApiAuthenticated, + }); const summary = await client.getFindingSummary('our:service'); expect(summary).toEqual( @@ -197,6 +230,7 @@ describe('SonarQubeClient', () => { const client = new SonarQubeClient({ discoveryApi, baseUrl: 'http://a.instance.local', + identityApi: identityApiAuthenticated, }); const summary = await client.getFindingSummary('our:service'); @@ -234,6 +268,7 @@ describe('SonarQubeClient', () => { const client = new SonarQubeClient({ discoveryApi, baseUrl: 'http://a.instance.local', + identityApi: identityApiAuthenticated, }); const summary = await client.getFindingSummary('our:service'); @@ -255,4 +290,56 @@ describe('SonarQubeClient', () => { 'http://a.instance.local/component_measures?id=our%3Aservice&metric=coverage&resolved=false&view=list', ); }); + + it('should add identity token for logged in users', async () => { + setupHandlers(); + server.use( + rest.get(`${mockBaseUrl}/sonarqube/components/show`, (req, res, ctx) => { + expect(req.url.searchParams.toString()).toBe('component=our%3Aservice'); + expect(req.headers.get('Authorization')).toBe('Bearer fake-id-token'); + return res( + ctx.json({ + component: { + analysisDate: '2020-01-01T00:00:00Z', + }, + } as ComponentWrapper), + ); + }), + ); + + const client = new SonarQubeClient({ + discoveryApi, + baseUrl: 'http://a.instance.local', + identityApi: identityApiAuthenticated, + }); + const summary = await client.getFindingSummary('our:service'); + + expect(summary?.lastAnalysis).toBe('2020-01-01T00:00:00Z'); + }); + + it('should omit identity token for guest users', async () => { + setupHandlers(); + server.use( + rest.get(`${mockBaseUrl}/sonarqube/components/show`, (req, res, ctx) => { + expect(req.url.searchParams.toString()).toBe('component=our%3Aservice'); + expect(req.headers.get('Authorization')).toBeUndefined(); + return res( + ctx.json({ + component: { + analysisDate: '2020-01-01T00:00:00Z', + }, + } as ComponentWrapper), + ); + }), + ); + + const client = new SonarQubeClient({ + discoveryApi, + baseUrl: 'http://a.instance.local', + identityApi: identityApiGuest, + }); + const summary = await client.getFindingSummary('our:service'); + + expect(summary?.lastAnalysis).toBe('2020-01-01T00:00:00Z'); + }); }); diff --git a/plugins/sonarqube/src/api/SonarQubeClient.ts b/plugins/sonarqube/src/api/SonarQubeClient.ts index f7f1cac92d..d2283693ea 100644 --- a/plugins/sonarqube/src/api/SonarQubeClient.ts +++ b/plugins/sonarqube/src/api/SonarQubeClient.ts @@ -17,20 +17,24 @@ import fetch from 'cross-fetch'; import { FindingSummary, Metrics, SonarQubeApi } from './SonarQubeApi'; import { ComponentWrapper, MeasuresWrapper } from './types'; -import { DiscoveryApi } from '@backstage/core-plugin-api'; +import { DiscoveryApi, IdentityApi } from '@backstage/core-plugin-api'; export class SonarQubeClient implements SonarQubeApi { discoveryApi: DiscoveryApi; baseUrl: string; + identityApi: IdentityApi; constructor({ discoveryApi, + identityApi, baseUrl = 'https://sonarcloud.io/', }: { discoveryApi: DiscoveryApi; + identityApi: IdentityApi; baseUrl?: string; }) { this.discoveryApi = discoveryApi; + this.identityApi = identityApi; this.baseUrl = baseUrl.endsWith('/') ? baseUrl : `${baseUrl}/`; } @@ -38,9 +42,17 @@ export class SonarQubeClient implements SonarQubeApi { path: string, query: { [key in string]: any }, ): Promise { + const idToken = await this.identityApi.getIdToken(); + const apiUrl = `${await this.discoveryApi.getBaseUrl('proxy')}/sonarqube`; const response = await fetch( `${apiUrl}/${path}?${new URLSearchParams(query).toString()}`, + { + headers: { + 'Content-Type': 'application/json', + ...(idToken && { Authorization: `Bearer ${idToken}` }), + }, + }, ); if (response.status === 200) { return (await response.json()) as T; diff --git a/plugins/sonarqube/src/plugin.ts b/plugins/sonarqube/src/plugin.ts index d542d40b17..d8e1b7f89a 100644 --- a/plugins/sonarqube/src/plugin.ts +++ b/plugins/sonarqube/src/plugin.ts @@ -21,6 +21,7 @@ import { createComponentExtension, createPlugin, discoveryApiRef, + identityApiRef, } from '@backstage/core-plugin-api'; export const sonarQubePlugin = createPlugin({ @@ -28,11 +29,16 @@ export const sonarQubePlugin = createPlugin({ apis: [ createApiFactory({ api: sonarQubeApiRef, - deps: { configApi: configApiRef, discoveryApi: discoveryApiRef }, - factory: ({ configApi, discoveryApi }) => + deps: { + configApi: configApiRef, + discoveryApi: discoveryApiRef, + identityApi: identityApiRef, + }, + factory: ({ configApi, discoveryApi, identityApi }) => new SonarQubeClient({ discoveryApi, baseUrl: configApi.getOptionalString('sonarQube.baseUrl'), + identityApi, }), }), ], From c0d22517bfc55c33dec7f0a63abe2fe0352c4f9d Mon Sep 17 00:00:00 2001 From: Himanshu Mishra Date: Thu, 5 Aug 2021 11:45:52 +0200 Subject: [PATCH 06/64] scaffolder: add EntityNamePicker field Co-authored-by: Mike Lewis Signed-off-by: Himanshu Mishra --- .../EntityNamePicker/EntityNamePicker.tsx | 43 +++++++++++++++++++ .../fields/EntityNamePicker/index.ts | 17 ++++++++ .../fields/EntityNamePicker/validation.ts | 29 +++++++++++++ .../scaffolder/src/components/fields/index.ts | 1 + plugins/scaffolder/src/extensions/default.ts | 9 ++++ plugins/scaffolder/src/index.ts | 1 + plugins/scaffolder/src/plugin.ts | 12 ++++++ 7 files changed, 112 insertions(+) create mode 100644 plugins/scaffolder/src/components/fields/EntityNamePicker/EntityNamePicker.tsx create mode 100644 plugins/scaffolder/src/components/fields/EntityNamePicker/index.ts create mode 100644 plugins/scaffolder/src/components/fields/EntityNamePicker/validation.ts diff --git a/plugins/scaffolder/src/components/fields/EntityNamePicker/EntityNamePicker.tsx b/plugins/scaffolder/src/components/fields/EntityNamePicker/EntityNamePicker.tsx new file mode 100644 index 0000000000..6562ddb270 --- /dev/null +++ b/plugins/scaffolder/src/components/fields/EntityNamePicker/EntityNamePicker.tsx @@ -0,0 +1,43 @@ +/* + * Copyright 2021 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; +import { FieldProps } from '@rjsf/core'; +import InputLabel from '@material-ui/core/InputLabel'; +import Input from '@material-ui/core/Input'; +import FormControl from '@material-ui/core/FormControl'; +import FormHelperText from '@material-ui/core/FormHelperText'; + +export const EntityNamePicker = ({ + onChange, + required, + schema: { title = 'Name', description = 'Unique name of the component' }, + rawErrors, + formData, +}: FieldProps) => ( + 0 && !formData} + > + {title} + onChange(value)} + value={formData ?? ''} + /> + {description} + +); diff --git a/plugins/scaffolder/src/components/fields/EntityNamePicker/index.ts b/plugins/scaffolder/src/components/fields/EntityNamePicker/index.ts new file mode 100644 index 0000000000..0ba88d1277 --- /dev/null +++ b/plugins/scaffolder/src/components/fields/EntityNamePicker/index.ts @@ -0,0 +1,17 @@ +/* + * Copyright 2021 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export { EntityNamePicker } from './EntityNamePicker'; +export { entityNamePickerValidation } from './validation'; diff --git a/plugins/scaffolder/src/components/fields/EntityNamePicker/validation.ts b/plugins/scaffolder/src/components/fields/EntityNamePicker/validation.ts new file mode 100644 index 0000000000..7a40a460ba --- /dev/null +++ b/plugins/scaffolder/src/components/fields/EntityNamePicker/validation.ts @@ -0,0 +1,29 @@ +/* + * Copyright 2021 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { FieldValidation } from '@rjsf/core'; +import { KubernetesValidatorFunctions } from '@backstage/catalog-model'; + +export const entityNamePickerValidation = ( + value: string, + validation: FieldValidation, +) => { + if (!KubernetesValidatorFunctions.isValidObjectName(value)) { + validation.addError( + 'must start and end with an alphanumeric character, and contain only alphanumeric characters, hyphens, underscores, and periods. Maximum length is 63 characters.', + ); + } +}; diff --git a/plugins/scaffolder/src/components/fields/index.ts b/plugins/scaffolder/src/components/fields/index.ts index 3d7875a742..805cc6bb2b 100644 --- a/plugins/scaffolder/src/components/fields/index.ts +++ b/plugins/scaffolder/src/components/fields/index.ts @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +export * from './EntityNamePicker'; export * from './EntityPicker'; export * from './OwnerPicker'; export * from './RepoUrlPicker'; diff --git a/plugins/scaffolder/src/extensions/default.ts b/plugins/scaffolder/src/extensions/default.ts index b7af2f4a6b..be934546b3 100644 --- a/plugins/scaffolder/src/extensions/default.ts +++ b/plugins/scaffolder/src/extensions/default.ts @@ -14,6 +14,10 @@ * limitations under the License. */ import { EntityPicker } from '../components/fields/EntityPicker'; +import { + EntityNamePicker, + entityNamePickerValidation, +} from '../components/fields/EntityNamePicker'; import { OwnerPicker } from '../components/fields/OwnerPicker'; import { repoPickerValidation, @@ -26,6 +30,11 @@ export const DEFAULT_SCAFFOLDER_FIELD_EXTENSIONS: FieldExtensionOptions[] = [ component: EntityPicker, name: 'EntityPicker', }, + { + component: EntityNamePicker, + name: 'EntityNamePicker', + validation: entityNamePickerValidation, + }, { component: RepoUrlPicker, name: 'RepoUrlPicker', diff --git a/plugins/scaffolder/src/index.ts b/plugins/scaffolder/src/index.ts index 74091a1a85..c78674cded 100644 --- a/plugins/scaffolder/src/index.ts +++ b/plugins/scaffolder/src/index.ts @@ -23,6 +23,7 @@ export { export type { CustomFieldValidator, FieldExtensionOptions } from './extensions'; export { EntityPickerFieldExtension, + EntityNamePickerFieldExtension, OwnerPickerFieldExtension, RepoUrlPickerFieldExtension, ScaffolderPage, diff --git a/plugins/scaffolder/src/plugin.ts b/plugins/scaffolder/src/plugin.ts index e12305639e..8b543b52eb 100644 --- a/plugins/scaffolder/src/plugin.ts +++ b/plugins/scaffolder/src/plugin.ts @@ -17,6 +17,10 @@ import { scmIntegrationsApiRef } from '@backstage/integration-react'; import { scaffolderApiRef, ScaffolderClient } from './api'; import { EntityPicker } from './components/fields/EntityPicker'; +import { + entityNamePickerValidation, + EntityNamePicker, +} from './components/fields/EntityNamePicker'; import { OwnerPicker } from './components/fields/OwnerPicker'; import { repoPickerValidation, @@ -61,6 +65,14 @@ export const EntityPickerFieldExtension = scaffolderPlugin.provide( }), ); +export const EntityNamePickerFieldExtension = scaffolderPlugin.provide( + createScaffolderFieldExtension({ + component: EntityNamePicker, + name: 'EntityNamePicker', + validation: entityNamePickerValidation, + }), +); + export const RepoUrlPickerFieldExtension = scaffolderPlugin.provide( createScaffolderFieldExtension({ component: RepoUrlPicker, From 9425607173c5bf17e1d712badb9a1807bcfafa5d Mon Sep 17 00:00:00 2001 From: Himanshu Mishra Date: Thu, 5 Aug 2021 11:51:02 +0200 Subject: [PATCH 07/64] scaffolder: export Picker components from the plugin This is needed for creating a custom field extension which re-uses an existing picker component. Co-authored-by: Mike Lewis Signed-off-by: Himanshu Mishra --- plugins/scaffolder/src/index.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/plugins/scaffolder/src/index.ts b/plugins/scaffolder/src/index.ts index c78674cded..4821f681bc 100644 --- a/plugins/scaffolder/src/index.ts +++ b/plugins/scaffolder/src/index.ts @@ -30,3 +30,9 @@ export { scaffolderPlugin as plugin, scaffolderPlugin, } from './plugin'; +export { + EntityNamePicker, + EntityPicker, + OwnerPicker, + RepoUrlPicker, +} from './components/fields'; From 27a2b642d0fbfce49b3e7f61b98ad78b978d132b Mon Sep 17 00:00:00 2001 From: Himanshu Mishra Date: Thu, 5 Aug 2021 12:18:55 +0200 Subject: [PATCH 08/64] add a todo to create a basic textvaluepicker so that it can be reused Co-authored-by: Mike Lewis Signed-off-by: Himanshu Mishra --- .../src/components/fields/EntityNamePicker/EntityNamePicker.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/scaffolder/src/components/fields/EntityNamePicker/EntityNamePicker.tsx b/plugins/scaffolder/src/components/fields/EntityNamePicker/EntityNamePicker.tsx index 6562ddb270..15ded2f9dc 100644 --- a/plugins/scaffolder/src/components/fields/EntityNamePicker/EntityNamePicker.tsx +++ b/plugins/scaffolder/src/components/fields/EntityNamePicker/EntityNamePicker.tsx @@ -20,6 +20,7 @@ import Input from '@material-ui/core/Input'; import FormControl from '@material-ui/core/FormControl'; import FormHelperText from '@material-ui/core/FormHelperText'; +// TODO(Mike/Himanshu): Create a simple TextValuePicker so that it could be reused for creating custom field extensions with its own validators. export const EntityNamePicker = ({ onChange, required, From 5b182e38235a2707d7e5c52ed5b84da6fb27fe13 Mon Sep 17 00:00:00 2001 From: Mike Lewis Date: Thu, 5 Aug 2021 11:57:26 +0100 Subject: [PATCH 09/64] scaffolder: extract reusable TextValuePicker from EntityNamePicker Signed-off-by: Mike Lewis --- .../EntityNamePicker/EntityNamePicker.tsx | 25 ++----------- .../TextValuePicker/TextValuePicker.tsx | 36 +++++++++++++++++++ .../fields/TextValuePicker/index.ts | 16 +++++++++ .../scaffolder/src/components/fields/index.ts | 1 + plugins/scaffolder/src/index.ts | 1 + 5 files changed, 57 insertions(+), 22 deletions(-) create mode 100644 plugins/scaffolder/src/components/fields/TextValuePicker/TextValuePicker.tsx create mode 100644 plugins/scaffolder/src/components/fields/TextValuePicker/index.ts diff --git a/plugins/scaffolder/src/components/fields/EntityNamePicker/EntityNamePicker.tsx b/plugins/scaffolder/src/components/fields/EntityNamePicker/EntityNamePicker.tsx index 15ded2f9dc..8e7c0b0bea 100644 --- a/plugins/scaffolder/src/components/fields/EntityNamePicker/EntityNamePicker.tsx +++ b/plugins/scaffolder/src/components/fields/EntityNamePicker/EntityNamePicker.tsx @@ -15,30 +15,11 @@ */ import React from 'react'; import { FieldProps } from '@rjsf/core'; -import InputLabel from '@material-ui/core/InputLabel'; -import Input from '@material-ui/core/Input'; -import FormControl from '@material-ui/core/FormControl'; -import FormHelperText from '@material-ui/core/FormHelperText'; +import { TextValuePicker } from '../TextValuePicker'; -// TODO(Mike/Himanshu): Create a simple TextValuePicker so that it could be reused for creating custom field extensions with its own validators. export const EntityNamePicker = ({ - onChange, - required, schema: { title = 'Name', description = 'Unique name of the component' }, - rawErrors, - formData, + ...props }: FieldProps) => ( - 0 && !formData} - > - {title} - onChange(value)} - value={formData ?? ''} - /> - {description} - + ); diff --git a/plugins/scaffolder/src/components/fields/TextValuePicker/TextValuePicker.tsx b/plugins/scaffolder/src/components/fields/TextValuePicker/TextValuePicker.tsx new file mode 100644 index 0000000000..20e19d8526 --- /dev/null +++ b/plugins/scaffolder/src/components/fields/TextValuePicker/TextValuePicker.tsx @@ -0,0 +1,36 @@ +/* + * Copyright 2021 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import React from 'react'; +import { FieldProps } from '@rjsf/core'; +import { TextField } from '@material-ui/core'; + +export const TextValuePicker = ({ + onChange, + required, + schema: { title, description }, + rawErrors, + formData, +}: FieldProps) => ( + onChange(value)} + margin="normal" + error={rawErrors?.length > 0 && !formData} + /> +); diff --git a/plugins/scaffolder/src/components/fields/TextValuePicker/index.ts b/plugins/scaffolder/src/components/fields/TextValuePicker/index.ts new file mode 100644 index 0000000000..8ab810b6ed --- /dev/null +++ b/plugins/scaffolder/src/components/fields/TextValuePicker/index.ts @@ -0,0 +1,16 @@ +/* + * Copyright 2021 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export { TextValuePicker } from './TextValuePicker'; diff --git a/plugins/scaffolder/src/components/fields/index.ts b/plugins/scaffolder/src/components/fields/index.ts index 805cc6bb2b..5adc3d3141 100644 --- a/plugins/scaffolder/src/components/fields/index.ts +++ b/plugins/scaffolder/src/components/fields/index.ts @@ -17,3 +17,4 @@ export * from './EntityNamePicker'; export * from './EntityPicker'; export * from './OwnerPicker'; export * from './RepoUrlPicker'; +export * from './TextValuePicker'; diff --git a/plugins/scaffolder/src/index.ts b/plugins/scaffolder/src/index.ts index 4821f681bc..989b3b53ce 100644 --- a/plugins/scaffolder/src/index.ts +++ b/plugins/scaffolder/src/index.ts @@ -35,4 +35,5 @@ export { EntityPicker, OwnerPicker, RepoUrlPicker, + TextValuePicker, } from './components/fields'; From b6d5c2a35b6bf455d49b3311753c41d655e32303 Mon Sep 17 00:00:00 2001 From: Mike Lewis Date: Thu, 5 Aug 2021 11:59:07 +0100 Subject: [PATCH 10/64] Include EntityNamePickerFieldExtension in example app Signed-off-by: Mike Lewis --- packages/app/src/App.tsx | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx index de62971f96..a93cc9279a 100644 --- a/packages/app/src/App.tsx +++ b/packages/app/src/App.tsx @@ -41,6 +41,15 @@ import { GcpProjectsPage } from '@backstage/plugin-gcp-projects'; import { GraphiQLPage } from '@backstage/plugin-graphiql'; import { LighthousePage } from '@backstage/plugin-lighthouse'; import { NewRelicPage } from '@backstage/plugin-newrelic'; +import { + ScaffolderPage, + scaffolderPlugin, + ScaffolderFieldExtensions, + RepoUrlPickerFieldExtension, + OwnerPickerFieldExtension, + EntityPickerFieldExtension, + EntityNamePickerFieldExtension, +} from '@backstage/plugin-scaffolder'; import { ScaffolderPage, scaffolderPlugin } from '@backstage/plugin-scaffolder'; import { SearchPage } from '@backstage/plugin-search'; import { TechRadarPage } from '@backstage/plugin-tech-radar'; @@ -108,7 +117,15 @@ const routes = ( } /> } /> - } /> + }> + + + + + + + + } /> Date: Thu, 5 Aug 2021 12:09:22 +0100 Subject: [PATCH 11/64] scaffolder: add test suite for EntityNamePicker validation Signed-off-by: Mike Lewis --- .../EntityNamePicker/validation.test.ts | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 plugins/scaffolder/src/components/fields/EntityNamePicker/validation.test.ts diff --git a/plugins/scaffolder/src/components/fields/EntityNamePicker/validation.test.ts b/plugins/scaffolder/src/components/fields/EntityNamePicker/validation.test.ts new file mode 100644 index 0000000000..2006a87520 --- /dev/null +++ b/plugins/scaffolder/src/components/fields/EntityNamePicker/validation.test.ts @@ -0,0 +1,65 @@ +/* + * Copyright 2021 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { FieldValidation } from '@rjsf/core'; +import { KubernetesValidatorFunctions } from '@backstage/catalog-model'; +import { entityNamePickerValidation } from './validation'; + +jest.mock('@backstage/catalog-model', () => ({ + KubernetesValidatorFunctions: { + isValidObjectName: jest.fn(), + }, +})); + +const mockIsValidObjectName = KubernetesValidatorFunctions.isValidObjectName as jest.MockedFunction< + typeof KubernetesValidatorFunctions.isValidObjectName +>; + +describe('EntityNamePicker Validation', () => { + let mockFieldValidation: FieldValidation; + + beforeEach(() => { + mockFieldValidation = ({ + addError: jest.fn(), + } as unknown) as FieldValidation; + }); + + it('calls isValidObjectName to validate value', () => { + entityNamePickerValidation('test value', mockFieldValidation); + + expect(mockIsValidObjectName).toHaveBeenCalled(); + }); + + it('does not add an error when isValidObjectName returns true', () => { + mockIsValidObjectName.mockReturnValue(true); + + entityNamePickerValidation('test value', mockFieldValidation); + + expect(mockFieldValidation.addError).not.toHaveBeenCalled(); + }); + + it('adds an error when isValidObjectName returns false', () => { + mockIsValidObjectName.mockReturnValue(false); + + entityNamePickerValidation('test value', mockFieldValidation); + + expect(mockFieldValidation.addError).toHaveBeenCalledWith( + expect.stringMatching( + /contain only alphanumeric characters, hyphens, underscores, and periods/, + ), + ); + }); +}); From f9694b02e6af4e9cbcb5c9f9b5ac28077baa68f9 Mon Sep 17 00:00:00 2001 From: Mike Lewis Date: Thu, 5 Aug 2021 12:35:08 +0100 Subject: [PATCH 12/64] scaffolder: add support for ui:autofocus to TextValuePicker Signed-off-by: Mike Lewis --- .../src/components/fields/TextValuePicker/TextValuePicker.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/scaffolder/src/components/fields/TextValuePicker/TextValuePicker.tsx b/plugins/scaffolder/src/components/fields/TextValuePicker/TextValuePicker.tsx index 20e19d8526..f391843f73 100644 --- a/plugins/scaffolder/src/components/fields/TextValuePicker/TextValuePicker.tsx +++ b/plugins/scaffolder/src/components/fields/TextValuePicker/TextValuePicker.tsx @@ -23,6 +23,7 @@ export const TextValuePicker = ({ schema: { title, description }, rawErrors, formData, + uiSchema: { 'ui:autofocus': autoFocus }, }: FieldProps) => ( onChange(value)} margin="normal" error={rawErrors?.length > 0 && !formData} + inputProps={{ autoFocus }} /> ); From fbbc9aafc2c36448ad75634b02c17b3244138fd3 Mon Sep 17 00:00:00 2001 From: Himanshu Mishra Date: Thu, 5 Aug 2021 12:17:39 +0200 Subject: [PATCH 13/64] example-app: add an example of adding a custom Scaffolder field extension This is useful to visualize what it takes to add a new custom Scaffolder field extension. Co-authored-by: Mike Lewis Signed-off-by: Himanshu Mishra --- packages/app/package.json | 1 + packages/app/src/App.tsx | 3 +- .../scaffolder/customScaffolderExtensions.tsx | 34 +++++++++++++++++++ 3 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 packages/app/src/components/scaffolder/customScaffolderExtensions.tsx diff --git a/packages/app/package.json b/packages/app/package.json index 5fa6fe2198..10066f9ba0 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -61,6 +61,7 @@ }, "devDependencies": { "@backstage/test-utils": "^0.1.16", + "@rjsf/core": "^3.0.0", "@testing-library/cypress": "^7.0.1", "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^11.2.5", diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx index a93cc9279a..12d7c0c231 100644 --- a/packages/app/src/App.tsx +++ b/packages/app/src/App.tsx @@ -50,7 +50,6 @@ import { EntityPickerFieldExtension, EntityNamePickerFieldExtension, } from '@backstage/plugin-scaffolder'; -import { ScaffolderPage, scaffolderPlugin } from '@backstage/plugin-scaffolder'; import { SearchPage } from '@backstage/plugin-search'; import { TechRadarPage } from '@backstage/plugin-tech-radar'; import { TechdocsPage } from '@backstage/plugin-techdocs'; @@ -63,6 +62,7 @@ import { apis } from './apis'; import { Root } from './components/Root'; import { entityPage } from './components/catalog/EntityPage'; import { searchPage } from './components/search/SearchPage'; +import { LowerCaseValuePickerFieldExtension } from './components/scaffolder/customScaffolderExtensions'; import { providers } from './identityProviders'; import * as plugins from './plugins'; @@ -133,7 +133,6 @@ const routes = ( /> } /> } /> - } /> } /> } /> diff --git a/packages/app/src/components/scaffolder/customScaffolderExtensions.tsx b/packages/app/src/components/scaffolder/customScaffolderExtensions.tsx new file mode 100644 index 0000000000..5ef4f617a7 --- /dev/null +++ b/packages/app/src/components/scaffolder/customScaffolderExtensions.tsx @@ -0,0 +1,34 @@ +/* + * Copyright 2021 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import type { FieldValidation } from '@rjsf/core'; +import { + createScaffolderFieldExtension, + TextValuePicker, + scaffolderPlugin, +} from '@backstage/plugin-scaffolder'; + +export const LowerCaseValuePickerFieldExtension = scaffolderPlugin.provide( + createScaffolderFieldExtension({ + name: 'LowerCaseValuePicker', + component: TextValuePicker, + validation: (value: string, validation: FieldValidation) => { + if (value.toLowerCase() !== value) { + validation.addError('Only lowercase values are allowed.'); + } + }, + }), +); From fa84fe44ecfef275f376b3c1664e3ec4b0ac1721 Mon Sep 17 00:00:00 2001 From: Mike Lewis Date: Thu, 5 Aug 2021 12:51:06 +0100 Subject: [PATCH 14/64] Add changeset Signed-off-by: Mike Lewis --- .changeset/happy-lies-wink.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .changeset/happy-lies-wink.md diff --git a/.changeset/happy-lies-wink.md b/.changeset/happy-lies-wink.md new file mode 100644 index 0000000000..709cd3862e --- /dev/null +++ b/.changeset/happy-lies-wink.md @@ -0,0 +1,22 @@ +--- +'@backstage/plugin-scaffolder': patch +--- + +- Adds a new field `EntityNamePicker` that can be used in scaffolder templates to accept and validate an entity name. This field is registered by default, and can be used in templates by setting the `ui:field` property to `EntityNamePicker`. If you've customized your scaffolder field extensions, you can include this one by adding it when registering the scaffolder route: + +```diff +import { + ScaffolderFieldExtensions, ++ EntityNamePickerFieldExtension, +} from '@backstage/plugin-scaffolder'; + + }> + + {/* ...custom field extensions... */} + ++ + + ; +``` + +- Adds a new generic field `TextValuePicker` to be used when writing custom field extensions that use a standard UI with custom validation. An example of doing this can be found in `packages/app/src/components/scaffolder/customScaffolderExtensions.tsx`. From c9952bce306c9e653e6dcee2f57d4c5acd8444c0 Mon Sep 17 00:00:00 2001 From: Mike Lewis Date: Thu, 5 Aug 2021 13:33:04 +0100 Subject: [PATCH 15/64] scaffolder: api-report Signed-off-by: Mike Lewis --- plugins/scaffolder/api-report.md | 56 ++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/plugins/scaffolder/api-report.md b/plugins/scaffolder/api-report.md index 1be7e8fec8..250eed0d2c 100644 --- a/plugins/scaffolder/api-report.md +++ b/plugins/scaffolder/api-report.md @@ -43,6 +43,31 @@ export type CustomFieldValidator = }, ) => void); +// Warning: (ae-missing-release-tag) "EntityNamePicker" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const EntityNamePicker: ({ + schema: { title, description }, + ...props +}: FieldProps) => JSX.Element; + +// Warning: (ae-missing-release-tag) "EntityNamePickerFieldExtension" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const EntityNamePickerFieldExtension: () => null; + +// Warning: (ae-missing-release-tag) "EntityPicker" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const EntityPicker: ({ + onChange, + schema: { title, description }, + required, + uiSchema, + rawErrors, + formData, +}: FieldProps) => JSX.Element; + // Warning: (ae-missing-release-tag) "EntityPickerFieldExtension" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) @@ -57,11 +82,30 @@ export type FieldExtensionOptions = { validation?: CustomFieldValidator; }; +// Warning: (ae-missing-release-tag) "OwnerPicker" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const OwnerPicker: ({ + schema: { title, description }, + uiSchema, + ...props +}: FieldProps) => JSX.Element; + // Warning: (ae-missing-release-tag) "OwnerPickerFieldExtension" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) export const OwnerPickerFieldExtension: () => null; +// Warning: (ae-missing-release-tag) "RepoUrlPicker" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const RepoUrlPicker: ({ + onChange, + uiSchema, + rawErrors, + formData, +}: FieldProps) => JSX.Element; + // Warning: (ae-missing-release-tag) "RepoUrlPickerFieldExtension" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) @@ -179,5 +223,17 @@ const scaffolderPlugin: BackstagePlugin< export { scaffolderPlugin as plugin }; export { scaffolderPlugin }; +// Warning: (ae-missing-release-tag) "TextValuePicker" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const TextValuePicker: ({ + onChange, + required, + schema: { title, description }, + rawErrors, + formData, + uiSchema: { 'ui:autofocus': autoFocus }, +}: FieldProps) => JSX.Element; + // (No @packageDocumentation comment for this package) ``` From 1099a77ea390bf4dc36b90e1536fc40fb72ebd7d Mon Sep 17 00:00:00 2001 From: Shyam Saraswati Date: Fri, 6 Aug 2021 07:52:56 +1000 Subject: [PATCH 16/64] Fix SonarQubeClient test checking for Authentication header Signed-off-by: Shyam Saraswati --- plugins/sonarqube/src/api/SonarQubeClient.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/sonarqube/src/api/SonarQubeClient.test.ts b/plugins/sonarqube/src/api/SonarQubeClient.test.ts index e308723289..dbc65ee59e 100644 --- a/plugins/sonarqube/src/api/SonarQubeClient.test.ts +++ b/plugins/sonarqube/src/api/SonarQubeClient.test.ts @@ -322,7 +322,7 @@ describe('SonarQubeClient', () => { server.use( rest.get(`${mockBaseUrl}/sonarqube/components/show`, (req, res, ctx) => { expect(req.url.searchParams.toString()).toBe('component=our%3Aservice'); - expect(req.headers.get('Authorization')).toBeUndefined(); + expect(req.headers.has('Authorization')).toBeFalsy(); return res( ctx.json({ component: { From 4df8b12879b05f26cda61509624f14d504c87e46 Mon Sep 17 00:00:00 2001 From: blam Date: Mon, 12 Apr 2021 13:49:37 +0200 Subject: [PATCH 17/64] chore: updating some packages to get ready for webpack5 Signed-off-by: blam --- packages/cli/package.json | 9 +- packages/cli/src/lib/bundler/bundle.ts | 32 +- packages/cli/src/lib/bundler/config.ts | 10 +- yarn.lock | 411 +++++++++++++++++++++---- 4 files changed, 369 insertions(+), 93 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index 48746ad87b..f6c4dce9d6 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -100,8 +100,8 @@ "rollup-plugin-peer-deps-external": "^2.2.2", "rollup-plugin-postcss": "^4.0.0", "rollup-pluginutils": "^2.8.2", + "run-script-webpack-plugin": "^0.0.11", "semver": "^7.3.2", - "start-server-webpack-plugin": "^2.2.5", "style-loader": "^1.2.1", "sucrase": "^3.18.2", "tar": "^6.1.2", @@ -109,8 +109,8 @@ "ts-loader": "^8.0.17", "typescript": "^4.0.3", "url-loader": "^4.1.0", - "webpack": "^4.41.6", - "webpack-dev-server": "3.11.0", + "webpack": "^5.0.0", + "webpack-dev-server": "^3.11.2", "webpack-node-externals": "^3.0.0", "yaml": "^1.10.0", "yaml-jest": "^1.0.5", @@ -140,8 +140,7 @@ "@types/rollup-plugin-peer-deps-external": "^2.2.0", "@types/rollup-plugin-postcss": "^2.0.0", "@types/tar": "^4.0.3", - "@types/webpack": "^4.41.7", - "@types/webpack-dev-server": "^3.11.0", + "@types/webpack-dev-server": "^3.11.2", "@types/yarnpkg__lockfile": "^1.1.4", "del": "^6.0.0", "mock-fs": "^4.13.0", diff --git a/packages/cli/src/lib/bundler/bundle.ts b/packages/cli/src/lib/bundler/bundle.ts index 17a7398b2a..33e8eab8a6 100644 --- a/packages/cli/src/lib/bundler/bundle.ts +++ b/packages/cli/src/lib/bundler/bundle.ts @@ -87,24 +87,26 @@ export async function buildBundle(options: BuildOptions) { } async function build(compiler: webpack.Compiler, isCi: boolean) { - const stats = await new Promise((resolve, reject) => { - compiler.run((err, buildStats) => { - if (err) { - if (err.message) { - const { errors } = formatWebpackMessages({ - errors: [err.message], - warnings: new Array(), - } as webpack.Stats.ToJsonOutput); + const stats = await new Promise( + (resolve, reject) => { + compiler.run((err, buildStats) => { + if (err) { + if (err.message) { + const { errors } = formatWebpackMessages({ + errors: [err.message], + warnings: new Array(), + }); - throw new Error(errors[0]); + throw new Error(errors[0]); + } else { + reject(err); + } } else { - reject(err); + resolve(buildStats); } - } else { - resolve(buildStats); - } - }); - }); + }); + }, + ); const { errors, warnings } = formatWebpackMessages( stats.toJson({ all: false, warnings: true, errors: true }), diff --git a/packages/cli/src/lib/bundler/config.ts b/packages/cli/src/lib/bundler/config.ts index 75e94af716..8ef802dd14 100644 --- a/packages/cli/src/lib/bundler/config.ts +++ b/packages/cli/src/lib/bundler/config.ts @@ -19,7 +19,7 @@ import { resolve as resolvePath } from 'path'; import ForkTsCheckerWebpackPlugin from 'fork-ts-checker-webpack-plugin'; import HtmlWebpackPlugin from 'html-webpack-plugin'; import ModuleScopePlugin from 'react-dev-utils/ModuleScopePlugin'; -import StartServerPlugin from 'start-server-webpack-plugin'; +import { RunScriptWebpackPlugin } from 'run-script-webpack-plugin'; import webpack from 'webpack'; import nodeExternals from 'webpack-node-externals'; import { isChildPath } from '@backstage/cli-common'; @@ -300,7 +300,7 @@ export async function createBackendConfig( : {}), }, plugins: [ - new StartServerPlugin({ + new RunScriptWebpackPlugin({ name: 'main.js', nodeArgs: options.inspectEnabled ? ['--inspect'] : undefined, }), @@ -346,11 +346,7 @@ function nodeExternalsWithResolve( }, }); - return ( - context: string, - request: string, - callback: webpack.ExternalsFunctionCallback, - ) => { + return (context: string, request: string, callback: webpack.Externa) => { currentContext = context; return externals(context, request, callback); }; diff --git a/yarn.lock b/yarn.lock index a90f6e3b0b..dcee3dd84f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5921,6 +5921,14 @@ dependencies: "@types/trusted-types" "*" +"@types/eslint-scope@^3.7.0": + version "3.7.0" + resolved "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.0.tgz#4792816e31119ebd506902a482caec4951fabd86" + integrity sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + "@types/eslint@*": version "6.1.8" resolved "https://registry.npmjs.org/@types/eslint/-/eslint-6.1.8.tgz#7e868f89bc1e520323d405940e49cb912ede5bba" @@ -5939,12 +5947,26 @@ resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== +"@types/estree@^0.0.46": + version "0.0.46" + resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.46.tgz#0fb6bfbbeabd7a30880504993369c4bf1deab1fe" + integrity sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg== + "@types/eventsource@^1.1.5": version "1.1.5" resolved "https://registry.npmjs.org/@types/eventsource/-/eventsource-1.1.5.tgz#408e9b45efb176c8bea672ab58c81e7ab00d24bc" integrity sha512-BA9q9uC2PAMkUS7DunHTxWZZaVpeNzDG8lkBxcKwzKJClfDQ4Z59/Csx7HSH/SIqFN2JWh0tAKAM6k/wRR0OZg== -"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18", "@types/express-serve-static-core@^4.17.21", "@types/express-serve-static-core@^4.17.5": +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.5": + version "4.17.18" + resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz#8371e260f40e0e1ca0c116a9afcd9426fa094c40" + integrity sha512-m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + +"@types/express-serve-static-core@^4.17.18", "@types/express-serve-static-core@^4.17.21": version "4.17.24" resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz#ea41f93bf7e0d59cd5a76665068ed6aab6815c07" integrity sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA== @@ -6096,9 +6118,9 @@ "@types/node" "*" "@types/http-proxy@*", "@types/http-proxy@^1.17.4", "@types/http-proxy@^1.17.5": - version "1.17.6" - resolved "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.6.tgz#62dc3fade227d6ac2862c8f19ee0da9da9fd8616" - integrity sha512-+qsjqR75S/ib0ig0R9WN+CDoZeOBU6F2XLewgC4KVgdXiNHiKKHFEMRHOrs5PbYE97D5vataw5wPj4KLYfUkuQ== + version "1.17.5" + resolved "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.5.tgz#c203c5e6e9dc6820d27a40eb1e511c70a220423d" + integrity sha512-GNkDE7bTv6Sf8JbV2GksknKOsk7OznNYHSdrtvPJXO0qJ9odZig6IZKUi5RFGi6d1bf6dgIAe4uXi3DBc7069Q== dependencies: "@types/node" "*" @@ -6920,7 +6942,7 @@ resolved "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.0.tgz#215c231dff736d5ba92410e6d602050cce7e273f" integrity sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ== -"@types/webpack-dev-server@*", "@types/webpack-dev-server@^3.11.0": +"@types/webpack-dev-server@*": version "3.11.4" resolved "https://registry.npmjs.org/@types/webpack-dev-server/-/webpack-dev-server-3.11.4.tgz#90d47dd660b696d409431ab8c1e9fa3615103a07" integrity sha512-DCKORHjqNNVuMIDWFrlljftvc9CL0+09p3l7lBpb8dRqgN5SmvkWCY4MPKxoI6wJgdRqohmoNbptkxqSKAzLRg== @@ -6931,6 +6953,17 @@ "@types/webpack" "^4" http-proxy-middleware "^1.0.0" +"@types/webpack-dev-server@^3.11.2": + version "3.11.3" + resolved "https://registry.npmjs.org/@types/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz#237e26d87651cf95490dcd356f568c8c84016177" + integrity sha512-p9B/QClflreKDeamKhBwuo5zqtI++wwb9QNG/CdIZUFtHvtaq0dWVgbtV7iMl4Sr4vWzEFj0rn16pgUFANjLPA== + dependencies: + "@types/connect-history-api-fallback" "*" + "@types/express" "*" + "@types/serve-static" "*" + "@types/webpack" "^4" + http-proxy-middleware "^1.0.0" + "@types/webpack-env@^1.15.2", "@types/webpack-env@^1.15.3", "@types/webpack-env@^1.16.0": version "1.16.0" resolved "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.16.0.tgz#8c0a9435dfa7b3b1be76562f3070efb3f92637b4" @@ -6952,7 +6985,7 @@ "@types/source-list-map" "*" source-map "^0.6.1" -"@types/webpack@*", "@types/webpack@^4", "@types/webpack@^4.41.7", "@types/webpack@^4.41.8": +"@types/webpack@*", "@types/webpack@^4", "@types/webpack@^4.41.8": version "4.41.27" resolved "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.27.tgz#f47da488c8037e7f1b2dbf2714fbbacb61ec0ffc" integrity sha512-wK/oi5gcHi72VMTbOaQ70VcDxSQ1uX8S2tukBK9ARuGXrYM/+u4ou73roc7trXDNmCxCoerE8zruQqX/wuHszA== @@ -7100,6 +7133,14 @@ "@typescript-eslint/types" "4.28.3" eslint-visitor-keys "^2.0.0" +"@webassemblyjs/ast@1.11.0": + version "1.11.0" + resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.0.tgz#a5aa679efdc9e51707a4207139da57920555961f" + integrity sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg== + dependencies: + "@webassemblyjs/helper-numbers" "1.11.0" + "@webassemblyjs/helper-wasm-bytecode" "1.11.0" + "@webassemblyjs/ast@1.9.0": version "1.9.0" resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" @@ -7109,16 +7150,31 @@ "@webassemblyjs/helper-wasm-bytecode" "1.9.0" "@webassemblyjs/wast-parser" "1.9.0" +"@webassemblyjs/floating-point-hex-parser@1.11.0": + version "1.11.0" + resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz#34d62052f453cd43101d72eab4966a022587947c" + integrity sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA== + "@webassemblyjs/floating-point-hex-parser@1.9.0": version "1.9.0" resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== +"@webassemblyjs/helper-api-error@1.11.0": + version "1.11.0" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz#aaea8fb3b923f4aaa9b512ff541b013ffb68d2d4" + integrity sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w== + "@webassemblyjs/helper-api-error@1.9.0": version "1.9.0" resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== +"@webassemblyjs/helper-buffer@1.11.0": + version "1.11.0" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz#d026c25d175e388a7dbda9694e91e743cbe9b642" + integrity sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA== + "@webassemblyjs/helper-buffer@1.9.0": version "1.9.0" resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" @@ -7143,11 +7199,35 @@ dependencies: "@webassemblyjs/ast" "1.9.0" +"@webassemblyjs/helper-numbers@1.11.0": + version "1.11.0" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz#7ab04172d54e312cc6ea4286d7d9fa27c88cd4f9" + integrity sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.11.0" + "@webassemblyjs/helper-api-error" "1.11.0" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.11.0": + version "1.11.0" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz#85fdcda4129902fe86f81abf7e7236953ec5a4e1" + integrity sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA== + "@webassemblyjs/helper-wasm-bytecode@1.9.0": version "1.9.0" resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== +"@webassemblyjs/helper-wasm-section@1.11.0": + version "1.11.0" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz#9ce2cc89300262509c801b4af113d1ca25c1a75b" + integrity sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew== + dependencies: + "@webassemblyjs/ast" "1.11.0" + "@webassemblyjs/helper-buffer" "1.11.0" + "@webassemblyjs/helper-wasm-bytecode" "1.11.0" + "@webassemblyjs/wasm-gen" "1.11.0" + "@webassemblyjs/helper-wasm-section@1.9.0": version "1.9.0" resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" @@ -7158,6 +7238,13 @@ "@webassemblyjs/helper-wasm-bytecode" "1.9.0" "@webassemblyjs/wasm-gen" "1.9.0" +"@webassemblyjs/ieee754@1.11.0": + version "1.11.0" + resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz#46975d583f9828f5d094ac210e219441c4e6f5cf" + integrity sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA== + dependencies: + "@xtuc/ieee754" "^1.2.0" + "@webassemblyjs/ieee754@1.9.0": version "1.9.0" resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" @@ -7165,6 +7252,13 @@ dependencies: "@xtuc/ieee754" "^1.2.0" +"@webassemblyjs/leb128@1.11.0": + version "1.11.0" + resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.0.tgz#f7353de1df38aa201cba9fb88b43f41f75ff403b" + integrity sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g== + dependencies: + "@xtuc/long" "4.2.2" + "@webassemblyjs/leb128@1.9.0": version "1.9.0" resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" @@ -7172,11 +7266,30 @@ dependencies: "@xtuc/long" "4.2.2" +"@webassemblyjs/utf8@1.11.0": + version "1.11.0" + resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.0.tgz#86e48f959cf49e0e5091f069a709b862f5a2cadf" + integrity sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw== + "@webassemblyjs/utf8@1.9.0": version "1.9.0" resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== +"@webassemblyjs/wasm-edit@1.11.0": + version "1.11.0" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz#ee4a5c9f677046a210542ae63897094c2027cb78" + integrity sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ== + dependencies: + "@webassemblyjs/ast" "1.11.0" + "@webassemblyjs/helper-buffer" "1.11.0" + "@webassemblyjs/helper-wasm-bytecode" "1.11.0" + "@webassemblyjs/helper-wasm-section" "1.11.0" + "@webassemblyjs/wasm-gen" "1.11.0" + "@webassemblyjs/wasm-opt" "1.11.0" + "@webassemblyjs/wasm-parser" "1.11.0" + "@webassemblyjs/wast-printer" "1.11.0" + "@webassemblyjs/wasm-edit@1.9.0": version "1.9.0" resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" @@ -7191,6 +7304,17 @@ "@webassemblyjs/wasm-parser" "1.9.0" "@webassemblyjs/wast-printer" "1.9.0" +"@webassemblyjs/wasm-gen@1.11.0": + version "1.11.0" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz#3cdb35e70082d42a35166988dda64f24ceb97abe" + integrity sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ== + dependencies: + "@webassemblyjs/ast" "1.11.0" + "@webassemblyjs/helper-wasm-bytecode" "1.11.0" + "@webassemblyjs/ieee754" "1.11.0" + "@webassemblyjs/leb128" "1.11.0" + "@webassemblyjs/utf8" "1.11.0" + "@webassemblyjs/wasm-gen@1.9.0": version "1.9.0" resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" @@ -7202,6 +7326,16 @@ "@webassemblyjs/leb128" "1.9.0" "@webassemblyjs/utf8" "1.9.0" +"@webassemblyjs/wasm-opt@1.11.0": + version "1.11.0" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz#1638ae188137f4bb031f568a413cd24d32f92978" + integrity sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg== + dependencies: + "@webassemblyjs/ast" "1.11.0" + "@webassemblyjs/helper-buffer" "1.11.0" + "@webassemblyjs/wasm-gen" "1.11.0" + "@webassemblyjs/wasm-parser" "1.11.0" + "@webassemblyjs/wasm-opt@1.9.0": version "1.9.0" resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" @@ -7212,6 +7346,18 @@ "@webassemblyjs/wasm-gen" "1.9.0" "@webassemblyjs/wasm-parser" "1.9.0" +"@webassemblyjs/wasm-parser@1.11.0": + version "1.11.0" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz#3e680b8830d5b13d1ec86cc42f38f3d4a7700754" + integrity sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw== + dependencies: + "@webassemblyjs/ast" "1.11.0" + "@webassemblyjs/helper-api-error" "1.11.0" + "@webassemblyjs/helper-wasm-bytecode" "1.11.0" + "@webassemblyjs/ieee754" "1.11.0" + "@webassemblyjs/leb128" "1.11.0" + "@webassemblyjs/utf8" "1.11.0" + "@webassemblyjs/wasm-parser@1.9.0": version "1.9.0" resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" @@ -7236,6 +7382,14 @@ "@webassemblyjs/helper-fsm" "1.9.0" "@xtuc/long" "4.2.2" +"@webassemblyjs/wast-printer@1.11.0": + version "1.11.0" + resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz#680d1f6a5365d6d401974a8e949e05474e1fab7e" + integrity sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ== + dependencies: + "@webassemblyjs/ast" "1.11.0" + "@xtuc/long" "4.2.2" + "@webassemblyjs/wast-printer@1.9.0": version "1.9.0" resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" @@ -7368,6 +7522,11 @@ acorn@^7.1.1, acorn@^7.4.0: resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== +acorn@^8.0.4: + version "8.1.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.1.1.tgz#fb0026885b9ac9f48bac1e185e4af472971149ff" + integrity sha512-xYiIVjNuqtKXMxlRMDc6mZUhXehod4a3gbZ1qRlM7icK4EbxUFNLhWoPblCvFtB2Y9CIqHP3CF/rdxLItaQv8g== + add-stream@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" @@ -9026,7 +9185,7 @@ browserslist@4.14.2: escalade "^3.0.2" node-releases "^1.1.61" -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.16.6: +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.6: version "4.16.6" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2" integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== @@ -11265,7 +11424,7 @@ debug@4.3.1: dependencies: ms "2.1.2" -debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6: +debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.6: version "3.2.6" resolved "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== @@ -12112,6 +12271,14 @@ enhanced-resolve@^4.0.0, enhanced-resolve@^4.5.0: memory-fs "^0.5.0" tapable "^1.0.0" +enhanced-resolve@^5.7.0: + version "5.7.0" + resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz#525c5d856680fbd5052de453ac83e32049958b5c" + integrity sha512-6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + enquirer@^2.3.0, enquirer@^2.3.5: version "2.3.6" resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" @@ -12220,6 +12387,11 @@ es-get-iterator@^1.0.2: is-string "^1.0.5" isarray "^2.0.5" +es-module-lexer@^0.4.0: + version "0.4.1" + resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.4.1.tgz#dda8c6a14d8f340a24e34331e0fab0cb50438e0e" + integrity sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA== + es-to-primitive@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" @@ -12685,7 +12857,7 @@ events@3.1.0: resolved "https://registry.npmjs.org/events/-/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59" integrity sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg== -events@^3.0.0, events@^3.3.0: +events@^3.0.0, events@^3.2.0, events@^3.3.0: version "3.3.0" resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== @@ -13103,14 +13275,7 @@ fault@^1.0.0: dependencies: format "^0.2.0" -faye-websocket@^0.10.0: - version "0.10.0" - resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" - integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= - dependencies: - websocket-driver ">=0.5.1" - -faye-websocket@~0.11.1: +faye-websocket@^0.11.3: version "0.11.3" resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== @@ -14000,6 +14165,11 @@ glob-to-regexp@^0.3.0: resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + glob@3.2.11: version "3.2.11" resolved "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz#4a973f635b9190f715d10987d5c00fd2815ebe3d" @@ -14913,6 +15083,11 @@ http-errors@~1.6.2: resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= +http-parser-js@>=0.5.1: + version "0.5.3" + resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" + integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== + http-proxy-agent@^4.0.0, http-proxy-agent@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" @@ -14933,9 +15108,9 @@ http-proxy-middleware@0.19.1: micromatch "^3.1.10" http-proxy-middleware@^1.0.0: - version "1.3.1" - resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz#43700d6d9eecb7419bf086a128d0f7205d9eb665" - integrity sha512-13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg== + version "1.1.1" + resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.1.1.tgz#48900a68cd9d388c735d1dd97302c919b7e94a13" + integrity sha512-FIDg9zPvOwMhQ3XKB2+vdxK6WWbVAH7s5QpqQCif7a1TNL76GNAATWA1sy6q2gSfss8UJ/Nwza3N6QnFkKclpA== dependencies: "@types/http-proxy" "^1.17.5" http-proxy "^1.18.1" @@ -16972,7 +17147,7 @@ json2xml@^0.1.3: resolved "https://registry.npmjs.org/json2xml/-/json2xml-0.1.3.tgz#9ae7c220bedd7c66a668e26f7ac182f6704eca21" integrity sha1-mufCIL7dfGamaOJvesGC9nBOyiE= -json3@^3.3.2: +json3@^3.3.3: version "3.3.3" resolved "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== @@ -17658,6 +17833,11 @@ loader-runner@^2.4.0: resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== +loader-runner@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" + integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== + loader-utils@1.2.3: version "1.2.3" resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" @@ -19132,6 +19312,11 @@ neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1: resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + nested-error-stacks@^2.0.0, nested-error-stacks@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz#0fbdcf3e13fe4994781280524f8b96b0cdff9c61" @@ -23226,7 +23411,26 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" -rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.5.3, rxjs@^6.5.5, rxjs@^6.6.0, rxjs@^6.6.3, rxjs@^6.6.6: +run-script-webpack-plugin@^0.0.11: + version "0.0.11" + resolved "https://registry.npmjs.org/run-script-webpack-plugin/-/run-script-webpack-plugin-0.0.11.tgz#04c510bed06b907fa2285e75feece71a25691171" + integrity sha512-QmuBhiqBPmhQLpO5vMBHVTAGyoPBnrCM5gQ3IzgieiImBXiBbXcIv4kysCT1gilFNFxQk22oKQfiIhWbT/zXCw== + +rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.5.3, rxjs@^6.5.5, rxjs@^6.6.0: + version "6.6.2" + resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz#8096a7ac03f2cc4fe5860ef6e572810d9e01c0d2" + integrity sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg== + dependencies: + tslib "^1.9.0" + +rxjs@^6.6.3: + version "6.6.6" + resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.6.6.tgz#14d8417aa5a07c5e633995b525e1e3c0dec03b70" + integrity sha512-/oTwee4N4iWzAMAL9xdGKjkEHmIwupR3oXbQjCKywF1BeFohswF3vZdogbmEF6pZkOsXTzWkrZszrWpQTByYVg== + dependencies: + tslib "^1.9.0" + +rxjs@^6.6.6: version "6.6.7" resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== @@ -23385,10 +23589,10 @@ select@^1.1.2: resolved "https://registry.npmjs.org/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= -selfsigned@^1.10.7: - version "1.10.11" - resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz#24929cd906fe0f44b6d01fb23999a739537acbe9" - integrity sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA== +selfsigned@^1.10.7, selfsigned@^1.10.8: + version "1.10.8" + resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz#0d17208b7d12c33f8eac85c41835f27fc3d81a30" + integrity sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w== dependencies: node-forge "^0.10.0" @@ -23493,6 +23697,13 @@ serialize-javascript@^4.0.0: dependencies: randombytes "^2.1.0" +serialize-javascript@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" + integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== + dependencies: + randombytes "^2.1.0" + serve-favicon@^2.5.0: version "2.5.0" resolved "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz#935d240cdfe0f5805307fdfe967d88942a2cbcf0" @@ -23817,26 +24028,26 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -sockjs-client@1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5" - integrity sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g== +sockjs-client@^1.5.0: + version "1.5.1" + resolved "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.1.tgz#256908f6d5adfb94dabbdbd02c66362cca0f9ea6" + integrity sha512-VnVAb663fosipI/m6pqRXakEOw7nvd7TUgdr3PlR/8V2I95QIdwT8L4nMxhyU8SmDBHYXU1TOElaKOmKLfYzeQ== dependencies: - debug "^3.2.5" + debug "^3.2.6" eventsource "^1.0.7" - faye-websocket "~0.11.1" - inherits "^2.0.3" - json3 "^3.3.2" - url-parse "^1.4.3" + faye-websocket "^0.11.3" + inherits "^2.0.4" + json3 "^3.3.3" + url-parse "^1.5.1" -sockjs@0.3.20: - version "0.3.20" - resolved "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz#b26a283ec562ef8b2687b44033a4eeceac75d855" - integrity sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA== +sockjs@^0.3.21: + version "0.3.21" + resolved "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz#b34ffb98e796930b60a0cfa11904d6a339a7d417" + integrity sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw== dependencies: - faye-websocket "^0.10.0" + faye-websocket "^0.11.3" uuid "^3.4.0" - websocket-driver "0.6.5" + websocket-driver "^0.7.4" socks-proxy-agent@^5.0.0: version "5.0.0" @@ -23876,7 +24087,7 @@ sort-keys@^4.0.0: dependencies: is-plain-obj "^2.0.0" -source-list-map@^2.0.0: +source-list-map@^2.0.0, source-list-map@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== @@ -23905,7 +24116,7 @@ source-map-resolve@^0.6.0: atob "^2.1.2" decode-uri-component "^0.2.0" -source-map-support@^0.5.16, source-map-support@^0.5.17, source-map-support@^0.5.6, source-map-support@~0.5.12: +source-map-support@^0.5.16, source-map-support@^0.5.17, source-map-support@^0.5.6, source-map-support@~0.5.12, source-map-support@~0.5.19: version "0.5.19" resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== @@ -23933,7 +24144,7 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@^0.7.3: +source-map@^0.7.3, source-map@~0.7.2: version "0.7.3" resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== @@ -24206,11 +24417,6 @@ start-server-and-test@^1.10.11: ps-tree "1.2.0" wait-on "6.0.0" -start-server-webpack-plugin@^2.2.5: - version "2.2.5" - resolved "https://registry.npmjs.org/start-server-webpack-plugin/-/start-server-webpack-plugin-2.2.5.tgz#4a2838759b0f36acd11b0b2f5f196f289ae29d31" - integrity sha512-DRCkciwCJoCFZ+wt3wWMkR1M2mpVhJbUKFXqhK3FWyIUKYb42NnocH5sMwqgo+nPNHupqNwK/v8lgfBbr2NKdg== - static-extend@^0.1.1: version "0.1.2" resolved "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" @@ -24856,6 +25062,11 @@ tapable@^1.0.0, tapable@^1.1.3: resolved "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== +tapable@^2.1.1, tapable@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b" + integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw== + tar-fs@^2.0.0, tar-fs@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" @@ -25033,6 +25244,18 @@ terser-webpack-plugin@^3.0.0: terser "^4.8.0" webpack-sources "^1.4.3" +terser-webpack-plugin@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz#7effadee06f7ecfa093dbbd3e9ab23f5f3ed8673" + integrity sha512-5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q== + dependencies: + jest-worker "^26.6.2" + p-limit "^3.1.0" + schema-utils "^3.0.0" + serialize-javascript "^5.0.1" + source-map "^0.6.1" + terser "^5.5.1" + terser@^4.1.2, terser@^4.6.3, terser@^4.8.0: version "4.8.0" resolved "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" @@ -25042,6 +25265,15 @@ terser@^4.1.2, terser@^4.6.3, terser@^4.8.0: source-map "~0.6.1" source-map-support "~0.5.12" +terser@^5.5.1: + version "5.6.1" + resolved "https://registry.npmjs.org/terser/-/terser-5.6.1.tgz#a48eeac5300c0a09b36854bf90d9c26fb201973c" + integrity sha512-yv9YLFQQ+3ZqgWCUk+pvNJwgUTdlIxUk1WTN+RnaFJe2L7ipG2csPT0ra2XRm7Cs8cxN7QXmK1rFzEwYEQkzXw== + dependencies: + commander "^2.20.0" + source-map "~0.7.2" + source-map-support "~0.5.19" + test-exclude@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" @@ -26361,6 +26593,14 @@ watchpack@^1.7.4: chokidar "^3.4.1" watchpack-chokidar2 "^2.0.0" +watchpack@^2.0.0: + version "2.1.1" + resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz#e99630550fca07df9f90a06056987baa40a689c7" + integrity sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + wbuf@^1.1.0, wbuf@^1.7.3: version "1.7.3" resolved "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" @@ -26401,10 +26641,10 @@ webpack-dev-middleware@^3.7.0, webpack-dev-middleware@^3.7.2: range-parser "^1.2.1" webpack-log "^2.0.0" -webpack-dev-server@3.11.0: - version "3.11.0" - resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz#8f154a3bce1bcfd1cc618ef4e703278855e7ff8c" - integrity sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg== +webpack-dev-server@^3.11.2: + version "3.11.2" + resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz#695ebced76a4929f0d5de7fd73fafe185fe33708" + integrity sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ== dependencies: ansi-html "0.0.7" bonjour "^3.5.0" @@ -26426,11 +26666,11 @@ webpack-dev-server@3.11.0: p-retry "^3.0.1" portfinder "^1.0.26" schema-utils "^1.0.0" - selfsigned "^1.10.7" + selfsigned "^1.10.8" semver "^6.3.0" serve-index "^1.9.1" - sockjs "0.3.20" - sockjs-client "1.4.0" + sockjs "^0.3.21" + sockjs-client "^1.5.0" spdy "^4.0.2" strip-ansi "^3.0.1" supports-color "^6.1.0" @@ -26476,6 +26716,14 @@ webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack- source-list-map "^2.0.0" source-map "~0.6.1" +webpack-sources@^2.1.1: + version "2.2.0" + resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.2.0.tgz#058926f39e3d443193b6c31547229806ffd02bac" + integrity sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w== + dependencies: + source-list-map "^2.0.1" + source-map "^0.6.1" + webpack-virtual-modules@^0.2.2: version "0.2.2" resolved "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.2.2.tgz#20863dc3cb6bb2104729fff951fbe14b18bd0299" @@ -26483,10 +26731,10 @@ webpack-virtual-modules@^0.2.2: dependencies: debug "^3.0.0" -webpack@^4.41.6, webpack@^4.44.2: - version "4.46.0" - resolved "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" - integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q== +webpack@^4.44.2: + version "4.44.2" + resolved "https://registry.npmjs.org/webpack/-/webpack-4.44.2.tgz#6bfe2b0af055c8b2d1e90ed2cd9363f841266b72" + integrity sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q== dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-module-context" "1.9.0" @@ -26496,7 +26744,7 @@ webpack@^4.41.6, webpack@^4.44.2: ajv "^6.10.2" ajv-keywords "^3.4.1" chrome-trace-event "^1.0.2" - enhanced-resolve "^4.5.0" + enhanced-resolve "^4.3.0" eslint-scope "^4.0.3" json-parse-better-errors "^1.0.2" loader-runner "^2.4.0" @@ -26512,12 +26760,34 @@ webpack@^4.41.6, webpack@^4.44.2: watchpack "^1.7.4" webpack-sources "^1.4.1" -websocket-driver@0.6.5: - version "0.6.5" - resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" - integrity sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY= +webpack@^5.0.0: + version "5.31.2" + resolved "https://registry.npmjs.org/webpack/-/webpack-5.31.2.tgz#40d9b9d15b7d76af73d3f1cae895b82613a544d6" + integrity sha512-0bCQe4ybo7T5Z0SC5axnIAH+1WuIdV4FwLYkaAlLtvfBhIx8bPS48WHTfiRZS1VM+pSiYt7e/rgLs3gLrH82lQ== dependencies: - websocket-extensions ">=0.1.1" + "@types/eslint-scope" "^3.7.0" + "@types/estree" "^0.0.46" + "@webassemblyjs/ast" "1.11.0" + "@webassemblyjs/wasm-edit" "1.11.0" + "@webassemblyjs/wasm-parser" "1.11.0" + acorn "^8.0.4" + browserslist "^4.14.5" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.7.0" + es-module-lexer "^0.4.0" + eslint-scope "^5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.4" + json-parse-better-errors "^1.0.2" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.0.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.1.1" + watchpack "^2.0.0" + webpack-sources "^2.1.1" websocket-driver@>=0.5.1: version "0.7.3" @@ -26528,6 +26798,15 @@ websocket-driver@>=0.5.1: safe-buffer ">=5.1.0" websocket-extensions ">=0.1.1" +websocket-driver@^0.7.4: + version "0.7.4" + resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + websocket-extensions@>=0.1.1: version "0.1.4" resolved "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" From 4cc321812beb1ef0e8a1083c7f8ef256ab3d7f98 Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 13 Apr 2021 14:22:44 +0200 Subject: [PATCH 18/64] chore: fixing bundler Signed-off-by: blam --- packages/cli/src/lib/bundler/bundle.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/cli/src/lib/bundler/bundle.ts b/packages/cli/src/lib/bundler/bundle.ts index 33e8eab8a6..082b1247ab 100644 --- a/packages/cli/src/lib/bundler/bundle.ts +++ b/packages/cli/src/lib/bundler/bundle.ts @@ -69,6 +69,10 @@ export async function buildBundle(options: BuildOptions) { throw new Error(`Failed to compile.\n${error.message || error}`); }); + if (!stats) { + throw new Error('No stats returned'); + } + if (statsJsonEnabled) { // No @types/bfj await require('bfj').write( @@ -95,6 +99,8 @@ async function build(compiler: webpack.Compiler, isCi: boolean) { const { errors } = formatWebpackMessages({ errors: [err.message], warnings: new Array(), + _showErrors: true, + _showWarnings: true, }); throw new Error(errors[0]); @@ -108,6 +114,9 @@ async function build(compiler: webpack.Compiler, isCi: boolean) { }, ); + if (!stats) { + throw new Error('No stats provided'); + } const { errors, warnings } = formatWebpackMessages( stats.toJson({ all: false, warnings: true, errors: true }), ); From 1981ce2e25f22c668ec639a907cb48b008d09046 Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 13 Apr 2021 14:28:37 +0200 Subject: [PATCH 19/64] chore: fixing bundler config possibly Signed-off-by: blam --- packages/cli/src/lib/bundler/config.ts | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/packages/cli/src/lib/bundler/config.ts b/packages/cli/src/lib/bundler/config.ts index 8ef802dd14..9cfc0e9ed5 100644 --- a/packages/cli/src/lib/bundler/config.ts +++ b/packages/cli/src/lib/bundler/config.ts @@ -156,16 +156,6 @@ export async function createConfig( return { mode: isDev ? 'development' : 'production', profile: false, - node: { - module: 'empty', - dgram: 'empty', - dns: 'mock', - fs: 'empty', - http2: 'empty', - net: 'empty', - tls: 'empty', - child_process: 'empty', - }, optimization: optimization(options), bail: false, performance: { @@ -182,7 +172,7 @@ export async function createConfig( new ModuleScopePlugin( [paths.targetSrc, paths.targetDev], [paths.targetPackageJson], - ), + ) as any, ], alias: { 'react-dom': '@hot-loader/react-dom', @@ -237,7 +227,7 @@ export async function createBackendConfig( ? { watch: true, watchOptions: { - ignored: [/node_modules\/(?!\@backstage)/], + ignored: /node_modules\/(?!\@backstage)/, }, } : {}), @@ -246,7 +236,7 @@ export async function createBackendConfig( modulesDir: paths.rootNodeModules, additionalModuleDirs: moduleDirs, allowlist: ['webpack/hot/poll?100', ...localPackageNames], - }), + }) as any, ], target: 'node' as const, node: { @@ -274,7 +264,7 @@ export async function createBackendConfig( new ModuleScopePlugin( [paths.targetSrc, paths.targetDev], [paths.targetPackageJson], - ), + ) as any, ], alias: { 'react-dom': '@hot-loader/react-dom', @@ -346,7 +336,7 @@ function nodeExternalsWithResolve( }, }); - return (context: string, request: string, callback: webpack.Externa) => { + return (context: string, request: string, callback: any) => { currentContext = context; return externals(context, request, callback); }; From 10eb151a368dfaa52c07ca4540afa42fa5f8c3c5 Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 13 Apr 2021 14:51:34 +0200 Subject: [PATCH 20/64] chore: updated some more things to get webpack working Signed-off-by: blam --- .../src/lib/bundler/LinkedPackageResolvePlugin.ts | 4 ++-- packages/cli/src/lib/bundler/backend.ts | 2 +- packages/cli/src/lib/bundler/config.ts | 14 ++++++++++++-- packages/cli/src/lib/bundler/optimization.ts | 4 ++-- packages/cli/src/lib/bundler/server.ts | 4 ++-- packages/cli/src/lib/bundler/transforms.ts | 8 ++++---- 6 files changed, 23 insertions(+), 13 deletions(-) diff --git a/packages/cli/src/lib/bundler/LinkedPackageResolvePlugin.ts b/packages/cli/src/lib/bundler/LinkedPackageResolvePlugin.ts index aa6a6b4e2e..91615eddee 100644 --- a/packages/cli/src/lib/bundler/LinkedPackageResolvePlugin.ts +++ b/packages/cli/src/lib/bundler/LinkedPackageResolvePlugin.ts @@ -15,14 +15,14 @@ */ import { resolve as resolvePath } from 'path'; -import { ResolvePlugin } from 'webpack'; +import { WebpackPluginInstance } from 'webpack'; import { isChildPath } from '@backstage/cli-common'; import { LernaPackage } from './types'; // Enables proper resolution of packages when linking in external packages. // Without this the packages would depend on dependencies in the node_modules // of the external packages themselves, leading to module duplication -export class LinkedPackageResolvePlugin implements ResolvePlugin { +export class LinkedPackageResolvePlugin implements WebpackPluginInstance { constructor( private readonly targetModules: string, private readonly packages: LernaPackage[], diff --git a/packages/cli/src/lib/bundler/backend.ts b/packages/cli/src/lib/bundler/backend.ts index bddeac0de3..41ad76d2e5 100644 --- a/packages/cli/src/lib/bundler/backend.ts +++ b/packages/cli/src/lib/bundler/backend.ts @@ -32,7 +32,7 @@ export async function serveBackend(options: BackendServeOptions) { { poll: true, }, - (err: Error) => { + (err: Error | undefined) => { if (err) { console.error(err); } else console.log('Build succeeded'); diff --git a/packages/cli/src/lib/bundler/config.ts b/packages/cli/src/lib/bundler/config.ts index 9cfc0e9ed5..615a15d8b6 100644 --- a/packages/cli/src/lib/bundler/config.ts +++ b/packages/cli/src/lib/bundler/config.ts @@ -161,12 +161,22 @@ export async function createConfig( performance: { hints: false, // we check the gzip size instead }, - devtool: isDev ? 'cheap-module-eval-source-map' : 'source-map', + devtool: isDev ? 'eval-cheap-module-source-map' : 'source-map', context: paths.targetPath, entry: [require.resolve('react-hot-loader/patch'), paths.targetEntry], resolve: { extensions: ['.ts', '.tsx', '.mjs', '.js', '.jsx'], mainFields: ['browser', 'module', 'main'], + fallback: { + module: false, + dgram: false, + dns: false, + fs: false, + http2: false, + net: false, + tls: false, + child_process: false, + }, plugins: [ new LinkedPackageResolvePlugin(paths.rootNodeModules, externalPkgs), new ModuleScopePlugin( @@ -249,7 +259,7 @@ export async function createBackendConfig( performance: { hints: false, // we check the gzip size instead }, - devtool: isDev ? 'cheap-module-eval-source-map' : 'source-map', + devtool: isDev ? 'eval-cheap-module-source-map' : 'source-map', context: paths.targetPath, entry: [ 'webpack/hot/poll?100', diff --git a/packages/cli/src/lib/bundler/optimization.ts b/packages/cli/src/lib/bundler/optimization.ts index e97b2ae868..f42018e522 100644 --- a/packages/cli/src/lib/bundler/optimization.ts +++ b/packages/cli/src/lib/bundler/optimization.ts @@ -14,14 +14,14 @@ * limitations under the License. */ -import { Options } from 'webpack'; +import { WebpackOptionsNormalized } from 'webpack'; import TerserPlugin from 'terser-webpack-plugin'; import { BundlingOptions } from './types'; import { isParallelDefault } from '../parallel'; export const optimization = ( options: BundlingOptions, -): Options.Optimization => { +): WebpackOptionsNormalized['optimization'] => { const { isDev } = options; return { diff --git a/packages/cli/src/lib/bundler/server.ts b/packages/cli/src/lib/bundler/server.ts index 088128c805..d39c77bfcd 100644 --- a/packages/cli/src/lib/bundler/server.ts +++ b/packages/cli/src/lib/bundler/server.ts @@ -45,8 +45,8 @@ export async function serveBundle(options: ServeOptions) { const server = new WebpackDevServer(compiler, { hot: !process.env.CI, contentBase: paths.targetPublic, - contentBasePublicPath: config.output?.publicPath, - publicPath: config.output?.publicPath, + contentBasePublicPath: config.output?.publicPath as string, + publicPath: config.output?.publicPath as string, historyApiFallback: { // Paths with dots should still use the history fallback. // See https://github.com/facebookincubator/create-react-app/issues/387. diff --git a/packages/cli/src/lib/bundler/transforms.ts b/packages/cli/src/lib/bundler/transforms.ts index 6eb4920326..41ca6b4e2e 100644 --- a/packages/cli/src/lib/bundler/transforms.ts +++ b/packages/cli/src/lib/bundler/transforms.ts @@ -14,13 +14,13 @@ * limitations under the License. */ -import webpack, { Module, Plugin } from 'webpack'; +import webpack, { ModuleOptions, WebpackPluginInstance } from 'webpack'; import MiniCssExtractPlugin from 'mini-css-extract-plugin'; import { svgrTemplate } from '../svgrTemplate'; type Transforms = { - loaders: Module['rules']; - plugins: Plugin[]; + loaders: ModuleOptions['rules']; + plugins: WebpackPluginInstance[]; }; type TransformOptions = { @@ -105,7 +105,7 @@ export const transforms = (options: TransformOptions): Transforms => { }, ]; - const plugins = new Array(); + const plugins = new Array(); if (isDev) { plugins.push(new webpack.HotModuleReplacementPlugin()); From fca8b49c39a81eea9dec95f507cb5cd7b9d4ba65 Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 13 Apr 2021 15:25:14 +0200 Subject: [PATCH 21/64] chore: making some more progress! Signed-off-by: blam --- packages/cli/package.json | 1 + packages/cli/src/lib/bundler/config.ts | 14 +++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index f6c4dce9d6..6b43391c10 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -88,6 +88,7 @@ "mini-css-extract-plugin": "^0.9.0", "ora": "^5.3.0", "postcss": "^8.1.0", + "process": "^0.11.10", "raw-loader": "^4.0.1", "react": "^16.0.0", "react-dev-utils": "^11.0.4", diff --git a/packages/cli/src/lib/bundler/config.ts b/packages/cli/src/lib/bundler/config.ts index 615a15d8b6..35d4073a17 100644 --- a/packages/cli/src/lib/bundler/config.ts +++ b/packages/cli/src/lib/bundler/config.ts @@ -20,7 +20,7 @@ import ForkTsCheckerWebpackPlugin from 'fork-ts-checker-webpack-plugin'; import HtmlWebpackPlugin from 'html-webpack-plugin'; import ModuleScopePlugin from 'react-dev-utils/ModuleScopePlugin'; import { RunScriptWebpackPlugin } from 'run-script-webpack-plugin'; -import webpack from 'webpack'; +import webpack, { ProvidePlugin } from 'webpack'; import nodeExternals from 'webpack-node-externals'; import { isChildPath } from '@backstage/cli-common'; import { optimization } from './optimization'; @@ -114,6 +114,12 @@ export async function createConfig( ); } + plugins.push( + new ProvidePlugin({ + process: 'process/browser', + }), + ); + plugins.push( new webpack.EnvironmentPlugin({ APP_CONFIG: options.frontendAppConfigs, @@ -176,6 +182,12 @@ export async function createConfig( net: false, tls: false, child_process: false, + + /* new ignores */ + path: false, + https: false, + http: false, + util: false, }, plugins: [ new LinkedPackageResolvePlugin(paths.rootNodeModules, externalPkgs), From f18a2f51657bd08fab75d7e1cab03c604d0cba6f Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 13 Apr 2021 15:40:37 +0200 Subject: [PATCH 22/64] Fixing some issues with webpack 5 Signed-off-by: blam --- packages/cli/package.json | 1 + packages/cli/src/lib/bundler/config.ts | 2 +- packages/cli/src/lib/bundler/transforms.ts | 7 +++ yarn.lock | 57 +++++++++++++++++++++- 4 files changed, 64 insertions(+), 3 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index 6b43391c10..39c4484a1b 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -110,6 +110,7 @@ "ts-loader": "^8.0.17", "typescript": "^4.0.3", "url-loader": "^4.1.0", + "util": "^0.12.3", "webpack": "^5.0.0", "webpack-dev-server": "^3.11.2", "webpack-node-externals": "^3.0.0", diff --git a/packages/cli/src/lib/bundler/config.ts b/packages/cli/src/lib/bundler/config.ts index 35d4073a17..39beb730bf 100644 --- a/packages/cli/src/lib/bundler/config.ts +++ b/packages/cli/src/lib/bundler/config.ts @@ -187,7 +187,7 @@ export async function createConfig( path: false, https: false, http: false, - util: false, + util: require.resolve('util/'), }, plugins: [ new LinkedPackageResolvePlugin(paths.rootNodeModules, externalPkgs), diff --git a/packages/cli/src/lib/bundler/transforms.ts b/packages/cli/src/lib/bundler/transforms.ts index 41ca6b4e2e..c2b1f3ecd9 100644 --- a/packages/cli/src/lib/bundler/transforms.ts +++ b/packages/cli/src/lib/bundler/transforms.ts @@ -51,6 +51,13 @@ export const transforms = (options: TransformOptions): Transforms => { production: !isDev, }, }, + + { + test: /\.m?js/, + resolve: { + fullySpecified: false, + }, + }, { test: [/\.icon\.svg$/], use: [ diff --git a/yarn.lock b/yarn.lock index dcee3dd84f..9df3260e6d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8060,6 +8060,11 @@ array-equal@^1.0.0: resolved "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= +array-filter@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz#baf79e62e6ef4c2a4c0b831232daffec251f9d83" + integrity sha1-uveeYubvTCpMC4MSMtr/7CUfnYM= + array-find-index@^1.0.1: version "1.0.2" resolved "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" @@ -8291,6 +8296,13 @@ autoprefixer@^9.7.2: postcss "^7.0.32" postcss-value-parser "^4.1.0" +available-typed-arrays@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz#6b098ca9d8039079ee3f77f7b783c4480ba513f5" + integrity sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ== + dependencies: + array-filter "^1.0.0" + aws-sdk-mock@^5.2.1: version "5.2.1" resolved "https://registry.npmjs.org/aws-sdk-mock/-/aws-sdk-mock-5.2.1.tgz#126d4d5362c96b7d1d0bd87708a99d626c19ffd4" @@ -12262,7 +12274,7 @@ endent@^2.0.1: fast-json-parse "^1.0.3" objectorarray "^1.0.4" -enhanced-resolve@^4.0.0, enhanced-resolve@^4.5.0: +enhanced-resolve@^4.0.0, enhanced-resolve@^4.3.0: version "4.5.0" resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== @@ -13580,7 +13592,7 @@ for-own@^0.1.3: dependencies: for-in "^1.0.1" -foreach@^2.0.4: +foreach@^2.0.4, foreach@^2.0.5: version "2.0.5" resolved "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= @@ -15854,6 +15866,11 @@ is-generator-fn@^2.0.0: resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== +is-generator-function@^1.0.7: + version "1.0.8" + resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.8.tgz#dfb5c2b120e02b0a8d9d2c6806cd5621aa922f7b" + integrity sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ== + is-glob@4.0.1, is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" @@ -16152,6 +16169,17 @@ is-text-path@^1.0.1: dependencies: text-extensions "^1.0.0" +is-typed-array@^1.1.3: + version "1.1.5" + resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz#f32e6e096455e329eb7b423862456aa213f0eb4e" + integrity sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug== + dependencies: + available-typed-arrays "^1.0.2" + call-bind "^1.0.2" + es-abstract "^1.18.0-next.2" + foreach "^2.0.5" + has-symbols "^1.0.1" + is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" @@ -26367,6 +26395,18 @@ util@^0.11.0: dependencies: inherits "2.0.3" +util@^0.12.3: + version "0.12.3" + resolved "https://registry.npmjs.org/util/-/util-0.12.3.tgz#971bb0292d2cc0c892dab7c6a5d37c2bec707888" + integrity sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog== + dependencies: + inherits "^2.0.3" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + is-typed-array "^1.1.3" + safe-buffer "^5.1.2" + which-typed-array "^1.1.2" + utila@^0.4.0, utila@~0.4: version "0.4.0" resolved "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" @@ -26890,6 +26930,19 @@ which-pm@2.0.0: load-yaml-file "^0.2.0" path-exists "^4.0.0" +which-typed-array@^1.1.2: + version "1.1.4" + resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz#8fcb7d3ee5adf2d771066fba7cf37e32fe8711ff" + integrity sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA== + dependencies: + available-typed-arrays "^1.0.2" + call-bind "^1.0.0" + es-abstract "^1.18.0-next.1" + foreach "^2.0.5" + function-bind "^1.1.1" + has-symbols "^1.0.1" + is-typed-array "^1.1.3" + which@1, which@^1.2.9, which@^1.3.1: version "1.3.1" resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" From e1f2688c639991e960d73843449f94e449fda97a Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 13 Apr 2021 15:42:29 +0200 Subject: [PATCH 23/64] chore: remove extraneous lines Signed-off-by: blam --- packages/cli/src/lib/bundler/transforms.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/cli/src/lib/bundler/transforms.ts b/packages/cli/src/lib/bundler/transforms.ts index c2b1f3ecd9..34a441139c 100644 --- a/packages/cli/src/lib/bundler/transforms.ts +++ b/packages/cli/src/lib/bundler/transforms.ts @@ -51,7 +51,6 @@ export const transforms = (options: TransformOptions): Transforms => { production: !isDev, }, }, - { test: /\.m?js/, resolve: { From fcb8cfa7b99b0760f2ad63f480781e8098644a6e Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 15 Apr 2021 09:45:37 +0200 Subject: [PATCH 24/64] chore: fix types for nodeExternals Signed-off-by: blam --- packages/cli/package.json | 1 - packages/cli/src/types.d.ts | 64 +++++++++++++++++++++++++++++++++++++ yarn.lock | 7 ---- 3 files changed, 64 insertions(+), 8 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index 39c4484a1b..495265e72d 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -52,7 +52,6 @@ "@svgr/webpack": "5.5.x", "@types/start-server-webpack-plugin": "^2.2.0", "@types/webpack-env": "^1.15.2", - "@types/webpack-node-externals": "^2.5.0", "@typescript-eslint/eslint-plugin": "^v4.28.3", "@typescript-eslint/parser": "^v4.28.3", "@yarnpkg/lockfile": "^1.1.0", diff --git a/packages/cli/src/types.d.ts b/packages/cli/src/types.d.ts index 9088a86369..04f90e370c 100644 --- a/packages/cli/src/types.d.ts +++ b/packages/cli/src/types.d.ts @@ -31,3 +31,67 @@ declare module '@svgr/rollup' { declare module '@rollup/plugin-yaml'; declare module 'terser-webpack-plugin'; + +declare module 'webpack-node-externals' { + export default function webpackNodeExternals( + options?: webpackNodeExternals.Options, + ): any; + + namespace webpackNodeExternals { + type AllowlistOption = string | RegExp | AllowlistFunctionType; + type ImportTypeCallback = (moduleName: string) => string; + /** a function that accepts the module name and returns whether it should be included */ + type AllowlistFunctionType = (moduleName: string) => boolean; + interface ModulesFromFileType { + exclude?: string | string[]; + include?: string | string[]; + } + + interface Options { + /** + * An array for the externals to allow, so they will be included in the bundle. + * Can accept exact strings ('module_name'), regex patterns (/^module_name/), or a + * function that accepts the module name and returns whether it should be included. + * Important - if you have set aliases in your webpack config with the exact + * same names as modules in node_modules, you need to allowlist them so Webpack will know + * they should be bundled. + * @default [] + */ + allowlist?: AllowlistOption[] | AllowlistOption; + /** + * @default ['.bin'] + */ + binaryDirs?: string[]; + /** + * The method in which unbundled modules will be required in the code. Best to leave as + * 'commonjs' for node modules. + * @default 'commonjs' + */ + importType?: + | 'var' + | 'this' + | 'commonjs' + | 'amd' + | 'umd' + | ImportTypeCallback; + /** + * The folder in which to search for the node modules. + * @default 'node_modules' + */ + modulesDir?: string; + /** + * Additional folders to look for node modules. + */ + additionalModuleDirs?: string[]; + /** + * Read the modules from the package.json file instead of the node_modules folder. + * @default false + */ + modulesFromFile?: boolean | ModulesFromFileType; + /** + * @default false + */ + includeAbsolutePaths?: boolean; + } + } +} diff --git a/yarn.lock b/yarn.lock index 9df3260e6d..27b0576c41 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6969,13 +6969,6 @@ resolved "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.16.0.tgz#8c0a9435dfa7b3b1be76562f3070efb3f92637b4" integrity sha512-Fx+NpfOO0CpeYX2g9bkvX8O5qh9wrU1sOF4g8sft4Mu7z+qfe387YlyY8w8daDyDsKY5vUxM0yxkAYnbkRbZEw== -"@types/webpack-node-externals@^2.5.0": - version "2.5.2" - resolved "https://registry.npmjs.org/@types/webpack-node-externals/-/webpack-node-externals-2.5.2.tgz#d6e0c90147472304b6b5cfcd1bbd7138e6b9eb65" - integrity sha512-MeNdcLW9Wqtj20057ixY35oFl+m59LlyPCi7GbjkJlf2043SJQg8br/5sQDAiSIIBPi7fqdJ+dVwLvhH5NLZtQ== - dependencies: - "@types/webpack" "^4" - "@types/webpack-sources@*": version "0.1.6" resolved "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.6.tgz#3d21dfc2ec0ad0c77758e79362426a9ba7d7cbcb" From 566e492359266c80e569955b2f91b5cbab80400f Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 15 Apr 2021 10:46:17 +0200 Subject: [PATCH 25/64] chore: finally got all the types building Signed-off-by: blam --- packages/cli/package.json | 8 +- packages/cli/src/types.d.ts | 163 +++++++++++++++++++++++++++++++ packages/create-app/package.json | 1 - yarn.lock | 131 ++++--------------------- 4 files changed, 185 insertions(+), 118 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index 495265e72d..4e5037a35f 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -50,7 +50,6 @@ "@svgr/plugin-svgo": "5.4.x", "@svgr/rollup": "5.5.x", "@svgr/webpack": "5.5.x", - "@types/start-server-webpack-plugin": "^2.2.0", "@types/webpack-env": "^1.15.2", "@typescript-eslint/eslint-plugin": "^v4.28.3", "@typescript-eslint/parser": "^v4.28.3", @@ -78,13 +77,13 @@ "fork-ts-checker-webpack-plugin": "^6.2.9", "fs-extra": "9.1.0", "handlebars": "^4.7.3", - "html-webpack-plugin": "^4.3.0", + "html-webpack-plugin": "^5.3.1", "inquirer": "^7.0.4", "jest": "^26.0.1", "jest-css-modules": "^2.1.0", "json-schema": "^0.3.0", "lodash": "^4.17.19", - "mini-css-extract-plugin": "^0.9.0", + "mini-css-extract-plugin": "^1.4.1", "ora": "^5.3.0", "postcss": "^8.1.0", "process": "^0.11.10", @@ -130,13 +129,10 @@ "@types/diff": "^5.0.0", "@types/express": "^4.17.6", "@types/fs-extra": "^9.0.1", - "@types/html-webpack-plugin": "^3.2.2", "@types/http-proxy": "^1.17.4", "@types/inquirer": "^7.3.1", - "@types/mini-css-extract-plugin": "^1.2.2", "@types/mock-fs": "^4.13.0", "@types/node": "^14.14.32", - "@types/react-dev-utils": "^9.0.4", "@types/recursive-readdir": "^2.2.0", "@types/rollup-plugin-peer-deps-external": "^2.2.0", "@types/rollup-plugin-postcss": "^2.0.0", diff --git a/packages/cli/src/types.d.ts b/packages/cli/src/types.d.ts index 04f90e370c..6881ac7746 100644 --- a/packages/cli/src/types.d.ts +++ b/packages/cli/src/types.d.ts @@ -32,6 +32,169 @@ declare module '@rollup/plugin-yaml'; declare module 'terser-webpack-plugin'; +declare module 'react-dev-utils/formatWebpackMessages' { + export default function ( + stats: any, + ): { + errors: string[]; + warnings: string[]; + }; +} + +declare module 'react-dev-utils/openBrowser' { + export default function (url: string): boolean; +} + +declare module 'react-dev-utils/ModuleScopePlugin' { + import webpack = require('webpack'); + + export default class ModuleScopePlugin + implements webpack.WebpackPluginInstance { + constructor( + appSrc: string | ReadonlyArray, + allowedFiles?: ReadonlyArray, + ); + apply: (compiler: webpack.Compiler) => void; + } +} + +declare module 'react-dev-utils/FileSizeReporter' { + import webpack = require('webpack'); + + export interface OpaqueFileSizes { + root: string; + sizes: Record; + } + + /** + * Captures JS and CSS asset sizes inside the passed `buildFolder`. Save the + * result value to compare it after the build. + */ + export function measureFileSizesBeforeBuild( + buildFolder: string, + ): Promise; + + /** + * Prints the JS and CSS asset sizes after the build, and includes a size + * comparison with `previousFileSizes` that were captured earlier using + * `measureFileSizesBeforeBuild()`. `maxBundleGzipSize` and + * `maxChunkGzipSizemay` may optionally be specified to display a warning when + * the main bundle or a chunk exceeds the specified size (in bytes). + */ + export function printFileSizesAfterBuild( + webpackStats: webpack.Stats, + previousFileSizes: OpaqueFileSizes, + buildFolder: string, + maxBundleGzipSize?: number, + maxChunkGzipSize?: number, + ): void; +} + +declare module 'mini-css-extract-plugin' { + import webpack = require('webpack'); + + /** + * Lightweight CSS extraction webpack plugin. + * + * This plugin extracts CSS into separate files. It creates a CSS file per JS file which + * contains CSS. It supports On-Demand-Loading of CSS and SourceMaps. + * + * Configuration Detail: https://github.com/webpack-contrib/mini-css-extract-plugin#configuration + */ + export default class MiniCssExtractPlugin { + /** + * Webpack loader always used at the end of loaders list (ie. array index zero). + */ + static loader: string; + + constructor(options?: MiniCssExtractPlugin.PluginOptions); + + /** + * Apply the plugin + */ + apply(compiler: webpack.Compiler): void; + } + + namespace MiniCssExtractPlugin { + interface PluginOptions { + /** + * Works like [`output.filename`](https://webpack.js.org/configuration/output/#outputfilename). + */ + filename?: Required['output']['filename']; + /** + * Works like [`output.chunkFilename`](https://webpack.js.org/configuration/output/#outputchunkfilename). + */ + chunkFilename?: string; + /** + * For projects where CSS ordering has been mitigated through consistent + * use of scoping or naming conventions, the CSS order warnings can be + * disabled by setting this flag to true for the plugin. + */ + ignoreOrder?: boolean; + /** + * Specify where to insert the link tag. + * + * A string value specifies a DOM query for a parent element to attach to. + * + * A function allows to override default behavior for non-entry CSS chunks. + * This code will run in the browser alongside your application. It is recommend + * to only use ECMA 5 features and syntax. The function won't have access to the + * scope of the webpack configuration module. + * + * @default function() { document.head.appendChild(linkTag); } + */ + insert?: string | ((linkTag: any) => void); + /** + * Specify additional html attributes to add to the link tag. + * + * Note: These are only applied to dynamically loaded css chunks. To modify link + * attributes for entry CSS chunks, please use html-webpack-plugin. + */ + attributes?: Record; + /** + * This option allows loading asynchronous chunks with a custom link type, such as + * ``. + * + * `false` disables the link `type` attribute. + * + * @default 'text/css' + */ + linkType?: string | false | 'text/css'; + } + interface LoaderOptions { + /** + * Overrides [`output.publicPath`](https://webpack.js.org/configuration/output/#outputpublicpath). + * @default output.publicPath + */ + publicPath?: string | ((resourcePath: string, context: string) => string); + /** + * If false, the plugin will extract the CSS but **will not** emit the file + * @default true + */ + emit?: boolean; + /** + * By default, `mini-css-extract-plugin` generates JS modules that use the ES modules syntax. + * There are some cases in which using ES modules is beneficial, + * like in the case of module concatenation and tree shaking. + * @default true + */ + esModule?: boolean; + modules?: { + /** + * Enables/disables ES modules named export for locals. + * + * Names of locals are converted to camelCase. It is not allowed to use + * JavaScript reserved words in CSS class names. Options `esModule` and + * `modules.namedExport` in css-loader and MiniCssExtractPlugin.loader + * must be enabled. + * + * @default false + */ + namedExport?: boolean; + }; + } + } +} declare module 'webpack-node-externals' { export default function webpackNodeExternals( options?: webpackNodeExternals.Options, diff --git a/packages/create-app/package.json b/packages/create-app/package.json index eb2cf6c9b2..130c69603a 100644 --- a/packages/create-app/package.json +++ b/packages/create-app/package.json @@ -39,7 +39,6 @@ "devDependencies": { "@types/fs-extra": "^9.0.1", "@types/inquirer": "^7.3.1", - "@types/react-dev-utils": "^9.0.4", "@types/recursive-readdir": "^2.2.0", "ts-node": "^10.0.0" }, diff --git a/yarn.lock b/yarn.lock index 27b0576c41..92649ca490 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5727,13 +5727,6 @@ dependencies: classnames "*" -"@types/clean-css@*": - version "4.2.1" - resolved "https://registry.npmjs.org/@types/clean-css/-/clean-css-4.2.1.tgz#cb0134241ec5e6ede1b5344bc829668fd9871a8d" - integrity sha512-A1HQhQ0hkvqqByJMgg+Wiv9p9XdoYEzuwm11SVo1mX2/4PSdhjcrUlilJQoqLscIheC51t1D5g+EFWCXZ2VTQQ== - dependencies: - "@types/node" "*" - "@types/codemirror@^0.0.108": version "0.0.108" resolved "https://registry.npmjs.org/@types/codemirror/-/codemirror-0.0.108.tgz#e640422b666bf49251b384c390cdeb2362585bde" @@ -6068,24 +6061,6 @@ resolved "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.0.tgz#551a4589b6ee2cc9c1dff08056128aec29b94880" integrity sha512-iYCgjm1dGPRuo12+BStjd1HiVQqhlRhWDOQigNxn023HcjnhsiFz9pc6CzJj4HwDCSQca9bxTL4PxJDbkdm3PA== -"@types/html-minifier@*": - version "3.5.3" - resolved "https://registry.npmjs.org/@types/html-minifier/-/html-minifier-3.5.3.tgz#5276845138db2cebc54c789e0aaf87621a21e84f" - integrity sha512-j1P/4PcWVVCPEy5lofcHnQ6BtXz9tHGiFPWzqm7TtGuWZEfCHEP446HlkSNc9fQgNJaJZ6ewPtp2aaFla/Uerg== - dependencies: - "@types/clean-css" "*" - "@types/relateurl" "*" - "@types/uglify-js" "*" - -"@types/html-webpack-plugin@*", "@types/html-webpack-plugin@^3.2.2": - version "3.2.5" - resolved "https://registry.npmjs.org/@types/html-webpack-plugin/-/html-webpack-plugin-3.2.5.tgz#58e94c0d57801903b2b77674d2b9ef6c4a65a6db" - integrity sha512-DhC7NTte+Ikw/zxp2w9qjcWtHqpShbUx7ASPUZ00trn1EOftoRtMmy8nS7F/mW8ASTA2JGMFX2bbuqqxiqs6mQ== - dependencies: - "@types/html-minifier" "*" - "@types/tapable" "^1" - "@types/webpack" "^4" - "@types/http-assert@*": version "1.5.1" resolved "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.1.tgz#d775e93630c2469c2f980fc27e3143240335db3b" @@ -6357,13 +6332,6 @@ resolved "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== -"@types/mini-css-extract-plugin@^1.2.2": - version "1.2.2" - resolved "https://registry.npmjs.org/@types/mini-css-extract-plugin/-/mini-css-extract-plugin-1.2.2.tgz#e6031da8d60777b3da3f5b4daf285437d7b6580b" - integrity sha512-EoHBJ4rcrd5j7weAFE4yU1gxedx53EFCWKso03G7DW0h2YvtwjKYz/NnuFHudcQDI1HpTLqoQFTwEgfJxygYCw== - dependencies: - "@types/webpack" "*" - "@types/minimatch@*", "@types/minimatch@^3.0.3": version "3.0.3" resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" @@ -6569,17 +6537,6 @@ "@types/react" "*" "@types/reactcss" "*" -"@types/react-dev-utils@^9.0.4": - version "9.0.6" - resolved "https://registry.npmjs.org/@types/react-dev-utils/-/react-dev-utils-9.0.6.tgz#c5d74358786ecd06caea3bd7b3af3195f53c73e4" - integrity sha512-CtrGzH+tSw4MCAZ92QzchrCq8kES/NUUu1kAXeeDXJyb7hRzucry0sRk/bcSwBR8dJJY7N7oaEDranyyOcX3hQ== - dependencies: - "@types/eslint" "*" - "@types/express" "*" - "@types/html-webpack-plugin" "*" - "@types/webpack" "^4" - "@types/webpack-dev-server" "*" - "@types/react-dom@*": version "17.0.9" resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.9.tgz#441a981da9d7be117042e1a6fd3dac4b30f55add" @@ -6694,11 +6651,6 @@ resolved "https://registry.npmjs.org/@types/regression/-/regression-2.0.0.tgz#0677ea78d7bdb37039c02ebbccf062042f756ae3" integrity sha512-Ch2FD53M1HpFLL6zSTc/sfuyqQcIPy+/PV3xFT6QYtk9EOiMI29XOYmLNxBb1Y0lfMOR/NNa86J1gRc/1jGLyw== -"@types/relateurl@*": - version "0.2.28" - resolved "https://registry.npmjs.org/@types/relateurl/-/relateurl-0.2.28.tgz#6bda7db8653fa62643f5ee69e9f69c11a392e3a6" - integrity sha1-a9p9uGU/piZD9e5p6facEaOS46Y= - "@types/request@^2.47.1", "@types/request@^2.48.1": version "2.48.5" resolved "https://registry.npmjs.org/@types/request/-/request-2.48.5.tgz#019b8536b402069f6d11bee1b2c03e7f232937a0" @@ -6805,13 +6757,6 @@ resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz#7036640b4e21cc2f259ae826ce843d277dad8cff" integrity sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw== -"@types/start-server-webpack-plugin@^2.2.0": - version "2.2.0" - resolved "https://registry.npmjs.org/@types/start-server-webpack-plugin/-/start-server-webpack-plugin-2.2.0.tgz#a7c4595c715eda083d92ca1ea184d97db3d8fc7b" - integrity sha512-TFiZWMPuiMR/utvjk6ENi0HPtQl38HnPMYfJqm04ztpzITHzTCXt7T7LyXnP9eTwg4lLQkmRUaFy04iEyjoJmw== - dependencies: - "@types/webpack" "*" - "@types/stoppable@^1.1.0": version "1.1.0" resolved "https://registry.npmjs.org/@types/stoppable/-/stoppable-1.1.0.tgz#a5fa6a48120b109ca9233eed05c67c50bc4f3b91" @@ -6942,17 +6887,6 @@ resolved "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.0.tgz#215c231dff736d5ba92410e6d602050cce7e273f" integrity sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ== -"@types/webpack-dev-server@*": - version "3.11.4" - resolved "https://registry.npmjs.org/@types/webpack-dev-server/-/webpack-dev-server-3.11.4.tgz#90d47dd660b696d409431ab8c1e9fa3615103a07" - integrity sha512-DCKORHjqNNVuMIDWFrlljftvc9CL0+09p3l7lBpb8dRqgN5SmvkWCY4MPKxoI6wJgdRqohmoNbptkxqSKAzLRg== - dependencies: - "@types/connect-history-api-fallback" "*" - "@types/express" "*" - "@types/serve-static" "*" - "@types/webpack" "^4" - http-proxy-middleware "^1.0.0" - "@types/webpack-dev-server@^3.11.2": version "3.11.3" resolved "https://registry.npmjs.org/@types/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz#237e26d87651cf95490dcd356f568c8c84016177" @@ -6978,7 +6912,7 @@ "@types/source-list-map" "*" source-map "^0.6.1" -"@types/webpack@*", "@types/webpack@^4", "@types/webpack@^4.41.8": +"@types/webpack@^4", "@types/webpack@^4.41.8": version "4.41.27" resolved "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.27.tgz#f47da488c8037e7f1b2dbf2714fbbacb61ec0ffc" integrity sha512-wK/oi5gcHi72VMTbOaQ70VcDxSQ1uX8S2tukBK9ARuGXrYM/+u4ou73roc7trXDNmCxCoerE8zruQqX/wuHszA== @@ -14986,7 +14920,7 @@ html-to-react@^1.3.4: lodash.camelcase "^4.3.0" ramda "^0.26" -html-webpack-plugin@^4.2.1, html-webpack-plugin@^4.3.0: +html-webpack-plugin@^4.2.1: version "4.5.2" resolved "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz#76fc83fa1a0f12dd5f7da0404a54e2699666bc12" integrity sha512-q5oYdzjKUIPQVjOosjgvCHQOv9Ett9CYYHlgvJeXG0qQvdSojnBq4vAdQBwn1+yGveAwHCoe/rMR86ozX3+c2A== @@ -15001,6 +14935,17 @@ html-webpack-plugin@^4.2.1, html-webpack-plugin@^4.3.0: tapable "^1.1.3" util.promisify "1.0.0" +html-webpack-plugin@^5.3.1: + version "5.3.1" + resolved "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.3.1.tgz#8797327548e3de438e3494e0c6d06f181a7f20d1" + integrity sha512-rZsVvPXUYFyME0cuGkyOHfx9hmkFa4pWfxY/mdY38PsBEaVNsRoA+Id+8z6DBDgyv3zaw6XQszdF8HLwfQvcdQ== + dependencies: + "@types/html-minifier-terser" "^5.0.0" + html-minifier-terser "^5.0.1" + lodash "^4.17.20" + pretty-error "^2.1.1" + tapable "^2.0.0" + html2canvas@^1.0.0-rc.5: version "1.0.0-rc.7" resolved "https://registry.npmjs.org/html2canvas/-/html2canvas-1.0.0-rc.7.tgz#70c159ce0e63954a91169531894d08ad5627ac98" @@ -18849,14 +18794,13 @@ min-indent@^1.0.0: resolved "https://registry.npmjs.org/min-indent/-/min-indent-1.0.0.tgz#cfc45c37e9ec0d8f0a0ec3dd4ef7f7c3abe39256" integrity sha1-z8RcN+nsDY8KDsPdTvf3w6vjklY= -mini-css-extract-plugin@^0.9.0: - version "0.9.0" - resolved "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz#47f2cf07aa165ab35733b1fc97d4c46c0564339e" - integrity sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A== +mini-css-extract-plugin@^1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.4.1.tgz#975e27c1d0bd8e052972415f47c79cea5ed37548" + integrity sha512-COAGbpAsU0ioFzj+/RRfO5Qv177L1Z/XAx2EmCF33b8GDDqKygMffBTws2lit8iaPdrbKEY5P+zsseBUCREZWQ== dependencies: - loader-utils "^1.1.0" - normalize-url "1.9.1" - schema-utils "^1.0.0" + loader-utils "^2.0.0" + schema-utils "^3.0.0" webpack-sources "^1.1.0" minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: @@ -19644,16 +19588,6 @@ normalize-range@^0.1.2: resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= -normalize-url@1.9.1: - version "1.9.1" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" - integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= - dependencies: - object-assign "^4.0.1" - prepend-http "^1.0.0" - query-string "^4.1.0" - sort-keys "^1.0.0" - normalize-url@^3.0.0, normalize-url@^3.3.0: version "3.3.0" resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" @@ -21478,11 +21412,6 @@ prelude-ls@~1.1.2: resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -prepend-http@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= - prepend-http@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" @@ -21808,14 +21737,6 @@ qs@~6.5.2: resolved "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== -query-string@^4.1.0: - version "4.3.4" - resolved "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" - integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= - dependencies: - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - query-string@^7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/query-string/-/query-string-7.0.0.tgz#aaad2c8d5c6a6d0c6afada877fecbd56af79e609" @@ -24087,13 +24008,6 @@ socks@^2.3.3: ip "^1.1.5" smart-buffer "^4.1.0" -sort-keys@^1.0.0: - version "1.1.2" - resolved "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" - integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= - dependencies: - is-plain-obj "^1.0.0" - sort-keys@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" @@ -24563,11 +24477,6 @@ strict-event-emitter@^0.2.0: dependencies: events "^3.3.0" -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= - strict-uri-encode@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546" @@ -25083,7 +24992,7 @@ tapable@^1.0.0, tapable@^1.1.3: resolved "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== -tapable@^2.1.1, tapable@^2.2.0: +tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0: version "2.2.0" resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b" integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw== From b207f4f5038c9354bec5bc29ad6d3e1ef9985c67 Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 15 Apr 2021 10:58:33 +0200 Subject: [PATCH 26/64] chore: remove some of the any's Signed-off-by: blam --- packages/cli/src/lib/bundler/config.ts | 4 ++-- packages/cli/src/types.d.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/cli/src/lib/bundler/config.ts b/packages/cli/src/lib/bundler/config.ts index 39beb730bf..88ded22243 100644 --- a/packages/cli/src/lib/bundler/config.ts +++ b/packages/cli/src/lib/bundler/config.ts @@ -194,7 +194,7 @@ export async function createConfig( new ModuleScopePlugin( [paths.targetSrc, paths.targetDev], [paths.targetPackageJson], - ) as any, + ), ], alias: { 'react-dom': '@hot-loader/react-dom', @@ -286,7 +286,7 @@ export async function createBackendConfig( new ModuleScopePlugin( [paths.targetSrc, paths.targetDev], [paths.targetPackageJson], - ) as any, + ), ], alias: { 'react-dom': '@hot-loader/react-dom', diff --git a/packages/cli/src/types.d.ts b/packages/cli/src/types.d.ts index 6881ac7746..2c4d9c46b0 100644 --- a/packages/cli/src/types.d.ts +++ b/packages/cli/src/types.d.ts @@ -54,7 +54,7 @@ declare module 'react-dev-utils/ModuleScopePlugin' { appSrc: string | ReadonlyArray, allowedFiles?: ReadonlyArray, ); - apply: (compiler: webpack.Compiler) => void; + apply: (resolver: any) => void; } } From 66fbcce83c0d31dee3f2f154946c79219012b537 Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 15 Apr 2021 11:14:04 +0200 Subject: [PATCH 27/64] chore: removing the deprecations Signed-off-by: blam --- packages/cli/src/lib/bundler/backend.ts | 19 ++++++------------- packages/cli/src/lib/bundler/config.ts | 9 ++++++--- 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/packages/cli/src/lib/bundler/backend.ts b/packages/cli/src/lib/bundler/backend.ts index 41ad76d2e5..bd4ab42098 100644 --- a/packages/cli/src/lib/bundler/backend.ts +++ b/packages/cli/src/lib/bundler/backend.ts @@ -26,23 +26,16 @@ export async function serveBackend(options: BackendServeOptions) { isDev: true, }); - const compiler = webpack(config); - - const watcher = compiler.watch( - { - poll: true, - }, - (err: Error | undefined) => { - if (err) { - console.error(err); - } else console.log('Build succeeded'); - }, - ); + const compiler = webpack(config, (err: Error | undefined) => { + if (err) { + console.error(err); + } else console.log('Build succeeded'); + }); const waitForExit = async () => { for (const signal of ['SIGINT', 'SIGTERM'] as const) { process.on(signal, () => { - watcher.close(() => console.log('Stopped watcher')); + compiler.close(() => console.log('Stopped watcher')); // exit instead of resolve. The process is shutting down and resolving a promise here logs an error process.exit(); }); diff --git a/packages/cli/src/lib/bundler/config.ts b/packages/cli/src/lib/bundler/config.ts index 88ded22243..6698e8e16d 100644 --- a/packages/cli/src/lib/bundler/config.ts +++ b/packages/cli/src/lib/bundler/config.ts @@ -258,7 +258,7 @@ export async function createBackendConfig( modulesDir: paths.rootNodeModules, additionalModuleDirs: moduleDirs, allowlist: ['webpack/hot/poll?100', ...localPackageNames], - }) as any, + }), ], target: 'node' as const, node: { @@ -358,8 +358,11 @@ function nodeExternalsWithResolve( }, }); - return (context: string, request: string, callback: any) => { - currentContext = context; + return ( + { context, request }: { context?: string; request?: string }, + callback: any, + ) => { + currentContext = context!; return externals(context, request, callback); }; } From 48c1c0d67759a4598cf4cd7346c468df10a1e788 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 15 Apr 2021 12:07:45 +0200 Subject: [PATCH 28/64] cli: workaround for frontend HMR not working Signed-off-by: Patrik Oldsberg --- packages/cli/src/lib/bundler/config.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/cli/src/lib/bundler/config.ts b/packages/cli/src/lib/bundler/config.ts index 6698e8e16d..04a9b5aa6c 100644 --- a/packages/cli/src/lib/bundler/config.ts +++ b/packages/cli/src/lib/bundler/config.ts @@ -167,6 +167,9 @@ export async function createConfig( performance: { hints: false, // we check the gzip size instead }, + // Workaround for hot module reloads not working, will be fixed in webpack-dev-server v4 + // https://github.com/webpack/webpack-dev-server/issues/2758 + target: 'web', devtool: isDev ? 'eval-cheap-module-source-map' : 'source-map', context: paths.targetPath, entry: [require.resolve('react-hot-loader/patch'), paths.targetEntry], From 415bad14cf2710e663b5fb883fb3376bedcc4c12 Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 15 Apr 2021 14:10:55 +0200 Subject: [PATCH 29/64] chore: added a comment for the webpack 5 migration Signed-off-by: blam --- packages/cli/src/lib/bundler/config.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/cli/src/lib/bundler/config.ts b/packages/cli/src/lib/bundler/config.ts index 04a9b5aa6c..8c2b3ce95e 100644 --- a/packages/cli/src/lib/bundler/config.ts +++ b/packages/cli/src/lib/bundler/config.ts @@ -114,6 +114,9 @@ export async function createConfig( ); } + // TODO(blam): process is no longer auto polyfilled by webpack in v5. + // we use the provide plugin to provide this polyfill, but lets look + // to remove this eventually! plugins.push( new ProvidePlugin({ process: 'process/browser', From c4ef9181a4031a58efdc1e72fe6efc7620cbd0a1 Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 15 Apr 2021 14:13:39 +0200 Subject: [PATCH 30/64] changeset: added changeset for webpack 5 Signed-off-by: blam --- .changeset/shaggy-days-peel.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changeset/shaggy-days-peel.md diff --git a/.changeset/shaggy-days-peel.md b/.changeset/shaggy-days-peel.md new file mode 100644 index 0000000000..b35d35f45c --- /dev/null +++ b/.changeset/shaggy-days-peel.md @@ -0,0 +1,6 @@ +--- +'@backstage/cli': patch +'@backstage/create-app': patch +--- + +Migrate to using `webpack@5` 🎉 From 8dfcf8cb55a60c416a7dd591dd12d3bf2c5a3143 Mon Sep 17 00:00:00 2001 From: blam Date: Mon, 7 Jun 2021 13:35:13 +0200 Subject: [PATCH 31/64] chore: making some more progress with webpack 5 Signed-off-by: blam --- packages/cli/package.json | 2 +- packages/cli/src/lib/bundler/server.ts | 17 +- yarn.lock | 382 ++++++++++++------------- 3 files changed, 200 insertions(+), 201 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index 4e5037a35f..236c1019e1 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -110,7 +110,7 @@ "url-loader": "^4.1.0", "util": "^0.12.3", "webpack": "^5.0.0", - "webpack-dev-server": "^3.11.2", + "webpack-dev-server": "4.0.0-beta.3", "webpack-node-externals": "^3.0.0", "yaml": "^1.10.0", "yaml-jest": "^1.0.5", diff --git a/packages/cli/src/lib/bundler/server.ts b/packages/cli/src/lib/bundler/server.ts index d39c77bfcd..7acce7da66 100644 --- a/packages/cli/src/lib/bundler/server.ts +++ b/packages/cli/src/lib/bundler/server.ts @@ -44,22 +44,27 @@ export async function serveBundle(options: ServeOptions) { const server = new WebpackDevServer(compiler, { hot: !process.env.CI, - contentBase: paths.targetPublic, - contentBasePublicPath: config.output?.publicPath as string, - publicPath: config.output?.publicPath as string, + devMiddleware: { + // contentBase: paths.targetPublic, + publicPath: config.output?.publicPath as string, + }, + static: { + publicPath: config.output?.publicPath as string, + directory: paths.targetPublic, + }, historyApiFallback: { // Paths with dots should still use the history fallback. // See https://github.com/facebookincubator/create-react-app/issues/387. disableDotRule: true, }, - clientLogLevel: 'warning', - stats: 'errors-warnings', + // clientLogLevel: 'warning', + // stats: 'errors-warnings', https: url.protocol === 'https:', host, port, proxy: pkg.proxy, // When the dev server is behind a proxy, the host and public hostname differ - allowedHosts: [url.hostname], + // allowedHosts: [url.hostname], }); await new Promise((resolve, reject) => { diff --git a/yarn.lock b/yarn.lock index 92649ca490..db4c2a116e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6675,6 +6675,11 @@ dependencies: "@types/node" "*" +"@types/retry@^0.12.0": + version "0.12.0" + resolved "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" + integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== + "@types/rollup-plugin-peer-deps-external@^2.2.0": version "2.2.0" resolved "https://registry.npmjs.org/@types/rollup-plugin-peer-deps-external/-/rollup-plugin-peer-deps-external-2.2.0.tgz#eae7d8b9d27fa037f5bcaded24e389f85b81973c" @@ -9664,7 +9669,7 @@ chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.2.2, chokidar@^3.3.0, chokidar@^3.3.1, chokidar@^3.4.1, chokidar@^3.4.2, chokidar@^3.5.2: +chokidar@^3.2.2, chokidar@^3.3.0, chokidar@^3.3.1, chokidar@^3.4.1, chokidar@^3.4.2, chokidar@^3.5.1, chokidar@^3.5.2: version "3.5.2" resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== @@ -9848,15 +9853,6 @@ cliui@^3.2.0: strip-ansi "^3.0.1" wrap-ansi "^2.0.0" -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - cliui@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" @@ -11461,13 +11457,12 @@ deepmerge@4.2.2, deepmerge@^4.2.2: resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== -default-gateway@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" - integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== +default-gateway@^6.0.0: + version "6.0.3" + resolved "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" + integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== dependencies: - execa "^1.0.0" - ip-regex "^2.1.0" + execa "^5.0.0" defaults@^1.0.3: version "1.0.3" @@ -11515,19 +11510,6 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" -del@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" - integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== - dependencies: - "@types/glob" "^7.1.1" - globby "^6.1.0" - is-path-cwd "^2.0.0" - is-path-in-cwd "^2.0.0" - p-map "^2.0.0" - pify "^4.0.1" - rimraf "^2.6.3" - del@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/del/-/del-6.0.0.tgz#0b40d0332cea743f1614f818be4feb717714c952" @@ -12801,7 +12783,7 @@ events@^3.0.0, events@^3.2.0, events@^3.3.0: resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -eventsource@^1.0.5, eventsource@^1.0.7: +eventsource@^1.0.5: version "1.0.7" resolved "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== @@ -14246,7 +14228,19 @@ globby@8.0.2: pify "^3.0.0" slash "^1.0.0" -globby@^11.0.0, globby@^11.0.1, globby@^11.0.2, globby@^11.0.3: +globby@^11.0.0, globby@^11.0.1, globby@^11.0.2: + version "11.0.2" + resolved "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz#1af538b766a3b540ebfb58a32b2e2d5897321d83" + integrity sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + +globby@^11.0.3: version "11.0.4" resolved "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== @@ -14258,17 +14252,6 @@ globby@^11.0.0, globby@^11.0.1, globby@^11.0.2, globby@^11.0.3: merge2 "^1.3.0" slash "^3.0.0" -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - globby@^7.1.1: version "7.1.1" resolved "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680" @@ -14399,7 +14382,12 @@ got@^9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.3, graceful-fs@^4.2.4: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.4: + version "4.2.4" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== + +graceful-fs@^4.2.3, graceful-fs@^4.2.6: version "4.2.6" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== @@ -14887,11 +14875,21 @@ html-encoding-sniffer@^2.0.1: dependencies: whatwg-encoding "^1.0.5" -html-entities@^1.2.0, html-entities@^1.2.1, html-entities@^1.3.1: +html-entities@^1.2.0: + version "1.3.1" + resolved "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44" + integrity sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA== + +html-entities@^1.2.1: version "1.3.3" resolved "https://registry.npmjs.org/html-entities/-/html-entities-1.3.3.tgz#3dca638a43ee7de316fc23067398491152ad4736" integrity sha512-/VulV3SYni1taM7a4RMdceqzJWR39gpZHjBwUnsCFKWV/GJkD14CJ5F7eWcZozmHJK0/f/H5U3b3SiPkuvxMgg== +html-entities@^2.3.2: + version "2.3.2" + resolved "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz#760b404685cb1d794e4f4b744332e3b00dcfe488" + integrity sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ== + html-escaper@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.1.tgz#beed86b5d2b921e92533aa11bce6d8e3b583dee7" @@ -15047,16 +15045,6 @@ http-proxy-agent@^4.0.0, http-proxy-agent@^4.0.1: agent-base "6" debug "4" -http-proxy-middleware@0.19.1: - version "0.19.1" - resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" - integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== - dependencies: - http-proxy "^1.17.0" - is-glob "^4.0.0" - lodash "^4.17.11" - micromatch "^3.1.10" - http-proxy-middleware@^1.0.0: version "1.1.1" resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.1.1.tgz#48900a68cd9d388c735d1dd97302c919b7e94a13" @@ -15068,6 +15056,17 @@ http-proxy-middleware@^1.0.0: is-plain-obj "^3.0.0" micromatch "^4.0.2" +http-proxy-middleware@^1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz#43700d6d9eecb7419bf086a128d0f7205d9eb665" + integrity sha512-13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg== + dependencies: + "@types/http-proxy" "^1.17.5" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" + http-proxy-middleware@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.0.tgz#20d1ac3409199c83e5d0383ba6436b04e7acb9fe" @@ -15079,7 +15078,7 @@ http-proxy-middleware@^2.0.0: is-plain-obj "^3.0.0" micromatch "^4.0.2" -http-proxy@^1.17.0, http-proxy@^1.18.1: +http-proxy@^1.18.1: version "1.18.1" resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== @@ -15327,14 +15326,6 @@ import-lazy@~4.0.0: resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== -import-local@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== - dependencies: - pkg-dir "^3.0.0" - resolve-cwd "^2.0.0" - import-local@^3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" @@ -15494,13 +15485,15 @@ inquirer@^8.1.0: strip-ansi "^6.0.0" through "^2.3.6" -internal-ip@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" - integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== +internal-ip@^6.2.0: + version "6.2.0" + resolved "https://registry.npmjs.org/internal-ip/-/internal-ip-6.2.0.tgz#d5541e79716e406b74ac6b07b856ef18dc1621c1" + integrity sha512-D8WGsR6yDt8uq7vDMu7mjcR+yRMm3dW8yufyChmszWRjcSHuxLBkR3GdS2HZAjodsaGuCvXeEJpueisXJULghg== dependencies: - default-gateway "^4.2.0" - ipaddr.js "^1.9.0" + default-gateway "^6.0.0" + ipaddr.js "^1.9.1" + is-ip "^3.1.0" + p-event "^4.2.0" internal-slot@^1.0.2: version "1.0.2" @@ -15546,16 +15539,26 @@ ip-regex@^2.1.0: resolved "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= +ip-regex@^4.0.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" + integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== + ip@^1.1.0, ip@^1.1.5: version "1.1.5" resolved "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= -ipaddr.js@1.9.1, ipaddr.js@^1.9.0: +ipaddr.js@1.9.1, ipaddr.js@^1.9.1: version "1.9.1" resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== +ipaddr.js@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.0.tgz#77ccccc8063ae71ab65c55f21b090698e763fc6e" + integrity sha512-S54H9mIj0rbxRIyrDMEuuER86LdlgUg9FSeZ8duQb6CUG2iRrA36MYVQBSprTF/ZeAwvyQ5mDGuNvIPM0BIl3w== + is-absolute-url@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" @@ -15861,6 +15864,13 @@ is-interactive@^1.0.0: resolved "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== +is-ip@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz#2ae5ddfafaf05cb8008a62093cf29734f657c5d8" + integrity sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q== + dependencies: + ip-regex "^4.0.0" + is-lambda@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" @@ -15932,26 +15942,17 @@ is-observable@^1.1.0: dependencies: symbol-observable "^1.1.0" -is-path-cwd@^2.0.0, is-path-cwd@^2.2.0: +is-path-cwd@^2.2.0: version "2.2.0" resolved "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== -is-path-in-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" - integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== - dependencies: - is-path-inside "^2.1.0" +is-path-inside@^3.0.1: + version "3.0.2" + resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017" + integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg== -is-path-inside@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" - integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== - dependencies: - path-is-inside "^1.0.2" - -is-path-inside@^3.0.1, is-path-inside@^3.0.2: +is-path-inside@^3.0.2: version "3.0.3" resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== @@ -17113,11 +17114,6 @@ json2xml@^0.1.3: resolved "https://registry.npmjs.org/json2xml/-/json2xml-0.1.3.tgz#9ae7c220bedd7c66a668e26f7ac182f6704eca21" integrity sha1-mufCIL7dfGamaOJvesGC9nBOyiE= -json3@^3.3.3: - version "3.3.3" - resolved "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" - integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== - json5@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" @@ -18111,7 +18107,7 @@ logform@^2.1.1, logform@^2.2.0: ms "^2.1.1" triple-beam "^1.3.0" -loglevel@^1.6.7, loglevel@^1.6.8: +loglevel@^1.6.7: version "1.6.8" resolved "https://registry.npmjs.org/loglevel/-/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171" integrity sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA== @@ -18294,6 +18290,13 @@ makeerror@1.0.x: dependencies: tmpl "1.0.x" +map-age-cleaner@^0.1.3: + version "0.1.3" + resolved "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + map-cache@^0.2.0, map-cache@^0.2.2: version "0.2.2" resolved "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -18496,7 +18499,15 @@ media-typer@0.3.0: resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= -memfs@^3.1.2: +mem@^8.1.1: + version "8.1.1" + resolved "https://registry.npmjs.org/mem/-/mem-8.1.1.tgz#cf118b357c65ab7b7e0817bdf00c8062297c0122" + integrity sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA== + dependencies: + map-age-cleaner "^0.1.3" + mimic-fn "^3.1.0" + +memfs@^3.1.2, memfs@^3.2.2: version "3.2.2" resolved "https://registry.npmjs.org/memfs/-/memfs-3.2.2.tgz#5de461389d596e3f23d48bb7c2afb6161f4df40e" integrity sha512-RE0CwmIM3CEvpcdK3rZ19BC4E6hv9kADkMN5rPduRak58cNArWLi/9jFLsa4rhsjfVxMP3v0jO7FHXq7SvFY5Q== @@ -18740,7 +18751,7 @@ mime-db@1.48.0, "mime-db@>= 1.43.0 < 2": resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz#e35b31045dd7eada3aaad537ed88a33afbef2d1d" integrity sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ== -mime-types@^2.0.8, mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: +mime-types@^2.0.8, mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.30, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: version "2.1.31" resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz#a00d76b74317c61f9c2db2218b8e9f8e9c5c9e6b" integrity sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg== @@ -18767,6 +18778,11 @@ mimic-fn@^2.1.0: resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +mimic-fn@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz#65755145bbf3e36954b949c16450427451d5ca74" + integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== + mimic-response@^1.0.0, mimic-response@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" @@ -19932,6 +19948,14 @@ open@^7.0.0, open@^7.0.2, open@^7.0.3: is-docker "^2.0.0" is-wsl "^2.1.1" +open@^7.4.2: + version "7.4.2" + resolved "https://registry.npmjs.org/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" + integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== + dependencies: + is-docker "^2.0.0" + is-wsl "^2.1.1" + openapi-sampler@^1.0.0-beta.15: version "1.0.0-beta.16" resolved "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.0.0-beta.16.tgz#7813524d5b88d222efb772ceb5a809075d6d9174" @@ -19952,13 +19976,6 @@ openid-client@^4.1.1, openid-client@^4.2.1: object-hash "^2.0.1" oidc-token-hash "^5.0.1" -opn@^5.5.0: - version "5.5.0" - resolved "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" - integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== - dependencies: - is-wsl "^1.1.0" - optionator@^0.8.1: version "0.8.3" resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" @@ -20075,12 +20092,17 @@ p-cancelable@^2.0.0: resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e" integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg== +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + p-each-series@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/p-each-series/-/p-each-series-2.1.0.tgz#961c8dd3f195ea96c747e636b262b800a6b1af48" integrity sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ== -p-event@^4.1.0: +p-event@^4.1.0, p-event@^4.2.0: version "4.2.0" resolved "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz#af4b049c8acd91ae81083ebd1e6f5cae2044c1b5" integrity sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ== @@ -20195,11 +20217,12 @@ p-reduce@^2.0.0, p-reduce@^2.1.0: resolved "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz#09408da49507c6c274faa31f28df334bc712b64a" integrity sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw== -p-retry@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" - integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== +p-retry@^4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/p-retry/-/p-retry-4.5.0.tgz#6685336b3672f9ee8174d3769a660cb5e488521d" + integrity sha512-5Hwh4aVQSu6BEP+w2zKlVXtFAaYQe1qWuVADSgoeVlLjwe/Q/AMSoRR4MDeaAfu8llT+YNbEijWu/YF3m6avkg== dependencies: + "@types/retry" "^0.12.0" retry "^0.12.0" p-timeout@^3.1.0, p-timeout@^3.2.0: @@ -20925,7 +20948,7 @@ popper.js@1.16.1-lts: resolved "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1-lts.tgz#cf6847b807da3799d80ee3d6d2f90df8a3f50b05" integrity sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA== -portfinder@^1.0.26: +portfinder@^1.0.28: version "1.0.28" resolved "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== @@ -23065,13 +23088,6 @@ resolve-alpn@^1.0.0: resolved "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.0.0.tgz#745ad60b3d6aff4b4a48e01b8c0bdc70959e0e8c" integrity sha512-rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA== -resolve-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" - integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= - dependencies: - resolve-from "^3.0.0" - resolve-cwd@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" @@ -23531,7 +23547,14 @@ select@^1.1.2: resolved "https://registry.npmjs.org/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= -selfsigned@^1.10.7, selfsigned@^1.10.8: +selfsigned@^1.10.11: + version "1.10.11" + resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz#24929cd906fe0f44b6d01fb23999a739537acbe9" + integrity sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA== + dependencies: + node-forge "^0.10.0" + +selfsigned@^1.10.7: version "1.10.8" resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz#0d17208b7d12c33f8eac85c41835f27fc3d81a30" integrity sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w== @@ -23970,18 +23993,6 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -sockjs-client@^1.5.0: - version "1.5.1" - resolved "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.1.tgz#256908f6d5adfb94dabbdbd02c66362cca0f9ea6" - integrity sha512-VnVAb663fosipI/m6pqRXakEOw7nvd7TUgdr3PlR/8V2I95QIdwT8L4nMxhyU8SmDBHYXU1TOElaKOmKLfYzeQ== - dependencies: - debug "^3.2.6" - eventsource "^1.0.7" - faye-websocket "^0.11.3" - inherits "^2.0.4" - json3 "^3.3.3" - url-parse "^1.5.1" - sockjs@^0.3.21: version "0.3.21" resolved "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz#b34ffb98e796930b60a0cfa11904d6a339a7d417" @@ -24522,7 +24533,7 @@ string-width@^1.0.1, string-width@^1.0.2: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string-width@^3.0.0, string-width@^3.1.0: +string-width@^3.0.0: version "3.1.0" resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== @@ -24607,7 +24618,7 @@ stringify-object@^3.3.0: is-obj "^1.0.1" is-regexp "^1.0.0" -strip-ansi@5.2.0, strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: +strip-ansi@5.2.0, strip-ansi@^5.1.0: version "5.2.0" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== @@ -26572,7 +26583,7 @@ webidl-conversions@^6.1.0: resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== -webpack-dev-middleware@^3.7.0, webpack-dev-middleware@^3.7.2: +webpack-dev-middleware@^3.7.0: version "3.7.2" resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" integrity sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw== @@ -26583,44 +26594,50 @@ webpack-dev-middleware@^3.7.0, webpack-dev-middleware@^3.7.2: range-parser "^1.2.1" webpack-log "^2.0.0" -webpack-dev-server@^3.11.2: - version "3.11.2" - resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz#695ebced76a4929f0d5de7fd73fafe185fe33708" - integrity sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ== +webpack-dev-middleware@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-4.3.0.tgz#179cc40795882cae510b1aa7f3710cbe93c9333e" + integrity sha512-PjwyVY95/bhBh6VUqt6z4THplYcsvQ8YNNBTBM873xLVmw8FLeALn0qurHbs9EmcfhzQis/eoqypSnZeuUz26w== dependencies: - ansi-html "0.0.7" + colorette "^1.2.2" + mem "^8.1.1" + memfs "^3.2.2" + mime-types "^2.1.30" + range-parser "^1.2.1" + schema-utils "^3.0.0" + +webpack-dev-server@4.0.0-beta.3: + version "4.0.0-beta.3" + resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.0.0-beta.3.tgz#57368679f7f1fdd7ec8d9dd287275117271164f0" + integrity sha512-Ud7ieH15No/KiSdRuzk+2k+S4gSCR/N7m4hJhesDbKQEZy3P+NPXTXfsimNOZvbVX2TRuIEFB+VdLZFn8DwGwg== + dependencies: + ansi-html "^0.0.7" bonjour "^3.5.0" - chokidar "^2.1.8" + chokidar "^3.5.1" compression "^1.7.4" connect-history-api-fallback "^1.6.0" - debug "^4.1.1" - del "^4.1.1" + del "^6.0.0" express "^4.17.1" - html-entities "^1.3.1" - http-proxy-middleware "0.19.1" - import-local "^2.0.0" - internal-ip "^4.3.0" - ip "^1.1.5" + find-cache-dir "^3.3.1" + graceful-fs "^4.2.6" + html-entities "^2.3.2" + http-proxy-middleware "^1.3.1" + internal-ip "^6.2.0" + ipaddr.js "^2.0.0" is-absolute-url "^3.0.3" killable "^1.0.1" - loglevel "^1.6.8" - opn "^5.5.0" - p-retry "^3.0.1" - portfinder "^1.0.26" - schema-utils "^1.0.0" - selfsigned "^1.10.8" - semver "^6.3.0" + open "^7.4.2" + p-retry "^4.5.0" + portfinder "^1.0.28" + schema-utils "^3.0.0" + selfsigned "^1.10.11" serve-index "^1.9.1" sockjs "^0.3.21" - sockjs-client "^1.5.0" spdy "^4.0.2" - strip-ansi "^3.0.1" - supports-color "^6.1.0" + strip-ansi "^6.0.0" url "^0.11.0" - webpack-dev-middleware "^3.7.2" - webpack-log "^2.0.0" - ws "^6.2.1" - yargs "^13.3.2" + webpack-dev-middleware "^4.1.0" + ws "^7.4.5" webpack-filter-warnings-plugin@^1.2.1: version "1.2.1" @@ -26955,15 +26972,6 @@ wrap-ansi@^3.0.1: string-width "^2.1.1" strip-ansi "^4.0.0" -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" @@ -27051,18 +27059,28 @@ ws@^5.2.0: dependencies: async-limiter "~1.0.0" -"ws@^5.2.0 || ^6.0.0 || ^7.0.0", ws@^7.2.3, ws@^7.3.1: +"ws@^5.2.0 || ^6.0.0 || ^7.0.0": version "7.5.0" resolved "https://registry.npmjs.org/ws/-/ws-7.5.0.tgz#0033bafea031fb9df041b2026fc72a571ca44691" integrity sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw== -ws@^6.1.2, ws@^6.2.1: - version "6.2.2" - resolved "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" - integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== +ws@^6.1.2: + version "6.2.1" + resolved "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" + integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== dependencies: async-limiter "~1.0.0" +ws@^7.2.3, ws@^7.3.1: + version "7.3.1" + resolved "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8" + integrity sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA== + +ws@^7.4.5: + version "7.4.6" + resolved "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" + integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== + xcase@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/xcase/-/xcase-2.0.1.tgz#c7fa72caa0f440db78fd5673432038ac984450b9" @@ -27234,14 +27252,6 @@ yargs-parser@20.2.4, yargs-parser@^20.2.2, yargs-parser@^20.2.3: resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs-parser@^18.1.2, yargs-parser@^18.1.3: version "18.1.3" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" @@ -27258,22 +27268,6 @@ yargs-parser@^3.2.0: camelcase "^3.0.0" lodash.assign "^4.1.0" -yargs@^13.3.2: - version "13.3.2" - resolved "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" - yargs@^15.1.0, yargs@^15.3.1, yargs@^15.4.1: version "15.4.1" resolved "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" From e38d4cfab3ae85c532111a9dff9370fbb0372f8d Mon Sep 17 00:00:00 2001 From: blam Date: Tue, 8 Jun 2021 16:44:24 +0200 Subject: [PATCH 32/64] chore: getting it to a working stage for now until there's types for stuff Signed-off-by: blam --- packages/cli/package.json | 1 - packages/cli/src/lib/bundler/server.ts | 6 ++-- yarn.lock | 48 +++++--------------------- 3 files changed, 11 insertions(+), 44 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index 236c1019e1..e221423e5e 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -137,7 +137,6 @@ "@types/rollup-plugin-peer-deps-external": "^2.2.0", "@types/rollup-plugin-postcss": "^2.0.0", "@types/tar": "^4.0.3", - "@types/webpack-dev-server": "^3.11.2", "@types/yarnpkg__lockfile": "^1.1.4", "del": "^6.0.0", "mock-fs": "^4.13.0", diff --git a/packages/cli/src/lib/bundler/server.ts b/packages/cli/src/lib/bundler/server.ts index 7acce7da66..67a1538243 100644 --- a/packages/cli/src/lib/bundler/server.ts +++ b/packages/cli/src/lib/bundler/server.ts @@ -45,8 +45,8 @@ export async function serveBundle(options: ServeOptions) { const server = new WebpackDevServer(compiler, { hot: !process.env.CI, devMiddleware: { - // contentBase: paths.targetPublic, publicPath: config.output?.publicPath as string, + stats: 'errors-warnings', }, static: { publicPath: config.output?.publicPath as string, @@ -57,14 +57,12 @@ export async function serveBundle(options: ServeOptions) { // See https://github.com/facebookincubator/create-react-app/issues/387. disableDotRule: true, }, - // clientLogLevel: 'warning', - // stats: 'errors-warnings', https: url.protocol === 'https:', host, port, proxy: pkg.proxy, // When the dev server is behind a proxy, the host and public hostname differ - // allowedHosts: [url.hostname], + firewall: [url.hostname], }); await new Promise((resolve, reject) => { diff --git a/yarn.lock b/yarn.lock index db4c2a116e..7e0d680a86 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5772,14 +5772,6 @@ dependencies: "@types/node" "*" -"@types/connect-history-api-fallback@*": - version "1.3.3" - resolved "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.3.tgz#4772b79b8b53185f0f4c9deab09236baf76ee3b4" - integrity sha512-7SxFCd+FLlxCfwVwbyPxbR4khL9aNikJhrorw8nUIOqeuooc9gifBuDQOJw5kzN7i6i3vLn9G8Wde/4QDihpYw== - dependencies: - "@types/express-serve-static-core" "*" - "@types/node" "*" - "@types/connect@*": version "3.4.33" resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz#31610c901eca573b8713c3330abc6e6b9f588546" @@ -5950,19 +5942,19 @@ resolved "https://registry.npmjs.org/@types/eventsource/-/eventsource-1.1.5.tgz#408e9b45efb176c8bea672ab58c81e7ab00d24bc" integrity sha512-BA9q9uC2PAMkUS7DunHTxWZZaVpeNzDG8lkBxcKwzKJClfDQ4Z59/Csx7HSH/SIqFN2JWh0tAKAM6k/wRR0OZg== -"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.5": - version "4.17.18" - resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz#8371e260f40e0e1ca0c116a9afcd9426fa094c40" - integrity sha512-m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA== +"@types/express-serve-static-core@^4.17.18", "@types/express-serve-static-core@^4.17.21": + version "4.17.24" + resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz#ea41f93bf7e0d59cd5a76665068ed6aab6815c07" + integrity sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA== dependencies: "@types/node" "*" "@types/qs" "*" "@types/range-parser" "*" -"@types/express-serve-static-core@^4.17.18", "@types/express-serve-static-core@^4.17.21": - version "4.17.24" - resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz#ea41f93bf7e0d59cd5a76665068ed6aab6815c07" - integrity sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA== +"@types/express-serve-static-core@^4.17.5": + version "4.17.18" + resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz#8371e260f40e0e1ca0c116a9afcd9426fa094c40" + integrity sha512-m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA== dependencies: "@types/node" "*" "@types/qs" "*" @@ -6892,17 +6884,6 @@ resolved "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.0.tgz#215c231dff736d5ba92410e6d602050cce7e273f" integrity sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ== -"@types/webpack-dev-server@^3.11.2": - version "3.11.3" - resolved "https://registry.npmjs.org/@types/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz#237e26d87651cf95490dcd356f568c8c84016177" - integrity sha512-p9B/QClflreKDeamKhBwuo5zqtI++wwb9QNG/CdIZUFtHvtaq0dWVgbtV7iMl4Sr4vWzEFj0rn16pgUFANjLPA== - dependencies: - "@types/connect-history-api-fallback" "*" - "@types/express" "*" - "@types/serve-static" "*" - "@types/webpack" "^4" - http-proxy-middleware "^1.0.0" - "@types/webpack-env@^1.15.2", "@types/webpack-env@^1.15.3", "@types/webpack-env@^1.16.0": version "1.16.0" resolved "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.16.0.tgz#8c0a9435dfa7b3b1be76562f3070efb3f92637b4" @@ -6917,7 +6898,7 @@ "@types/source-list-map" "*" source-map "^0.6.1" -"@types/webpack@^4", "@types/webpack@^4.41.8": +"@types/webpack@^4.41.8": version "4.41.27" resolved "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.27.tgz#f47da488c8037e7f1b2dbf2714fbbacb61ec0ffc" integrity sha512-wK/oi5gcHi72VMTbOaQ70VcDxSQ1uX8S2tukBK9ARuGXrYM/+u4ou73roc7trXDNmCxCoerE8zruQqX/wuHszA== @@ -15045,17 +15026,6 @@ http-proxy-agent@^4.0.0, http-proxy-agent@^4.0.1: agent-base "6" debug "4" -http-proxy-middleware@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.1.1.tgz#48900a68cd9d388c735d1dd97302c919b7e94a13" - integrity sha512-FIDg9zPvOwMhQ3XKB2+vdxK6WWbVAH7s5QpqQCif7a1TNL76GNAATWA1sy6q2gSfss8UJ/Nwza3N6QnFkKclpA== - dependencies: - "@types/http-proxy" "^1.17.5" - http-proxy "^1.18.1" - is-glob "^4.0.1" - is-plain-obj "^3.0.0" - micromatch "^4.0.2" - http-proxy-middleware@^1.3.1: version "1.3.1" resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz#43700d6d9eecb7419bf086a128d0f7205d9eb665" From 8dcaae0140ced27ca69317974afb4d993f61888f Mon Sep 17 00:00:00 2001 From: blam Date: Mon, 21 Jun 2021 14:25:50 +0200 Subject: [PATCH 33/64] chore: copy in types for webpack-dev-server as they're not public yet Signed-off-by: blam --- packages/cli/src/types.d.ts | 387 ++++++++++++++++++++++++++++++++++++ 1 file changed, 387 insertions(+) diff --git a/packages/cli/src/types.d.ts b/packages/cli/src/types.d.ts index 2c4d9c46b0..09799f634d 100644 --- a/packages/cli/src/types.d.ts +++ b/packages/cli/src/types.d.ts @@ -258,3 +258,390 @@ declare module 'webpack-node-externals' { } } } +declare module 'webpack-dev-server' { + declare namespace WebpackDevServer { + import webpack = require('webpack'); + import httpProxyMiddleware = require('http-proxy-middleware'); + import express = require('express'); + import serveStatic = require('serve-static'); + import https = require('https'); + import http = require('http'); + import connectHistoryApiFallback = require('connect-history-api-fallback'); + + interface ListeningApp { + address(): { port?: number }; + } + + interface ProxyConfigMap { + [url: string]: string | httpProxyMiddleware.Options; + } + + type ProxyConfigArrayItem = { + path?: string | string[]; + context?: string | string[] | httpProxyMiddleware.Filter; + } & httpProxyMiddleware.Options; + + type ProxyConfigArray = ProxyConfigArrayItem[]; + + interface Configuration { + /** + * Provides the ability to execute custom middleware after all other + * middleware internally within the server. + */ + after?: ( + app: express.Application, + server: WebpackDevServer, + compiler: webpack.Compiler, + ) => void; + /** + * This option allows you to whitelist services that are allowed to + * access the dev server. + */ + allowedHosts?: string[]; + /** + * Provides the ability to execute custom middleware prior to all + * other middleware internally within the server. + */ + before?: ( + app: express.Application, + server: WebpackDevServer, + compiler: webpack.Compiler, + ) => void; + /** + * This option broadcasts the server via ZeroConf networking on start. + */ + bonjour?: boolean; + /** + * When using inline mode, the console in your DevTools will show you + * messages e.g. before reloading, before an error or when Hot Module + * Replacement is enabled. This may be too verbose. + * + * 'none' and 'warning' are going to be deprecated at the next major + * version. + */ + clientLogLevel?: + | 'silent' + | 'trace' + | 'debug' + | 'info' + | 'warn' + | 'error' + | 'none' + | 'warning'; + /** + * Enable gzip compression for everything served. + */ + compress?: boolean; + /** + * Tell the server where to serve content from. This is only necessary + * if you want to serve static files. devServer.publicPath will be used + * to determine where the bundles should be served from, and takes + * precedence. + */ + contentBase?: boolean | string | string[] | number; + /** + * Tell the server at what URL to serve `devServer.contentBase`. + * If there was a file `assets/manifest.json`, + * it would be served at `/serve-content-base-at-this-url/manifest.json` + */ + contentBasePublicPath?: string | string[]; + /** + * When set to true this option bypasses host checking. THIS IS NOT + * RECOMMENDED as apps that do not check the host are vulnerable to DNS + * rebinding attacks. + */ + disableHostCheck?: boolean; + /** + * This option lets you reduce the compilations in lazy mode. + * By default in lazy mode, every request results in a new compilation. + * With filename, it's possible to only compile when a certain file is requested. + */ + filename?: string; + /** Adds headers to all responses. */ + headers?: { + [key: string]: string; + }; + /** + * When using the HTML5 History API, the index.html page will likely + * have to be served in place of any 404 responses. + */ + historyApiFallback?: boolean | connectHistoryApiFallback.Options; + /** + * Specify a host to use. By default this is localhost. + */ + host?: string; + /** + * Enable webpack's Hot Module Replacement feature. + * Note that webpack.HotModuleReplacementPlugin is required to fully + * enable HMR. If webpack or webpack-dev-server are launched with the + * --hot option, this plugin will be added automatically, so you may + * not need to add this to your webpack.config.js. + */ + hot?: boolean; + /** + * Enables Hot Module Replacement (see devServer.hot) without page + * refresh as fallback in case of build failures. + */ + hotOnly?: boolean; + /** + * Serve over HTTP/2 using spdy. This option is ignored for Node 10.0.0 + * and above, as spdy is broken for those versions. The dev server will + * migrate over to Node's built-in HTTP/2 once Express supports it. + */ + http2?: boolean; + /** + * By default dev-server will be served over HTTP. It can optionally be + * served over HTTP/2 with HTTPS. + */ + https?: boolean | https.ServerOptions; + /** + * The filename that is considered the index file. + */ + index?: string; + /** + * Tells devServer to inject a client. Setting devServer.injectClient + * to true will result in always injecting a client. It is possible to + * provide a function to inject conditionally + */ + injectClient?: boolean | ((compilerConfig: webpack.Compiler) => boolean); + /** + * Tells devServer to inject a Hot Module Replacement. Setting + * devServer.injectHot to true will result in always injecting. It is + * possible to provide a function to inject conditionally + */ + injectHot?: boolean | ((compilerConfig: webpack.Compiler) => boolean); + /** + * Toggle between the dev-server's two different modes. By default the + * application will be served with inline mode enabled. This means + * that a script will be inserted in your bundle to take care of live + * reloading, and build messages will appear in the browser console. + */ + inline?: boolean; + /** + * When lazy is enabled, the dev-server will only compile the bundle + * when it gets requested. This means that webpack will not watch any + * file changes. + */ + lazy?: boolean; + /** + * By default, the dev-server will reload/refresh the page when file + * changes are detected. devServer.hot option must be disabled or + * devServer.watchContentBase option must be enabled in order for + * liveReload to take effect. Disable devServer.liveReload by setting + * it to false + */ + liveReload?: boolean; + /** + * The object is passed to the underlying webpack-dev-middleware. See + * [documentation](https://github.com/webpack/webpack-dev-middleware#mimetypes) + * for usage notes. + */ + mimeTypes?: + | { + [key: string]: string[]; + } + | { + typeMap?: { + [key: string]: string[]; + } & { + force: boolean; + }; + }; + /** + * With noInfo enabled, messages like the webpack bundle information + * that is shown when starting up and after each save,will be hidden. + * Errors and warnings will still be shown. + */ + noInfo?: boolean; + /** + * Provides an option to execute a custom function when + * webpack-dev-server starts listening for connections on a port. + */ + onListening?: (server: WebpackDevServer) => void; + /** When open is enabled, the dev server will open the browser. */ + open?: boolean | string | object; + /** Specify a page to navigate to when opening the browser. */ + openPage?: string | string[]; + /** + * Shows a full-screen overlay in the browser when there are compiler + * errors or warnings. Disabled by default. + */ + overlay?: + | boolean + | { + warnings?: boolean; + errors?: boolean; + }; + /** + * When used via the CLI, a path to an SSL .pfx file. If used in + * options, it should be the bytestream of the .pfx file. + */ + pfx?: string; + /** The passphrase to a SSL PFX file. */ + pfxPassphrase?: string; + /** Specify a port number to listen for requests on. */ + port?: number; + /** + * Proxying some URLs can be useful when you have a separate API + * backend development server and you want to send API requests on the + * same domain. + * + * The dev-server makes use of the powerful http-proxy-middleware + * package. Check out its + * [documentation](https://github.com/chimurai/http-proxy-middleware#options) + * for more advanced usages. Note that some of http-proxy-middleware's + * features do not require a target key, e.g. its router feature, but + * you will still need to include a target key in your config here, + * otherwise webpack-dev-server won't pass it along to + * http-proxy-middleware). + */ + proxy?: ProxyConfigMap | ProxyConfigArray; + /** + * When using inline mode and you're proxying dev-server, the inline + * client script does not always know where to connect to. It will try + * to guess the URL of the server based on window.location, but if that + * fails you'll need to use this. + */ + public?: string; + /** + * The bundled files will be available in the browser under this path. + * default is '/' + */ + publicPath?: string; + /** + * With quiet enabled, nothing except the initial startup information + * will be written to the console. This also means that errors or + * warnings from webpack are not visible. + */ + quiet?: boolean; + /** + * Tells dev-server to use serveIndex middleware when enabled. + * + * serveIndex middleware generates directory listings on viewing + * directories that don't have an index.html file. + */ + serveIndex?: boolean; + /** + * @deprecated This option is deprecated in favor of devServer.before + * and will be removed in v3.0.0. Here you can access the Express app + * object and add your own custom middleware to it. + */ + setup?: (app: express.Application, server: WebpackDevServer) => void; + /** The Unix socket to listen to (instead of a host). */ + socket?: string; + /** + * Tells clients connected to devServer to use provided socket host. + */ + sockHost?: string; + /** + * The path at which to connect to the reloading socket. Default is + * '/sockjs-node' + */ + sockPath?: string; + /** + * Tells clients connected to devServer to use provided socket port. + */ + sockPort?: string | number; + /** + * It is possible to configure advanced options for serving static + * files from contentBase. + * + * This only works when using devServer.contentBase as a string. + */ + staticOptions?: serveStatic.ServeStaticOptions; + /** + * This option lets you precisely control what bundle information gets + * displayed. This can be a nice middle ground if you want some bundle + * information, but not all of it. + */ + stats?: webpack.Configuration['stats']; + /** + * transportMode is an experimental option, meaning its usage could + * potentially change without warning. + * + * Providing a string to devServer.transportMode is a shortcut to + * setting both devServer.transportMode.client and + * devServer.transportMode.server to the given string value. + * + * This option allows us either to choose the current devServer + * transport mode for client/server individually or to provide custom + * client/server implementation. This allows to specify how browser or + * other client communicates with the devServer. + * + * The current default mode is 'sockjs'. This mode uses SockJS-node as + * a server, and SockJS-client on the client. + * + * 'ws' mode will become the default mode in the next major devServer + * version. This mode uses ws as a server, and native WebSockets on the + * client. + */ + transportMode?: + | 'sockjs' + | 'ws' + | { + client: object; + server: 'ws'; + } + | { + client: 'ws'; + server: object; + } + | { + client: object; + server: object; + }; + /** This option lets the browser open with your local IP. */ + useLocalIp?: boolean; + /** + * Tell the server to watch the files served by the + * devServer.contentBase option. File changes will trigger a full page + * reload. + */ + watchContentBase?: boolean; + /** Control options related to watching the files. */ + watchOptions?: webpack.Configuration['watchOptions']; + /** Tells devServer to write generated assets to the disk. */ + writeToDisk?: boolean | ((filePath: string) => boolean); + } + } + + declare module 'webpack' { + interface Configuration { + /** + * Can be used to configure the behaviour of webpack-dev-server when + * the webpack config is passed to webpack-dev-server CLI. + */ + devServer?: WebpackDevServer.Configuration; + } + } + + declare class WebpackDevServer { + listeningApp: WebpackDevServer.ListeningApp; + sockets: NodeJS.EventEmitter[]; + + constructor( + webpack: webpack.Compiler | webpack.MultiCompiler, + config?: WebpackDevServer.Configuration, + ); + + static addDevServerEntrypoints( + webpackOptions: webpack.Configuration | webpack.Configuration[], + config: WebpackDevServer.Configuration, + listeningApp?: WebpackDevServer.ListeningApp, + ): void; + + listen( + port: number, + hostname: string, + callback?: (error?: Error) => void, + ): http.Server; + + listen(port: number, callback?: (error?: Error) => void): http.Server; + + close(callback?: () => void): void; + + sockWrite(sockets: NodeJS.EventEmitter[], type: string, data?: any): void; + } + + export = WebpackDevServer; +} From 470c201e9ac860964e99b630c0086fd885457ab8 Mon Sep 17 00:00:00 2001 From: blam Date: Wed, 28 Jul 2021 13:23:53 +0200 Subject: [PATCH 34/64] chore: reworking the deps a little more Signed-off-by: blam --- packages/cli/package.json | 2 +- packages/cli/src/lib/bundler/server.ts | 2 +- packages/cli/src/types.d.ts | 27 +++--- yarn.lock | 120 ++++++++++++++++--------- 4 files changed, 93 insertions(+), 58 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index e221423e5e..a520dc87ee 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -110,7 +110,7 @@ "url-loader": "^4.1.0", "util": "^0.12.3", "webpack": "^5.0.0", - "webpack-dev-server": "4.0.0-beta.3", + "webpack-dev-server": "4.0.0-rc.0", "webpack-node-externals": "^3.0.0", "yaml": "^1.10.0", "yaml-jest": "^1.0.5", diff --git a/packages/cli/src/lib/bundler/server.ts b/packages/cli/src/lib/bundler/server.ts index 67a1538243..254da4783b 100644 --- a/packages/cli/src/lib/bundler/server.ts +++ b/packages/cli/src/lib/bundler/server.ts @@ -62,7 +62,7 @@ export async function serveBundle(options: ServeOptions) { port, proxy: pkg.proxy, // When the dev server is behind a proxy, the host and public hostname differ - firewall: [url.hostname], + allowedHosts: [url.hostname], }); await new Promise((resolve, reject) => { diff --git a/packages/cli/src/types.d.ts b/packages/cli/src/types.d.ts index 09799f634d..3e5d7f4108 100644 --- a/packages/cli/src/types.d.ts +++ b/packages/cli/src/types.d.ts @@ -258,9 +258,23 @@ declare module 'webpack-node-externals' { } } } + +// local webpack.d.ts +import * as webpack from 'webpack'; + +declare module 'webpack' { + namespace loader { + // Stub to avoid compiler error in ts-loader types. + interface LoaderContext {} + } + + namespace Stats { + // Work-around for https://github.com/DefinitelyTyped/DefinitelyTyped/pull/50802 + type ToJsonOptions = Parameters[0]; + } +} declare module 'webpack-dev-server' { declare namespace WebpackDevServer { - import webpack = require('webpack'); import httpProxyMiddleware = require('http-proxy-middleware'); import express = require('express'); import serveStatic = require('serve-static'); @@ -604,17 +618,6 @@ declare module 'webpack-dev-server' { writeToDisk?: boolean | ((filePath: string) => boolean); } } - - declare module 'webpack' { - interface Configuration { - /** - * Can be used to configure the behaviour of webpack-dev-server when - * the webpack config is passed to webpack-dev-server CLI. - */ - devServer?: WebpackDevServer.Configuration; - } - } - declare class WebpackDevServer { listeningApp: WebpackDevServer.ListeningApp; sockets: NodeJS.EventEmitter[]; diff --git a/yarn.lock b/yarn.lock index 7e0d680a86..46f898b2d6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6205,6 +6205,11 @@ resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== +"@types/json-schema@^7.0.8": + version "7.0.8" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.8.tgz#edf1bf1dbf4e04413ca8e5b17b3b7d7d54b59818" + integrity sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg== + "@types/json-stable-stringify@^1.0.32": version "1.0.32" resolved "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.32.tgz#121f6917c4389db3923640b2e68de5fa64dda88e" @@ -7625,6 +7630,11 @@ ansi-regex@^5.0.0: resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== +ansi-regex@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.0.tgz#ecc7f5933cbe5ac7b33e209a5ff409ab1669c6b2" + integrity sha512-tAaOSrWCHF+1Ear1Z4wnJCXA9GGox4K6Ic85a5qalES2aeEwQGr7UC93mwef49536PkCYjzkp0zIxfFvexJ6zQ== + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -11462,6 +11472,11 @@ defer-to-connect@^2.0.0: resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz#83d6b199db041593ac84d781b5222308ccf4c2c1" integrity sha512-bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg== +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -15026,17 +15041,6 @@ http-proxy-agent@^4.0.0, http-proxy-agent@^4.0.1: agent-base "6" debug "4" -http-proxy-middleware@^1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz#43700d6d9eecb7419bf086a128d0f7205d9eb665" - integrity sha512-13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg== - dependencies: - "@types/http-proxy" "^1.17.5" - http-proxy "^1.18.1" - is-glob "^4.0.1" - is-plain-obj "^3.0.0" - micromatch "^4.0.2" - http-proxy-middleware@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.0.tgz#20d1ac3409199c83e5d0383ba6436b04e7acb9fe" @@ -15524,10 +15528,10 @@ ipaddr.js@1.9.1, ipaddr.js@^1.9.1: resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -ipaddr.js@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.0.tgz#77ccccc8063ae71ab65c55f21b090698e763fc6e" - integrity sha512-S54H9mIj0rbxRIyrDMEuuER86LdlgUg9FSeZ8duQb6CUG2iRrA36MYVQBSprTF/ZeAwvyQ5mDGuNvIPM0BIl3w== +ipaddr.js@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0" + integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng== is-absolute-url@^2.0.0: version "2.1.0" @@ -15710,7 +15714,7 @@ is-directory@^0.3.1: resolved "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= -is-docker@^2.0.0: +is-docker@^2.0.0, is-docker@^2.1.1: version "2.2.1" resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== @@ -18721,13 +18725,25 @@ mime-db@1.48.0, "mime-db@>= 1.43.0 < 2": resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz#e35b31045dd7eada3aaad537ed88a33afbef2d1d" integrity sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ== -mime-types@^2.0.8, mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.30, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: +mime-db@1.49.0: + version "1.49.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed" + integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA== + +mime-types@^2.0.8, mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: version "2.1.31" resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz#a00d76b74317c61f9c2db2218b8e9f8e9c5c9e6b" integrity sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg== dependencies: mime-db "1.48.0" +mime-types@^2.1.31: + version "2.1.32" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5" + integrity sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A== + dependencies: + mime-db "1.49.0" + mime@1.6.0, mime@^1.4.0, mime@^1.4.1: version "1.6.0" resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" @@ -19918,13 +19934,14 @@ open@^7.0.0, open@^7.0.2, open@^7.0.3: is-docker "^2.0.0" is-wsl "^2.1.1" -open@^7.4.2: - version "7.4.2" - resolved "https://registry.npmjs.org/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" - integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== +open@^8.0.9: + version "8.2.1" + resolved "https://registry.npmjs.org/open/-/open-8.2.1.tgz#82de42da0ccbf429bc12d099dad2e0975e14e8af" + integrity sha512-rXILpcQlkF/QuFez2BJDf3GsqpjGKbkUUToAIGo9A0Q6ZkoSGogZJulrUdwRkrAsoQvoZsrjCYt8+zblOk7JQQ== dependencies: - is-docker "^2.0.0" - is-wsl "^2.1.1" + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" openapi-sampler@^1.0.0-beta.15: version "1.0.0-beta.16" @@ -23492,6 +23509,15 @@ schema-utils@^3.0.0: ajv "^6.12.5" ajv-keywords "^3.5.2" +schema-utils@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" + integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + screenfull@^5.0.0, screenfull@^5.1.0: version "5.1.0" resolved "https://registry.npmjs.org/screenfull/-/screenfull-5.1.0.tgz#85c13c70f4ead4c1b8a935c70010dfdcd2c0e5c8" @@ -24616,6 +24642,13 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" +strip-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.0.tgz#1dc49b980c3a4100366617adac59327eefdefcb0" + integrity sha512-UhDTSnGF1dc0DRbUqr1aXwNoY3RgVkSWG8BrpnuFIxhP57IqbS7IRta2Gfiavds4yCxc5+fEAVVOgBZWnYkvzg== + dependencies: + ansi-regex "^6.0.0" + strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" @@ -26564,22 +26597,22 @@ webpack-dev-middleware@^3.7.0: range-parser "^1.2.1" webpack-log "^2.0.0" -webpack-dev-middleware@^4.1.0: - version "4.3.0" - resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-4.3.0.tgz#179cc40795882cae510b1aa7f3710cbe93c9333e" - integrity sha512-PjwyVY95/bhBh6VUqt6z4THplYcsvQ8YNNBTBM873xLVmw8FLeALn0qurHbs9EmcfhzQis/eoqypSnZeuUz26w== +webpack-dev-middleware@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.0.0.tgz#0abe825275720e0a339978aea5f0b03b140c1584" + integrity sha512-9zng2Z60pm6A98YoRcA0wSxw1EYn7B7y5owX/Tckyt9KGyULTkLtiavjaXlWqOMkM0YtqGgL3PvMOFgyFLq8vw== dependencies: colorette "^1.2.2" mem "^8.1.1" memfs "^3.2.2" - mime-types "^2.1.30" + mime-types "^2.1.31" range-parser "^1.2.1" schema-utils "^3.0.0" -webpack-dev-server@4.0.0-beta.3: - version "4.0.0-beta.3" - resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.0.0-beta.3.tgz#57368679f7f1fdd7ec8d9dd287275117271164f0" - integrity sha512-Ud7ieH15No/KiSdRuzk+2k+S4gSCR/N7m4hJhesDbKQEZy3P+NPXTXfsimNOZvbVX2TRuIEFB+VdLZFn8DwGwg== +webpack-dev-server@4.0.0-rc.0: + version "4.0.0-rc.0" + resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.0.0-rc.0.tgz#56099f1e1e877d15a1fc28a928f38bbc600e33da" + integrity sha512-9S+MywBN/ecr8AbXNVUnmbFji8UTtzLR6M5Dgy6sB5Ti/73UgHn8TMhLaSBZBkY/cmSmWHDSwUXFs8lOeARpOw== dependencies: ansi-html "^0.0.7" bonjour "^3.5.0" @@ -26588,26 +26621,25 @@ webpack-dev-server@4.0.0-beta.3: connect-history-api-fallback "^1.6.0" del "^6.0.0" express "^4.17.1" - find-cache-dir "^3.3.1" graceful-fs "^4.2.6" html-entities "^2.3.2" - http-proxy-middleware "^1.3.1" + http-proxy-middleware "^2.0.0" internal-ip "^6.2.0" - ipaddr.js "^2.0.0" + ipaddr.js "^2.0.1" is-absolute-url "^3.0.3" killable "^1.0.1" - open "^7.4.2" + open "^8.0.9" p-retry "^4.5.0" portfinder "^1.0.28" - schema-utils "^3.0.0" + schema-utils "^3.1.0" selfsigned "^1.10.11" serve-index "^1.9.1" sockjs "^0.3.21" spdy "^4.0.2" - strip-ansi "^6.0.0" + strip-ansi "^7.0.0" url "^0.11.0" - webpack-dev-middleware "^4.1.0" - ws "^7.4.5" + webpack-dev-middleware "^5.0.0" + ws "^7.5.3" webpack-filter-warnings-plugin@^1.2.1: version "1.2.1" @@ -27046,10 +27078,10 @@ ws@^7.2.3, ws@^7.3.1: resolved "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8" integrity sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA== -ws@^7.4.5: - version "7.4.6" - resolved "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" - integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== +ws@^7.5.3: + version "7.5.3" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" + integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== xcase@^2.0.1: version "2.0.1" From f33d7d1deb0768c33508542128f37d3e8f7c51a5 Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 29 Jul 2021 10:10:24 +0200 Subject: [PATCH 35/64] chore: some more work towards webpack 5 Signed-off-by: blam --- packages/cli/package.json | 5 +- packages/cli/src/types.d.ts | 392 +----------------------------------- yarn.lock | 373 +++++++++++++++++----------------- 3 files changed, 185 insertions(+), 585 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index a520dc87ee..ae58aafc71 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -74,7 +74,7 @@ "eslint-plugin-react-hooks": "^4.0.0", "express": "^4.17.1", "file-loader": "^6.2.0", - "fork-ts-checker-webpack-plugin": "^6.2.9", + "fork-ts-checker-webpack-plugin": "^4.0.5", "fs-extra": "9.1.0", "handlebars": "^4.7.3", "html-webpack-plugin": "^5.3.1", @@ -109,7 +109,7 @@ "typescript": "^4.0.3", "url-loader": "^4.1.0", "util": "^0.12.3", - "webpack": "^5.0.0", + "webpack": "^5.36.2", "webpack-dev-server": "4.0.0-rc.0", "webpack-node-externals": "^3.0.0", "yaml": "^1.10.0", @@ -137,6 +137,7 @@ "@types/rollup-plugin-peer-deps-external": "^2.2.0", "@types/rollup-plugin-postcss": "^2.0.0", "@types/tar": "^4.0.3", + "@types/webpack": "^5.28.0", "@types/yarnpkg__lockfile": "^1.1.4", "del": "^6.0.0", "mock-fs": "^4.13.0", diff --git a/packages/cli/src/types.d.ts b/packages/cli/src/types.d.ts index 3e5d7f4108..07684bc15a 100644 --- a/packages/cli/src/types.d.ts +++ b/packages/cli/src/types.d.ts @@ -195,6 +195,8 @@ declare module 'mini-css-extract-plugin' { } } } + +declare module 'fork-ts-checker-webpack-plugin/lib/ForkTsCheckerWebpackPlugin' {} declare module 'webpack-node-externals' { export default function webpackNodeExternals( options?: webpackNodeExternals.Options, @@ -258,393 +260,3 @@ declare module 'webpack-node-externals' { } } } - -// local webpack.d.ts -import * as webpack from 'webpack'; - -declare module 'webpack' { - namespace loader { - // Stub to avoid compiler error in ts-loader types. - interface LoaderContext {} - } - - namespace Stats { - // Work-around for https://github.com/DefinitelyTyped/DefinitelyTyped/pull/50802 - type ToJsonOptions = Parameters[0]; - } -} -declare module 'webpack-dev-server' { - declare namespace WebpackDevServer { - import httpProxyMiddleware = require('http-proxy-middleware'); - import express = require('express'); - import serveStatic = require('serve-static'); - import https = require('https'); - import http = require('http'); - import connectHistoryApiFallback = require('connect-history-api-fallback'); - - interface ListeningApp { - address(): { port?: number }; - } - - interface ProxyConfigMap { - [url: string]: string | httpProxyMiddleware.Options; - } - - type ProxyConfigArrayItem = { - path?: string | string[]; - context?: string | string[] | httpProxyMiddleware.Filter; - } & httpProxyMiddleware.Options; - - type ProxyConfigArray = ProxyConfigArrayItem[]; - - interface Configuration { - /** - * Provides the ability to execute custom middleware after all other - * middleware internally within the server. - */ - after?: ( - app: express.Application, - server: WebpackDevServer, - compiler: webpack.Compiler, - ) => void; - /** - * This option allows you to whitelist services that are allowed to - * access the dev server. - */ - allowedHosts?: string[]; - /** - * Provides the ability to execute custom middleware prior to all - * other middleware internally within the server. - */ - before?: ( - app: express.Application, - server: WebpackDevServer, - compiler: webpack.Compiler, - ) => void; - /** - * This option broadcasts the server via ZeroConf networking on start. - */ - bonjour?: boolean; - /** - * When using inline mode, the console in your DevTools will show you - * messages e.g. before reloading, before an error or when Hot Module - * Replacement is enabled. This may be too verbose. - * - * 'none' and 'warning' are going to be deprecated at the next major - * version. - */ - clientLogLevel?: - | 'silent' - | 'trace' - | 'debug' - | 'info' - | 'warn' - | 'error' - | 'none' - | 'warning'; - /** - * Enable gzip compression for everything served. - */ - compress?: boolean; - /** - * Tell the server where to serve content from. This is only necessary - * if you want to serve static files. devServer.publicPath will be used - * to determine where the bundles should be served from, and takes - * precedence. - */ - contentBase?: boolean | string | string[] | number; - /** - * Tell the server at what URL to serve `devServer.contentBase`. - * If there was a file `assets/manifest.json`, - * it would be served at `/serve-content-base-at-this-url/manifest.json` - */ - contentBasePublicPath?: string | string[]; - /** - * When set to true this option bypasses host checking. THIS IS NOT - * RECOMMENDED as apps that do not check the host are vulnerable to DNS - * rebinding attacks. - */ - disableHostCheck?: boolean; - /** - * This option lets you reduce the compilations in lazy mode. - * By default in lazy mode, every request results in a new compilation. - * With filename, it's possible to only compile when a certain file is requested. - */ - filename?: string; - /** Adds headers to all responses. */ - headers?: { - [key: string]: string; - }; - /** - * When using the HTML5 History API, the index.html page will likely - * have to be served in place of any 404 responses. - */ - historyApiFallback?: boolean | connectHistoryApiFallback.Options; - /** - * Specify a host to use. By default this is localhost. - */ - host?: string; - /** - * Enable webpack's Hot Module Replacement feature. - * Note that webpack.HotModuleReplacementPlugin is required to fully - * enable HMR. If webpack or webpack-dev-server are launched with the - * --hot option, this plugin will be added automatically, so you may - * not need to add this to your webpack.config.js. - */ - hot?: boolean; - /** - * Enables Hot Module Replacement (see devServer.hot) without page - * refresh as fallback in case of build failures. - */ - hotOnly?: boolean; - /** - * Serve over HTTP/2 using spdy. This option is ignored for Node 10.0.0 - * and above, as spdy is broken for those versions. The dev server will - * migrate over to Node's built-in HTTP/2 once Express supports it. - */ - http2?: boolean; - /** - * By default dev-server will be served over HTTP. It can optionally be - * served over HTTP/2 with HTTPS. - */ - https?: boolean | https.ServerOptions; - /** - * The filename that is considered the index file. - */ - index?: string; - /** - * Tells devServer to inject a client. Setting devServer.injectClient - * to true will result in always injecting a client. It is possible to - * provide a function to inject conditionally - */ - injectClient?: boolean | ((compilerConfig: webpack.Compiler) => boolean); - /** - * Tells devServer to inject a Hot Module Replacement. Setting - * devServer.injectHot to true will result in always injecting. It is - * possible to provide a function to inject conditionally - */ - injectHot?: boolean | ((compilerConfig: webpack.Compiler) => boolean); - /** - * Toggle between the dev-server's two different modes. By default the - * application will be served with inline mode enabled. This means - * that a script will be inserted in your bundle to take care of live - * reloading, and build messages will appear in the browser console. - */ - inline?: boolean; - /** - * When lazy is enabled, the dev-server will only compile the bundle - * when it gets requested. This means that webpack will not watch any - * file changes. - */ - lazy?: boolean; - /** - * By default, the dev-server will reload/refresh the page when file - * changes are detected. devServer.hot option must be disabled or - * devServer.watchContentBase option must be enabled in order for - * liveReload to take effect. Disable devServer.liveReload by setting - * it to false - */ - liveReload?: boolean; - /** - * The object is passed to the underlying webpack-dev-middleware. See - * [documentation](https://github.com/webpack/webpack-dev-middleware#mimetypes) - * for usage notes. - */ - mimeTypes?: - | { - [key: string]: string[]; - } - | { - typeMap?: { - [key: string]: string[]; - } & { - force: boolean; - }; - }; - /** - * With noInfo enabled, messages like the webpack bundle information - * that is shown when starting up and after each save,will be hidden. - * Errors and warnings will still be shown. - */ - noInfo?: boolean; - /** - * Provides an option to execute a custom function when - * webpack-dev-server starts listening for connections on a port. - */ - onListening?: (server: WebpackDevServer) => void; - /** When open is enabled, the dev server will open the browser. */ - open?: boolean | string | object; - /** Specify a page to navigate to when opening the browser. */ - openPage?: string | string[]; - /** - * Shows a full-screen overlay in the browser when there are compiler - * errors or warnings. Disabled by default. - */ - overlay?: - | boolean - | { - warnings?: boolean; - errors?: boolean; - }; - /** - * When used via the CLI, a path to an SSL .pfx file. If used in - * options, it should be the bytestream of the .pfx file. - */ - pfx?: string; - /** The passphrase to a SSL PFX file. */ - pfxPassphrase?: string; - /** Specify a port number to listen for requests on. */ - port?: number; - /** - * Proxying some URLs can be useful when you have a separate API - * backend development server and you want to send API requests on the - * same domain. - * - * The dev-server makes use of the powerful http-proxy-middleware - * package. Check out its - * [documentation](https://github.com/chimurai/http-proxy-middleware#options) - * for more advanced usages. Note that some of http-proxy-middleware's - * features do not require a target key, e.g. its router feature, but - * you will still need to include a target key in your config here, - * otherwise webpack-dev-server won't pass it along to - * http-proxy-middleware). - */ - proxy?: ProxyConfigMap | ProxyConfigArray; - /** - * When using inline mode and you're proxying dev-server, the inline - * client script does not always know where to connect to. It will try - * to guess the URL of the server based on window.location, but if that - * fails you'll need to use this. - */ - public?: string; - /** - * The bundled files will be available in the browser under this path. - * default is '/' - */ - publicPath?: string; - /** - * With quiet enabled, nothing except the initial startup information - * will be written to the console. This also means that errors or - * warnings from webpack are not visible. - */ - quiet?: boolean; - /** - * Tells dev-server to use serveIndex middleware when enabled. - * - * serveIndex middleware generates directory listings on viewing - * directories that don't have an index.html file. - */ - serveIndex?: boolean; - /** - * @deprecated This option is deprecated in favor of devServer.before - * and will be removed in v3.0.0. Here you can access the Express app - * object and add your own custom middleware to it. - */ - setup?: (app: express.Application, server: WebpackDevServer) => void; - /** The Unix socket to listen to (instead of a host). */ - socket?: string; - /** - * Tells clients connected to devServer to use provided socket host. - */ - sockHost?: string; - /** - * The path at which to connect to the reloading socket. Default is - * '/sockjs-node' - */ - sockPath?: string; - /** - * Tells clients connected to devServer to use provided socket port. - */ - sockPort?: string | number; - /** - * It is possible to configure advanced options for serving static - * files from contentBase. - * - * This only works when using devServer.contentBase as a string. - */ - staticOptions?: serveStatic.ServeStaticOptions; - /** - * This option lets you precisely control what bundle information gets - * displayed. This can be a nice middle ground if you want some bundle - * information, but not all of it. - */ - stats?: webpack.Configuration['stats']; - /** - * transportMode is an experimental option, meaning its usage could - * potentially change without warning. - * - * Providing a string to devServer.transportMode is a shortcut to - * setting both devServer.transportMode.client and - * devServer.transportMode.server to the given string value. - * - * This option allows us either to choose the current devServer - * transport mode for client/server individually or to provide custom - * client/server implementation. This allows to specify how browser or - * other client communicates with the devServer. - * - * The current default mode is 'sockjs'. This mode uses SockJS-node as - * a server, and SockJS-client on the client. - * - * 'ws' mode will become the default mode in the next major devServer - * version. This mode uses ws as a server, and native WebSockets on the - * client. - */ - transportMode?: - | 'sockjs' - | 'ws' - | { - client: object; - server: 'ws'; - } - | { - client: 'ws'; - server: object; - } - | { - client: object; - server: object; - }; - /** This option lets the browser open with your local IP. */ - useLocalIp?: boolean; - /** - * Tell the server to watch the files served by the - * devServer.contentBase option. File changes will trigger a full page - * reload. - */ - watchContentBase?: boolean; - /** Control options related to watching the files. */ - watchOptions?: webpack.Configuration['watchOptions']; - /** Tells devServer to write generated assets to the disk. */ - writeToDisk?: boolean | ((filePath: string) => boolean); - } - } - declare class WebpackDevServer { - listeningApp: WebpackDevServer.ListeningApp; - sockets: NodeJS.EventEmitter[]; - - constructor( - webpack: webpack.Compiler | webpack.MultiCompiler, - config?: WebpackDevServer.Configuration, - ); - - static addDevServerEntrypoints( - webpackOptions: webpack.Configuration | webpack.Configuration[], - config: WebpackDevServer.Configuration, - listeningApp?: WebpackDevServer.ListeningApp, - ): void; - - listen( - port: number, - hostname: string, - callback?: (error?: Error) => void, - ): http.Server; - - listen(port: number, callback?: (error?: Error) => void): http.Server; - - close(callback?: () => void): void; - - sockWrite(sockets: NodeJS.EventEmitter[], type: string, data?: any): void; - } - - export = WebpackDevServer; -} diff --git a/yarn.lock b/yarn.lock index 46f898b2d6..d91285da03 100644 --- a/yarn.lock +++ b/yarn.lock @@ -336,7 +336,7 @@ dependencies: "@babel/highlight" "^7.8.3" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.3": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.5.5": version "7.12.13" resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== @@ -5932,10 +5932,10 @@ resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== -"@types/estree@^0.0.46": - version "0.0.46" - resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.46.tgz#0fb6bfbbeabd7a30880504993369c4bf1deab1fe" - integrity sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg== +"@types/estree@^0.0.50": + version "0.0.50" + resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" + integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== "@types/eventsource@^1.1.5": version "1.1.5" @@ -6200,7 +6200,7 @@ dependencies: "@types/json-schema" "*" -"@types/json-schema@*", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6", "@types/json-schema@^7.0.7": +"@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6", "@types/json-schema@^7.0.7": version "7.0.7" resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== @@ -6915,6 +6915,15 @@ "@types/webpack-sources" "*" source-map "^0.6.0" +"@types/webpack@^5.28.0": + version "5.28.0" + resolved "https://registry.npmjs.org/@types/webpack/-/webpack-5.28.0.tgz#78dde06212f038d77e54116cfe69e88ae9ed2c03" + integrity sha512-8cP0CzcxUiFuA9xGJkfeVpqmWTk9nx6CWwamRGCj95ph1SmlRRk9KlCZ6avhCbZd4L68LvYT6l1kpdEnQXrF8w== + dependencies: + "@types/node" "*" + tapable "^2.2.0" + webpack "^5" + "@types/websocket@1.0.2": version "1.0.2" resolved "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.2.tgz#d2855c6a312b7da73ed16ba6781815bf30c6187a" @@ -7051,13 +7060,13 @@ "@typescript-eslint/types" "4.28.3" eslint-visitor-keys "^2.0.0" -"@webassemblyjs/ast@1.11.0": - version "1.11.0" - resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.0.tgz#a5aa679efdc9e51707a4207139da57920555961f" - integrity sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg== +"@webassemblyjs/ast@1.11.1": + version "1.11.1" + resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" + integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== dependencies: - "@webassemblyjs/helper-numbers" "1.11.0" - "@webassemblyjs/helper-wasm-bytecode" "1.11.0" + "@webassemblyjs/helper-numbers" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" "@webassemblyjs/ast@1.9.0": version "1.9.0" @@ -7068,30 +7077,30 @@ "@webassemblyjs/helper-wasm-bytecode" "1.9.0" "@webassemblyjs/wast-parser" "1.9.0" -"@webassemblyjs/floating-point-hex-parser@1.11.0": - version "1.11.0" - resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz#34d62052f453cd43101d72eab4966a022587947c" - integrity sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA== +"@webassemblyjs/floating-point-hex-parser@1.11.1": + version "1.11.1" + resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" + integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== "@webassemblyjs/floating-point-hex-parser@1.9.0": version "1.9.0" resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== -"@webassemblyjs/helper-api-error@1.11.0": - version "1.11.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz#aaea8fb3b923f4aaa9b512ff541b013ffb68d2d4" - integrity sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w== +"@webassemblyjs/helper-api-error@1.11.1": + version "1.11.1" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" + integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== "@webassemblyjs/helper-api-error@1.9.0": version "1.9.0" resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== -"@webassemblyjs/helper-buffer@1.11.0": - version "1.11.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz#d026c25d175e388a7dbda9694e91e743cbe9b642" - integrity sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA== +"@webassemblyjs/helper-buffer@1.11.1": + version "1.11.1" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" + integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== "@webassemblyjs/helper-buffer@1.9.0": version "1.9.0" @@ -7117,34 +7126,34 @@ dependencies: "@webassemblyjs/ast" "1.9.0" -"@webassemblyjs/helper-numbers@1.11.0": - version "1.11.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz#7ab04172d54e312cc6ea4286d7d9fa27c88cd4f9" - integrity sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ== +"@webassemblyjs/helper-numbers@1.11.1": + version "1.11.1" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" + integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.11.0" - "@webassemblyjs/helper-api-error" "1.11.0" + "@webassemblyjs/floating-point-hex-parser" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" "@xtuc/long" "4.2.2" -"@webassemblyjs/helper-wasm-bytecode@1.11.0": - version "1.11.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz#85fdcda4129902fe86f81abf7e7236953ec5a4e1" - integrity sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA== +"@webassemblyjs/helper-wasm-bytecode@1.11.1": + version "1.11.1" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" + integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== "@webassemblyjs/helper-wasm-bytecode@1.9.0": version "1.9.0" resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== -"@webassemblyjs/helper-wasm-section@1.11.0": - version "1.11.0" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz#9ce2cc89300262509c801b4af113d1ca25c1a75b" - integrity sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew== +"@webassemblyjs/helper-wasm-section@1.11.1": + version "1.11.1" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" + integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== dependencies: - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/helper-buffer" "1.11.0" - "@webassemblyjs/helper-wasm-bytecode" "1.11.0" - "@webassemblyjs/wasm-gen" "1.11.0" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" "@webassemblyjs/helper-wasm-section@1.9.0": version "1.9.0" @@ -7156,10 +7165,10 @@ "@webassemblyjs/helper-wasm-bytecode" "1.9.0" "@webassemblyjs/wasm-gen" "1.9.0" -"@webassemblyjs/ieee754@1.11.0": - version "1.11.0" - resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz#46975d583f9828f5d094ac210e219441c4e6f5cf" - integrity sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA== +"@webassemblyjs/ieee754@1.11.1": + version "1.11.1" + resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" + integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== dependencies: "@xtuc/ieee754" "^1.2.0" @@ -7170,10 +7179,10 @@ dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.11.0": - version "1.11.0" - resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.0.tgz#f7353de1df38aa201cba9fb88b43f41f75ff403b" - integrity sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g== +"@webassemblyjs/leb128@1.11.1": + version "1.11.1" + resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" + integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== dependencies: "@xtuc/long" "4.2.2" @@ -7184,29 +7193,29 @@ dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.11.0": - version "1.11.0" - resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.0.tgz#86e48f959cf49e0e5091f069a709b862f5a2cadf" - integrity sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw== +"@webassemblyjs/utf8@1.11.1": + version "1.11.1" + resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" + integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== "@webassemblyjs/utf8@1.9.0": version "1.9.0" resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== -"@webassemblyjs/wasm-edit@1.11.0": - version "1.11.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz#ee4a5c9f677046a210542ae63897094c2027cb78" - integrity sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ== +"@webassemblyjs/wasm-edit@1.11.1": + version "1.11.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" + integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== dependencies: - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/helper-buffer" "1.11.0" - "@webassemblyjs/helper-wasm-bytecode" "1.11.0" - "@webassemblyjs/helper-wasm-section" "1.11.0" - "@webassemblyjs/wasm-gen" "1.11.0" - "@webassemblyjs/wasm-opt" "1.11.0" - "@webassemblyjs/wasm-parser" "1.11.0" - "@webassemblyjs/wast-printer" "1.11.0" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/helper-wasm-section" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-opt" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + "@webassemblyjs/wast-printer" "1.11.1" "@webassemblyjs/wasm-edit@1.9.0": version "1.9.0" @@ -7222,16 +7231,16 @@ "@webassemblyjs/wasm-parser" "1.9.0" "@webassemblyjs/wast-printer" "1.9.0" -"@webassemblyjs/wasm-gen@1.11.0": - version "1.11.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz#3cdb35e70082d42a35166988dda64f24ceb97abe" - integrity sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ== +"@webassemblyjs/wasm-gen@1.11.1": + version "1.11.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" + integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== dependencies: - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/helper-wasm-bytecode" "1.11.0" - "@webassemblyjs/ieee754" "1.11.0" - "@webassemblyjs/leb128" "1.11.0" - "@webassemblyjs/utf8" "1.11.0" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" "@webassemblyjs/wasm-gen@1.9.0": version "1.9.0" @@ -7244,15 +7253,15 @@ "@webassemblyjs/leb128" "1.9.0" "@webassemblyjs/utf8" "1.9.0" -"@webassemblyjs/wasm-opt@1.11.0": - version "1.11.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz#1638ae188137f4bb031f568a413cd24d32f92978" - integrity sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg== +"@webassemblyjs/wasm-opt@1.11.1": + version "1.11.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" + integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== dependencies: - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/helper-buffer" "1.11.0" - "@webassemblyjs/wasm-gen" "1.11.0" - "@webassemblyjs/wasm-parser" "1.11.0" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-buffer" "1.11.1" + "@webassemblyjs/wasm-gen" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" "@webassemblyjs/wasm-opt@1.9.0": version "1.9.0" @@ -7264,17 +7273,17 @@ "@webassemblyjs/wasm-gen" "1.9.0" "@webassemblyjs/wasm-parser" "1.9.0" -"@webassemblyjs/wasm-parser@1.11.0": - version "1.11.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz#3e680b8830d5b13d1ec86cc42f38f3d4a7700754" - integrity sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw== +"@webassemblyjs/wasm-parser@1.11.1": + version "1.11.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" + integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== dependencies: - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/helper-api-error" "1.11.0" - "@webassemblyjs/helper-wasm-bytecode" "1.11.0" - "@webassemblyjs/ieee754" "1.11.0" - "@webassemblyjs/leb128" "1.11.0" - "@webassemblyjs/utf8" "1.11.0" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/helper-api-error" "1.11.1" + "@webassemblyjs/helper-wasm-bytecode" "1.11.1" + "@webassemblyjs/ieee754" "1.11.1" + "@webassemblyjs/leb128" "1.11.1" + "@webassemblyjs/utf8" "1.11.1" "@webassemblyjs/wasm-parser@1.9.0": version "1.9.0" @@ -7300,12 +7309,12 @@ "@webassemblyjs/helper-fsm" "1.9.0" "@xtuc/long" "4.2.2" -"@webassemblyjs/wast-printer@1.11.0": - version "1.11.0" - resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz#680d1f6a5365d6d401974a8e949e05474e1fab7e" - integrity sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ== +"@webassemblyjs/wast-printer@1.11.1": + version "1.11.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" + integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== dependencies: - "@webassemblyjs/ast" "1.11.0" + "@webassemblyjs/ast" "1.11.1" "@xtuc/long" "4.2.2" "@webassemblyjs/wast-printer@1.9.0": @@ -7440,10 +7449,10 @@ acorn@^7.1.1, acorn@^7.4.0: resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.0.4: - version "8.1.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.1.1.tgz#fb0026885b9ac9f48bac1e185e4af472971149ff" - integrity sha512-xYiIVjNuqtKXMxlRMDc6mZUhXehod4a3gbZ1qRlM7icK4EbxUFNLhWoPblCvFtB2Y9CIqHP3CF/rdxLItaQv8g== +acorn@^8.4.1: + version "8.4.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz#56c36251fc7cabc7096adc18f05afe814321a28c" + integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA== add-stream@^1.0.0: version "1.0.0" @@ -7527,7 +7536,7 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.1, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.5.5, ajv@^6.7.0, ajv@~6.12.6: +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.1, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.5.5, ajv@^6.7.0, ajv@~6.12.6: version "6.12.6" resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -12188,10 +12197,10 @@ enhanced-resolve@^4.0.0, enhanced-resolve@^4.3.0: memory-fs "^0.5.0" tapable "^1.0.0" -enhanced-resolve@^5.7.0: - version "5.7.0" - resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz#525c5d856680fbd5052de453ac83e32049958b5c" - integrity sha512-6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw== +enhanced-resolve@^5.8.0: + version "5.8.2" + resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz#15ddc779345cbb73e97c611cd00c01c1e7bf4d8b" + integrity sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -12304,10 +12313,10 @@ es-get-iterator@^1.0.2: is-string "^1.0.5" isarray "^2.0.5" -es-module-lexer@^0.4.0: - version "0.4.1" - resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.4.1.tgz#dda8c6a14d8f340a24e34331e0fab0cb50438e0e" - integrity sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA== +es-module-lexer@^0.7.1: + version "0.7.1" + resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.7.1.tgz#c2c8e0f46f2df06274cdaf0dd3f3b33e0a0b267d" + integrity sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw== es-to-primitive@^1.2.1: version "1.2.1" @@ -12564,6 +12573,14 @@ eslint-plugin-react@^7.12.4: resolve "^1.18.1" string.prototype.matchall "^4.0.2" +eslint-scope@5.1.1, eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + eslint-scope@^4.0.3: version "4.0.3" resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" @@ -12572,14 +12589,6 @@ eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - eslint-utils@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" @@ -13521,7 +13530,7 @@ fork-ts-checker-webpack-plugin@3.1.1: tapable "^1.0.0" worker-rpc "^0.1.0" -fork-ts-checker-webpack-plugin@4.1.6, fork-ts-checker-webpack-plugin@^4.1.4: +fork-ts-checker-webpack-plugin@4.1.6, fork-ts-checker-webpack-plugin@^4.0.5, fork-ts-checker-webpack-plugin@^4.1.4: version "4.1.6" resolved "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-4.1.6.tgz#5055c703febcf37fa06405d400c122b905167fc5" integrity sha512-DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw== @@ -13534,25 +13543,6 @@ fork-ts-checker-webpack-plugin@4.1.6, fork-ts-checker-webpack-plugin@^4.1.4: tapable "^1.0.0" worker-rpc "^0.1.0" -fork-ts-checker-webpack-plugin@^6.2.9: - version "6.2.9" - resolved "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.2.9.tgz#08f51b685a48b09ab3ec079a8501762422443120" - integrity sha512-D/KSb/2VeiOy3odDerrC16WiZ1t5TLwiFfZmuDeTXcf3Km79M+f8nTCIdKkokxybybrgMcStbx0QpGaseePxnA== - dependencies: - "@babel/code-frame" "^7.8.3" - "@types/json-schema" "^7.0.5" - chalk "^4.1.0" - chokidar "^3.4.2" - cosmiconfig "^6.0.0" - deepmerge "^4.2.2" - fs-extra "^9.0.0" - glob "^7.1.6" - memfs "^3.1.2" - minimatch "^3.0.4" - schema-utils "2.7.0" - semver "^7.3.2" - tapable "^1.0.0" - form-data@4.0.0, form-data@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" @@ -16740,6 +16730,15 @@ jest-worker@^26.2.1, jest-worker@^26.6.2: merge-stream "^2.0.0" supports-color "^7.0.0" +jest-worker@^27.0.2: + version "27.0.6" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.6.tgz#a5fdb1e14ad34eb228cfe162d9f729cdbfa28aed" + integrity sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + jest@^26.0.1: version "26.6.3" resolved "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz#40e8fdbe48f00dfa1f0ce8121ca74b88ac9148ef" @@ -18481,7 +18480,7 @@ mem@^8.1.1: map-age-cleaner "^0.1.3" mimic-fn "^3.1.0" -memfs@^3.1.2, memfs@^3.2.2: +memfs@^3.2.2: version "3.2.2" resolved "https://registry.npmjs.org/memfs/-/memfs-3.2.2.tgz#5de461389d596e3f23d48bb7c2afb6161f4df40e" integrity sha512-RE0CwmIM3CEvpcdK3rZ19BC4E6hv9kADkMN5rPduRak58cNArWLi/9jFLsa4rhsjfVxMP3v0jO7FHXq7SvFY5Q== @@ -23473,15 +23472,6 @@ scheduler@^0.19.0, scheduler@^0.19.1: loose-envify "^1.1.0" object-assign "^4.1.1" -schema-utils@2.7.0: - version "2.7.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" - integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== - dependencies: - "@types/json-schema" "^7.0.4" - ajv "^6.12.2" - ajv-keywords "^3.4.1" - schema-utils@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" @@ -23658,10 +23648,10 @@ serialize-javascript@^4.0.0: dependencies: randombytes "^2.1.0" -serialize-javascript@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" - integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== +serialize-javascript@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" + integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== dependencies: randombytes "^2.1.0" @@ -24029,7 +24019,7 @@ sort-keys@^4.0.0: dependencies: is-plain-obj "^2.0.0" -source-list-map@^2.0.0, source-list-map@^2.0.1: +source-list-map@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== @@ -24851,7 +24841,7 @@ supports-color@^7.2.0: dependencies: has-flag "^4.0.0" -supports-color@^8.1.0, supports-color@^8.1.1: +supports-color@^8.0.0, supports-color@^8.1.0, supports-color@^8.1.1: version "8.1.1" resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== @@ -25188,17 +25178,17 @@ terser-webpack-plugin@^3.0.0: terser "^4.8.0" webpack-sources "^1.4.3" -terser-webpack-plugin@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz#7effadee06f7ecfa093dbbd3e9ab23f5f3ed8673" - integrity sha512-5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q== +terser-webpack-plugin@^5.1.3: + version "5.1.4" + resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz#c369cf8a47aa9922bd0d8a94fe3d3da11a7678a1" + integrity sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA== dependencies: - jest-worker "^26.6.2" + jest-worker "^27.0.2" p-limit "^3.1.0" schema-utils "^3.0.0" - serialize-javascript "^5.0.1" + serialize-javascript "^6.0.0" source-map "^0.6.1" - terser "^5.5.1" + terser "^5.7.0" terser@^4.1.2, terser@^4.6.3, terser@^4.8.0: version "4.8.0" @@ -25209,10 +25199,10 @@ terser@^4.1.2, terser@^4.6.3, terser@^4.8.0: source-map "~0.6.1" source-map-support "~0.5.12" -terser@^5.5.1: - version "5.6.1" - resolved "https://registry.npmjs.org/terser/-/terser-5.6.1.tgz#a48eeac5300c0a09b36854bf90d9c26fb201973c" - integrity sha512-yv9YLFQQ+3ZqgWCUk+pvNJwgUTdlIxUk1WTN+RnaFJe2L7ipG2csPT0ra2XRm7Cs8cxN7QXmK1rFzEwYEQkzXw== +terser@^5.7.0: + version "5.7.1" + resolved "https://registry.npmjs.org/terser/-/terser-5.7.1.tgz#2dc7a61009b66bb638305cb2a824763b116bf784" + integrity sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg== dependencies: commander "^2.20.0" source-map "~0.7.2" @@ -26549,10 +26539,10 @@ watchpack@^1.7.4: chokidar "^3.4.1" watchpack-chokidar2 "^2.0.0" -watchpack@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz#e99630550fca07df9f90a06056987baa40a689c7" - integrity sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw== +watchpack@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.2.0.tgz#47d78f5415fe550ecd740f99fe2882323a58b1ce" + integrity sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA== dependencies: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" @@ -26677,13 +26667,10 @@ webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack- source-list-map "^2.0.0" source-map "~0.6.1" -webpack-sources@^2.1.1: - version "2.2.0" - resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.2.0.tgz#058926f39e3d443193b6c31547229806ffd02bac" - integrity sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w== - dependencies: - source-list-map "^2.0.1" - source-map "^0.6.1" +webpack-sources@^3.0.1: + version "3.0.2" + resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.0.2.tgz#29942415daf201a06278f8e2b92e44e564a9288e" + integrity sha512-XQ6aGLmqoxZtmpbgwySGhYLNFav1W6+qgMWPGgn6qScxfGrQgMdigkUqZXQ7oB0ydUrvfs9RRyHaSfV153K8Xg== webpack-virtual-modules@^0.2.2: version "0.2.2" @@ -26721,22 +26708,22 @@ webpack@^4.44.2: watchpack "^1.7.4" webpack-sources "^1.4.1" -webpack@^5.0.0: - version "5.31.2" - resolved "https://registry.npmjs.org/webpack/-/webpack-5.31.2.tgz#40d9b9d15b7d76af73d3f1cae895b82613a544d6" - integrity sha512-0bCQe4ybo7T5Z0SC5axnIAH+1WuIdV4FwLYkaAlLtvfBhIx8bPS48WHTfiRZS1VM+pSiYt7e/rgLs3gLrH82lQ== +webpack@^5, webpack@^5.36.2: + version "5.47.0" + resolved "https://registry.npmjs.org/webpack/-/webpack-5.47.0.tgz#3c13862b5d7b428792bfe76c5f67a0f43ba685f8" + integrity sha512-soKLGwcUM1R3YEbJhJNiZzy7T43TnI7ENda/ywfDp9G1mDlDTpO+qfc8I5b0AzMr9xM3jyvQ0n7ctJyiXuXW6Q== dependencies: "@types/eslint-scope" "^3.7.0" - "@types/estree" "^0.0.46" - "@webassemblyjs/ast" "1.11.0" - "@webassemblyjs/wasm-edit" "1.11.0" - "@webassemblyjs/wasm-parser" "1.11.0" - acorn "^8.0.4" + "@types/estree" "^0.0.50" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/wasm-edit" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + acorn "^8.4.1" browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.7.0" - es-module-lexer "^0.4.0" - eslint-scope "^5.1.1" + enhanced-resolve "^5.8.0" + es-module-lexer "^0.7.1" + eslint-scope "5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1" graceful-fs "^4.2.4" @@ -26744,11 +26731,11 @@ webpack@^5.0.0: loader-runner "^4.2.0" mime-types "^2.1.27" neo-async "^2.6.2" - schema-utils "^3.0.0" + schema-utils "^3.1.0" tapable "^2.1.1" - terser-webpack-plugin "^5.1.1" - watchpack "^2.0.0" - webpack-sources "^2.1.1" + terser-webpack-plugin "^5.1.3" + watchpack "^2.2.0" + webpack-sources "^3.0.1" websocket-driver@>=0.5.1: version "0.7.3" From 2ec33603b9b5072f18dce1be765ca6d75a7e1f25 Mon Sep 17 00:00:00 2001 From: blam Date: Wed, 4 Aug 2021 14:12:28 +0200 Subject: [PATCH 36/64] feat: make webpack typescript and all the things happy Signed-off-by: blam --- packages/cli/package.json | 2 +- packages/cli/src/lib/bundler/backend.ts | 1 + packages/cli/src/lib/bundler/config.ts | 21 +- packages/cli/src/types.d.ts | 399 ++++++++++++++++++++++++ yarn.lock | 49 ++- 5 files changed, 451 insertions(+), 21 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index ae58aafc71..03eef30031 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -109,7 +109,7 @@ "typescript": "^4.0.3", "url-loader": "^4.1.0", "util": "^0.12.3", - "webpack": "^5.36.2", + "webpack": "^5.48.0", "webpack-dev-server": "4.0.0-rc.0", "webpack-node-externals": "^3.0.0", "yaml": "^1.10.0", diff --git a/packages/cli/src/lib/bundler/backend.ts b/packages/cli/src/lib/bundler/backend.ts index bd4ab42098..567fc3476a 100644 --- a/packages/cli/src/lib/bundler/backend.ts +++ b/packages/cli/src/lib/bundler/backend.ts @@ -28,6 +28,7 @@ export async function serveBackend(options: BackendServeOptions) { const compiler = webpack(config, (err: Error | undefined) => { if (err) { + console.log('here'); console.error(err); } else console.log('Build succeeded'); }); diff --git a/packages/cli/src/lib/bundler/config.ts b/packages/cli/src/lib/bundler/config.ts index 8c2b3ce95e..f749c70ed2 100644 --- a/packages/cli/src/lib/bundler/config.ts +++ b/packages/cli/src/lib/bundler/config.ts @@ -98,10 +98,9 @@ export async function createConfig( if (checksEnabled) { plugins.push( new ForkTsCheckerWebpackPlugin({ - typescript: { - configFile: paths.targetTsConfig, - }, - eslint: { + typescript: paths.targetTsConfig, + eslint: true, + eslintOptions: { files: ['**', '!**/__tests__/**', '!**/?(*.)(spec|test).*'], options: { parserOptions: { @@ -170,9 +169,6 @@ export async function createConfig( performance: { hints: false, // we check the gzip size instead }, - // Workaround for hot module reloads not working, will be fixed in webpack-dev-server v4 - // https://github.com/webpack/webpack-dev-server/issues/2758 - target: 'web', devtool: isDev ? 'eval-cheap-module-source-map' : 'source-map', context: paths.targetPath, entry: [require.resolve('react-hot-loader/patch'), paths.targetEntry], @@ -218,7 +214,7 @@ export async function createConfig( : 'static/[name].[chunkhash:8].chunk.js', ...(isDev ? { - devtoolModuleFilenameTemplate: info => + devtoolModuleFilenameTemplate: (info: any) => `file:///${resolvePath(info.absoluteResourcePath).replace( /\\/g, '/', @@ -309,7 +305,7 @@ export async function createBackendConfig( : '[name].[chunkhash:8].chunk.js', ...(isDev ? { - devtoolModuleFilenameTemplate: info => + devtoolModuleFilenameTemplate: (info: any) => `file:///${resolvePath(info.absoluteResourcePath).replace( /\\/g, '/', @@ -326,10 +322,9 @@ export async function createBackendConfig( ...(checksEnabled ? [ new ForkTsCheckerWebpackPlugin({ - typescript: { - configFile: paths.targetTsConfig, - }, - eslint: { + typescript: paths.targetTsConfig, + eslint: true, + eslintOptions: { files: ['**', '!**/__tests__/**', '!**/?(*.)(spec|test).*'], options: { parserOptions: { diff --git a/packages/cli/src/types.d.ts b/packages/cli/src/types.d.ts index 07684bc15a..0ca023def7 100644 --- a/packages/cli/src/types.d.ts +++ b/packages/cli/src/types.d.ts @@ -260,3 +260,402 @@ declare module 'webpack-node-externals' { } } } + +declare module 'webpack-dev-server' { + import webpack = require('webpack'); + import httpProxyMiddleware = require('http-proxy-middleware'); + import express = require('express'); + import serveStatic = require('serve-static'); + import https = require('https'); + import http = require('http'); + import connectHistoryApiFallback = require('connect-history-api-fallback'); + + interface ListeningApp { + address(): { port?: number | undefined }; + } + + interface ProxyConfigMap { + [url: string]: string | httpProxyMiddleware.Options; + } + + type ProxyConfigArrayItem = { + path?: string | string[] | undefined; + context?: string | string[] | httpProxyMiddleware.Filter | undefined; + } & httpProxyMiddleware.Options; + + type ProxyConfigArray = ProxyConfigArrayItem[]; + + interface Configuration { + /** + * Provides the ability to execute custom middleware after all other + * middleware internally within the server. + */ + after?: + | (( + app: express.Application, + server: WebpackDevServer, + compiler: webpack.Compiler, + ) => void) + | undefined; + /** + * This option allows you to whitelist services that are allowed to + * access the dev server. + */ + allowedHosts?: string[] | undefined; + /** + * Provides the ability to execute custom middleware prior to all + * other middleware internally within the server. + */ + before?: + | (( + app: express.Application, + server: WebpackDevServer, + compiler: webpack.Compiler, + ) => void) + | undefined; + /** + * This option broadcasts the server via ZeroConf networking on start. + */ + bonjour?: boolean | undefined; + /** + * When using inline mode, the console in your DevTools will show you + * messages e.g. before reloading, before an error or when Hot Module + * Replacement is enabled. This may be too verbose. + * + * 'none' and 'warning' are going to be deprecated at the next major + * version. + */ + clientLogLevel?: + | 'silent' + | 'trace' + | 'debug' + | 'info' + | 'warn' + | 'error' + | 'none' + | 'warning' + | undefined; + /** + * Enable gzip compression for everything served. + */ + compress?: boolean | undefined; + /** + * Tell the server where to serve content from. This is only necessary + * if you want to serve static files. devServer.publicPath will be used + * to determine where the bundles should be served from, and takes + * precedence. + */ + contentBase?: boolean | string | string[] | number | undefined; + /** + * Tell the server at what URL to serve `devServer.contentBase`. + * If there was a file `assets/manifest.json`, + * it would be served at `/serve-content-base-at-this-url/manifest.json` + */ + contentBasePublicPath?: string | string[] | undefined; + /** + * When set to true this option bypasses host checking. THIS IS NOT + * RECOMMENDED as apps that do not check the host are vulnerable to DNS + * rebinding attacks. + */ + disableHostCheck?: boolean | undefined; + /** + * This option lets you reduce the compilations in lazy mode. + * By default in lazy mode, every request results in a new compilation. + * With filename, it's possible to only compile when a certain file is requested. + */ + filename?: string | undefined; + /** Adds headers to all responses. */ + headers?: + | { + [key: string]: string; + } + | undefined; + /** + * When using the HTML5 History API, the index.html page will likely + * have to be served in place of any 404 responses. + */ + historyApiFallback?: + | boolean + | connectHistoryApiFallback.Options + | undefined; + /** + * Specify a host to use. By default this is localhost. + */ + host?: string | undefined; + /** + * Enable webpack's Hot Module Replacement feature. + * Note that webpack.HotModuleReplacementPlugin is required to fully + * enable HMR. If webpack or webpack-dev-server are launched with the + * --hot option, this plugin will be added automatically, so you may + * not need to add this to your webpack.config.js. + */ + hot?: boolean | undefined; + /** + * Enables Hot Module Replacement (see devServer.hot) without page + * refresh as fallback in case of build failures. + */ + hotOnly?: boolean | undefined; + /** + * Serve over HTTP/2 using spdy. This option is ignored for Node 10.0.0 + * and above, as spdy is broken for those versions. The dev server will + * migrate over to Node's built-in HTTP/2 once Express supports it. + */ + http2?: boolean | undefined; + /** + * By default dev-server will be served over HTTP. It can optionally be + * served over HTTP/2 with HTTPS. + */ + https?: boolean | https.ServerOptions | undefined; + /** + * The filename that is considered the index file. + */ + index?: string | undefined; + /** + * Tells devServer to inject a client. Setting devServer.injectClient + * to true will result in always injecting a client. It is possible to + * provide a function to inject conditionally + */ + injectClient?: + | boolean + | ((compilerConfig: webpack.Compiler) => boolean) + | undefined; + /** + * Tells devServer to inject a Hot Module Replacement. Setting + * devServer.injectHot to true will result in always injecting. It is + * possible to provide a function to inject conditionally + */ + injectHot?: + | boolean + | ((compilerConfig: webpack.Compiler) => boolean) + | undefined; + /** + * Toggle between the dev-server's two different modes. By default the + * application will be served with inline mode enabled. This means + * that a script will be inserted in your bundle to take care of live + * reloading, and build messages will appear in the browser console. + */ + inline?: boolean | undefined; + /** + * When lazy is enabled, the dev-server will only compile the bundle + * when it gets requested. This means that webpack will not watch any + * file changes. + */ + lazy?: boolean | undefined; + /** + * By default, the dev-server will reload/refresh the page when file + * changes are detected. devServer.hot option must be disabled or + * devServer.watchContentBase option must be enabled in order for + * liveReload to take effect. Disable devServer.liveReload by setting + * it to false + */ + liveReload?: boolean | undefined; + /** + * The object is passed to the underlying webpack-dev-middleware. See + * [documentation](https://github.com/webpack/webpack-dev-middleware#mimetypes) + * for usage notes. + */ + mimeTypes?: + | { + [key: string]: string[]; + } + | { + typeMap?: + | ({ + [key: string]: string[]; + } & { + force: boolean; + }) + | undefined; + } + | undefined; + /** + * With noInfo enabled, messages like the webpack bundle information + * that is shown when starting up and after each save,will be hidden. + * Errors and warnings will still be shown. + */ + noInfo?: boolean | undefined; + /** + * Provides an option to execute a custom function when + * webpack-dev-server starts listening for connections on a port. + */ + onListening?: ((server: WebpackDevServer) => void) | undefined; + /** When open is enabled, the dev server will open the browser. */ + open?: boolean | string | object | undefined; + /** Specify a page to navigate to when opening the browser. */ + openPage?: string | string[] | undefined; + /** + * Shows a full-screen overlay in the browser when there are compiler + * errors or warnings. Disabled by default. + */ + overlay?: + | boolean + | { + warnings?: boolean | undefined; + errors?: boolean | undefined; + } + | undefined; + /** + * When used via the CLI, a path to an SSL .pfx file. If used in + * options, it should be the bytestream of the .pfx file. + */ + pfx?: string | undefined; + /** The passphrase to a SSL PFX file. */ + pfxPassphrase?: string | undefined; + /** Specify a port number to listen for requests on. */ + port?: number | undefined; + /** + * Proxying some URLs can be useful when you have a separate API + * backend development server and you want to send API requests on the + * same domain. + * + * The dev-server makes use of the powerful http-proxy-middleware + * package. Check out its + * [documentation](https://github.com/chimurai/http-proxy-middleware#options) + * for more advanced usages. Note that some of http-proxy-middleware's + * features do not require a target key, e.g. its router feature, but + * you will still need to include a target key in your config here, + * otherwise webpack-dev-server won't pass it along to + * http-proxy-middleware). + */ + proxy?: ProxyConfigMap | ProxyConfigArray | undefined; + /** + * When using inline mode and you're proxying dev-server, the inline + * client script does not always know where to connect to. It will try + * to guess the URL of the server based on window.location, but if that + * fails you'll need to use this. + */ + public?: string | undefined; + /** + * The bundled files will be available in the browser under this path. + * default is '/' + */ + publicPath?: string | undefined; + /** + * With quiet enabled, nothing except the initial startup information + * will be written to the console. This also means that errors or + * warnings from webpack are not visible. + */ + quiet?: boolean | undefined; + /** + * Tells dev-server to use serveIndex middleware when enabled. + * + * serveIndex middleware generates directory listings on viewing + * directories that don't have an index.html file. + */ + serveIndex?: boolean | undefined; + /** + * @deprecated This option is deprecated in favor of devServer.before + * and will be removed in v3.0.0. Here you can access the Express app + * object and add your own custom middleware to it. + */ + setup?: + | ((app: express.Application, server: WebpackDevServer) => void) + | undefined; + /** The Unix socket to listen to (instead of a host). */ + socket?: string | undefined; + /** + * Tells clients connected to devServer to use provided socket host. + */ + sockHost?: string | undefined; + /** + * The path at which to connect to the reloading socket. Default is + * '/sockjs-node' + */ + sockPath?: string | undefined; + /** + * Tells clients connected to devServer to use provided socket port. + */ + sockPort?: string | number | undefined; + /** + * It is possible to configure advanced options for serving static + * files from contentBase. + * + * This only works when using devServer.contentBase as a string. + */ + staticOptions?: serveStatic.ServeStaticOptions | undefined; + /** + * This option lets you precisely control what bundle information gets + * displayed. This can be a nice middle ground if you want some bundle + * information, but not all of it. + */ + stats?: webpack.Configuration['stats'] | undefined; + /** + * transportMode is an experimental option, meaning its usage could + * potentially change without warning. + * + * Providing a string to devServer.transportMode is a shortcut to + * setting both devServer.transportMode.client and + * devServer.transportMode.server to the given string value. + * + * This option allows us either to choose the current devServer + * transport mode for client/server individually or to provide custom + * client/server implementation. This allows to specify how browser or + * other client communicates with the devServer. + * + * The current default mode is 'sockjs'. This mode uses SockJS-node as + * a server, and SockJS-client on the client. + * + * 'ws' mode will become the default mode in the next major devServer + * version. This mode uses ws as a server, and native WebSockets on the + * client. + */ + transportMode?: + | 'sockjs' + | 'ws' + | { + client: object; + server: 'ws'; + } + | { + client: 'ws'; + server: object; + } + | { + client: object; + server: object; + } + | undefined; + /** This option lets the browser open with your local IP. */ + useLocalIp?: boolean | undefined; + /** + * Tell the server to watch the files served by the + * devServer.contentBase option. File changes will trigger a full page + * reload. + */ + watchContentBase?: boolean | undefined; + /** Control options related to watching the files. */ + watchOptions?: webpack.Configuration['watchOptions'] | undefined; + /** Tells devServer to write generated assets to the disk. */ + writeToDisk?: boolean | ((filePath: string) => boolean) | undefined; + } + + export class WebpackDevServer { + listeningApp: WebpackDevServer.ListeningApp; + sockets: NodeJS.EventEmitter[]; + + constructor( + webpack: webpack.Compiler | webpack.MultiCompiler, + config?: WebpackDevServer.Configuration, + ); + + static addDevServerEntrypoints( + webpackOptions: webpack.Configuration | webpack.Configuration[], + config: WebpackDevServer.Configuration, + listeningApp?: WebpackDevServer.ListeningApp, + ): void; + + listen( + port: number, + hostname: string, + callback?: (error?: Error) => void, + ): http.Server; + + listen(port: number, callback?: (error?: Error) => void): http.Server; + + close(callback?: () => void): void; + + sockWrite(sockets: NodeJS.EventEmitter[], type: string, data?: any): void; + } + + export = WebpackDevServer; +} diff --git a/yarn.lock b/yarn.lock index d91285da03..a1adaad977 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7419,6 +7419,11 @@ acorn-globals@^6.0.0: acorn "^7.1.1" acorn-walk "^7.1.1" +acorn-import-assertions@^1.7.6: + version "1.7.6" + resolved "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.7.6.tgz#580e3ffcae6770eebeec76c3b9723201e9d01f78" + integrity sha512-FlVvVFA1TX6l3lp8VjDnYYq7R1nyW6x3svAt4nDgrWQ9SBaSh9CnbwgSUTasgfNfOG5HlM1ehugCvM+hjo56LA== + acorn-jsx@^5.3.1: version "5.3.1" resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" @@ -26672,6 +26677,11 @@ webpack-sources@^3.0.1: resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.0.2.tgz#29942415daf201a06278f8e2b92e44e564a9288e" integrity sha512-XQ6aGLmqoxZtmpbgwySGhYLNFav1W6+qgMWPGgn6qScxfGrQgMdigkUqZXQ7oB0ydUrvfs9RRyHaSfV153K8Xg== +webpack-sources@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.0.tgz#b16973bcf844ebcdb3afde32eda1c04d0b90f89d" + integrity sha512-fahN08Et7P9trej8xz/Z7eRu8ltyiygEo/hnRi9KqBUs80KeDcnf96ZJo++ewWd84fEf3xSX9bp4ZS9hbw0OBw== + webpack-virtual-modules@^0.2.2: version "0.2.2" resolved "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.2.2.tgz#20863dc3cb6bb2104729fff951fbe14b18bd0299" @@ -26708,7 +26718,7 @@ webpack@^4.44.2: watchpack "^1.7.4" webpack-sources "^1.4.1" -webpack@^5, webpack@^5.36.2: +webpack@^5: version "5.47.0" resolved "https://registry.npmjs.org/webpack/-/webpack-5.47.0.tgz#3c13862b5d7b428792bfe76c5f67a0f43ba685f8" integrity sha512-soKLGwcUM1R3YEbJhJNiZzy7T43TnI7ENda/ywfDp9G1mDlDTpO+qfc8I5b0AzMr9xM3jyvQ0n7ctJyiXuXW6Q== @@ -26737,6 +26747,36 @@ webpack@^5, webpack@^5.36.2: watchpack "^2.2.0" webpack-sources "^3.0.1" +webpack@^5.48.0: + version "5.48.0" + resolved "https://registry.npmjs.org/webpack/-/webpack-5.48.0.tgz#06180fef9767a6fd066889559a4c4d49bee19b83" + integrity sha512-CGe+nfbHrYzbk7SKoYITCgN3LRAG0yVddjNUecz9uugo1QtYdiyrVD8nP1PhkNqPfdxC2hknmmKpP355Epyn6A== + dependencies: + "@types/eslint-scope" "^3.7.0" + "@types/estree" "^0.0.50" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/wasm-edit" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + acorn "^8.4.1" + acorn-import-assertions "^1.7.6" + browserslist "^4.14.5" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.8.0" + es-module-lexer "^0.7.1" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.4" + json-parse-better-errors "^1.0.2" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.1.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.1.3" + watchpack "^2.2.0" + webpack-sources "^3.2.0" + websocket-driver@>=0.5.1: version "0.7.3" resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9" @@ -27036,7 +27076,7 @@ write-pkg@^4.0.0: type-fest "^0.4.1" write-json-file "^3.2.0" -ws@7.4.5, ws@^7.4.6: +ws@7.4.5, ws@^7.4.6, ws@^7.5.3: version "7.5.3" resolved "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== @@ -27065,11 +27105,6 @@ ws@^7.2.3, ws@^7.3.1: resolved "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8" integrity sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA== -ws@^7.5.3: - version "7.5.3" - resolved "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" - integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== - xcase@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/xcase/-/xcase-2.0.1.tgz#c7fa72caa0f440db78fd5673432038ac984450b9" From ef52e7189b7cb863e059184e67eb734c5851c3de Mon Sep 17 00:00:00 2001 From: blam Date: Wed, 4 Aug 2021 14:51:06 +0200 Subject: [PATCH 37/64] chore: maybe fix types Signed-off-by: blam --- packages/cli/package.json | 1 + packages/cli/src/types.d.ts | 403 +----------------------------------- yarn.lock | 163 +++++---------- 3 files changed, 59 insertions(+), 508 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index 03eef30031..e4dc9f440a 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -138,6 +138,7 @@ "@types/rollup-plugin-postcss": "^2.0.0", "@types/tar": "^4.0.3", "@types/webpack": "^5.28.0", + "@types/webpack-dev-server": "^3.11.5", "@types/yarnpkg__lockfile": "^1.1.4", "del": "^6.0.0", "mock-fs": "^4.13.0", diff --git a/packages/cli/src/types.d.ts b/packages/cli/src/types.d.ts index 0ca023def7..5f5580fdbe 100644 --- a/packages/cli/src/types.d.ts +++ b/packages/cli/src/types.d.ts @@ -33,7 +33,7 @@ declare module '@rollup/plugin-yaml'; declare module 'terser-webpack-plugin'; declare module 'react-dev-utils/formatWebpackMessages' { - export default function ( + export default function( stats: any, ): { errors: string[]; @@ -42,7 +42,7 @@ declare module 'react-dev-utils/formatWebpackMessages' { } declare module 'react-dev-utils/openBrowser' { - export default function (url: string): boolean; + export default function(url: string): boolean; } declare module 'react-dev-utils/ModuleScopePlugin' { @@ -260,402 +260,3 @@ declare module 'webpack-node-externals' { } } } - -declare module 'webpack-dev-server' { - import webpack = require('webpack'); - import httpProxyMiddleware = require('http-proxy-middleware'); - import express = require('express'); - import serveStatic = require('serve-static'); - import https = require('https'); - import http = require('http'); - import connectHistoryApiFallback = require('connect-history-api-fallback'); - - interface ListeningApp { - address(): { port?: number | undefined }; - } - - interface ProxyConfigMap { - [url: string]: string | httpProxyMiddleware.Options; - } - - type ProxyConfigArrayItem = { - path?: string | string[] | undefined; - context?: string | string[] | httpProxyMiddleware.Filter | undefined; - } & httpProxyMiddleware.Options; - - type ProxyConfigArray = ProxyConfigArrayItem[]; - - interface Configuration { - /** - * Provides the ability to execute custom middleware after all other - * middleware internally within the server. - */ - after?: - | (( - app: express.Application, - server: WebpackDevServer, - compiler: webpack.Compiler, - ) => void) - | undefined; - /** - * This option allows you to whitelist services that are allowed to - * access the dev server. - */ - allowedHosts?: string[] | undefined; - /** - * Provides the ability to execute custom middleware prior to all - * other middleware internally within the server. - */ - before?: - | (( - app: express.Application, - server: WebpackDevServer, - compiler: webpack.Compiler, - ) => void) - | undefined; - /** - * This option broadcasts the server via ZeroConf networking on start. - */ - bonjour?: boolean | undefined; - /** - * When using inline mode, the console in your DevTools will show you - * messages e.g. before reloading, before an error or when Hot Module - * Replacement is enabled. This may be too verbose. - * - * 'none' and 'warning' are going to be deprecated at the next major - * version. - */ - clientLogLevel?: - | 'silent' - | 'trace' - | 'debug' - | 'info' - | 'warn' - | 'error' - | 'none' - | 'warning' - | undefined; - /** - * Enable gzip compression for everything served. - */ - compress?: boolean | undefined; - /** - * Tell the server where to serve content from. This is only necessary - * if you want to serve static files. devServer.publicPath will be used - * to determine where the bundles should be served from, and takes - * precedence. - */ - contentBase?: boolean | string | string[] | number | undefined; - /** - * Tell the server at what URL to serve `devServer.contentBase`. - * If there was a file `assets/manifest.json`, - * it would be served at `/serve-content-base-at-this-url/manifest.json` - */ - contentBasePublicPath?: string | string[] | undefined; - /** - * When set to true this option bypasses host checking. THIS IS NOT - * RECOMMENDED as apps that do not check the host are vulnerable to DNS - * rebinding attacks. - */ - disableHostCheck?: boolean | undefined; - /** - * This option lets you reduce the compilations in lazy mode. - * By default in lazy mode, every request results in a new compilation. - * With filename, it's possible to only compile when a certain file is requested. - */ - filename?: string | undefined; - /** Adds headers to all responses. */ - headers?: - | { - [key: string]: string; - } - | undefined; - /** - * When using the HTML5 History API, the index.html page will likely - * have to be served in place of any 404 responses. - */ - historyApiFallback?: - | boolean - | connectHistoryApiFallback.Options - | undefined; - /** - * Specify a host to use. By default this is localhost. - */ - host?: string | undefined; - /** - * Enable webpack's Hot Module Replacement feature. - * Note that webpack.HotModuleReplacementPlugin is required to fully - * enable HMR. If webpack or webpack-dev-server are launched with the - * --hot option, this plugin will be added automatically, so you may - * not need to add this to your webpack.config.js. - */ - hot?: boolean | undefined; - /** - * Enables Hot Module Replacement (see devServer.hot) without page - * refresh as fallback in case of build failures. - */ - hotOnly?: boolean | undefined; - /** - * Serve over HTTP/2 using spdy. This option is ignored for Node 10.0.0 - * and above, as spdy is broken for those versions. The dev server will - * migrate over to Node's built-in HTTP/2 once Express supports it. - */ - http2?: boolean | undefined; - /** - * By default dev-server will be served over HTTP. It can optionally be - * served over HTTP/2 with HTTPS. - */ - https?: boolean | https.ServerOptions | undefined; - /** - * The filename that is considered the index file. - */ - index?: string | undefined; - /** - * Tells devServer to inject a client. Setting devServer.injectClient - * to true will result in always injecting a client. It is possible to - * provide a function to inject conditionally - */ - injectClient?: - | boolean - | ((compilerConfig: webpack.Compiler) => boolean) - | undefined; - /** - * Tells devServer to inject a Hot Module Replacement. Setting - * devServer.injectHot to true will result in always injecting. It is - * possible to provide a function to inject conditionally - */ - injectHot?: - | boolean - | ((compilerConfig: webpack.Compiler) => boolean) - | undefined; - /** - * Toggle between the dev-server's two different modes. By default the - * application will be served with inline mode enabled. This means - * that a script will be inserted in your bundle to take care of live - * reloading, and build messages will appear in the browser console. - */ - inline?: boolean | undefined; - /** - * When lazy is enabled, the dev-server will only compile the bundle - * when it gets requested. This means that webpack will not watch any - * file changes. - */ - lazy?: boolean | undefined; - /** - * By default, the dev-server will reload/refresh the page when file - * changes are detected. devServer.hot option must be disabled or - * devServer.watchContentBase option must be enabled in order for - * liveReload to take effect. Disable devServer.liveReload by setting - * it to false - */ - liveReload?: boolean | undefined; - /** - * The object is passed to the underlying webpack-dev-middleware. See - * [documentation](https://github.com/webpack/webpack-dev-middleware#mimetypes) - * for usage notes. - */ - mimeTypes?: - | { - [key: string]: string[]; - } - | { - typeMap?: - | ({ - [key: string]: string[]; - } & { - force: boolean; - }) - | undefined; - } - | undefined; - /** - * With noInfo enabled, messages like the webpack bundle information - * that is shown when starting up and after each save,will be hidden. - * Errors and warnings will still be shown. - */ - noInfo?: boolean | undefined; - /** - * Provides an option to execute a custom function when - * webpack-dev-server starts listening for connections on a port. - */ - onListening?: ((server: WebpackDevServer) => void) | undefined; - /** When open is enabled, the dev server will open the browser. */ - open?: boolean | string | object | undefined; - /** Specify a page to navigate to when opening the browser. */ - openPage?: string | string[] | undefined; - /** - * Shows a full-screen overlay in the browser when there are compiler - * errors or warnings. Disabled by default. - */ - overlay?: - | boolean - | { - warnings?: boolean | undefined; - errors?: boolean | undefined; - } - | undefined; - /** - * When used via the CLI, a path to an SSL .pfx file. If used in - * options, it should be the bytestream of the .pfx file. - */ - pfx?: string | undefined; - /** The passphrase to a SSL PFX file. */ - pfxPassphrase?: string | undefined; - /** Specify a port number to listen for requests on. */ - port?: number | undefined; - /** - * Proxying some URLs can be useful when you have a separate API - * backend development server and you want to send API requests on the - * same domain. - * - * The dev-server makes use of the powerful http-proxy-middleware - * package. Check out its - * [documentation](https://github.com/chimurai/http-proxy-middleware#options) - * for more advanced usages. Note that some of http-proxy-middleware's - * features do not require a target key, e.g. its router feature, but - * you will still need to include a target key in your config here, - * otherwise webpack-dev-server won't pass it along to - * http-proxy-middleware). - */ - proxy?: ProxyConfigMap | ProxyConfigArray | undefined; - /** - * When using inline mode and you're proxying dev-server, the inline - * client script does not always know where to connect to. It will try - * to guess the URL of the server based on window.location, but if that - * fails you'll need to use this. - */ - public?: string | undefined; - /** - * The bundled files will be available in the browser under this path. - * default is '/' - */ - publicPath?: string | undefined; - /** - * With quiet enabled, nothing except the initial startup information - * will be written to the console. This also means that errors or - * warnings from webpack are not visible. - */ - quiet?: boolean | undefined; - /** - * Tells dev-server to use serveIndex middleware when enabled. - * - * serveIndex middleware generates directory listings on viewing - * directories that don't have an index.html file. - */ - serveIndex?: boolean | undefined; - /** - * @deprecated This option is deprecated in favor of devServer.before - * and will be removed in v3.0.0. Here you can access the Express app - * object and add your own custom middleware to it. - */ - setup?: - | ((app: express.Application, server: WebpackDevServer) => void) - | undefined; - /** The Unix socket to listen to (instead of a host). */ - socket?: string | undefined; - /** - * Tells clients connected to devServer to use provided socket host. - */ - sockHost?: string | undefined; - /** - * The path at which to connect to the reloading socket. Default is - * '/sockjs-node' - */ - sockPath?: string | undefined; - /** - * Tells clients connected to devServer to use provided socket port. - */ - sockPort?: string | number | undefined; - /** - * It is possible to configure advanced options for serving static - * files from contentBase. - * - * This only works when using devServer.contentBase as a string. - */ - staticOptions?: serveStatic.ServeStaticOptions | undefined; - /** - * This option lets you precisely control what bundle information gets - * displayed. This can be a nice middle ground if you want some bundle - * information, but not all of it. - */ - stats?: webpack.Configuration['stats'] | undefined; - /** - * transportMode is an experimental option, meaning its usage could - * potentially change without warning. - * - * Providing a string to devServer.transportMode is a shortcut to - * setting both devServer.transportMode.client and - * devServer.transportMode.server to the given string value. - * - * This option allows us either to choose the current devServer - * transport mode for client/server individually or to provide custom - * client/server implementation. This allows to specify how browser or - * other client communicates with the devServer. - * - * The current default mode is 'sockjs'. This mode uses SockJS-node as - * a server, and SockJS-client on the client. - * - * 'ws' mode will become the default mode in the next major devServer - * version. This mode uses ws as a server, and native WebSockets on the - * client. - */ - transportMode?: - | 'sockjs' - | 'ws' - | { - client: object; - server: 'ws'; - } - | { - client: 'ws'; - server: object; - } - | { - client: object; - server: object; - } - | undefined; - /** This option lets the browser open with your local IP. */ - useLocalIp?: boolean | undefined; - /** - * Tell the server to watch the files served by the - * devServer.contentBase option. File changes will trigger a full page - * reload. - */ - watchContentBase?: boolean | undefined; - /** Control options related to watching the files. */ - watchOptions?: webpack.Configuration['watchOptions'] | undefined; - /** Tells devServer to write generated assets to the disk. */ - writeToDisk?: boolean | ((filePath: string) => boolean) | undefined; - } - - export class WebpackDevServer { - listeningApp: WebpackDevServer.ListeningApp; - sockets: NodeJS.EventEmitter[]; - - constructor( - webpack: webpack.Compiler | webpack.MultiCompiler, - config?: WebpackDevServer.Configuration, - ); - - static addDevServerEntrypoints( - webpackOptions: webpack.Configuration | webpack.Configuration[], - config: WebpackDevServer.Configuration, - listeningApp?: WebpackDevServer.ListeningApp, - ): void; - - listen( - port: number, - hostname: string, - callback?: (error?: Error) => void, - ): http.Server; - - listen(port: number, callback?: (error?: Error) => void): http.Server; - - close(callback?: () => void): void; - - sockWrite(sockets: NodeJS.EventEmitter[], type: string, data?: any): void; - } - - export = WebpackDevServer; -} diff --git a/yarn.lock b/yarn.lock index a1adaad977..48fca96a70 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1403,24 +1403,6 @@ "@babel/helper-validator-identifier" "^7.14.0" to-fast-properties "^2.0.0" -"@backstage/core-api@^0.2.23": - version "0.2.23" - resolved "https://registry.npmjs.org/@backstage/core-api/-/core-api-0.2.23.tgz#c0ec13407ff7c78d376eb18e9d8e1490d54d995b" - integrity sha512-859IGJ5LpcFaqZOenJNM9eFBKd5lrdBjYst8I0srLCaZkBCshTbUT615G3zoDMDiXZNSm+h4V82kMT4eES9wDw== - dependencies: - "@backstage/config" "^0.1.4" - "@backstage/core-plugin-api" "^0.1.3" - "@backstage/theme" "^0.2.8" - "@material-ui/core" "^4.11.0" - "@material-ui/icons" "^4.9.1" - "@types/prop-types" "^15.7.3" - "@types/react" "^16.9" - prop-types "^15.7.2" - react "^16.12.0" - react-router-dom "6.0.0-beta.0" - react-use "^17.2.4" - zen-observable "^0.8.15" - "@backstage/core-components@^0.1.3", "@backstage/core-components@^0.1.6": version "0.1.6" resolved "https://registry.npmjs.org/@backstage/core-components/-/core-components-0.1.6.tgz#a66d9af3be61e76ed60d1026dec376b2d97e0a8e" @@ -1466,52 +1448,6 @@ remark-gfm "^1.0.0" zen-observable "^0.8.15" -"@backstage/core@*": - version "0.7.14" - resolved "https://registry.npmjs.org/@backstage/core/-/core-0.7.14.tgz#863844fe40bb6a29bcc2d297e42055633b0e886f" - integrity sha512-W7EMspBXrp1GPALK6+qdJjsvkqcaYGFyoh8/bRAXABIkJpGQGiy4xUZUKDoMhd+OdVHv/mzyyv3fH2yc32J07w== - dependencies: - "@backstage/config" "^0.1.5" - "@backstage/core-api" "^0.2.23" - "@backstage/errors" "^0.1.1" - "@backstage/theme" "^0.2.8" - "@material-ui/core" "^4.11.0" - "@material-ui/icons" "^4.9.1" - "@material-ui/lab" "4.0.0-alpha.45" - "@testing-library/react-hooks" "^3.4.2" - "@types/dagre" "^0.7.44" - "@types/prop-types" "^15.7.3" - "@types/react" "^16.9" - "@types/react-sparklines" "^1.7.0" - "@types/react-text-truncate" "^0.14.0" - classnames "^2.2.6" - clsx "^1.1.0" - d3-selection "^2.0.0" - d3-shape "^2.0.0" - d3-zoom "^2.0.0" - dagre "^0.8.5" - history "^5.0.0" - immer "^9.0.1" - lodash "^4.17.15" - material-table "^1.69.1" - pluralize "^8.0.0" - prop-types "^15.7.2" - qs "^6.9.4" - rc-progress "^3.0.0" - react "^16.12.0" - react-dom "^16.12.0" - react-helmet "6.1.0" - react-hook-form "^6.15.4" - react-markdown "^5.0.2" - react-router "6.0.0-beta.0" - react-router-dom "6.0.0-beta.0" - react-sparklines "^1.7.0" - react-syntax-highlighter "^15.4.3" - react-text-truncate "^0.16.0" - react-use "^17.2.4" - remark-gfm "^1.0.0" - zen-observable "^0.8.15" - "@backstage/plugin-catalog-react@^0.3.0": version "0.3.1" resolved "https://registry.npmjs.org/@backstage/plugin-catalog-react/-/plugin-catalog-react-0.3.1.tgz#d30a063a4ceb4d446310a687d19c987f55824fdb" @@ -5772,6 +5708,14 @@ dependencies: "@types/node" "*" +"@types/connect-history-api-fallback@*": + version "1.3.5" + resolved "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae" + integrity sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw== + dependencies: + "@types/express-serve-static-core" "*" + "@types/node" "*" + "@types/connect@*": version "3.4.33" resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz#31610c901eca573b8713c3330abc6e6b9f588546" @@ -5942,7 +5886,7 @@ resolved "https://registry.npmjs.org/@types/eventsource/-/eventsource-1.1.5.tgz#408e9b45efb176c8bea672ab58c81e7ab00d24bc" integrity sha512-BA9q9uC2PAMkUS7DunHTxWZZaVpeNzDG8lkBxcKwzKJClfDQ4Z59/Csx7HSH/SIqFN2JWh0tAKAM6k/wRR0OZg== -"@types/express-serve-static-core@^4.17.18", "@types/express-serve-static-core@^4.17.21": +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18", "@types/express-serve-static-core@^4.17.21": version "4.17.24" resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz#ea41f93bf7e0d59cd5a76665068ed6aab6815c07" integrity sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA== @@ -6889,6 +6833,17 @@ resolved "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.0.tgz#215c231dff736d5ba92410e6d602050cce7e273f" integrity sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ== +"@types/webpack-dev-server@^3.11.5": + version "3.11.5" + resolved "https://registry.npmjs.org/@types/webpack-dev-server/-/webpack-dev-server-3.11.5.tgz#f4a254a3dd0667c8ee4af90d42afdb4ad1d607f3" + integrity sha512-vjsbQBW3fE5FDICkF3w3ZWFRXNwQdKt7JRPLmRy5W0KXlcuew4wgpKWXhgHS71iLNv7Z2PlY9dSSIaYg+bk+9w== + dependencies: + "@types/connect-history-api-fallback" "*" + "@types/express" "*" + "@types/serve-static" "*" + "@types/webpack" "^4" + http-proxy-middleware "^1.0.0" + "@types/webpack-env@^1.15.2", "@types/webpack-env@^1.15.3", "@types/webpack-env@^1.16.0": version "1.16.0" resolved "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.16.0.tgz#8c0a9435dfa7b3b1be76562f3070efb3f92637b4" @@ -6903,6 +6858,18 @@ "@types/source-list-map" "*" source-map "^0.6.1" +"@types/webpack@^4": + version "4.41.30" + resolved "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.30.tgz#fd3db6d0d41e145a8eeeafcd3c4a7ccde9068ddc" + integrity sha512-GUHyY+pfuQ6haAfzu4S14F+R5iGRwN6b2FRNJY7U0NilmFAqbsOfK6j1HwuLBAqwRIT+pVdNDJGJ6e8rpp0KHA== + dependencies: + "@types/node" "*" + "@types/tapable" "^1" + "@types/uglify-js" "*" + "@types/webpack-sources" "*" + anymatch "^3.0.0" + source-map "^0.6.0" + "@types/webpack@^4.41.8": version "4.41.27" resolved "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.27.tgz#f47da488c8037e7f1b2dbf2714fbbacb61ec0ffc" @@ -7694,7 +7661,7 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -anymatch@^3.0.3, anymatch@~3.1.2: +anymatch@^3.0.0, anymatch@^3.0.3, anymatch@~3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== @@ -14435,7 +14402,7 @@ graphql-extensions@^0.15.0: apollo-server-env "^3.1.0" apollo-server-types "^0.9.0" -graphql-language-service-interface@2.8.2, graphql-language-service-interface@^2.8.2: +graphql-language-service-interface@^2.8.2: version "2.8.2" resolved "https://registry.npmjs.org/graphql-language-service-interface/-/graphql-language-service-interface-2.8.2.tgz#b3bb2aef7eaf0dff0b4ea419fa412c5f66fa268b" integrity sha512-otbOQmhgkAJU1QJgQkMztNku6SbJLu/uodoFOYOOtJsizTjrMs93vkYaHCcYnLA3oi1Goj27XcHjMnRCYQOZXQ== @@ -14445,7 +14412,7 @@ graphql-language-service-interface@2.8.2, graphql-language-service-interface@^2. graphql-language-service-utils "^2.5.1" vscode-languageserver-types "^3.15.1" -graphql-language-service-parser@1.9.0, graphql-language-service-parser@^1.9.0: +graphql-language-service-parser@^1.9.0: version "1.9.0" resolved "https://registry.npmjs.org/graphql-language-service-parser/-/graphql-language-service-parser-1.9.0.tgz#79af21294119a0a7e81b6b994a1af36833bab724" integrity sha512-B5xPZLbBmIp0kHvpY1Z35I5DtPoDK9wGxQVRDIzcBaiIvAmlTrDvjo3bu7vKREdjFbYKvWNgrEWENuprMbF17Q== @@ -15036,6 +15003,17 @@ http-proxy-agent@^4.0.0, http-proxy-agent@^4.0.1: agent-base "6" debug "4" +http-proxy-middleware@^1.0.0: + version "1.3.1" + resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz#43700d6d9eecb7419bf086a128d0f7205d9eb665" + integrity sha512-13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg== + dependencies: + "@types/http-proxy" "^1.17.5" + http-proxy "^1.18.1" + is-glob "^4.0.1" + is-plain-obj "^3.0.0" + micromatch "^4.0.2" + http-proxy-middleware@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.0.tgz#20d1ac3409199c83e5d0383ba6436b04e7acb9fe" @@ -26672,11 +26650,6 @@ webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack- source-list-map "^2.0.0" source-map "~0.6.1" -webpack-sources@^3.0.1: - version "3.0.2" - resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.0.2.tgz#29942415daf201a06278f8e2b92e44e564a9288e" - integrity sha512-XQ6aGLmqoxZtmpbgwySGhYLNFav1W6+qgMWPGgn6qScxfGrQgMdigkUqZXQ7oB0ydUrvfs9RRyHaSfV153K8Xg== - webpack-sources@^3.2.0: version "3.2.0" resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.0.tgz#b16973bcf844ebcdb3afde32eda1c04d0b90f89d" @@ -26718,36 +26691,7 @@ webpack@^4.44.2: watchpack "^1.7.4" webpack-sources "^1.4.1" -webpack@^5: - version "5.47.0" - resolved "https://registry.npmjs.org/webpack/-/webpack-5.47.0.tgz#3c13862b5d7b428792bfe76c5f67a0f43ba685f8" - integrity sha512-soKLGwcUM1R3YEbJhJNiZzy7T43TnI7ENda/ywfDp9G1mDlDTpO+qfc8I5b0AzMr9xM3jyvQ0n7ctJyiXuXW6Q== - dependencies: - "@types/eslint-scope" "^3.7.0" - "@types/estree" "^0.0.50" - "@webassemblyjs/ast" "1.11.1" - "@webassemblyjs/wasm-edit" "1.11.1" - "@webassemblyjs/wasm-parser" "1.11.1" - acorn "^8.4.1" - browserslist "^4.14.5" - chrome-trace-event "^1.0.2" - enhanced-resolve "^5.8.0" - es-module-lexer "^0.7.1" - eslint-scope "5.1.1" - events "^3.2.0" - glob-to-regexp "^0.4.1" - graceful-fs "^4.2.4" - json-parse-better-errors "^1.0.2" - loader-runner "^4.2.0" - mime-types "^2.1.27" - neo-async "^2.6.2" - schema-utils "^3.1.0" - tapable "^2.1.1" - terser-webpack-plugin "^5.1.3" - watchpack "^2.2.0" - webpack-sources "^3.0.1" - -webpack@^5.48.0: +webpack@^5, webpack@^5.48.0: version "5.48.0" resolved "https://registry.npmjs.org/webpack/-/webpack-5.48.0.tgz#06180fef9767a6fd066889559a4c4d49bee19b83" integrity sha512-CGe+nfbHrYzbk7SKoYITCgN3LRAG0yVddjNUecz9uugo1QtYdiyrVD8nP1PhkNqPfdxC2hknmmKpP355Epyn6A== @@ -27076,10 +27020,10 @@ write-pkg@^4.0.0: type-fest "^0.4.1" write-json-file "^3.2.0" -ws@7.4.5, ws@^7.4.6, ws@^7.5.3: - version "7.5.3" - resolved "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" - integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== +ws@7.4.5: + version "7.4.5" + resolved "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz#a484dd851e9beb6fdb420027e3885e8ce48986c1" + integrity sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g== ws@^5.2.0: version "5.2.3" @@ -27105,6 +27049,11 @@ ws@^7.2.3, ws@^7.3.1: resolved "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8" integrity sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA== +ws@^7.5.3: + version "7.5.3" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" + integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== + xcase@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/xcase/-/xcase-2.0.1.tgz#c7fa72caa0f440db78fd5673432038ac984450b9" From 47e6cb9c5e5b5ecede53c0b36adde3837abbf355 Mon Sep 17 00:00:00 2001 From: blam Date: Wed, 4 Aug 2021 15:40:47 +0200 Subject: [PATCH 38/64] chore: convert storybook to webpack5 Signed-off-by: blam --- packages/cli/package.json | 3 + packages/storybook/.storybook/main.js | 3 + packages/storybook/package.json | 26 +- yarn.lock | 3834 +++++++++++++++---------- 4 files changed, 2325 insertions(+), 1541 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index e4dc9f440a..6af8fd90a3 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -145,6 +145,9 @@ "nodemon": "^2.0.2", "ts-node": "^10.0.0" }, + "resolutions": { + "@types/webpack-dev-server/@types/webpack": "^5.28.0" + }, "files": [ "asset-types", "templates", diff --git a/packages/storybook/.storybook/main.js b/packages/storybook/.storybook/main.js index 4afcac335c..899896a125 100644 --- a/packages/storybook/.storybook/main.js +++ b/packages/storybook/.storybook/main.js @@ -2,6 +2,9 @@ const path = require('path'); const WebpackPluginFailBuildOnWarning = require('./webpack-plugin-fail-build-on-warning'); module.exports = { + core: { + builder: 'webpack5', + }, stories: [ '../../core-components/src/**/*.stories.tsx', '../../../plugins/**/src/**/*.stories.tsx', diff --git a/packages/storybook/package.json b/packages/storybook/package.json index 8195efca1c..2d1f624210 100644 --- a/packages/storybook/package.json +++ b/packages/storybook/package.json @@ -7,24 +7,26 @@ "start": "start-storybook -p 6006", "build-storybook": "build-storybook --output-dir dist" }, + "dependencies": { + "@backstage/theme": "^0.2.0", + "react": "^16.12.0", + "react-dom": "^16.12.0" + }, "workspaces": { "nohoist": [ "@storybook/react/**", "@storybook/addons/**" ] }, - "dependencies": { - "@backstage/theme": "^0.2.0", - "react": "^16.12.0", - "react-dom": "^16.12.0" - }, "devDependencies": { - "@storybook/addon-a11y": "^6.3.4", - "@storybook/addon-actions": "^6.1.11", - "@storybook/addon-links": "^6.1.11", - "@storybook/addon-storysource": "^6.1.11", - "@storybook/addons": "^6.1.11", - "@storybook/react": "^6.1.11", - "storybook-dark-mode": "^1.0.3" + "@storybook/addon-a11y": "^6.4.0-alpha.23", + "@storybook/addon-actions": "^6.4.0-alpha.23", + "@storybook/addon-links": "^6.4.0-alpha.23", + "@storybook/addon-storysource": "^6.4.0-alpha.23", + "@storybook/addons": "^6.4.0-alpha.23", + "@storybook/builder-webpack5": "^6.4.0-alpha.23", + "@storybook/manager-webpack5": "^6.4.0-alpha.23", + "@storybook/react": "^6.4.0-alpha.23", + "storybook-dark-mode": "^1.0.9-canary.158.3571.0" } } diff --git a/yarn.lock b/yarn.lock index 48fca96a70..c1cf9847ca 100644 --- a/yarn.lock +++ b/yarn.lock @@ -329,13 +329,6 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/code-frame@7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" - integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== - dependencies: - "@babel/highlight" "^7.8.3" - "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.5.5": version "7.12.13" resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" @@ -343,11 +336,45 @@ dependencies: "@babel/highlight" "^7.12.13" +"@babel/code-frame@^7.14.5", "@babel/code-frame@^7.8.3": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" + integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== + dependencies: + "@babel/highlight" "^7.14.5" + "@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.4": version "7.14.4" resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.4.tgz#45720fe0cecf3fd42019e1d12cc3d27fadc98d58" integrity sha512-i2wXrWQNkH6JplJQGn3Rd2I4Pij8GdHkXwHMxm+zV5YG/Jci+bCNrWZEWC4o+umiDkRrRs4dVzH3X4GP7vyjQQ== +"@babel/compat-data@^7.14.5", "@babel/compat-data@^7.14.7", "@babel/compat-data@^7.14.9": + version "7.14.9" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.9.tgz#ac7996ceaafcf8f410119c8af0d1db4cf914a210" + integrity sha512-p3QjZmMGHDGdpcwEYYWu7i7oJShJvtgMjJeb0W95PPhSm++3lm8YXYOh45Y6iCN9PkZLTZ7CIX5nFrp7pw7TXw== + +"@babel/core@7.12.9": + version "7.12.9" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz#fd450c4ec10cdbb980e2928b7aa7a28484593fc8" + integrity sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.12.5" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helpers" "^7.12.5" + "@babel/parser" "^7.12.7" + "@babel/template" "^7.12.7" + "@babel/traverse" "^7.12.9" + "@babel/types" "^7.12.7" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" + lodash "^4.17.19" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + "@babel/core@^7.0.0", "@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.13.16", "@babel/core@^7.4.4", "@babel/core@^7.7.5": version "7.14.3" resolved "https://registry.npmjs.org/@babel/core/-/core-7.14.3.tgz#5395e30405f0776067fbd9cf0884f15bfb770a38" @@ -369,6 +396,36 @@ semver "^6.3.0" source-map "^0.5.0" +"@babel/core@^7.12.10": + version "7.14.8" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.14.8.tgz#20cdf7c84b5d86d83fac8710a8bc605a7ba3f010" + integrity sha512-/AtaeEhT6ErpDhInbXmjHcUQXH0L0TEgscfcxk1qbOvLuKCa5aZT0SOOtDKFY96/CLROwbLSKyFor6idgNaU4Q== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/generator" "^7.14.8" + "@babel/helper-compilation-targets" "^7.14.5" + "@babel/helper-module-transforms" "^7.14.8" + "@babel/helpers" "^7.14.8" + "@babel/parser" "^7.14.8" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.14.8" + "@babel/types" "^7.14.8" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" + source-map "^0.5.0" + +"@babel/generator@^7.12.11", "@babel/generator@^7.12.5", "@babel/generator@^7.14.8", "@babel/generator@^7.14.9": + version "7.14.9" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.14.9.tgz#23b19c597d38b4f7dc2e3fe42a69c88d9ecfaa16" + integrity sha512-4yoHbhDYzFa0GLfCzLp5GxH7vPPMAHdZjyE7M/OajM9037zhx0rf+iNsJwp4PT0MSFpwjG7BsHEbPkBQpZ6cYA== + dependencies: + "@babel/types" "^7.14.9" + jsesc "^2.5.1" + source-map "^0.5.0" + "@babel/generator@^7.12.13", "@babel/generator@^7.14.2", "@babel/generator@^7.14.3", "@babel/generator@^7.5.0": version "7.14.3" resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.14.3.tgz#0c2652d91f7bddab7cccc6ba8157e4f40dcedb91" @@ -385,6 +442,13 @@ dependencies: "@babel/types" "^7.12.13" +"@babel/helper-annotate-as-pure@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz#7bf478ec3b71726d56a8ca5775b046fc29879e61" + integrity sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA== + dependencies: + "@babel/types" "^7.14.5" + "@babel/helper-builder-binary-assignment-operator-visitor@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz#6bc20361c88b0a74d05137a65cac8d3cbf6f61fc" @@ -393,6 +457,14 @@ "@babel/helper-explode-assignable-expression" "^7.12.13" "@babel/types" "^7.12.13" +"@babel/helper-builder-binary-assignment-operator-visitor@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz#b939b43f8c37765443a19ae74ad8b15978e0a191" + integrity sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.14.5" + "@babel/types" "^7.14.5" + "@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.16", "@babel/helper-compilation-targets@^7.14.4": version "7.14.4" resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.4.tgz#33ebd0ffc34248051ee2089350a929ab02f2a516" @@ -403,7 +475,17 @@ browserslist "^4.16.6" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.13.0", "@babel/helper-create-class-features-plugin@^7.14.0", "@babel/helper-create-class-features-plugin@^7.14.2", "@babel/helper-create-class-features-plugin@^7.14.3", "@babel/helper-create-class-features-plugin@^7.14.4": +"@babel/helper-compilation-targets@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz#7a99c5d0967911e972fe2c3411f7d5b498498ecf" + integrity sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw== + dependencies: + "@babel/compat-data" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + browserslist "^4.16.6" + semver "^6.3.0" + +"@babel/helper-create-class-features-plugin@^7.13.0", "@babel/helper-create-class-features-plugin@^7.14.0", "@babel/helper-create-class-features-plugin@^7.14.3", "@babel/helper-create-class-features-plugin@^7.14.4": version "7.14.4" resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.4.tgz#abf888d836a441abee783c75229279748705dc42" integrity sha512-idr3pthFlDCpV+p/rMgGLGYIVtazeatrSOQk8YzO2pAepIjQhCN3myeihVg58ax2bbbGK9PUE1reFi7axOYIOw== @@ -415,6 +497,18 @@ "@babel/helper-replace-supers" "^7.14.4" "@babel/helper-split-export-declaration" "^7.12.13" +"@babel/helper-create-class-features-plugin@^7.14.5", "@babel/helper-create-class-features-plugin@^7.14.6": + version "7.14.8" + resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.8.tgz#a6f8c3de208b1e5629424a9a63567f56501955fc" + integrity sha512-bpYvH8zJBWzeqi1o+co8qOrw+EXzQ/0c74gVmY205AWXy9nifHrOg77y+1zwxX5lXE7Icq4sPlSQ4O2kWBrteQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-member-expression-to-functions" "^7.14.7" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/helper-replace-supers" "^7.14.5" + "@babel/helper-split-export-declaration" "^7.14.5" + "@babel/helper-create-regexp-features-plugin@^7.12.13": version "7.14.3" resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.3.tgz#149aa6d78c016e318c43e2409a0ae9c136a86688" @@ -423,6 +517,28 @@ "@babel/helper-annotate-as-pure" "^7.12.13" regexpu-core "^4.7.1" +"@babel/helper-create-regexp-features-plugin@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz#c7d5ac5e9cf621c26057722fb7a8a4c5889358c4" + integrity sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + regexpu-core "^4.7.1" + +"@babel/helper-define-polyfill-provider@^0.1.5": + version "0.1.5" + resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.1.5.tgz#3c2f91b7971b9fc11fe779c945c014065dea340e" + integrity sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg== + dependencies: + "@babel/helper-compilation-targets" "^7.13.0" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/traverse" "^7.13.0" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" + "@babel/helper-define-polyfill-provider@^0.2.2": version "0.2.3" resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz#0525edec5094653a282688d34d846e4c75e9c0b6" @@ -444,6 +560,13 @@ dependencies: "@babel/types" "^7.13.0" +"@babel/helper-explode-assignable-expression@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz#8aa72e708205c7bb643e45c73b4386cdf2a1f645" + integrity sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ== + dependencies: + "@babel/types" "^7.14.5" + "@babel/helper-function-name@^7.12.13", "@babel/helper-function-name@^7.14.2": version "7.14.2" resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz#397688b590760b6ef7725b5f0860c82427ebaac2" @@ -453,6 +576,15 @@ "@babel/template" "^7.12.13" "@babel/types" "^7.14.2" +"@babel/helper-function-name@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz#89e2c474972f15d8e233b52ee8c480e2cfcd50c4" + integrity sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ== + dependencies: + "@babel/helper-get-function-arity" "^7.14.5" + "@babel/template" "^7.14.5" + "@babel/types" "^7.14.5" + "@babel/helper-get-function-arity@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" @@ -460,6 +592,13 @@ dependencies: "@babel/types" "^7.12.13" +"@babel/helper-get-function-arity@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815" + integrity sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg== + dependencies: + "@babel/types" "^7.14.5" + "@babel/helper-hoist-variables@^7.13.0": version "7.13.16" resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.16.tgz#1b1651249e94b51f8f0d33439843e33e39775b30" @@ -468,6 +607,13 @@ "@babel/traverse" "^7.13.15" "@babel/types" "^7.13.16" +"@babel/helper-hoist-variables@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz#e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d" + integrity sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ== + dependencies: + "@babel/types" "^7.14.5" + "@babel/helper-member-expression-to-functions@^7.13.12": version "7.13.12" resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz#dfe368f26d426a07299d8d6513821768216e6d72" @@ -475,6 +621,13 @@ dependencies: "@babel/types" "^7.13.12" +"@babel/helper-member-expression-to-functions@^7.14.5", "@babel/helper-member-expression-to-functions@^7.14.7": + version "7.14.7" + resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz#97e56244beb94211fe277bd818e3a329c66f7970" + integrity sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA== + dependencies: + "@babel/types" "^7.14.5" + "@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.13.12": version "7.13.12" resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz#c6a369a6f3621cb25da014078684da9196b61977" @@ -482,6 +635,27 @@ dependencies: "@babel/types" "^7.13.12" +"@babel/helper-module-imports@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3" + integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.14.5", "@babel/helper-module-transforms@^7.14.8": + version "7.14.8" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.8.tgz#d4279f7e3fd5f4d5d342d833af36d4dd87d7dc49" + integrity sha512-RyE+NFOjXn5A9YU1dkpeBaduagTlZ0+fccnIcAGbv1KGUlReBj7utF7oEth8IdIBQPcux0DDgW5MFBH2xu9KcA== + dependencies: + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-replace-supers" "^7.14.5" + "@babel/helper-simple-access" "^7.14.8" + "@babel/helper-split-export-declaration" "^7.14.5" + "@babel/helper-validator-identifier" "^7.14.8" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.14.8" + "@babel/types" "^7.14.8" + "@babel/helper-module-transforms@^7.13.0", "@babel/helper-module-transforms@^7.14.0", "@babel/helper-module-transforms@^7.14.2": version "7.14.2" resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz#ac1cc30ee47b945e3e0c4db12fa0c5389509dfe5" @@ -503,11 +677,28 @@ dependencies: "@babel/types" "^7.12.13" +"@babel/helper-optimise-call-expression@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz#f27395a8619e0665b3f0364cddb41c25d71b499c" + integrity sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-plugin-utils@7.10.4": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" + integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== + "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.13.0" resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af" integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== +"@babel/helper-plugin-utils@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" + integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== + "@babel/helper-remap-async-to-generator@^7.13.0": version "7.13.0" resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz#376a760d9f7b4b2077a9dd05aa9c3927cadb2209" @@ -517,6 +708,15 @@ "@babel/helper-wrap-function" "^7.13.0" "@babel/types" "^7.13.0" +"@babel/helper-remap-async-to-generator@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz#51439c913612958f54a987a4ffc9ee587a2045d6" + integrity sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-wrap-function" "^7.14.5" + "@babel/types" "^7.14.5" + "@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.12", "@babel/helper-replace-supers@^7.14.4": version "7.14.4" resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.4.tgz#b2ab16875deecfff3ddfcd539bc315f72998d836" @@ -527,6 +727,16 @@ "@babel/traverse" "^7.14.2" "@babel/types" "^7.14.4" +"@babel/helper-replace-supers@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz#0ecc0b03c41cd567b4024ea016134c28414abb94" + integrity sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.14.5" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" + "@babel/helper-simple-access@^7.13.12": version "7.13.12" resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6" @@ -534,6 +744,13 @@ dependencies: "@babel/types" "^7.13.12" +"@babel/helper-simple-access@^7.14.5", "@babel/helper-simple-access@^7.14.8": + version "7.14.8" + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz#82e1fec0644a7e775c74d305f212c39f8fe73924" + integrity sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg== + dependencies: + "@babel/types" "^7.14.8" + "@babel/helper-skip-transparent-expression-wrappers@^7.12.1": version "7.12.1" resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf" @@ -541,6 +758,13 @@ dependencies: "@babel/types" "^7.12.1" +"@babel/helper-skip-transparent-expression-wrappers@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz#96f486ac050ca9f44b009fbe5b7d394cab3a0ee4" + integrity sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ== + dependencies: + "@babel/types" "^7.14.5" + "@babel/helper-split-export-declaration@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05" @@ -548,16 +772,33 @@ dependencies: "@babel/types" "^7.12.13" +"@babel/helper-split-export-declaration@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz#22b23a54ef51c2b7605d851930c1976dd0bc693a" + integrity sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA== + dependencies: + "@babel/types" "^7.14.5" + "@babel/helper-validator-identifier@^7.12.11", "@babel/helper-validator-identifier@^7.14.0": version "7.14.0" resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288" integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A== +"@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.8", "@babel/helper-validator-identifier@^7.14.9": + version "7.14.9" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48" + integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g== + "@babel/helper-validator-option@^7.12.17": version "7.12.17" resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831" integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw== +"@babel/helper-validator-option@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" + integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== + "@babel/helper-wrap-function@^7.13.0": version "7.13.0" resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz#bdb5c66fda8526ec235ab894ad53a1235c79fcc4" @@ -568,6 +809,25 @@ "@babel/traverse" "^7.13.0" "@babel/types" "^7.13.0" +"@babel/helper-wrap-function@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz#5919d115bf0fe328b8a5d63bcb610f51601f2bff" + integrity sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ== + dependencies: + "@babel/helper-function-name" "^7.14.5" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helpers@^7.12.5", "@babel/helpers@^7.14.8": + version "7.14.8" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.8.tgz#839f88f463025886cff7f85a35297007e2da1b77" + integrity sha512-ZRDmI56pnV+p1dH6d+UN6GINGz7Krps3+270qqI9UJ4wxYThfAIcI5i7j5vXC4FJ3Wap+S9qcebxeYiqn87DZw== + dependencies: + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.14.8" + "@babel/types" "^7.14.8" + "@babel/helpers@^7.14.0": version "7.14.0" resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.0.tgz#ea9b6be9478a13d6f961dbb5f36bf75e2f3b8f62" @@ -577,7 +837,7 @@ "@babel/traverse" "^7.14.0" "@babel/types" "^7.14.0" -"@babel/highlight@^7.0.0", "@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13", "@babel/highlight@^7.8.3": +"@babel/highlight@^7.0.0", "@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13": version "7.14.0" resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz#3197e375711ef6bf834e67d0daec88e4f46113cf" integrity sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg== @@ -586,6 +846,15 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/highlight@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" + integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== + dependencies: + "@babel/helper-validator-identifier" "^7.14.5" + chalk "^2.0.0" + js-tokens "^4.0.0" + "@babel/parser@7.12.16": version "7.12.16" resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.12.16.tgz#cc31257419d2c3189d394081635703f549fc1ed4" @@ -596,6 +865,11 @@ resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.14.4.tgz#a5c560d6db6cd8e6ed342368dea8039232cbab18" integrity sha512-ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA== +"@babel/parser@^7.12.11", "@babel/parser@^7.12.7", "@babel/parser@^7.14.5", "@babel/parser@^7.14.8", "@babel/parser@^7.14.9": + version "7.14.9" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.14.9.tgz#596c1ad67608070058ebf8df50c1eaf65db895a4" + integrity sha512-RdUTOseXJ8POjjOeEBEvNMIZU/nm4yu2rufRkcibzkkg7DmQvXU8v3M4Xk9G7uuI86CDGkKcuDWgioqZm+mScQ== + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.13.12": version "7.13.12" resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz#a3484d84d0b549f3fc916b99ee4783f26fabad2a" @@ -605,6 +879,15 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" "@babel/plugin-proposal-optional-chaining" "^7.13.12" +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz#4b467302e1548ed3b1be43beae2cc9cf45e0bb7e" + integrity sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + "@babel/plugin-proposal-optional-chaining" "^7.14.5" + "@babel/plugin-proposal-async-generator-functions@^7.14.2": version "7.14.2" resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.2.tgz#3a2085abbf5d5f962d480dbc81347385ed62eb1e" @@ -614,6 +897,15 @@ "@babel/helper-remap-async-to-generator" "^7.13.0" "@babel/plugin-syntax-async-generators" "^7.8.4" +"@babel/plugin-proposal-async-generator-functions@^7.14.9": + version "7.14.9" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.9.tgz#7028dc4fa21dc199bbacf98b39bab1267d0eaf9a" + integrity sha512-d1lnh+ZnKrFKwtTYdw320+sQWCTwgkB9fmUhNXRADA4akR6wLjaruSGnIEUjpt9HCOwTr4ynFTKu19b7rFRpmw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-remap-async-to-generator" "^7.14.5" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-proposal-class-properties@^7.0.0", "@babel/plugin-proposal-class-properties@^7.12.1", "@babel/plugin-proposal-class-properties@^7.13.0": version "7.13.0" resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz#146376000b94efd001e57a40a88a525afaab9f37" @@ -622,6 +914,14 @@ "@babel/helper-create-class-features-plugin" "^7.13.0" "@babel/helper-plugin-utils" "^7.13.0" +"@babel/plugin-proposal-class-properties@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz#40d1ee140c5b1e31a350f4f5eed945096559b42e" + integrity sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-proposal-class-static-block@^7.14.3": version "7.14.3" resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.3.tgz#5a527e2cae4a4753119c3a3e7f64ecae8ccf1360" @@ -631,14 +931,23 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-class-static-block" "^7.12.13" -"@babel/plugin-proposal-decorators@^7.12.1": - version "7.14.2" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.14.2.tgz#e68c3c5e4a6a08834456568256fc3e71b93590cf" - integrity sha512-LauAqDd/VjQDtae58QgBcEOE42NNP+jB2OE+XeC3KBI/E+BhhRjtr5viCIrj1hmu1YvrguLipIPRJZmS5yUcFw== +"@babel/plugin-proposal-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.5.tgz#158e9e10d449c3849ef3ecde94a03d9f1841b681" + integrity sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg== dependencies: - "@babel/helper-create-class-features-plugin" "^7.14.2" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-decorators" "^7.12.13" + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-proposal-decorators@^7.12.12": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.14.5.tgz#59bc4dfc1d665b5a6749cf798ff42297ed1b2c1d" + integrity sha512-LYz5nvQcvYeRVjui1Ykn28i+3aUiXwQ/3MGoEy0InTaz1pJo/lAzmIDXX+BQny/oufgHzJ6vnEEiXQ8KZjEVFg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-decorators" "^7.14.5" "@babel/plugin-proposal-dynamic-import@^7.14.2": version "7.14.2" @@ -648,6 +957,14 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-dynamic-import" "^7.8.3" +"@babel/plugin-proposal-dynamic-import@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz#0c6617df461c0c1f8fff3b47cd59772360101d2c" + integrity sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-proposal-export-default-from@^7.12.1": version "7.12.13" resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.12.13.tgz#f110284108a9b2b96f01b15b3be9e54c2610a989" @@ -664,6 +981,14 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" +"@babel/plugin-proposal-export-namespace-from@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz#dbad244310ce6ccd083072167d8cea83a52faf76" + integrity sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-proposal-json-strings@^7.14.2": version "7.14.2" resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.2.tgz#830b4e2426a782e8b2878fbfe2cba85b70cbf98c" @@ -672,6 +997,14 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-json-strings" "^7.8.3" +"@babel/plugin-proposal-json-strings@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz#38de60db362e83a3d8c944ac858ddf9f0c2239eb" + integrity sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-proposal-logical-assignment-operators@^7.14.2": version "7.14.2" resolved "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.2.tgz#222348c080a1678e0e74ea63fe76f275882d1fd7" @@ -680,6 +1013,14 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" +"@babel/plugin-proposal-logical-assignment-operators@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz#6e6229c2a99b02ab2915f82571e0cc646a40c738" + integrity sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1", "@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8", "@babel/plugin-proposal-nullish-coalescing-operator@^7.14.2": version "7.14.2" resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.2.tgz#425b11dc62fc26939a2ab42cbba680bdf5734546" @@ -688,6 +1029,14 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" +"@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz#ee38589ce00e2cc59b299ec3ea406fcd3a0fdaf6" + integrity sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-proposal-numeric-separator@^7.14.2": version "7.14.2" resolved "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.2.tgz#82b4cc06571143faf50626104b335dd71baa4f9e" @@ -696,6 +1045,23 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-numeric-separator" "^7.10.4" +"@babel/plugin-proposal-numeric-separator@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz#83631bf33d9a51df184c2102a069ac0c58c05f18" + integrity sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@7.12.1": + version "7.12.1" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz#def9bd03cea0f9b72283dac0ec22d289c7691069" + integrity sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-transform-parameters" "^7.12.1" + "@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.12.1", "@babel/plugin-proposal-object-rest-spread@^7.14.4": version "7.14.4" resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.4.tgz#0e2b4de419915dc0b409378e829412e2031777c4" @@ -707,6 +1073,17 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-transform-parameters" "^7.14.2" +"@babel/plugin-proposal-object-rest-spread@^7.14.7": + version "7.14.7" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz#5920a2b3df7f7901df0205974c0641b13fd9d363" + integrity sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g== + dependencies: + "@babel/compat-data" "^7.14.7" + "@babel/helper-compilation-targets" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.14.5" + "@babel/plugin-proposal-optional-catch-binding@^7.14.2": version "7.14.2" resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.2.tgz#150d4e58e525b16a9a1431bd5326c4eed870d717" @@ -715,7 +1092,24 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.12.1", "@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.14.2": +"@babel/plugin-proposal-optional-catch-binding@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz#939dd6eddeff3a67fdf7b3f044b5347262598c3c" + integrity sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.12.7", "@babel/plugin-proposal-optional-chaining@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz#fa83651e60a360e3f13797eef00b8d519695b603" + integrity sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.14.2": version "7.14.2" resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.2.tgz#df8171a8b9c43ebf4c1dabe6311b432d83e1b34e" integrity sha512-qQByMRPwMZJainfig10BoaDldx/+VDtNcrA7qdNaEOAj6VXud+gfrkA8j4CRAU5HjnWREXqIpSpH30qZX1xivA== @@ -732,6 +1126,14 @@ "@babel/helper-create-class-features-plugin" "^7.13.0" "@babel/helper-plugin-utils" "^7.13.0" +"@babel/plugin-proposal-private-methods@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz#37446495996b2945f30f5be5b60d5e2aa4f5792d" + integrity sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-proposal-private-property-in-object@^7.14.0": version "7.14.0" resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.0.tgz#b1a1f2030586b9d3489cc26179d2eb5883277636" @@ -742,6 +1144,16 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-private-property-in-object" "^7.14.0" +"@babel/plugin-proposal-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz#9f65a4d0493a940b4c01f8aa9d3f1894a587f636" + integrity sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-proposal-unicode-property-regex@^7.12.13", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": version "7.12.13" resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz#bebde51339be829c17aaaaced18641deb62b39ba" @@ -750,6 +1162,14 @@ "@babel/helper-create-regexp-features-plugin" "^7.12.13" "@babel/helper-plugin-utils" "^7.12.13" +"@babel/plugin-proposal-unicode-property-regex@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz#0f95ee0e757a5d647f378daa0eca7e93faa8bbe8" + integrity sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" @@ -778,12 +1198,19 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-decorators@^7.12.13": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.12.13.tgz#fac829bf3c7ef4a1bc916257b403e58c6bdaf648" - integrity sha512-Rw6aIXGuqDLr6/LoBBYE57nKOzQpz/aDkKlMqEwH+Vp0MXbG6H/TfRjaY343LKxzAKAMXIHsQ8JzaZKuDZ9MwA== +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-decorators@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.14.5.tgz#eafb9c0cbe09c8afeb964ba3a7bbd63945a72f20" + integrity sha512-c4sZMRWL4GSvP1EXy0woIP7m4jkVcEuG8R1TOZxPBPtp4FSM/kiPZub9UIs/Jrb5ZAOzvTUSGYrWsrSu1JvoPw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" @@ -827,6 +1254,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" +"@babel/plugin-syntax-jsx@7.12.1": + version "7.12.1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz#9d9d357cc818aa7ae7935917c1257f67677a0926" + integrity sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz#044fb81ebad6698fe62c478875575bcbb9b70f15" @@ -834,6 +1268,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" +"@babel/plugin-syntax-jsx@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.14.5.tgz#000e2e25d8673cce49300517a3eda44c263e4201" + integrity sha512-ohuFIsOMXJnbOMRfX7/w7LocdR6R7whhuRD4ax8IipLcLPlZGJKkBxgHp++U4N/vKyU16/YDQr2f5seajD3jIw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" @@ -855,7 +1296,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": +"@babel/plugin-syntax-object-rest-spread@7.8.3", "@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== @@ -883,6 +1324,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.13.0" +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-top-level-await@^7.12.13", "@babel/plugin-syntax-top-level-await@^7.8.3": version "7.12.13" resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178" @@ -890,6 +1338,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" +"@babel/plugin-syntax-top-level-await@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-typescript@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.13.tgz#9dff111ca64154cef0f4dc52cf843d9f12ce4474" @@ -897,6 +1352,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" +"@babel/plugin-syntax-typescript@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz#b82c6ce471b165b5ce420cf92914d6fb46225716" + integrity sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-arrow-functions@^7.0.0", "@babel/plugin-transform-arrow-functions@^7.12.1", "@babel/plugin-transform-arrow-functions@^7.13.0": version "7.13.0" resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz#10a59bebad52d637a027afa692e8d5ceff5e3dae" @@ -904,6 +1366,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.13.0" +"@babel/plugin-transform-arrow-functions@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz#f7187d9588a768dd080bf4c9ffe117ea62f7862a" + integrity sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-async-to-generator@^7.13.0": version "7.13.0" resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz#8e112bf6771b82bf1e974e5e26806c5c99aa516f" @@ -913,6 +1382,15 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/helper-remap-async-to-generator" "^7.13.0" +"@babel/plugin-transform-async-to-generator@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz#72c789084d8f2094acb945633943ef8443d39e67" + integrity sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA== + dependencies: + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-remap-async-to-generator" "^7.14.5" + "@babel/plugin-transform-block-scoped-functions@^7.0.0", "@babel/plugin-transform-block-scoped-functions@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz#a9bf1836f2a39b4eb6cf09967739de29ea4bf4c4" @@ -920,13 +1398,27 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-block-scoping@^7.0.0", "@babel/plugin-transform-block-scoping@^7.12.1", "@babel/plugin-transform-block-scoping@^7.14.4": +"@babel/plugin-transform-block-scoped-functions@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz#e48641d999d4bc157a67ef336aeb54bc44fd3ad4" + integrity sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-block-scoping@^7.0.0", "@babel/plugin-transform-block-scoping@^7.14.4": version "7.14.4" resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.4.tgz#caf140b0b2e2462c509553d140e6d0abefb61ed8" integrity sha512-5KdpkGxsZlTk+fPleDtGKsA+pon28+ptYmMO8GBSa5fHERCJWAzj50uAfCKBqq42HO+Zot6JF1x37CRprwmN4g== dependencies: "@babel/helper-plugin-utils" "^7.13.0" +"@babel/plugin-transform-block-scoping@^7.12.12", "@babel/plugin-transform-block-scoping@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.5.tgz#8cc63e61e50f42e078e6f09be775a75f23ef9939" + integrity sha512-LBYm4ZocNgoCqyxMLoOnwpsmQ18HWTQvql64t3GvMUzLQrNoV1BDG0lNftC8QKYERkZgCCT/7J5xWGObGAyHDw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-classes@^7.0.0", "@babel/plugin-transform-classes@^7.12.1", "@babel/plugin-transform-classes@^7.14.4": version "7.14.4" resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.4.tgz#a83c15503fc71a0f99e876fdce7dadbc6575ec3a" @@ -940,6 +1432,19 @@ "@babel/helper-split-export-declaration" "^7.12.13" globals "^11.1.0" +"@babel/plugin-transform-classes@^7.14.9": + version "7.14.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.9.tgz#2a391ffb1e5292710b00f2e2c210e1435e7d449f" + integrity sha512-NfZpTcxU3foGWbl4wxmZ35mTsYJy8oQocbeIMoDAGGFarAmSQlL+LWMkDx/tj6pNotpbX3rltIA4dprgAPOq5A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-replace-supers" "^7.14.5" + "@babel/helper-split-export-declaration" "^7.14.5" + globals "^11.1.0" + "@babel/plugin-transform-computed-properties@^7.0.0", "@babel/plugin-transform-computed-properties@^7.13.0": version "7.13.0" resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz#845c6e8b9bb55376b1fa0b92ef0bdc8ea06644ed" @@ -947,6 +1452,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.13.0" +"@babel/plugin-transform-computed-properties@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz#1b9d78987420d11223d41195461cc43b974b204f" + integrity sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-destructuring@^7.0.0", "@babel/plugin-transform-destructuring@^7.12.1", "@babel/plugin-transform-destructuring@^7.14.4": version "7.14.4" resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.4.tgz#acbec502e9951f30f4441eaca1d2f29efade59ed" @@ -954,6 +1466,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.13.0" +"@babel/plugin-transform-destructuring@^7.14.7": + version "7.14.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz#0ad58ed37e23e22084d109f185260835e5557576" + integrity sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-dotall-regex@^7.12.13", "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.12.13" resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz#3f1601cc29905bfcb67f53910f197aeafebb25ad" @@ -962,6 +1481,14 @@ "@babel/helper-create-regexp-features-plugin" "^7.12.13" "@babel/helper-plugin-utils" "^7.12.13" +"@babel/plugin-transform-dotall-regex@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz#2f6bf76e46bdf8043b4e7e16cf24532629ba0c7a" + integrity sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-duplicate-keys@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz#6f06b87a8b803fd928e54b81c258f0a0033904de" @@ -969,6 +1496,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" +"@babel/plugin-transform-duplicate-keys@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz#365a4844881bdf1501e3a9f0270e7f0f91177954" + integrity sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-exponentiation-operator@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz#4d52390b9a273e651e4aba6aee49ef40e80cd0a1" @@ -977,6 +1511,14 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.12.13" "@babel/helper-plugin-utils" "^7.12.13" +"@babel/plugin-transform-exponentiation-operator@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz#5154b8dd6a3dfe6d90923d61724bd3deeb90b493" + integrity sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-flow-strip-types@^7.0.0", "@babel/plugin-transform-flow-strip-types@^7.13.0": version "7.13.0" resolved "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.13.0.tgz#58177a48c209971e8234e99906cb6bd1122addd3" @@ -992,6 +1534,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.13.0" +"@babel/plugin-transform-for-of@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz#dae384613de8f77c196a8869cbf602a44f7fc0eb" + integrity sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-function-name@^7.0.0", "@babel/plugin-transform-function-name@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz#bb024452f9aaed861d374c8e7a24252ce3a50051" @@ -1000,6 +1549,14 @@ "@babel/helper-function-name" "^7.12.13" "@babel/helper-plugin-utils" "^7.12.13" +"@babel/plugin-transform-function-name@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz#e81c65ecb900746d7f31802f6bed1f52d915d6f2" + integrity sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ== + dependencies: + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-literals@^7.0.0", "@babel/plugin-transform-literals@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz#2ca45bafe4a820197cf315794a4d26560fe4bdb9" @@ -1007,6 +1564,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" +"@babel/plugin-transform-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz#41d06c7ff5d4d09e3cf4587bd3ecf3930c730f78" + integrity sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-member-expression-literals@^7.0.0", "@babel/plugin-transform-member-expression-literals@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz#5ffa66cd59b9e191314c9f1f803b938e8c081e40" @@ -1014,6 +1578,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" +"@babel/plugin-transform-member-expression-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz#b39cd5212a2bf235a617d320ec2b48bcc091b8a7" + integrity sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-modules-amd@^7.14.2": version "7.14.2" resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.2.tgz#6622806fe1a7c07a1388444222ef9535f2ca17b0" @@ -1023,6 +1594,15 @@ "@babel/helper-plugin-utils" "^7.13.0" babel-plugin-dynamic-import-node "^2.3.3" +"@babel/plugin-transform-modules-amd@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz#4fd9ce7e3411cb8b83848480b7041d83004858f7" + integrity sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g== + dependencies: + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + babel-plugin-dynamic-import-node "^2.3.3" + "@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.13.8", "@babel/plugin-transform-modules-commonjs@^7.14.0", "@babel/plugin-transform-modules-commonjs@^7.4.4": version "7.14.0" resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz#52bc199cb581e0992edba0f0f80356467587f161" @@ -1033,6 +1613,16 @@ "@babel/helper-simple-access" "^7.13.12" babel-plugin-dynamic-import-node "^2.3.3" +"@babel/plugin-transform-modules-commonjs@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.5.tgz#7aaee0ea98283de94da98b28f8c35701429dad97" + integrity sha512-en8GfBtgnydoao2PS+87mKyw62k02k7kJ9ltbKe0fXTHrQmG6QZZflYuGI1VVG7sVpx4E1n7KBpNlPb8m78J+A== + dependencies: + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-simple-access" "^7.14.5" + babel-plugin-dynamic-import-node "^2.3.3" + "@babel/plugin-transform-modules-systemjs@^7.13.8": version "7.13.8" resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz#6d066ee2bff3c7b3d60bf28dec169ad993831ae3" @@ -1044,6 +1634,17 @@ "@babel/helper-validator-identifier" "^7.12.11" babel-plugin-dynamic-import-node "^2.3.3" +"@babel/plugin-transform-modules-systemjs@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz#c75342ef8b30dcde4295d3401aae24e65638ed29" + integrity sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA== + dependencies: + "@babel/helper-hoist-variables" "^7.14.5" + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-identifier" "^7.14.5" + babel-plugin-dynamic-import-node "^2.3.3" + "@babel/plugin-transform-modules-umd@^7.14.0": version "7.14.0" resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.0.tgz#2f8179d1bbc9263665ce4a65f305526b2ea8ac34" @@ -1052,6 +1653,14 @@ "@babel/helper-module-transforms" "^7.14.0" "@babel/helper-plugin-utils" "^7.13.0" +"@babel/plugin-transform-modules-umd@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz#fb662dfee697cce274a7cda525190a79096aa6e0" + integrity sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA== + dependencies: + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-named-capturing-groups-regex@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz#2213725a5f5bbbe364b50c3ba5998c9599c5c9d9" @@ -1059,6 +1668,13 @@ dependencies: "@babel/helper-create-regexp-features-plugin" "^7.12.13" +"@babel/plugin-transform-named-capturing-groups-regex@^7.14.9": + version "7.14.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz#c68f5c5d12d2ebaba3762e57c2c4f6347a46e7b2" + integrity sha512-l666wCVYO75mlAtGFfyFwnWmIXQm3kSH0C3IRnJqWcZbWkoihyAdDhFm2ZWaxWTqvBvhVFfJjMRQ0ez4oN1yYA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/plugin-transform-new-target@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz#e22d8c3af24b150dd528cbd6e685e799bf1c351c" @@ -1066,6 +1682,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" +"@babel/plugin-transform-new-target@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz#31bdae8b925dc84076ebfcd2a9940143aed7dbf8" + integrity sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-object-super@^7.0.0", "@babel/plugin-transform-object-super@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz#b4416a2d63b8f7be314f3d349bd55a9c1b5171f7" @@ -1074,6 +1697,14 @@ "@babel/helper-plugin-utils" "^7.12.13" "@babel/helper-replace-supers" "^7.12.13" +"@babel/plugin-transform-object-super@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz#d0b5faeac9e98597a161a9cf78c527ed934cdc45" + integrity sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-replace-supers" "^7.14.5" + "@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.14.2": version "7.14.2" resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.2.tgz#e4290f72e0e9e831000d066427c4667098decc31" @@ -1081,6 +1712,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.13.0" +"@babel/plugin-transform-parameters@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz#49662e86a1f3ddccac6363a7dfb1ff0a158afeb3" + integrity sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-property-literals@^7.0.0", "@babel/plugin-transform-property-literals@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz#4e6a9e37864d8f1b3bc0e2dce7bf8857db8b1a81" @@ -1088,6 +1726,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" +"@babel/plugin-transform-property-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz#0ddbaa1f83db3606f1cdf4846fa1dfb473458b34" + integrity sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-react-constant-elements@^7.12.1": version "7.13.13" resolved "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.13.13.tgz#0208b1d942bf939cd4f7aa5b255d42602aa4a920" @@ -1102,6 +1747,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.13.0" +"@babel/plugin-transform-react-display-name@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.14.5.tgz#baa92d15c4570411301a85a74c13534873885b65" + integrity sha512-07aqY1ChoPgIxsuDviptRpVkWCSbXWmzQqcgy65C6YSFOfPFvb/DX3bBRHh7pCd/PMEEYHYWUTSVkCbkVainYQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-react-jsx-development@^7.12.17": version "7.12.17" resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.17.tgz#f510c0fa7cd7234153539f9a362ced41a5ca1447" @@ -1109,6 +1761,13 @@ dependencies: "@babel/plugin-transform-react-jsx" "^7.12.17" +"@babel/plugin-transform-react-jsx-development@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.14.5.tgz#1a6c73e2f7ed2c42eebc3d2ad60b0c7494fcb9af" + integrity sha512-rdwG/9jC6QybWxVe2UVOa7q6cnTpw8JRRHOxntG/h6g/guAOe6AhtQHJuJh5FwmnXIT1bdm5vC2/5huV8ZOorQ== + dependencies: + "@babel/plugin-transform-react-jsx" "^7.14.5" + "@babel/plugin-transform-react-jsx@^7.0.0", "@babel/plugin-transform-react-jsx@^7.12.17", "@babel/plugin-transform-react-jsx@^7.13.12": version "7.14.3" resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.3.tgz#0e26597805cf0862da735f264550933c38babb66" @@ -1120,6 +1779,17 @@ "@babel/plugin-syntax-jsx" "^7.12.13" "@babel/types" "^7.14.2" +"@babel/plugin-transform-react-jsx@^7.12.12", "@babel/plugin-transform-react-jsx@^7.14.5": + version "7.14.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.14.9.tgz#3314b2163033abac5200a869c4de242cd50a914c" + integrity sha512-30PeETvS+AeD1f58i1OVyoDlVYQhap/K20ZrMjLmmzmC2AYR/G43D4sdJAaDAqCD3MYpSWbmrz3kES158QSLjw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-jsx" "^7.14.5" + "@babel/types" "^7.14.9" + "@babel/plugin-transform-react-pure-annotations@^7.12.1": version "7.12.1" resolved "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz#05d46f0ab4d1339ac59adf20a1462c91b37a1a42" @@ -1128,6 +1798,14 @@ "@babel/helper-annotate-as-pure" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" +"@babel/plugin-transform-react-pure-annotations@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.14.5.tgz#18de612b84021e3a9802cbc212c9d9f46d0d11fc" + integrity sha512-3X4HpBJimNxW4rhUy/SONPyNQHp5YRr0HhJdT2OH1BRp0of7u3Dkirc7x9FRJMKMqTBI079VZ1hzv7Ouuz///g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-regenerator@^7.13.15": version "7.13.15" resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz#e5eb28945bf8b6563e7f818945f966a8d2997f39" @@ -1135,6 +1813,13 @@ dependencies: regenerator-transform "^0.14.2" +"@babel/plugin-transform-regenerator@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz#9676fd5707ed28f522727c5b3c0aa8544440b04f" + integrity sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg== + dependencies: + regenerator-transform "^0.14.2" + "@babel/plugin-transform-reserved-words@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz#7d9988d4f06e0fe697ea1d9803188aa18b472695" @@ -1142,6 +1827,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" +"@babel/plugin-transform-reserved-words@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz#c44589b661cfdbef8d4300dcc7469dffa92f8304" + integrity sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-shorthand-properties@^7.0.0", "@babel/plugin-transform-shorthand-properties@^7.12.1", "@babel/plugin-transform-shorthand-properties@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz#db755732b70c539d504c6390d9ce90fe64aff7ad" @@ -1149,6 +1841,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" +"@babel/plugin-transform-shorthand-properties@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz#97f13855f1409338d8cadcbaca670ad79e091a58" + integrity sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-spread@^7.0.0", "@babel/plugin-transform-spread@^7.12.1", "@babel/plugin-transform-spread@^7.13.0": version "7.13.0" resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz#84887710e273c1815ace7ae459f6f42a5d31d5fd" @@ -1157,6 +1856,14 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" +"@babel/plugin-transform-spread@^7.14.6": + version "7.14.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz#6bd40e57fe7de94aa904851963b5616652f73144" + integrity sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + "@babel/plugin-transform-sticky-regex@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz#760ffd936face73f860ae646fb86ee82f3d06d1f" @@ -1164,6 +1871,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" +"@babel/plugin-transform-sticky-regex@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz#5b617542675e8b7761294381f3c28c633f40aeb9" + integrity sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-template-literals@^7.0.0", "@babel/plugin-transform-template-literals@^7.12.1", "@babel/plugin-transform-template-literals@^7.13.0": version "7.13.0" resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz#a36049127977ad94438dee7443598d1cefdf409d" @@ -1171,6 +1885,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.13.0" +"@babel/plugin-transform-template-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz#a5f2bc233937d8453885dc736bdd8d9ffabf3d93" + integrity sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-typeof-symbol@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz#785dd67a1f2ea579d9c2be722de8c84cb85f5a7f" @@ -1178,6 +1899,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" +"@babel/plugin-transform-typeof-symbol@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz#39af2739e989a2bd291bf6b53f16981423d457d4" + integrity sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-typescript@^7.13.0": version "7.14.4" resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.14.4.tgz#1c48829fa6d5f2de646060cd08abb6cda4b521a7" @@ -1187,6 +1915,15 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-typescript" "^7.12.13" +"@babel/plugin-transform-typescript@^7.14.5": + version "7.14.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.14.6.tgz#6e9c2d98da2507ebe0a883b100cde3c7279df36c" + integrity sha512-XlTdBq7Awr4FYIzqhmYY80WN0V0azF74DMPyFqVHBvf81ZUgc4X7ZOpx6O8eLDK6iM5cCQzeyJw0ynTaefixRA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.14.6" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-typescript" "^7.14.5" + "@babel/plugin-transform-unicode-escapes@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz#840ced3b816d3b5127dd1d12dcedc5dead1a5e74" @@ -1194,6 +1931,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" +"@babel/plugin-transform-unicode-escapes@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz#9d4bd2a681e3c5d7acf4f57fa9e51175d91d0c6b" + integrity sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-transform-unicode-regex@^7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz#b52521685804e155b1202e83fc188d34bb70f5ac" @@ -1202,6 +1946,14 @@ "@babel/helper-create-regexp-features-plugin" "^7.12.13" "@babel/helper-plugin-utils" "^7.12.13" +"@babel/plugin-transform-unicode-regex@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz#4cd09b6c8425dd81255c7ceb3fb1836e7414382e" + integrity sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/preset-env@^7.12.1": version "7.14.4" resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.4.tgz#73fc3228c59727e5e974319156f304f0d6685a2d" @@ -1281,6 +2033,85 @@ core-js-compat "^3.9.0" semver "^6.3.0" +"@babel/preset-env@^7.12.11": + version "7.14.9" + resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.9.tgz#4a3bbbd745f20e9121d5925170bef040a21b7819" + integrity sha512-BV5JvCwBDebkyh67bPKBYVCC6gGw0MCzU6HfKe5Pm3upFpPVqiC/hB33zkOe0tVdAzaMywah0LSXQeD9v/BYdQ== + dependencies: + "@babel/compat-data" "^7.14.9" + "@babel/helper-compilation-targets" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.14.5" + "@babel/plugin-proposal-async-generator-functions" "^7.14.9" + "@babel/plugin-proposal-class-properties" "^7.14.5" + "@babel/plugin-proposal-class-static-block" "^7.14.5" + "@babel/plugin-proposal-dynamic-import" "^7.14.5" + "@babel/plugin-proposal-export-namespace-from" "^7.14.5" + "@babel/plugin-proposal-json-strings" "^7.14.5" + "@babel/plugin-proposal-logical-assignment-operators" "^7.14.5" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.5" + "@babel/plugin-proposal-numeric-separator" "^7.14.5" + "@babel/plugin-proposal-object-rest-spread" "^7.14.7" + "@babel/plugin-proposal-optional-catch-binding" "^7.14.5" + "@babel/plugin-proposal-optional-chaining" "^7.14.5" + "@babel/plugin-proposal-private-methods" "^7.14.5" + "@babel/plugin-proposal-private-property-in-object" "^7.14.5" + "@babel/plugin-proposal-unicode-property-regex" "^7.14.5" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-transform-arrow-functions" "^7.14.5" + "@babel/plugin-transform-async-to-generator" "^7.14.5" + "@babel/plugin-transform-block-scoped-functions" "^7.14.5" + "@babel/plugin-transform-block-scoping" "^7.14.5" + "@babel/plugin-transform-classes" "^7.14.9" + "@babel/plugin-transform-computed-properties" "^7.14.5" + "@babel/plugin-transform-destructuring" "^7.14.7" + "@babel/plugin-transform-dotall-regex" "^7.14.5" + "@babel/plugin-transform-duplicate-keys" "^7.14.5" + "@babel/plugin-transform-exponentiation-operator" "^7.14.5" + "@babel/plugin-transform-for-of" "^7.14.5" + "@babel/plugin-transform-function-name" "^7.14.5" + "@babel/plugin-transform-literals" "^7.14.5" + "@babel/plugin-transform-member-expression-literals" "^7.14.5" + "@babel/plugin-transform-modules-amd" "^7.14.5" + "@babel/plugin-transform-modules-commonjs" "^7.14.5" + "@babel/plugin-transform-modules-systemjs" "^7.14.5" + "@babel/plugin-transform-modules-umd" "^7.14.5" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.14.9" + "@babel/plugin-transform-new-target" "^7.14.5" + "@babel/plugin-transform-object-super" "^7.14.5" + "@babel/plugin-transform-parameters" "^7.14.5" + "@babel/plugin-transform-property-literals" "^7.14.5" + "@babel/plugin-transform-regenerator" "^7.14.5" + "@babel/plugin-transform-reserved-words" "^7.14.5" + "@babel/plugin-transform-shorthand-properties" "^7.14.5" + "@babel/plugin-transform-spread" "^7.14.6" + "@babel/plugin-transform-sticky-regex" "^7.14.5" + "@babel/plugin-transform-template-literals" "^7.14.5" + "@babel/plugin-transform-typeof-symbol" "^7.14.5" + "@babel/plugin-transform-unicode-escapes" "^7.14.5" + "@babel/plugin-transform-unicode-regex" "^7.14.5" + "@babel/preset-modules" "^0.1.4" + "@babel/types" "^7.14.9" + babel-plugin-polyfill-corejs2 "^0.2.2" + babel-plugin-polyfill-corejs3 "^0.2.2" + babel-plugin-polyfill-regenerator "^0.2.2" + core-js-compat "^3.16.0" + semver "^6.3.0" + "@babel/preset-flow@^7.12.1", "@babel/preset-flow@^7.13.13": version "7.13.13" resolved "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.13.13.tgz#a61a1c149b3f77589d795287744393444d5cdd9e" @@ -1301,7 +2132,19 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-react@^7.12.1", "@babel/preset-react@^7.12.5": +"@babel/preset-react@^7.12.10": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.14.5.tgz#0fbb769513f899c2c56f3a882fa79673c2d4ab3c" + integrity sha512-XFxBkjyObLvBaAvkx1Ie95Iaq4S/GUEIrejyrntQ/VCMKUYvKLoyKxOBzJ2kjA3b6rC9/KL6KXfDC2GqvLiNqQ== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + "@babel/plugin-transform-react-display-name" "^7.14.5" + "@babel/plugin-transform-react-jsx" "^7.14.5" + "@babel/plugin-transform-react-jsx-development" "^7.14.5" + "@babel/plugin-transform-react-pure-annotations" "^7.14.5" + +"@babel/preset-react@^7.12.5": version "7.13.13" resolved "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.13.13.tgz#fa6895a96c50763fe693f9148568458d5a839761" integrity sha512-gx+tDLIE06sRjKJkVtpZ/t3mzCDOnPG+ggHZG9lffUbX8+wC739x20YQc9V35Do6ZAxaUc/HhVHIiOzz5MvDmA== @@ -1313,7 +2156,16 @@ "@babel/plugin-transform-react-jsx-development" "^7.12.17" "@babel/plugin-transform-react-pure-annotations" "^7.12.1" -"@babel/preset-typescript@^7.12.1", "@babel/preset-typescript@^7.13.0": +"@babel/preset-typescript@^7.12.7": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.14.5.tgz#aa98de119cf9852b79511f19e7f44a2d379bcce0" + integrity sha512-u4zO6CdbRKbS9TypMqrlGH7sd2TAJppZwn3c/ZRLeO/wGsbddxgbPDUZVNrie3JWYLQ9vpineKlsrWFvO6Pwkw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + "@babel/plugin-transform-typescript" "^7.14.5" + +"@babel/preset-typescript@^7.13.0": version "7.13.0" resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.13.0.tgz#ab107e5f050609d806fbb039bec553b33462c60a" integrity sha512-LXJwxrHy0N3f6gIJlYbLta1D9BDtHpQeqwzM0LIfjDlr6UE/D5Mc7W4iDiQzaE+ks0sTjT26ArcHWnJVt0QiHw== @@ -1341,13 +2193,20 @@ core-js-pure "^3.0.0" regenerator-runtime "^0.13.4" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.0", "@babel/runtime@^7.10.1", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.4", "@babel/runtime@^7.10.5", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.3.4", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.0", "@babel/runtime@^7.5.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.0", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": +"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.0", "@babel/runtime@^7.10.1", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.4", "@babel/runtime@^7.10.5", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.5.0", "@babel/runtime@^7.5.4", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.0", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": version "7.14.6" resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.6.tgz#535203bc0892efc7dec60bdc27b2ecf6e409062d" integrity sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg== dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@^7.14.8": + version "7.14.8" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.8.tgz#7119a56f421018852694290b9f9148097391b446" + integrity sha512-twj3L8Og5SaCRCErB4x4ajbvBIVV77CGeFglHpeg5WC5FF8TZzBWXtTJ4MqaD9QszLYTtr+IsaAL2rEUevb+eg== + dependencies: + regenerator-runtime "^0.13.4" + "@babel/template@^7.12.13", "@babel/template@^7.3.3": version "7.12.13" resolved "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" @@ -1357,6 +2216,15 @@ "@babel/parser" "^7.12.13" "@babel/types" "^7.12.13" +"@babel/template@^7.12.7", "@babel/template@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4" + integrity sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/parser" "^7.14.5" + "@babel/types" "^7.14.5" + "@babel/traverse@7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz#689f0e4b4c08587ad26622832632735fb8c4e0c0" @@ -1386,6 +2254,21 @@ debug "^4.1.0" globals "^11.1.0" +"@babel/traverse@^7.12.11", "@babel/traverse@^7.12.9", "@babel/traverse@^7.14.5", "@babel/traverse@^7.14.8": + version "7.14.9" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.9.tgz#016126b331210bf06fff29d52971eef8383e556f" + integrity sha512-bldh6dtB49L8q9bUyB7bC20UKgU+EFDwKJylwl234Kv+ySZeMD31Xeht6URyueQ6LrRRpF2tmkfcZooZR9/e8g== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/generator" "^7.14.9" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-hoist-variables" "^7.14.5" + "@babel/helper-split-export-declaration" "^7.14.5" + "@babel/parser" "^7.14.9" + "@babel/types" "^7.14.9" + debug "^4.1.0" + globals "^11.1.0" + "@babel/types@7.12.13": version "7.12.13" resolved "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz#8be1aa8f2c876da11a9cf650c0ecf656913ad611" @@ -1403,6 +2286,32 @@ "@babel/helper-validator-identifier" "^7.14.0" to-fast-properties "^2.0.0" +"@babel/types@^7.12.11", "@babel/types@^7.12.7", "@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.14.9": + version "7.14.9" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.14.9.tgz#f2b19c3f2f77c5708d67fe8f6046e9cea2b5036d" + integrity sha512-u0bLTnv3DFHeaQLYzb7oRJ1JHr1sv/SYDM7JSqHFFLwXG1wTZRughxFI5NCP8qBEo1rVVsn7Yg2Lvw49nne/Ow== + dependencies: + "@babel/helper-validator-identifier" "^7.14.9" + to-fast-properties "^2.0.0" + +"@backstage/core-api@^0.2.23": + version "0.2.23" + resolved "https://registry.npmjs.org/@backstage/core-api/-/core-api-0.2.23.tgz#c0ec13407ff7c78d376eb18e9d8e1490d54d995b" + integrity sha512-859IGJ5LpcFaqZOenJNM9eFBKd5lrdBjYst8I0srLCaZkBCshTbUT615G3zoDMDiXZNSm+h4V82kMT4eES9wDw== + dependencies: + "@backstage/config" "^0.1.4" + "@backstage/core-plugin-api" "^0.1.3" + "@backstage/theme" "^0.2.8" + "@material-ui/core" "^4.11.0" + "@material-ui/icons" "^4.9.1" + "@types/prop-types" "^15.7.3" + "@types/react" "^16.9" + prop-types "^15.7.2" + react "^16.12.0" + react-router-dom "6.0.0-beta.0" + react-use "^17.2.4" + zen-observable "^0.8.15" + "@backstage/core-components@^0.1.3", "@backstage/core-components@^0.1.6": version "0.1.6" resolved "https://registry.npmjs.org/@backstage/core-components/-/core-components-0.1.6.tgz#a66d9af3be61e76ed60d1026dec376b2d97e0a8e" @@ -1448,6 +2357,52 @@ remark-gfm "^1.0.0" zen-observable "^0.8.15" +"@backstage/core@*": + version "0.7.14" + resolved "https://registry.npmjs.org/@backstage/core/-/core-0.7.14.tgz#863844fe40bb6a29bcc2d297e42055633b0e886f" + integrity sha512-W7EMspBXrp1GPALK6+qdJjsvkqcaYGFyoh8/bRAXABIkJpGQGiy4xUZUKDoMhd+OdVHv/mzyyv3fH2yc32J07w== + dependencies: + "@backstage/config" "^0.1.5" + "@backstage/core-api" "^0.2.23" + "@backstage/errors" "^0.1.1" + "@backstage/theme" "^0.2.8" + "@material-ui/core" "^4.11.0" + "@material-ui/icons" "^4.9.1" + "@material-ui/lab" "4.0.0-alpha.45" + "@testing-library/react-hooks" "^3.4.2" + "@types/dagre" "^0.7.44" + "@types/prop-types" "^15.7.3" + "@types/react" "^16.9" + "@types/react-sparklines" "^1.7.0" + "@types/react-text-truncate" "^0.14.0" + classnames "^2.2.6" + clsx "^1.1.0" + d3-selection "^2.0.0" + d3-shape "^2.0.0" + d3-zoom "^2.0.0" + dagre "^0.8.5" + history "^5.0.0" + immer "^9.0.1" + lodash "^4.17.15" + material-table "^1.69.1" + pluralize "^8.0.0" + prop-types "^15.7.2" + qs "^6.9.4" + rc-progress "^3.0.0" + react "^16.12.0" + react-dom "^16.12.0" + react-helmet "6.1.0" + react-hook-form "^6.15.4" + react-markdown "^5.0.2" + react-router "6.0.0-beta.0" + react-router-dom "6.0.0-beta.0" + react-sparklines "^1.7.0" + react-syntax-highlighter "^15.4.3" + react-text-truncate "^0.16.0" + react-use "^17.2.4" + remark-gfm "^1.0.0" + zen-observable "^0.8.15" + "@backstage/plugin-catalog-react@^0.3.0": version "0.3.1" resolved "https://registry.npmjs.org/@backstage/plugin-catalog-react/-/plugin-catalog-react-0.3.1.tgz#d30a063a4ceb4d446310a687d19c987f55824fdb" @@ -1847,7 +2802,7 @@ "@emotion/serialize" "^0.11.15" "@emotion/utils" "0.11.3" -"@emotion/styled@^10.0.23", "@emotion/styled@^10.0.27": +"@emotion/styled@^10.0.27": version "10.0.27" resolved "https://registry.npmjs.org/@emotion/styled/-/styled-10.0.27.tgz#12cb67e91f7ad7431e1875b1d83a94b814133eaf" integrity sha512-iK/8Sh7+NLJzyp9a5+vIQIXTYxfT4yB/OJbjzQanB2RZpvmzBQOHZWhpAMZWYEKRNNbsD6WfBw5sVWkb6WzS/Q== @@ -2515,11 +3470,6 @@ resolved "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz#b32366c89b43c6f8cefbdefac778b9c828e3ba8c" integrity sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg== -"@icons/material@^0.2.4": - version "0.2.4" - resolved "https://registry.npmjs.org/@icons/material/-/material-0.2.4.tgz#e90c9f71768b3736e76d7dd6783fc6c2afa88bc8" - integrity sha512-QPcGmICAPbGLGb6F/yNf/KzKqvFx8z5qx3D1yFqVAjoFmXK35EgyW+cJ57Te3CNsmzblwtzakLGFqHPqrfb4Tw== - "@istanbuljs/load-nyc-config@^1.0.0": version "1.0.0" resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz#10602de5570baea82f8afbfa2630b24e7a8cfe5b" @@ -3618,6 +4568,36 @@ dependencies: "@types/whatwg-streams" "^0.0.7" +"@mdx-js/mdx@^1.6.22": + version "1.6.22" + resolved "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz#8a723157bf90e78f17dc0f27995398e6c731f1ba" + integrity sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA== + dependencies: + "@babel/core" "7.12.9" + "@babel/plugin-syntax-jsx" "7.12.1" + "@babel/plugin-syntax-object-rest-spread" "7.8.3" + "@mdx-js/util" "1.6.22" + babel-plugin-apply-mdx-type-prop "1.6.22" + babel-plugin-extract-import-names "1.6.22" + camelcase-css "2.0.1" + detab "2.0.4" + hast-util-raw "6.0.1" + lodash.uniq "4.5.0" + mdast-util-to-hast "10.0.1" + remark-footnotes "2.0.0" + remark-mdx "1.6.22" + remark-parse "8.0.3" + remark-squeeze-paragraphs "4.0.0" + style-to-object "0.3.0" + unified "9.2.0" + unist-builder "2.0.3" + unist-util-visit "2.0.3" + +"@mdx-js/util@1.6.22": + version "1.6.22" + resolved "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.22.tgz#219dfd89ae5b97a8801f015323ffa4b62f45718b" + integrity sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA== + "@microsoft/api-documenter@^7.13.30": version "7.13.30" resolved "https://registry.npmjs.org/@microsoft/api-documenter/-/api-documenter-7.13.30.tgz#f4832b8747ad9f61b3a0d87eb61b6b1aca2aeb60" @@ -4024,16 +5004,17 @@ resolved "https://registry.npmjs.org/@panva/asn1.js/-/asn1.js-1.0.0.tgz#dd55ae7b8129e02049f009408b97c61ccf9032f6" integrity sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw== -"@pmmmwh/react-refresh-webpack-plugin@^0.4.2": - version "0.4.3" - resolved "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.4.3.tgz#1eec460596d200c0236bf195b078a5d1df89b766" - integrity sha512-br5Qwvh8D2OQqSXpd1g/xqXKnK0r+Jz6qVKBbWmpUcrbGOxUrf39V5oZ1876084CGn18uMdR5uvPqBv9UqtBjQ== +"@pmmmwh/react-refresh-webpack-plugin@^0.5.0-rc.2": + version "0.5.0-rc.2" + resolved "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.0-rc.2.tgz#7f1049150d8474cd8bfe21ae0efec581238dc924" + integrity sha512-LTZK5rAAiog7FvsDKX7mJBifV9yyzhIXHqlHA8E978Z0iFLsW40j6OVJFZ/AzV3wBIvN3+iPVYvhVGckkoy8OQ== dependencies: ansi-html "^0.0.7" + core-js-pure "^3.8.1" error-stack-parser "^2.0.6" - html-entities "^1.2.1" - native-url "^0.2.6" - schema-utils "^2.6.5" + html-entities "^2.1.0" + loader-utils "^2.0.0" + schema-utils "^3.0.0" source-map "^0.7.3" "@popperjs/core@^2.5.4", "@popperjs/core@^2.6.0": @@ -4094,7 +5075,7 @@ resolved "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA= -"@reach/router@^1.3.3", "@reach/router@^1.3.4": +"@reach/router@^1.3.4": version "1.3.4" resolved "https://registry.npmjs.org/@reach/router/-/router-1.3.4.tgz#d2574b19370a70c80480ed91f3da840136d10f8c" integrity sha512-+mtn9wjlB9NN2CNnnC/BRYtwdKBfSyyasPYraNAyvaV1occr/5NnB4CVzjEZipNHwYebQwcndGUmpFzxAUoqSA== @@ -4404,19 +5385,19 @@ resolved "https://registry.npmjs.org/@spotify/prettier-config/-/prettier-config-10.0.0.tgz#fa076d98d2e7e6c53dd3d86a696307a7010bd056" integrity sha512-VYOdo8P7lIScAkl02nB9KpUAuOYMManryBIBuKJkAw5D3aVtLobfmdIKvdV6MqEmGMEQPbn7w/UpnjJYhUH+IA== -"@storybook/addon-a11y@^6.3.4": - version "6.3.4" - resolved "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-6.3.4.tgz#056c3c0e3b2d66d8aa2f02dc84374c948d07df91" - integrity sha512-ABG1dvwDdlNVvW+P+oRtDdiyw40ddc+maSwKbwxTiw9Ibq7TrasWE9ub0r7yNoFLXEZa3pBjPrGKdh+WIYToSQ== +"@storybook/addon-a11y@^6.4.0-alpha.23": + version "6.4.0-alpha.23" + resolved "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-6.4.0-alpha.23.tgz#37972e133439d2fe6deb3cceef5f511e70f73fd2" + integrity sha512-v+JV2asNnG1xTKmzDeZuxM/sxmlUzyuheQhx5EnpuOHBM0PVA2H+254+irZh8wq5ghSG8mHp+w8KgUBv6aiQCw== dependencies: - "@storybook/addons" "6.3.4" - "@storybook/api" "6.3.4" - "@storybook/channels" "6.3.4" - "@storybook/client-api" "6.3.4" - "@storybook/client-logger" "6.3.4" - "@storybook/components" "6.3.4" - "@storybook/core-events" "6.3.4" - "@storybook/theming" "6.3.4" + "@storybook/addons" "6.4.0-alpha.23" + "@storybook/api" "6.4.0-alpha.23" + "@storybook/channels" "6.4.0-alpha.23" + "@storybook/client-api" "6.4.0-alpha.23" + "@storybook/client-logger" "6.4.0-alpha.23" + "@storybook/components" "6.4.0-alpha.23" + "@storybook/core-events" "6.4.0-alpha.23" + "@storybook/theming" "6.4.0-alpha.23" axe-core "^4.2.0" core-js "^3.8.2" global "^4.4.0" @@ -4426,17 +5407,17 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/addon-actions@^6.1.11": - version "6.3.0" - resolved "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-6.3.0.tgz#e5a24c69d70da9aa98560f19d10c06a50495ca2e" - integrity sha512-7Ls1OIAdtAa4a27/bTuAlejQee4j7bFBkRzAeaHzcaZT1VVXoF6yBfMGuEGJI8brQ+KuSaIhIU2b0Iuzq47dDQ== +"@storybook/addon-actions@^6.4.0-alpha.23": + version "6.4.0-alpha.23" + resolved "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-6.4.0-alpha.23.tgz#4476d45094c3c105e3bd65e40f74eb177e82df3f" + integrity sha512-wZ98pUvwa/QbGzizedRwm1xqQSXc2oFkZ50B+HudoJBUMQLXuE8r4DOFS3pFmr3NuTK6K9W9abXPzmFbkC6FpA== dependencies: - "@storybook/addons" "6.3.0" - "@storybook/api" "6.3.0" - "@storybook/client-api" "6.3.0" - "@storybook/components" "6.3.0" - "@storybook/core-events" "6.3.0" - "@storybook/theming" "6.3.0" + "@storybook/addons" "6.4.0-alpha.23" + "@storybook/api" "6.4.0-alpha.23" + "@storybook/client-api" "6.4.0-alpha.23" + "@storybook/components" "6.4.0-alpha.23" + "@storybook/core-events" "6.4.0-alpha.23" + "@storybook/theming" "6.4.0-alpha.23" core-js "^3.8.2" fast-deep-equal "^3.1.3" global "^4.4.0" @@ -4449,16 +5430,16 @@ util-deprecate "^1.0.2" uuid-browser "^3.1.0" -"@storybook/addon-links@^6.1.11": - version "6.3.4" - resolved "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-6.3.4.tgz#2ec5b7532e67303b7ec693ecc22a6c4feac93cb3" - integrity sha512-qIey6kNcrg43vsmMmEGXGMbO1Wjqc6hbcMaLstUn3xN29vZnjUcv7PVPFlJsBBYIxW7gXBtRmqjdxN5UD0bvZA== +"@storybook/addon-links@^6.4.0-alpha.23": + version "6.4.0-alpha.23" + resolved "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-6.4.0-alpha.23.tgz#e7cfa96f3fc46513d5b780a0f824c325cf0e9296" + integrity sha512-FuhU0a/5VXPGH0WkcRt5K+ZYHBbhFIjBJBD0IVx2zYGyJza4D25HTJQnjPXAOHAveacKvxp0IdepIwjIeOu2pQ== dependencies: - "@storybook/addons" "6.3.4" - "@storybook/client-logger" "6.3.4" - "@storybook/core-events" "6.3.4" + "@storybook/addons" "6.4.0-alpha.23" + "@storybook/client-logger" "6.4.0-alpha.23" + "@storybook/core-events" "6.4.0-alpha.23" "@storybook/csf" "0.0.1" - "@storybook/router" "6.3.4" + "@storybook/router" "6.4.0-alpha.23" "@types/qs" "^6.9.5" core-js "^3.8.2" global "^4.4.0" @@ -4467,150 +5448,54 @@ regenerator-runtime "^0.13.7" ts-dedent "^2.0.0" -"@storybook/addon-storysource@^6.1.11": - version "6.2.9" - resolved "https://registry.npmjs.org/@storybook/addon-storysource/-/addon-storysource-6.2.9.tgz#631a9b6c2e3db42c05055ed5341700687a0b42f9" - integrity sha512-lKQOKbk8akqPN7NNBRn+OsiwYg1BXYExmErCwAT/ejx4ggHJCPTDlrl2ZiEriKZ7WXIfgA4VuN5YriKu5uxdnw== +"@storybook/addon-storysource@^6.4.0-alpha.23": + version "6.4.0-alpha.23" + resolved "https://registry.npmjs.org/@storybook/addon-storysource/-/addon-storysource-6.4.0-alpha.23.tgz#0874d310abb37f79bf41391f297354efda212b2f" + integrity sha512-RPMxkPAVaUGwKiWGyJcL/yXQWjWOj822uuX1Wb0UhNHOZxwHLsUWlTGFuzHsW0FmfGInMYLOjkFeb7SDz6EAqw== dependencies: - "@storybook/addons" "6.2.9" - "@storybook/api" "6.2.9" - "@storybook/client-logger" "6.2.9" - "@storybook/components" "6.2.9" - "@storybook/router" "6.2.9" - "@storybook/source-loader" "6.2.9" - "@storybook/theming" "6.2.9" + "@storybook/addons" "6.4.0-alpha.23" + "@storybook/api" "6.4.0-alpha.23" + "@storybook/client-logger" "6.4.0-alpha.23" + "@storybook/components" "6.4.0-alpha.23" + "@storybook/router" "6.4.0-alpha.23" + "@storybook/source-loader" "6.4.0-alpha.23" + "@storybook/theming" "6.4.0-alpha.23" core-js "^3.8.2" estraverse "^5.2.0" loader-utils "^2.0.0" - prettier "~2.2.1" + prettier "^2.2.1" prop-types "^15.7.2" react-syntax-highlighter "^13.5.3" regenerator-runtime "^0.13.7" -"@storybook/addons@6.1.15": - version "6.1.15" - resolved "https://registry.npmjs.org/@storybook/addons/-/addons-6.1.15.tgz#09eb8d962f58bd20b4ac2f83b515831c83226352" - integrity sha512-ENyHapLFOG93VaoQXPX8O3IWjLRyVBox9C9P20LMruKX/SfXAXx20qsoAWKKPGssopyOin17aoQX9pj+lFmCZQ== +"@storybook/addons@6.4.0-alpha.23", "@storybook/addons@^6.4.0-alpha.23": + version "6.4.0-alpha.23" + resolved "https://registry.npmjs.org/@storybook/addons/-/addons-6.4.0-alpha.23.tgz#cf1fa64dc398067cf4893145c709e666f9822af2" + integrity sha512-4EhhOVX9uND2Sw0RXTFSgYRu3f9MJRaT+PD9UpC4xaj5Za536UPYHObyx9s+rgc4JhVMQcv9vZwz4W0QzTXzpw== dependencies: - "@storybook/api" "6.1.15" - "@storybook/channels" "6.1.15" - "@storybook/client-logger" "6.1.15" - "@storybook/core-events" "6.1.15" - "@storybook/router" "6.1.15" - "@storybook/theming" "6.1.15" - core-js "^3.0.1" - global "^4.3.2" - regenerator-runtime "^0.13.7" - -"@storybook/addons@6.2.9": - version "6.2.9" - resolved "https://registry.npmjs.org/@storybook/addons/-/addons-6.2.9.tgz#b7ba2b9f0e15b852c7d6b57d04fb0a493c57477c" - integrity sha512-GnmEKbJwiN1jncN9NSA8CuR1i2XAlasPcl/Zn0jkfV9WitQeczVcJCPw86SGH84AD+tTBCyF2i9UC0KaOV1YBQ== - dependencies: - "@storybook/api" "6.2.9" - "@storybook/channels" "6.2.9" - "@storybook/client-logger" "6.2.9" - "@storybook/core-events" "6.2.9" - "@storybook/router" "6.2.9" - "@storybook/theming" "6.2.9" + "@storybook/api" "6.4.0-alpha.23" + "@storybook/channels" "6.4.0-alpha.23" + "@storybook/client-logger" "6.4.0-alpha.23" + "@storybook/core-events" "6.4.0-alpha.23" + "@storybook/router" "6.4.0-alpha.23" + "@storybook/theming" "6.4.0-alpha.23" core-js "^3.8.2" global "^4.4.0" regenerator-runtime "^0.13.7" -"@storybook/addons@6.3.0": - version "6.3.0" - resolved "https://registry.npmjs.org/@storybook/addons/-/addons-6.3.0.tgz#a86849f46a654d2d78b91fad0088264a32d4e58e" - integrity sha512-/dcq20HtdSw5+cG8znR59Y/uv2zCR2VjRK3N52IkGWk162b/UbSjjL0PhNnnQFGpH9Fruft6mqvjTAKT41kmJw== - dependencies: - "@storybook/api" "6.3.0" - "@storybook/channels" "6.3.0" - "@storybook/client-logger" "6.3.0" - "@storybook/core-events" "6.3.0" - "@storybook/router" "6.3.0" - "@storybook/theming" "6.3.0" - core-js "^3.8.2" - global "^4.4.0" - regenerator-runtime "^0.13.7" - -"@storybook/addons@6.3.4", "@storybook/addons@^6.1.11": - version "6.3.4" - resolved "https://registry.npmjs.org/@storybook/addons/-/addons-6.3.4.tgz#016c5c3e36c78a320eb8b022cf7fe556d81577c2" - integrity sha512-rf8K8X3JrB43gq5nw5SYgfucQkFg2QgUMWdByf7dQ4MyIl5zet+2MYiSXJ9lfbhGKJZ8orc81rmMtiocW4oBjg== - dependencies: - "@storybook/api" "6.3.4" - "@storybook/channels" "6.3.4" - "@storybook/client-logger" "6.3.4" - "@storybook/core-events" "6.3.4" - "@storybook/router" "6.3.4" - "@storybook/theming" "6.3.4" - core-js "^3.8.2" - global "^4.4.0" - regenerator-runtime "^0.13.7" - -"@storybook/api@6.1.15": - version "6.1.15" - resolved "https://registry.npmjs.org/@storybook/api/-/api-6.1.15.tgz#285ba42f7a8efcd3bd0e586a5e978487d826fbb4" - integrity sha512-C4D08e2ZbSe62nNKtmh9YBraoWb2j6Chw8VCkuj91kuKHh3YDNc1gjj5Fi+KYZwIcy0EllzW3RFQs+YR1/Vg1g== - dependencies: - "@reach/router" "^1.3.3" - "@storybook/channels" "6.1.15" - "@storybook/client-logger" "6.1.15" - "@storybook/core-events" "6.1.15" - "@storybook/csf" "0.0.1" - "@storybook/router" "6.1.15" - "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.1.15" - "@types/reach__router" "^1.3.7" - core-js "^3.0.1" - fast-deep-equal "^3.1.1" - global "^4.3.2" - lodash "^4.17.15" - memoizerific "^1.11.3" - regenerator-runtime "^0.13.7" - store2 "^2.7.1" - telejson "^5.0.2" - ts-dedent "^2.0.0" - util-deprecate "^1.0.2" - -"@storybook/api@6.2.9": - version "6.2.9" - resolved "https://registry.npmjs.org/@storybook/api/-/api-6.2.9.tgz#a9b46569192ad5d8da6435c9d63dc4b0c8463b51" - integrity sha512-okkA3HAScE9tGnYBrjTOcgzT+L1lRHNoEh3ZfGgh1u/XNEyHGNkj4grvkd6nX7BzRcYQ/l2VkcKCqmOjUnSkVQ== +"@storybook/api@6.4.0-alpha.23": + version "6.4.0-alpha.23" + resolved "https://registry.npmjs.org/@storybook/api/-/api-6.4.0-alpha.23.tgz#0c37a12cf5a4e8754cddbab53f6a648d02ec5db0" + integrity sha512-exa9PoFRVKoL+kWvRtgIQm47bkNW73wNE5eO4sBtnHUhaBloDreKmdcmMo/ep2ayM1P1JFdcUdsHmxSOo5eC7w== dependencies: "@reach/router" "^1.3.4" - "@storybook/channels" "6.2.9" - "@storybook/client-logger" "6.2.9" - "@storybook/core-events" "6.2.9" + "@storybook/channels" "6.4.0-alpha.23" + "@storybook/client-logger" "6.4.0-alpha.23" + "@storybook/core-events" "6.4.0-alpha.23" "@storybook/csf" "0.0.1" - "@storybook/router" "6.2.9" + "@storybook/router" "6.4.0-alpha.23" "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.2.9" - "@types/reach__router" "^1.3.7" - core-js "^3.8.2" - fast-deep-equal "^3.1.3" - global "^4.4.0" - lodash "^4.17.20" - memoizerific "^1.11.3" - qs "^6.10.0" - regenerator-runtime "^0.13.7" - store2 "^2.12.0" - telejson "^5.1.0" - ts-dedent "^2.0.0" - util-deprecate "^1.0.2" - -"@storybook/api@6.3.0": - version "6.3.0" - resolved "https://registry.npmjs.org/@storybook/api/-/api-6.3.0.tgz#5ecb646e7c3c4c7c494bb15f4c94554f7f4ee09e" - integrity sha512-swPMcQadLDRTnMjL9dwY6K1zXHn3KcAa3euvSHd1R4OKXTSBBj1zHvIaOrq6yHz7RIYOACmZlEV3CUru9FlvEA== - dependencies: - "@reach/router" "^1.3.4" - "@storybook/channels" "6.3.0" - "@storybook/client-logger" "6.3.0" - "@storybook/core-events" "6.3.0" - "@storybook/csf" "0.0.1" - "@storybook/router" "6.3.0" - "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.3.0" + "@storybook/theming" "6.4.0-alpha.23" "@types/reach__router" "^1.3.7" core-js "^3.8.2" fast-deep-equal "^3.1.3" @@ -4624,371 +5509,22 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/api@6.3.4": - version "6.3.4" - resolved "https://registry.npmjs.org/@storybook/api/-/api-6.3.4.tgz#25b8b842104693000b018b3f64986e95fa032b45" - integrity sha512-12q6dvSR4AtyuZbKAy3Xt+ZHzZ4ePPRV1q20xtgYBoiFEgB9vbh4XKEeeZD0yIeTamQ2x1Hn87R79Rs1GIdKRQ== +"@storybook/builder-webpack4@6.4.0-alpha.23": + version "6.4.0-alpha.23" + resolved "https://registry.npmjs.org/@storybook/builder-webpack4/-/builder-webpack4-6.4.0-alpha.23.tgz#25e8c39303abb0baa86d5f1538c46f1394f4b295" + integrity sha512-y2M1TWpftPRSjpFglbhnsZHLKe7aBmscrUwW0fx8gMSNRmAvetBcaGDieYHeBYBcC7K6B63YLc7UnZXX/2TOgQ== dependencies: - "@reach/router" "^1.3.4" - "@storybook/channels" "6.3.4" - "@storybook/client-logger" "6.3.4" - "@storybook/core-events" "6.3.4" - "@storybook/csf" "0.0.1" - "@storybook/router" "6.3.4" - "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.3.4" - "@types/reach__router" "^1.3.7" - core-js "^3.8.2" - fast-deep-equal "^3.1.3" - global "^4.4.0" - lodash "^4.17.20" - memoizerific "^1.11.3" - qs "^6.10.0" - regenerator-runtime "^0.13.7" - store2 "^2.12.0" - telejson "^5.3.2" - ts-dedent "^2.0.0" - util-deprecate "^1.0.2" - -"@storybook/channel-postmessage@6.1.15": - version "6.1.15" - resolved "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.1.15.tgz#80ea2346d18496f9710dd7f87fd2a9eca46ef36f" - integrity sha512-Es4B5zpLrW28KSbY8FhGVEDgUnKspJ7wPuJyKExUpZ5L9w52RkTD6lRnVPzLUfoQ4luPsExy5fiuo878/Wc9ag== - dependencies: - "@storybook/channels" "6.1.15" - "@storybook/client-logger" "6.1.15" - "@storybook/core-events" "6.1.15" - core-js "^3.0.1" - global "^4.3.2" - qs "^6.6.0" - telejson "^5.0.2" - -"@storybook/channel-postmessage@6.3.0": - version "6.3.0" - resolved "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.3.0.tgz#96e7aea034ec1c4f397323ab7923eaa80d017324" - integrity sha512-q7FeNWIIrvZxycIMBscqahFLygxAa2L4eJ9oxZFF9zJpSV80bxDalMou3Uo7RvDJFrAeHCanF1Y7bnEDMus4yg== - dependencies: - "@storybook/channels" "6.3.0" - "@storybook/client-logger" "6.3.0" - "@storybook/core-events" "6.3.0" - core-js "^3.8.2" - global "^4.4.0" - qs "^6.10.0" - telejson "^5.3.2" - -"@storybook/channel-postmessage@6.3.4": - version "6.3.4" - resolved "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.3.4.tgz#1a0000aefc9494d5585a1d2c7bdb75f540965f70" - integrity sha512-UIHNrMD9ZaT249nkKXibqRjKEoqfeFJk5HKW2W17/Z/imVcKG9THBnRJ7cb+r7LqS8Yoh+Q87ycRqcPVLRJ/Xw== - dependencies: - "@storybook/channels" "6.3.4" - "@storybook/client-logger" "6.3.4" - "@storybook/core-events" "6.3.4" - core-js "^3.8.2" - global "^4.4.0" - qs "^6.10.0" - telejson "^5.3.2" - -"@storybook/channels@6.1.15": - version "6.1.15" - resolved "https://registry.npmjs.org/@storybook/channels/-/channels-6.1.15.tgz#22bb06a671a5ae09d2537bcf63aaf90d7f6b9f6b" - integrity sha512-HIKHDeL/0BDk9a7xc2PLiFFoHjUMKUd2djhUGdeKgdKqoWejp4JJ60fI68+2QuSRbkB8k+rAwmuWJzV7EfB5fg== - dependencies: - core-js "^3.0.1" - ts-dedent "^2.0.0" - util-deprecate "^1.0.2" - -"@storybook/channels@6.2.9": - version "6.2.9" - resolved "https://registry.npmjs.org/@storybook/channels/-/channels-6.2.9.tgz#a9fd7f25102cbec15fb56f76abf891b7b214e9de" - integrity sha512-6dC8Fb2ipNyOQXnUZMDeEUaJGH5DMLzyHlGLhVyDtrO5WR6bO8mQdkzf4+5dSKXgCBNX0BSkssXth4pDjn18rg== - dependencies: - core-js "^3.8.2" - ts-dedent "^2.0.0" - util-deprecate "^1.0.2" - -"@storybook/channels@6.3.0": - version "6.3.0" - resolved "https://registry.npmjs.org/@storybook/channels/-/channels-6.3.0.tgz#f378c6ee03e0c72a2ee9263c8dfdfa4a7a1bcf51" - integrity sha512-E+SCQLSIlCaOGKEkZ8rFKNyH24/N4IA6h+EDF+9mhw3yT4iv7NCoswCgqX7JhyhSjWkM01onhuMVUVKVvi7CSw== - dependencies: - core-js "^3.8.2" - ts-dedent "^2.0.0" - util-deprecate "^1.0.2" - -"@storybook/channels@6.3.4": - version "6.3.4" - resolved "https://registry.npmjs.org/@storybook/channels/-/channels-6.3.4.tgz#425b31a67e42ac66ccb03465e4ba2e2ef9c8344b" - integrity sha512-zdZzBbIu9JHEe+uw8FqKsNUiFY+iqI9QdHH/pM3DTTQpBN/JM1Xwfo3CkqA8c5PkhSGqpW0YjXoPash4lawr1Q== - dependencies: - core-js "^3.8.2" - ts-dedent "^2.0.0" - util-deprecate "^1.0.2" - -"@storybook/client-api@6.1.15": - version "6.1.15" - resolved "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.1.15.tgz#8f8ead111459b94621571bdb2276f8a0aace17b1" - integrity sha512-iwuDlgNdB6Y4OidlhWPob3tEIax9taymdKEe9by4rLJ3nfXu7viHcvCAjN24oI4NFW3NZsmtqJotgftRYk0r1Q== - dependencies: - "@storybook/addons" "6.1.15" - "@storybook/channel-postmessage" "6.1.15" - "@storybook/channels" "6.1.15" - "@storybook/client-logger" "6.1.15" - "@storybook/core-events" "6.1.15" - "@storybook/csf" "0.0.1" - "@types/qs" "^6.9.0" - "@types/webpack-env" "^1.15.3" - core-js "^3.0.1" - global "^4.3.2" - lodash "^4.17.15" - memoizerific "^1.11.3" - qs "^6.6.0" - regenerator-runtime "^0.13.7" - stable "^0.1.8" - store2 "^2.7.1" - ts-dedent "^2.0.0" - util-deprecate "^1.0.2" - -"@storybook/client-api@6.3.0": - version "6.3.0" - resolved "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.3.0.tgz#a285c4b64ec318f360ade31d0c87c22e6e1db2a6" - integrity sha512-5HLtYPBOHif9AdzwLCrVbMQdOJ2dne9zv7oTo6Yl0wvLhbr6V/VypoXE0CgFF3hAI2iUquG5z00KlrE8UErC5Q== - dependencies: - "@storybook/addons" "6.3.0" - "@storybook/channel-postmessage" "6.3.0" - "@storybook/channels" "6.3.0" - "@storybook/client-logger" "6.3.0" - "@storybook/core-events" "6.3.0" - "@storybook/csf" "0.0.1" - "@types/qs" "^6.9.5" - "@types/webpack-env" "^1.16.0" - core-js "^3.8.2" - global "^4.4.0" - lodash "^4.17.20" - memoizerific "^1.11.3" - qs "^6.10.0" - regenerator-runtime "^0.13.7" - stable "^0.1.8" - store2 "^2.12.0" - ts-dedent "^2.0.0" - util-deprecate "^1.0.2" - -"@storybook/client-api@6.3.4": - version "6.3.4" - resolved "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.3.4.tgz#7dd6dda0126012ed37fa885642973cc75366b5a8" - integrity sha512-lOrfz8ic3+nHZzqIdNH2I7Q3Wp0kS/Ic0PD/3QKvI2f6iVIapIjjWW1xAuor80Dl7rMhOn8zxgXta+7G7Pn2yQ== - dependencies: - "@storybook/addons" "6.3.4" - "@storybook/channel-postmessage" "6.3.4" - "@storybook/channels" "6.3.4" - "@storybook/client-logger" "6.3.4" - "@storybook/core-events" "6.3.4" - "@storybook/csf" "0.0.1" - "@types/qs" "^6.9.5" - "@types/webpack-env" "^1.16.0" - core-js "^3.8.2" - global "^4.4.0" - lodash "^4.17.20" - memoizerific "^1.11.3" - qs "^6.10.0" - regenerator-runtime "^0.13.7" - stable "^0.1.8" - store2 "^2.12.0" - ts-dedent "^2.0.0" - util-deprecate "^1.0.2" - -"@storybook/client-logger@6.1.15": - version "6.1.15" - resolved "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.1.15.tgz#b558d6ecbee82c038d684717d8c598eaa4a9324d" - integrity sha512-lUpatG8SxzrUapWMsIPWiR+5qRVT5ebn8tGHQeBeRHXbdmEqyq5DOlrotLUemkA5nNTCs1pMFNvKSpCHznG+fg== - dependencies: - core-js "^3.0.1" - global "^4.3.2" - -"@storybook/client-logger@6.2.9": - version "6.2.9" - resolved "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.2.9.tgz#77c1ea39684ad2a2cf6836051b381fc5b354e132" - integrity sha512-IfOQZuvpjh66qBInQCJOb9S0dTGpzZ/Cxlcvokp+PYt95KztaWN3mPm+HaDQCeRsrWNe0Bpm1zuickcJ6dBOXg== - dependencies: - core-js "^3.8.2" - global "^4.4.0" - -"@storybook/client-logger@6.3.0": - version "6.3.0" - resolved "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.3.0.tgz#3188f84dd10353d225efadee9f24928395d38aab" - integrity sha512-x/y820f/2Jm6RW5TxRv7IlbF6zWpTkHoajfwYuTpK/OXvK5gx6dwXGdgjNoaAGofGRz5SVjDjTDPOcd5X5AUPw== - dependencies: - core-js "^3.8.2" - global "^4.4.0" - -"@storybook/client-logger@6.3.4": - version "6.3.4" - resolved "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.3.4.tgz#c7ee70463c48bb3af704165d5456351ebb667fc2" - integrity sha512-Gu4M5bBHHQznsdoj8uzYymeojwWq+CRNsUUH41BQIND/RJYSX1IYGIj0yNBP449nv2pjHcTGlN8NJDd+PcELCQ== - dependencies: - core-js "^3.8.2" - global "^4.4.0" - -"@storybook/components@6.1.15": - version "6.1.15" - resolved "https://registry.npmjs.org/@storybook/components/-/components-6.1.15.tgz#b4a2af23ee6b9cba4c255191eae3d3463e29bfb7" - integrity sha512-lPbA/zyBfctdlpDhRTcRFLWlZPJ3PB4+wI0FUvYs69iG3/bNbQPYu8vRmNhCZOsaGt+b+dik4Tfcth8Bu+eQug== - dependencies: - "@popperjs/core" "^2.5.4" - "@storybook/client-logger" "6.1.15" - "@storybook/csf" "0.0.1" - "@storybook/theming" "6.1.15" - "@types/overlayscrollbars" "^1.9.0" - "@types/react-color" "^3.0.1" - "@types/react-syntax-highlighter" "11.0.4" - core-js "^3.0.1" - fast-deep-equal "^3.1.1" - global "^4.3.2" - lodash "^4.17.15" - markdown-to-jsx "^6.11.4" - memoizerific "^1.11.3" - overlayscrollbars "^1.10.2" - polished "^3.4.4" - react-color "^2.17.0" - react-popper-tooltip "^3.1.1" - react-syntax-highlighter "^13.5.0" - react-textarea-autosize "^8.1.1" - ts-dedent "^2.0.0" - -"@storybook/components@6.2.9": - version "6.2.9" - resolved "https://registry.npmjs.org/@storybook/components/-/components-6.2.9.tgz#7189f9715b05720fe083ae8ad014849f14e98e73" - integrity sha512-hnV1MI2aB2g1sJ7NJphpxi7TwrMZQ/tpCJeHnkjmzyC6ez1MXqcBXGrEEdSXzRfAxjQTOEpu6H1mnns0xMP0Ag== - dependencies: - "@popperjs/core" "^2.6.0" - "@storybook/client-logger" "6.2.9" - "@storybook/csf" "0.0.1" - "@storybook/theming" "6.2.9" - "@types/color-convert" "^2.0.0" - "@types/overlayscrollbars" "^1.12.0" - "@types/react-syntax-highlighter" "11.0.5" - color-convert "^2.0.1" - core-js "^3.8.2" - fast-deep-equal "^3.1.3" - global "^4.4.0" - lodash "^4.17.20" - markdown-to-jsx "^7.1.0" - memoizerific "^1.11.3" - overlayscrollbars "^1.13.1" - polished "^4.0.5" - prop-types "^15.7.2" - react-colorful "^5.0.1" - react-popper-tooltip "^3.1.1" - react-syntax-highlighter "^13.5.3" - react-textarea-autosize "^8.3.0" - regenerator-runtime "^0.13.7" - ts-dedent "^2.0.0" - util-deprecate "^1.0.2" - -"@storybook/components@6.3.0": - version "6.3.0" - resolved "https://registry.npmjs.org/@storybook/components/-/components-6.3.0.tgz#5ad372abd60ee0cb02516f960f514659e3fbf865" - integrity sha512-TDcazQAtNgE1E33jKKABx51XpvWyXMcJZFWA0d5wu8XrElrL1PuZqz7dPePoWKGMfTaPYWP6rRyDg4Svv36j+A== - dependencies: - "@popperjs/core" "^2.6.0" - "@storybook/client-logger" "6.3.0" - "@storybook/csf" "0.0.1" - "@storybook/theming" "6.3.0" - "@types/color-convert" "^2.0.0" - "@types/overlayscrollbars" "^1.12.0" - "@types/react-syntax-highlighter" "11.0.5" - color-convert "^2.0.1" - core-js "^3.8.2" - fast-deep-equal "^3.1.3" - global "^4.4.0" - lodash "^4.17.20" - markdown-to-jsx "^7.1.3" - memoizerific "^1.11.3" - overlayscrollbars "^1.13.1" - polished "^4.0.5" - prop-types "^15.7.2" - react-colorful "^5.1.2" - react-popper-tooltip "^3.1.1" - react-syntax-highlighter "^13.5.3" - react-textarea-autosize "^8.3.0" - regenerator-runtime "^0.13.7" - ts-dedent "^2.0.0" - util-deprecate "^1.0.2" - -"@storybook/components@6.3.4": - version "6.3.4" - resolved "https://registry.npmjs.org/@storybook/components/-/components-6.3.4.tgz#c872ec267edf315eaada505be8595c70eb6db09b" - integrity sha512-0hBKTkkQbW+daaA6nRedkviPr2bEzy1kwq0H5eaLKI1zYeXN3U5Z8fVhO137PPqH5LmLietrmTPkqiljUBk9ug== - dependencies: - "@popperjs/core" "^2.6.0" - "@storybook/client-logger" "6.3.4" - "@storybook/csf" "0.0.1" - "@storybook/theming" "6.3.4" - "@types/color-convert" "^2.0.0" - "@types/overlayscrollbars" "^1.12.0" - "@types/react-syntax-highlighter" "11.0.5" - color-convert "^2.0.1" - core-js "^3.8.2" - fast-deep-equal "^3.1.3" - global "^4.4.0" - lodash "^4.17.20" - markdown-to-jsx "^7.1.3" - memoizerific "^1.11.3" - overlayscrollbars "^1.13.1" - polished "^4.0.5" - prop-types "^15.7.2" - react-colorful "^5.1.2" - react-popper-tooltip "^3.1.1" - react-syntax-highlighter "^13.5.3" - react-textarea-autosize "^8.3.0" - regenerator-runtime "^0.13.7" - ts-dedent "^2.0.0" - util-deprecate "^1.0.2" - -"@storybook/core-events@6.1.15": - version "6.1.15" - resolved "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.1.15.tgz#f66e30cbed8afdb8df2254d2aa47fe139e641c60" - integrity sha512-2sz02hdGZshanoq83jaB+goAcapVEWrxe+RJZn/gu2OymlEioWNjPPtOVGgi5DNIiJFnYvc66adayNwX39+tDA== - dependencies: - core-js "^3.0.1" - -"@storybook/core-events@6.2.9": - version "6.2.9" - resolved "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.2.9.tgz#4f12947cd15d1eb3c4109923657c012feef521cd" - integrity sha512-xQmbX/oYQK1QsAGN8hriXX5SUKOoTUe3L4dVaVHxJqy7MReRWJpprJmCpbAPJzWS6WCbDFfCM5kVEexHLOzJlQ== - dependencies: - core-js "^3.8.2" - -"@storybook/core-events@6.3.0": - version "6.3.0" - resolved "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.3.0.tgz#5e220a866db5b93550b5c3464774a7b10ad036a6" - integrity sha512-ZGTm5nQvFLlc2LVgoDyxo99MbQcFqQzkxIQReFkO7hPwwkcjcwmdBtnlmkn9/p5QQ5/8aU0k+ceCkrBNu1M83w== - dependencies: - core-js "^3.8.2" - -"@storybook/core-events@6.3.4": - version "6.3.4" - resolved "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.3.4.tgz#f841b8659a8729d334acd9a6dcfc470c88a2be8f" - integrity sha512-6qI5bU5VcAoRfxkvpdRqO16eYrX5M0P2E3TakqUUDcgDo5Rfcwd1wTTcwiXslMIh7oiVGiisA+msKTlfzyKf9Q== - dependencies: - core-js "^3.8.2" - -"@storybook/core@6.1.15": - version "6.1.15" - resolved "https://registry.npmjs.org/@storybook/core/-/core-6.1.15.tgz#7ff8c314d3857497bf2e26c69a1fa93ef37301aa" - integrity sha512-mQeKAXcowUwF+pOdWZEFwb5M6sz4yv5cOv1vTci3/1pMmB8QpYlH+P61p4lsRO17Vlak70h18TworPka/4+mhA== - dependencies: - "@babel/core" "^7.12.3" + "@babel/core" "^7.12.10" "@babel/plugin-proposal-class-properties" "^7.12.1" - "@babel/plugin-proposal-decorators" "^7.12.1" + "@babel/plugin-proposal-decorators" "^7.12.12" "@babel/plugin-proposal-export-default-from" "^7.12.1" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1" "@babel/plugin-proposal-object-rest-spread" "^7.12.1" - "@babel/plugin-proposal-optional-chaining" "^7.12.1" + "@babel/plugin-proposal-optional-chaining" "^7.12.7" "@babel/plugin-proposal-private-methods" "^7.12.1" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-transform-arrow-functions" "^7.12.1" - "@babel/plugin-transform-block-scoping" "^7.12.1" + "@babel/plugin-transform-block-scoping" "^7.12.12" "@babel/plugin-transform-classes" "^7.12.1" "@babel/plugin-transform-destructuring" "^7.12.1" "@babel/plugin-transform-for-of" "^7.12.1" @@ -4996,186 +5532,507 @@ "@babel/plugin-transform-shorthand-properties" "^7.12.1" "@babel/plugin-transform-spread" "^7.12.1" "@babel/plugin-transform-template-literals" "^7.12.1" - "@babel/preset-env" "^7.12.1" - "@babel/preset-react" "^7.12.1" - "@babel/preset-typescript" "^7.12.1" - "@babel/register" "^7.12.1" - "@storybook/addons" "6.1.15" - "@storybook/api" "6.1.15" - "@storybook/channel-postmessage" "6.1.15" - "@storybook/channels" "6.1.15" - "@storybook/client-api" "6.1.15" - "@storybook/client-logger" "6.1.15" - "@storybook/components" "6.1.15" - "@storybook/core-events" "6.1.15" - "@storybook/csf" "0.0.1" - "@storybook/node-logger" "6.1.15" - "@storybook/router" "6.1.15" + "@babel/preset-env" "^7.12.11" + "@babel/preset-react" "^7.12.10" + "@babel/preset-typescript" "^7.12.7" + "@storybook/addons" "6.4.0-alpha.23" + "@storybook/api" "6.4.0-alpha.23" + "@storybook/channel-postmessage" "6.4.0-alpha.23" + "@storybook/channels" "6.4.0-alpha.23" + "@storybook/client-api" "6.4.0-alpha.23" + "@storybook/client-logger" "6.4.0-alpha.23" + "@storybook/components" "6.4.0-alpha.23" + "@storybook/core-common" "6.4.0-alpha.23" + "@storybook/core-events" "6.4.0-alpha.23" + "@storybook/node-logger" "6.4.0-alpha.23" + "@storybook/router" "6.4.0-alpha.23" "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.1.15" - "@storybook/ui" "6.1.15" - "@types/glob-base" "^0.3.0" - "@types/micromatch" "^4.0.1" - "@types/node-fetch" "^2.5.4" - airbnb-js-shims "^2.2.1" - ansi-to-html "^0.6.11" - autoprefixer "^9.7.2" - babel-loader "^8.0.6" - babel-plugin-emotion "^10.0.20" + "@storybook/theming" "6.4.0-alpha.23" + "@storybook/ui" "6.4.0-alpha.23" + "@types/node" "^14.0.10" + "@types/webpack" "^4.41.26" + autoprefixer "^9.8.6" + babel-loader "^8.0.0" babel-plugin-macros "^2.8.0" - babel-preset-minify "^0.5.0 || 0.6.0-alpha.5" - better-opn "^2.0.0" - boxen "^4.1.0" - case-sensitive-paths-webpack-plugin "^2.2.0" - chalk "^4.0.0" - cli-table3 "0.6.0" - commander "^5.0.0" - core-js "^3.0.1" - cpy "^8.1.1" - css-loader "^3.5.3" - detect-port "^1.3.0" - dotenv-webpack "^1.7.0" - ejs "^3.1.2" - express "^4.17.0" - file-loader "^6.0.0" - file-system-cache "^1.0.5" - find-up "^4.1.0" - fork-ts-checker-webpack-plugin "^4.1.4" - fs-extra "^9.0.0" + babel-plugin-polyfill-corejs3 "^0.1.0" + case-sensitive-paths-webpack-plugin "^2.3.0" + core-js "^3.8.2" + css-loader "^3.6.0" + dotenv-webpack "^1.8.0" + file-loader "^6.2.0" + find-up "^5.0.0" + fork-ts-checker-webpack-plugin "^4.1.6" + fs-extra "^9.0.1" glob "^7.1.6" - glob-base "^0.3.0" glob-promise "^3.4.0" - global "^4.3.2" - html-webpack-plugin "^4.2.1" - inquirer "^7.0.0" - interpret "^2.0.0" - ip "^1.1.5" - json5 "^2.1.1" - lazy-universal-dotenv "^3.0.1" - micromatch "^4.0.2" - node-fetch "^2.6.0" - pkg-dir "^4.2.0" + global "^4.4.0" + html-webpack-plugin "^4.0.0" pnp-webpack-plugin "1.6.4" - postcss-flexbugs-fixes "^4.1.0" - postcss-loader "^3.0.0" - pretty-hrtime "^1.0.3" - qs "^6.6.0" - raw-loader "^4.0.1" - react-dev-utils "^10.0.0" - regenerator-runtime "^0.13.7" - resolve-from "^5.0.0" - serve-favicon "^2.5.0" - shelljs "^0.8.4" + postcss "^7.0.36" + postcss-flexbugs-fixes "^4.2.1" + postcss-loader "^4.2.0" + raw-loader "^4.0.2" + react-dev-utils "^11.0.3" stable "^0.1.8" - style-loader "^1.2.1" - telejson "^5.0.2" - terser-webpack-plugin "^3.0.0" + style-loader "^1.3.0" + terser-webpack-plugin "^4.2.3" ts-dedent "^2.0.0" - unfetch "^4.1.0" - url-loader "^4.0.0" + url-loader "^4.1.1" util-deprecate "^1.0.2" - webpack "^4.44.2" - webpack-dev-middleware "^3.7.0" + webpack "4" + webpack-dev-middleware "^3.7.3" webpack-filter-warnings-plugin "^1.2.1" webpack-hot-middleware "^2.25.0" webpack-virtual-modules "^0.2.2" -"@storybook/csf@0.0.1": +"@storybook/builder-webpack5@^6.4.0-alpha.23": + version "6.4.0-alpha.23" + resolved "https://registry.npmjs.org/@storybook/builder-webpack5/-/builder-webpack5-6.4.0-alpha.23.tgz#fa572f25a3b4f86d5b5254399d8f49b0ca9058d7" + integrity sha512-6DsMQ5kLlCzwlL6JMj2VJ/vLmlOaDumBV8I9XIw1FQBYshCiW/6UIhiRsCsRN3M7lF9gTxrP7vSwTqJ9efb9nQ== + dependencies: + "@babel/core" "^7.12.10" + "@babel/plugin-proposal-class-properties" "^7.12.1" + "@babel/plugin-proposal-decorators" "^7.12.12" + "@babel/plugin-proposal-export-default-from" "^7.12.1" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1" + "@babel/plugin-proposal-object-rest-spread" "^7.12.1" + "@babel/plugin-proposal-optional-chaining" "^7.12.7" + "@babel/plugin-proposal-private-methods" "^7.12.1" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-transform-arrow-functions" "^7.12.1" + "@babel/plugin-transform-block-scoping" "^7.12.12" + "@babel/plugin-transform-classes" "^7.12.1" + "@babel/plugin-transform-destructuring" "^7.12.1" + "@babel/plugin-transform-for-of" "^7.12.1" + "@babel/plugin-transform-parameters" "^7.12.1" + "@babel/plugin-transform-shorthand-properties" "^7.12.1" + "@babel/plugin-transform-spread" "^7.12.1" + "@babel/preset-env" "^7.12.11" + "@babel/preset-react" "^7.12.10" + "@babel/preset-typescript" "^7.12.7" + "@storybook/addons" "6.4.0-alpha.23" + "@storybook/api" "6.4.0-alpha.23" + "@storybook/channel-postmessage" "6.4.0-alpha.23" + "@storybook/channels" "6.4.0-alpha.23" + "@storybook/client-api" "6.4.0-alpha.23" + "@storybook/client-logger" "6.4.0-alpha.23" + "@storybook/components" "6.4.0-alpha.23" + "@storybook/core-common" "6.4.0-alpha.23" + "@storybook/core-events" "6.4.0-alpha.23" + "@storybook/node-logger" "6.4.0-alpha.23" + "@storybook/router" "6.4.0-alpha.23" + "@storybook/semver" "^7.3.2" + "@storybook/theming" "6.4.0-alpha.23" + "@types/node" "^14.0.10" + babel-loader "^8.0.0" + babel-plugin-macros "^3.0.1" + babel-plugin-polyfill-corejs3 "^0.1.0" + case-sensitive-paths-webpack-plugin "^2.3.0" + core-js "^3.8.2" + css-loader "^5.0.1" + dotenv-webpack "^7.0.0" + fork-ts-checker-webpack-plugin "^6.0.4" + fs-extra "^9.0.1" + glob "^7.1.6" + glob-promise "^3.4.0" + html-webpack-plugin "^5.0.0" + react-dev-utils "^11.0.3" + stable "^0.1.8" + style-loader "^2.0.0" + terser-webpack-plugin "^5.0.3" + ts-dedent "^2.0.0" + util-deprecate "^1.0.2" + webpack "^5.9.0" + webpack-dev-middleware "^4.1.0" + webpack-hot-middleware "^2.25.0" + webpack-virtual-modules "^0.4.1" + +"@storybook/channel-postmessage@6.4.0-alpha.23": + version "6.4.0-alpha.23" + resolved "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.4.0-alpha.23.tgz#6542137d5620f364e3054db29807fea1408a3397" + integrity sha512-4tX0ZE/1j9RaJv8qZD6EGw0pss6KF3HdaSTgd7g0zE/uqTlu6up0mw9wOkdwAHhb2LgXVWaiKx5qvrKUUl3P4Q== + dependencies: + "@storybook/channels" "6.4.0-alpha.23" + "@storybook/client-logger" "6.4.0-alpha.23" + "@storybook/core-events" "6.4.0-alpha.23" + core-js "^3.8.2" + global "^4.4.0" + qs "^6.10.0" + telejson "^5.3.2" + +"@storybook/channels@6.4.0-alpha.23": + version "6.4.0-alpha.23" + resolved "https://registry.npmjs.org/@storybook/channels/-/channels-6.4.0-alpha.23.tgz#3021c601e58fe6b95e8c738894bf18ba4db7ccbf" + integrity sha512-BvuVunIrMtKN8D6axOhvpzvJ5VR7CvvXNq+a/x899Jo6zYBf78TsycHQIQNwKRzEbUKYLJ7VrVFEqoQFjDWHsg== + dependencies: + core-js "^3.8.2" + ts-dedent "^2.0.0" + util-deprecate "^1.0.2" + +"@storybook/client-api@6.4.0-alpha.23": + version "6.4.0-alpha.23" + resolved "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.4.0-alpha.23.tgz#2c1e825bc51d5dd073d200f68e13fc9571f48111" + integrity sha512-OohK5G5wg+wSVRxIQhACK08Vopkml8i7VKZJlSnQ+FqwX2fRCDnzU7R8OvH53jKYPI5YDsw/KZ+k6a9lK3inOg== + dependencies: + "@storybook/addons" "6.4.0-alpha.23" + "@storybook/channel-postmessage" "6.4.0-alpha.23" + "@storybook/channels" "6.4.0-alpha.23" + "@storybook/client-logger" "6.4.0-alpha.23" + "@storybook/core-events" "6.4.0-alpha.23" + "@storybook/csf" "0.0.1" + "@types/qs" "^6.9.5" + "@types/webpack-env" "^1.16.0" + core-js "^3.8.2" + global "^4.4.0" + lodash "^4.17.20" + memoizerific "^1.11.3" + qs "^6.10.0" + regenerator-runtime "^0.13.7" + stable "^0.1.8" + store2 "^2.12.0" + ts-dedent "^2.0.0" + util-deprecate "^1.0.2" + +"@storybook/client-logger@6.4.0-alpha.23": + version "6.4.0-alpha.23" + resolved "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.4.0-alpha.23.tgz#b0862379e8ef74f1128221131662e5f0199f07cb" + integrity sha512-VOy7vBoboXV6UgxvuUkAV0x1vHF/Uu1y2XpvSmVlffyzSRbE6FUwpqCbbylg/uU8Lh1CF9boLrSHLepoYBiozA== + dependencies: + core-js "^3.8.2" + global "^4.4.0" + +"@storybook/components@6.4.0-alpha.23": + version "6.4.0-alpha.23" + resolved "https://registry.npmjs.org/@storybook/components/-/components-6.4.0-alpha.23.tgz#f2f63ede36ba82fd3e4832311b1380b138365e56" + integrity sha512-s0rqAvTRulJwuEqzX1QRXFQuYNsU6gJMkc3PPHG2OHz5qxTwHth8+4phlBmpUPPrCmkRPyYxuu2QYWh1fszOLg== + dependencies: + "@popperjs/core" "^2.6.0" + "@storybook/client-logger" "6.4.0-alpha.23" + "@storybook/csf" "0.0.1" + "@storybook/theming" "6.4.0-alpha.23" + "@types/color-convert" "^2.0.0" + "@types/overlayscrollbars" "^1.12.0" + "@types/react-syntax-highlighter" "11.0.5" + color-convert "^2.0.1" + core-js "^3.8.2" + fast-deep-equal "^3.1.3" + global "^4.4.0" + lodash "^4.17.20" + markdown-to-jsx "^7.1.3" + memoizerific "^1.11.3" + overlayscrollbars "^1.13.1" + polished "^4.0.5" + prop-types "^15.7.2" + react-colorful "^5.1.2" + react-popper-tooltip "^3.1.1" + react-syntax-highlighter "^13.5.3" + react-textarea-autosize "^8.3.0" + regenerator-runtime "^0.13.7" + ts-dedent "^2.0.0" + util-deprecate "^1.0.2" + +"@storybook/core-client@6.4.0-alpha.23": + version "6.4.0-alpha.23" + resolved "https://registry.npmjs.org/@storybook/core-client/-/core-client-6.4.0-alpha.23.tgz#65da7b7316ffdc96dbd7a51df66c7bc3dfc2e7dd" + integrity sha512-Fma1yLJbUHhO8wGwmR1/P7kVVX31+tR6LF+sv0BVZmjiSKrJLt3yFEwaZWxAVNiKx9NkIXwxg6KtqzCnyDRr+w== + dependencies: + "@storybook/addons" "6.4.0-alpha.23" + "@storybook/channel-postmessage" "6.4.0-alpha.23" + "@storybook/client-api" "6.4.0-alpha.23" + "@storybook/client-logger" "6.4.0-alpha.23" + "@storybook/core-events" "6.4.0-alpha.23" + "@storybook/csf" "0.0.1" + "@storybook/ui" "6.4.0-alpha.23" + airbnb-js-shims "^2.2.1" + ansi-to-html "^0.6.11" + core-js "^3.8.2" + global "^4.4.0" + lodash "^4.17.20" + qs "^6.10.0" + regenerator-runtime "^0.13.7" + ts-dedent "^2.0.0" + unfetch "^4.2.0" + util-deprecate "^1.0.2" + +"@storybook/core-common@6.4.0-alpha.23": + version "6.4.0-alpha.23" + resolved "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.4.0-alpha.23.tgz#a8e7d2ce123a0d01a0442c68d7be9cadc9585922" + integrity sha512-ji+ec59fmJGXG+Z0akgyz5wrpJzT3GaMbl51BIdg7jmGshHClvN76u8GTJjYeTdzMqL7eAcEVWAFb8Z50XeH5w== + dependencies: + "@babel/core" "^7.12.10" + "@babel/plugin-proposal-class-properties" "^7.12.1" + "@babel/plugin-proposal-decorators" "^7.12.12" + "@babel/plugin-proposal-export-default-from" "^7.12.1" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1" + "@babel/plugin-proposal-object-rest-spread" "^7.12.1" + "@babel/plugin-proposal-optional-chaining" "^7.12.7" + "@babel/plugin-proposal-private-methods" "^7.12.1" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-transform-arrow-functions" "^7.12.1" + "@babel/plugin-transform-block-scoping" "^7.12.12" + "@babel/plugin-transform-classes" "^7.12.1" + "@babel/plugin-transform-destructuring" "^7.12.1" + "@babel/plugin-transform-for-of" "^7.12.1" + "@babel/plugin-transform-parameters" "^7.12.1" + "@babel/plugin-transform-shorthand-properties" "^7.12.1" + "@babel/plugin-transform-spread" "^7.12.1" + "@babel/preset-env" "^7.12.11" + "@babel/preset-react" "^7.12.10" + "@babel/preset-typescript" "^7.12.7" + "@babel/register" "^7.12.1" + "@storybook/node-logger" "6.4.0-alpha.23" + "@storybook/semver" "^7.3.2" + "@types/micromatch" "^4.0.1" + "@types/node" "^14.0.10" + "@types/pretty-hrtime" "^1.0.0" + babel-loader "^8.0.0" + babel-plugin-macros "^3.0.1" + babel-plugin-polyfill-corejs3 "^0.1.0" + chalk "^4.1.0" + core-js "^3.8.2" + express "^4.17.1" + file-system-cache "^1.0.5" + find-up "^5.0.0" + fork-ts-checker-webpack-plugin "^6.0.4" + glob "^7.1.6" + interpret "^2.2.0" + json5 "^2.1.3" + lazy-universal-dotenv "^3.0.1" + micromatch "^4.0.2" + pkg-dir "^5.0.0" + pretty-hrtime "^1.0.3" + resolve-from "^5.0.0" + ts-dedent "^2.0.0" + util-deprecate "^1.0.2" + webpack "4" + +"@storybook/core-events@6.4.0-alpha.23": + version "6.4.0-alpha.23" + resolved "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.4.0-alpha.23.tgz#8a680e4fcaad0065f0f500f930ef53a21a1d5d0c" + integrity sha512-6iIQQnhvlKNzTCm/e++pCRs2lKXSEkFifFKzP3Y08mEihmH/VqZzbZqKCxONeS1jo8RJT0cSgBghiP5Yq2NaUg== + dependencies: + core-js "^3.8.2" + +"@storybook/core-server@6.4.0-alpha.23": + version "6.4.0-alpha.23" + resolved "https://registry.npmjs.org/@storybook/core-server/-/core-server-6.4.0-alpha.23.tgz#8b7aa7912bdd0bb7ddbb4d96ff643efde716558d" + integrity sha512-DjtkxLdyAhwm3oKe37EteROrIwqkjjZkmslDgoL/arpdon6eccgSZkd/RSiCH5U1GcdyZT8a4OjqT524kVzqhA== + dependencies: + "@storybook/builder-webpack4" "6.4.0-alpha.23" + "@storybook/core-client" "6.4.0-alpha.23" + "@storybook/core-common" "6.4.0-alpha.23" + "@storybook/csf-tools" "6.4.0-alpha.23" + "@storybook/manager-webpack4" "6.4.0-alpha.23" + "@storybook/node-logger" "6.4.0-alpha.23" + "@storybook/semver" "^7.3.2" + "@types/node" "^14.0.10" + "@types/node-fetch" "^2.5.7" + "@types/pretty-hrtime" "^1.0.0" + "@types/webpack" "^4.41.26" + better-opn "^2.1.1" + boxen "^4.2.0" + chalk "^4.1.0" + cli-table3 "0.6.0" + commander "^6.2.1" + compression "^1.7.4" + core-js "^3.8.2" + cpy "^8.1.1" + detect-port "^1.3.0" + express "^4.17.1" + file-system-cache "^1.0.5" + fs-extra "^9.0.1" + globby "^11.0.2" + ip "^1.1.5" + node-fetch "^2.6.1" + pretty-hrtime "^1.0.3" + prompts "^2.4.0" + regenerator-runtime "^0.13.7" + serve-favicon "^2.5.0" + ts-dedent "^2.0.0" + util-deprecate "^1.0.2" + webpack "4" + +"@storybook/core@6.4.0-alpha.23": + version "6.4.0-alpha.23" + resolved "https://registry.npmjs.org/@storybook/core/-/core-6.4.0-alpha.23.tgz#3394771980af0619fe1538c020194225f0057e7e" + integrity sha512-66SIJIMCD8cHb9soDuAPPUyDp+T5V8zs2eXmfZYKtS94zjinTJn26wGhRbcfyNCuzgZU+p0KLZWo1qApsPze5A== + dependencies: + "@storybook/core-client" "6.4.0-alpha.23" + "@storybook/core-server" "6.4.0-alpha.23" + +"@storybook/csf-tools@6.4.0-alpha.23": + version "6.4.0-alpha.23" + resolved "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-6.4.0-alpha.23.tgz#f89139626549afa020f7fddb6ff3836b4d1624c5" + integrity sha512-JE4b2b1zWUnsMXXOF0BECobrdsNKtzgJqbfwKDQl0xOiUsBDzwYhD4xknGAc9Qj2nc9GMABUIPahFJ9Ha9ZNWw== + dependencies: + "@babel/core" "^7.12.10" + "@babel/generator" "^7.12.11" + "@babel/parser" "^7.12.11" + "@babel/plugin-transform-react-jsx" "^7.12.12" + "@babel/preset-env" "^7.12.11" + "@babel/traverse" "^7.12.11" + "@babel/types" "^7.12.11" + "@mdx-js/mdx" "^1.6.22" + "@storybook/csf" "^0.0.1" + core-js "^3.8.2" + fs-extra "^9.0.1" + global "^4.4.0" + js-string-escape "^1.0.1" + lodash "^4.17.20" + prettier "^2.2.1" + regenerator-runtime "^0.13.7" + +"@storybook/csf@0.0.1", "@storybook/csf@^0.0.1": version "0.0.1" resolved "https://registry.npmjs.org/@storybook/csf/-/csf-0.0.1.tgz#95901507dc02f0bc6f9ac8ee1983e2fc5bb98ce6" integrity sha512-USTLkZze5gkel8MYCujSRBVIrUQ3YPBrLOx7GNk/0wttvVtlzWXAq9eLbQ4p/NicGxP+3T7KPEMVV//g+yubpw== dependencies: lodash "^4.17.15" -"@storybook/node-logger@6.1.15": - version "6.1.15" - resolved "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.1.15.tgz#fcf786d3a323feb6821e40e26f98a513a60d1a79" - integrity sha512-lrO0ei3W7BRci2iUkWTr/rXgHkzxwZTrlkx0iBzbQQRy7K1AJ9bjzhurCH9B8C9XGLmn60LXT81RWD3iCLZjcw== +"@storybook/manager-webpack4@6.4.0-alpha.23": + version "6.4.0-alpha.23" + resolved "https://registry.npmjs.org/@storybook/manager-webpack4/-/manager-webpack4-6.4.0-alpha.23.tgz#04bef117795753af565c327522023f7e8a83a7ba" + integrity sha512-sBsky10kkkCpZPO+WAEALRpCpBd5sOOT9K3FLLxb7Hl8EWNWmXtYfSKjpR/OJ0kdmPG0eRg7xnSyZSGLXCnQUQ== + dependencies: + "@babel/core" "^7.12.10" + "@babel/plugin-transform-template-literals" "^7.12.1" + "@babel/preset-react" "^7.12.10" + "@storybook/addons" "6.4.0-alpha.23" + "@storybook/core-client" "6.4.0-alpha.23" + "@storybook/core-common" "6.4.0-alpha.23" + "@storybook/node-logger" "6.4.0-alpha.23" + "@storybook/theming" "6.4.0-alpha.23" + "@storybook/ui" "6.4.0-alpha.23" + "@types/node" "^14.0.10" + "@types/webpack" "^4.41.26" + babel-loader "^8.0.0" + case-sensitive-paths-webpack-plugin "^2.3.0" + chalk "^4.1.0" + core-js "^3.8.2" + css-loader "^3.6.0" + dotenv-webpack "^1.8.0" + express "^4.17.1" + file-loader "^6.2.0" + file-system-cache "^1.0.5" + find-up "^5.0.0" + fs-extra "^9.0.1" + html-webpack-plugin "^4.0.0" + node-fetch "^2.6.1" + pnp-webpack-plugin "1.6.4" + read-pkg-up "^7.0.1" + regenerator-runtime "^0.13.7" + resolve-from "^5.0.0" + style-loader "^1.3.0" + telejson "^5.3.2" + terser-webpack-plugin "^4.2.3" + ts-dedent "^2.0.0" + url-loader "^4.1.1" + util-deprecate "^1.0.2" + webpack "4" + webpack-dev-middleware "^3.7.3" + webpack-virtual-modules "^0.2.2" + +"@storybook/manager-webpack5@^6.4.0-alpha.23": + version "6.4.0-alpha.23" + resolved "https://registry.npmjs.org/@storybook/manager-webpack5/-/manager-webpack5-6.4.0-alpha.23.tgz#d60989136d181644b8b2ee05dbbc740205945a9c" + integrity sha512-ykBSrqYFOeP4R8ACnPJTZxdSaf9iI5Top9hSn3nICHztlDU5VSzCHWIgixCfxWt5bzcU8yUZLkzKmNYQ84uRmg== + dependencies: + "@babel/core" "^7.12.10" + "@babel/plugin-transform-template-literals" "^7.12.1" + "@babel/preset-react" "^7.12.10" + "@storybook/addons" "6.4.0-alpha.23" + "@storybook/core-client" "6.4.0-alpha.23" + "@storybook/core-common" "6.4.0-alpha.23" + "@storybook/node-logger" "6.4.0-alpha.23" + "@storybook/theming" "6.4.0-alpha.23" + "@storybook/ui" "6.4.0-alpha.23" + "@types/node" "^14.0.10" + babel-loader "^8.0.0" + case-sensitive-paths-webpack-plugin "^2.3.0" + chalk "^4.1.0" + core-js "^3.8.2" + css-loader "^5.0.1" + dotenv-webpack "^7.0.0" + express "^4.17.1" + file-loader "^6.2.0" + file-system-cache "^1.0.5" + find-up "^5.0.0" + fs-extra "^9.0.1" + html-webpack-plugin "^5.0.0" + node-fetch "^2.6.1" + read-pkg-up "^7.0.1" + regenerator-runtime "^0.13.7" + resolve-from "^5.0.0" + style-loader "^2.0.0" + telejson "^5.3.2" + terser-webpack-plugin "^5.0.3" + ts-dedent "^2.0.0" + url-loader "^4.1.1" + util-deprecate "^1.0.2" + webpack "^5.9.0" + webpack-dev-middleware "^4.1.0" + webpack-virtual-modules "^0.4.1" + +"@storybook/node-logger@6.4.0-alpha.23": + version "6.4.0-alpha.23" + resolved "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.4.0-alpha.23.tgz#1196823c05a8cbc22c892e60490e5722e51da71f" + integrity sha512-zJpDYiKh5x7VdrpVB0ReuhYySaaYUsrZyhqZ/LJftK36uZOKxboA271WqHCF5p5dGTsvPsaXzeot+d88cQJrdQ== dependencies: "@types/npmlog" "^4.1.2" - chalk "^4.0.0" - core-js "^3.0.1" + chalk "^4.1.0" + core-js "^3.8.2" npmlog "^4.1.2" pretty-hrtime "^1.0.3" -"@storybook/react@^6.1.11": - version "6.1.15" - resolved "https://registry.npmjs.org/@storybook/react/-/react-6.1.15.tgz#e17d00b05b8980ad381ba701805309ed46d1fdcd" - integrity sha512-7WoYLOZuAlzgQsL9oy4JCr9NcB4NBCuxslPSncN5l/7ewGXgfVXTAOMOfw+EVNrtUeVJU2fC8gFiHVl0SJpTZw== +"@storybook/react-docgen-typescript-plugin@1.0.2-canary.253f8c1.0": + version "1.0.2-canary.253f8c1.0" + resolved "https://registry.npmjs.org/@storybook/react-docgen-typescript-plugin/-/react-docgen-typescript-plugin-1.0.2-canary.253f8c1.0.tgz#f2da40e6aae4aa586c2fb284a4a1744602c3c7fa" + integrity sha512-mmoRG/rNzAiTbh+vGP8d57dfcR2aP+5/Ll03KKFyfy5FqWFm/Gh7u27ikx1I3LmVMI8n6jh5SdWMkMKon7/tDw== + dependencies: + debug "^4.1.1" + endent "^2.0.1" + find-cache-dir "^3.3.1" + flat-cache "^3.0.4" + micromatch "^4.0.2" + react-docgen-typescript "^2.0.0" + tslib "^2.0.0" + +"@storybook/react@^6.4.0-alpha.23": + version "6.4.0-alpha.23" + resolved "https://registry.npmjs.org/@storybook/react/-/react-6.4.0-alpha.23.tgz#ba91bd5ff641ba2343ff189ca46589277ee9038c" + integrity sha512-r1L2XH9HWXNmac23ai2q1ipBM967rh1vb0S6UqzpOXrkEwNKpyINpW2+1LBF+mKCYhYgEgOoWnvZowmD9Sw1aw== dependencies: "@babel/preset-flow" "^7.12.1" - "@babel/preset-react" "^7.12.1" - "@pmmmwh/react-refresh-webpack-plugin" "^0.4.2" - "@storybook/addons" "6.1.15" - "@storybook/core" "6.1.15" - "@storybook/node-logger" "6.1.15" + "@babel/preset-react" "^7.12.10" + "@pmmmwh/react-refresh-webpack-plugin" "^0.5.0-rc.2" + "@storybook/addons" "6.4.0-alpha.23" + "@storybook/core" "6.4.0-alpha.23" + "@storybook/core-common" "6.4.0-alpha.23" + "@storybook/node-logger" "6.4.0-alpha.23" + "@storybook/react-docgen-typescript-plugin" "1.0.2-canary.253f8c1.0" "@storybook/semver" "^7.3.2" - "@types/webpack-env" "^1.15.3" + "@types/webpack-env" "^1.16.0" babel-plugin-add-react-displayname "^0.0.5" babel-plugin-named-asset-import "^0.3.1" babel-plugin-react-docgen "^4.2.1" - core-js "^3.0.1" - global "^4.3.2" - lodash "^4.17.15" + core-js "^3.8.2" + global "^4.4.0" + lodash "^4.17.20" prop-types "^15.7.2" - react-dev-utils "^10.0.0" - react-docgen-typescript-plugin "^0.6.2" - react-refresh "^0.8.3" + react-dev-utils "^11.0.3" + react-refresh "^0.10.0" + read-pkg-up "^7.0.1" regenerator-runtime "^0.13.7" ts-dedent "^2.0.0" - webpack "^4.44.2" + webpack "4" -"@storybook/router@6.1.15": - version "6.1.15" - resolved "https://registry.npmjs.org/@storybook/router/-/router-6.1.15.tgz#e0cd7440a2ddc9b265e506b1cb590d3eeab56476" - integrity sha512-HlxDkGpiTSxXCJuqRoZ9Viq6Y/h/7efI8LPhhopr50qWRBTh/PEQzDqWBXG3sj8ISmi9GyUaTSAuqRwdA3lJQQ== - dependencies: - "@reach/router" "^1.3.3" - "@types/reach__router" "^1.3.7" - core-js "^3.0.1" - global "^4.3.2" - memoizerific "^1.11.3" - qs "^6.6.0" - -"@storybook/router@6.2.9": - version "6.2.9" - resolved "https://registry.npmjs.org/@storybook/router/-/router-6.2.9.tgz#547543031dd8330870bb6b473dcf7e51982e841c" - integrity sha512-7Bn1OFoItCl8whXRT8N1qp1Lky7kzXJ3aslWp5E8HcM8rxh4OYXfbaeiyJEJxBTGC5zxgY+tAEXHFjsAviFROg== +"@storybook/router@6.4.0-alpha.23": + version "6.4.0-alpha.23" + resolved "https://registry.npmjs.org/@storybook/router/-/router-6.4.0-alpha.23.tgz#f7e1b893052b1c00b41fea2fe5d9d06fb01f5dac" + integrity sha512-HhU9o/sSxqS9ScZ/sCLpmjhJ+SRoswwgRVfXYqsf/s/Wk1vWdrTw+ZINNMSEYLMC+rLp920bIr7C32DghcO03w== dependencies: "@reach/router" "^1.3.4" - "@storybook/client-logger" "6.2.9" - "@types/reach__router" "^1.3.7" - core-js "^3.8.2" - fast-deep-equal "^3.1.3" - global "^4.4.0" - lodash "^4.17.20" - memoizerific "^1.11.3" - qs "^6.10.0" - ts-dedent "^2.0.0" - -"@storybook/router@6.3.0": - version "6.3.0" - resolved "https://registry.npmjs.org/@storybook/router/-/router-6.3.0.tgz#8b63773f11fe4c6749ccfda5d725c94275f0a459" - integrity sha512-RJcRVI6IqffLOU6k9GrlB3cXLLK5TRmFSIjwW3lEHVhj313e56uLRYTylT11aBf8bPEQ+MeQVe2sqQUBG3Ugng== - dependencies: - "@reach/router" "^1.3.4" - "@storybook/client-logger" "6.3.0" - "@types/reach__router" "^1.3.7" - core-js "^3.8.2" - fast-deep-equal "^3.1.3" - global "^4.4.0" - lodash "^4.17.20" - memoizerific "^1.11.3" - qs "^6.10.0" - ts-dedent "^2.0.0" - -"@storybook/router@6.3.4": - version "6.3.4" - resolved "https://registry.npmjs.org/@storybook/router/-/router-6.3.4.tgz#f38ec8064a9d1811a68558390727c30220fe7d72" - integrity sha512-cNG2bT0BBfqJyaW6xKUnEB/XXSdMkYeI9ShwJ2gh/2Bnidm7eZ/RKUOZ4q5equMm+SxxyZgpBulqnFN+TqPbOA== - dependencies: - "@reach/router" "^1.3.4" - "@storybook/client-logger" "6.3.4" + "@storybook/client-logger" "6.4.0-alpha.23" "@types/reach__router" "^1.3.7" core-js "^3.8.2" fast-deep-equal "^3.1.3" @@ -5193,49 +6050,31 @@ core-js "^3.6.5" find-up "^4.1.0" -"@storybook/source-loader@6.2.9": - version "6.2.9" - resolved "https://registry.npmjs.org/@storybook/source-loader/-/source-loader-6.2.9.tgz#ac6b314e48044acad5318d237275b24e684edb9f" - integrity sha512-cx499g7BG2oeXvRFx45r0W0p2gKEy/e88WsUFnqqfMKZBJ8K0R/lx5DI0l1hq+TzSrE6uGe0/uPlaLkJNIro7g== +"@storybook/source-loader@6.4.0-alpha.23": + version "6.4.0-alpha.23" + resolved "https://registry.npmjs.org/@storybook/source-loader/-/source-loader-6.4.0-alpha.23.tgz#8ae94f72ef530ee45c7be2d2f7ea8122c51853e1" + integrity sha512-S5gkibZZRwC7jJDEC2XPkVBlVzQzJIkqWkhcyZVOljvwUSWR2ov5l3vBZ2hAOEyDT3WskIFbnbV/aHBWwSBu4w== dependencies: - "@storybook/addons" "6.2.9" - "@storybook/client-logger" "6.2.9" + "@storybook/addons" "6.4.0-alpha.23" + "@storybook/client-logger" "6.4.0-alpha.23" "@storybook/csf" "0.0.1" core-js "^3.8.2" estraverse "^5.2.0" global "^4.4.0" loader-utils "^2.0.0" lodash "^4.17.20" - prettier "~2.2.1" + prettier "^2.2.1" regenerator-runtime "^0.13.7" -"@storybook/theming@6.1.15": - version "6.1.15" - resolved "https://registry.npmjs.org/@storybook/theming/-/theming-6.1.15.tgz#01083ab89904dd959429b0b3fd1c76bd0ecc59ef" - integrity sha512-88IdYaPzp4NMKf/GKBrPggxD6/d/lkdQ4SNowXxN9g9eONd9M7HtTbjuJGRCbGMJ52xGcbpj2exEnAqKQ2iodA== - dependencies: - "@emotion/core" "^10.1.1" - "@emotion/is-prop-valid" "^0.8.6" - "@emotion/styled" "^10.0.23" - "@storybook/client-logger" "6.1.15" - core-js "^3.0.1" - deep-object-diff "^1.1.0" - emotion-theming "^10.0.19" - global "^4.3.2" - memoizerific "^1.11.3" - polished "^3.4.4" - resolve-from "^5.0.0" - ts-dedent "^2.0.0" - -"@storybook/theming@6.2.9": - version "6.2.9" - resolved "https://registry.npmjs.org/@storybook/theming/-/theming-6.2.9.tgz#16bf40180861f222c7ed1d80abd5d1e3cb315660" - integrity sha512-183oJW7AD7Fhqg5NT4ct3GJntwteAb9jZnQ6yhf9JSdY+fk8OhxRbPf7ov0au2gYACcGrWDd9K5pYQsvWlP5gA== +"@storybook/theming@6.4.0-alpha.23": + version "6.4.0-alpha.23" + resolved "https://registry.npmjs.org/@storybook/theming/-/theming-6.4.0-alpha.23.tgz#b83aacbce79480066d35b968565cbbc87b283ba8" + integrity sha512-IKgnqQPTR5+JQEmJyNvAeyC4UO1VJt9bVfJg379cjm2DqigLN9IOwuDdZ6kdEF9xBnFZtUce/K9kn+OJo27x5w== dependencies: "@emotion/core" "^10.1.1" "@emotion/is-prop-valid" "^0.8.6" "@emotion/styled" "^10.0.27" - "@storybook/client-logger" "6.2.9" + "@storybook/client-logger" "6.4.0-alpha.23" core-js "^3.8.2" deep-object-diff "^1.1.0" emotion-theming "^10.0.27" @@ -5245,77 +6084,39 @@ resolve-from "^5.0.0" ts-dedent "^2.0.0" -"@storybook/theming@6.3.0": - version "6.3.0" - resolved "https://registry.npmjs.org/@storybook/theming/-/theming-6.3.0.tgz#4b6ef023631663d8e50f1348469b9a9641244cd0" - integrity sha512-Mtnq8qFv/TTtnl1sB6DGBCg/kJq7sR2e2uh/Uy2sHyksnhVITVJxEIFHSBo2L+IE6y0S2Oh6F9WdddWAO4Ao2g== +"@storybook/ui@6.4.0-alpha.23": + version "6.4.0-alpha.23" + resolved "https://registry.npmjs.org/@storybook/ui/-/ui-6.4.0-alpha.23.tgz#f6823f14177f0516f1a1db1542d3307dffad7ca1" + integrity sha512-rSi0HYZ5LOVkcSZk7R1ZFTwsCWdGyBi0BWfBmYQQK1ds2Lg7hRzXoalV+yXfn8mW1D0d3Rxr+S7trejWvDmnIg== dependencies: "@emotion/core" "^10.1.1" - "@emotion/is-prop-valid" "^0.8.6" - "@emotion/styled" "^10.0.27" - "@storybook/client-logger" "6.3.0" - core-js "^3.8.2" - deep-object-diff "^1.1.0" - emotion-theming "^10.0.27" - global "^4.4.0" - memoizerific "^1.11.3" - polished "^4.0.5" - resolve-from "^5.0.0" - ts-dedent "^2.0.0" - -"@storybook/theming@6.3.4": - version "6.3.4" - resolved "https://registry.npmjs.org/@storybook/theming/-/theming-6.3.4.tgz#69d3f912c74a7b6ba78c1c95fac3315356468bdd" - integrity sha512-L0lJcwUi7mse+U7EBAv5NVt81mH1MtUzk9paik8hMAc68vDtR/X0Cq4+zPsgykCROOTtEGrQ/JUUrpcEqeprTQ== - dependencies: - "@emotion/core" "^10.1.1" - "@emotion/is-prop-valid" "^0.8.6" - "@emotion/styled" "^10.0.27" - "@storybook/client-logger" "6.3.4" - core-js "^3.8.2" - deep-object-diff "^1.1.0" - emotion-theming "^10.0.27" - global "^4.4.0" - memoizerific "^1.11.3" - polished "^4.0.5" - resolve-from "^5.0.0" - ts-dedent "^2.0.0" - -"@storybook/ui@6.1.15": - version "6.1.15" - resolved "https://registry.npmjs.org/@storybook/ui/-/ui-6.1.15.tgz#a0f6c49fcf81cf172cd2de4c8dba2be1296891f6" - integrity sha512-quyhJWlOxhk95he7s5/TSYM3eEsaz3s4+98kUZE6r3ssME8u6zDvqa/qa6EWs5/nvZ2V3+12efIzCNbiiT3v3g== - dependencies: - "@emotion/core" "^10.1.1" - "@storybook/addons" "6.1.15" - "@storybook/api" "6.1.15" - "@storybook/channels" "6.1.15" - "@storybook/client-logger" "6.1.15" - "@storybook/components" "6.1.15" - "@storybook/core-events" "6.1.15" - "@storybook/router" "6.1.15" + "@storybook/addons" "6.4.0-alpha.23" + "@storybook/api" "6.4.0-alpha.23" + "@storybook/channels" "6.4.0-alpha.23" + "@storybook/client-logger" "6.4.0-alpha.23" + "@storybook/components" "6.4.0-alpha.23" + "@storybook/core-events" "6.4.0-alpha.23" + "@storybook/router" "6.4.0-alpha.23" "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.1.15" - "@types/markdown-to-jsx" "^6.11.0" - copy-to-clipboard "^3.0.8" - core-js "^3.0.1" - core-js-pure "^3.0.1" - downshift "^6.0.6" - emotion-theming "^10.0.19" + "@storybook/theming" "6.4.0-alpha.23" + copy-to-clipboard "^3.3.1" + core-js "^3.8.2" + core-js-pure "^3.8.2" + downshift "^6.0.15" + emotion-theming "^10.0.27" fuse.js "^3.6.1" - global "^4.3.2" - lodash "^4.17.15" - markdown-to-jsx "^6.11.4" + global "^4.4.0" + lodash "^4.17.20" + markdown-to-jsx "^7.1.3" memoizerific "^1.11.3" - polished "^3.4.4" - qs "^6.6.0" - react-draggable "^4.0.3" - react-helmet-async "^1.0.2" - react-hotkeys "2.0.0" - react-sizeme "^2.6.7" + polished "^4.0.5" + qs "^6.10.0" + react-draggable "^4.4.3" + react-helmet-async "^1.0.7" + react-sizeme "^3.0.1" regenerator-runtime "^0.13.7" resolve-from "^5.0.0" - store2 "^2.7.1" + store2 "^2.12.0" "@sucrase/jest-plugin@^2.1.0": version "2.1.0" @@ -5563,11 +6364,6 @@ dependencies: "@types/node" "*" -"@types/anymatch@*": - version "1.3.1" - resolved "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" - integrity sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA== - "@types/archiver@^5.1.0": version "5.3.0" resolved "https://registry.npmjs.org/@types/archiver/-/archiver-5.3.0.tgz#2b34ba56d4d7102d256b922c7e91e09eab79db6f" @@ -5953,11 +6749,6 @@ resolved "https://registry.npmjs.org/@types/github-slugger/-/github-slugger-1.3.0.tgz#16ab393b30d8ae2a111ac748a015ac05a1fc5524" integrity sha512-J/rMZa7RqiH/rT29TEVZO4nBoDP9XJOjnbbIofg7GQKs4JIduEO3WLpte+6WeUz/TcrXKlY+bM7FYrp8yFB+3g== -"@types/glob-base@^0.3.0": - version "0.3.0" - resolved "https://registry.npmjs.org/@types/glob-base/-/glob-base-0.3.0.tgz#a581d688347e10e50dd7c17d6f2880a10354319d" - integrity sha1-pYHWiDR+EOUN18F9byiAoQNUMZ0= - "@types/glob@*", "@types/glob@^7.1.1": version "7.1.3" resolved "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" @@ -6149,6 +6940,11 @@ resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== +"@types/json-schema@^7.0.4": + version "7.0.9" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" + integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== + "@types/json-schema@^7.0.8": version "7.0.8" resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.8.tgz#edf1bf1dbf4e04413ca8e5b17b3b7d7d54b59818" @@ -6242,13 +7038,6 @@ resolved "https://registry.npmjs.org/@types/luxon/-/luxon-1.27.0.tgz#1e3b5a7f8ca6944349c43498b4442b742c71ab0b" integrity sha512-rr2lNXsErnA/ARtgFn46NtQjUa66cuwZYeo/2K7oqqxhJErhXgHBPyNKCo+pfOC3L7HFwtao8ebViiU9h4iAxA== -"@types/markdown-to-jsx@^6.11.0": - version "6.11.2" - resolved "https://registry.npmjs.org/@types/markdown-to-jsx/-/markdown-to-jsx-6.11.2.tgz#05d1aaffbf15be7be12c70535fa4fed65cc7c64f" - integrity sha512-ESuCu8Bk7jpTZ3YPdMW1+6wUj13F5N15vXfc7BuUAN0eCp0lrvVL9nzOTzoqvbRzXMciuqXr1KrHt3xQAhfwPA== - dependencies: - "@types/react" "*" - "@types/mdast@^3.0.0", "@types/mdast@^3.0.3": version "3.0.3" resolved "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.3.tgz#2d7d671b1cd1ea3deb306ea75036c2a0407d2deb" @@ -6304,7 +7093,7 @@ dependencies: "@types/node" "*" -"@types/node-fetch@^2.5.0", "@types/node-fetch@^2.5.4", "@types/node-fetch@^2.5.7": +"@types/node-fetch@^2.5.0", "@types/node-fetch@^2.5.7": version "2.5.8" resolved "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.8.tgz#e199c835d234c7eb0846f6618012e558544ee2fb" integrity sha512-fbjI6ja0N5ZA8TV53RUqzsKNkl9fv8Oj3T7zxW7FGv1GSH7gwJaNF8dzCjrqKaxKeUpTz4yT1DaJFq/omNpGfw== @@ -6332,6 +7121,11 @@ resolved "https://registry.npmjs.org/@types/node/-/node-12.12.58.tgz#46dae9b2b9ee5992818c8f7cee01ff4ce03ab44c" integrity sha512-Be46CNIHWAagEfINOjmriSxuv7IVcqbGe+sDSg2SYCEz/0CRBy7LRASGfRbD8KZkqoePU73Wsx3UvOSFcq/9hA== +"@types/node@^14.0.10": + version "14.17.8" + resolved "https://registry.npmjs.org/@types/node/-/node-14.17.8.tgz#813b73ab7d82ac06ddfd2458b13c88459a3b319f" + integrity sha512-0CHLt50GbUmH/6MrlBIKNdWCglvlyQKkorRf08/0DIi0ryuTPP+ijWLSI19SbDTHSKaagGDELiImY4BSikt61w== + "@types/normalize-package-data@^2.4.0": version "2.4.0" resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" @@ -6354,7 +7148,7 @@ dependencies: "@types/node" "*" -"@types/overlayscrollbars@^1.12.0", "@types/overlayscrollbars@^1.9.0": +"@types/overlayscrollbars@^1.12.0": version "1.12.0" resolved "https://registry.npmjs.org/@types/overlayscrollbars/-/overlayscrollbars-1.12.0.tgz#98456caceca8ad73bd5bb572632a585074e70764" integrity sha512-h/pScHNKi4mb+TrJGDon8Yb06ujFG0mSg12wIO0sWMUF3dQIe2ExRRdNRviaNt9IjxIiOfnRr7FsQAdHwK4sMg== @@ -6364,6 +7158,11 @@ resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== +"@types/parse5@^5.0.0": + version "5.0.3" + resolved "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz#e7b5aebbac150f8b5fdd4a46e7f0bd8e65e19109" + integrity sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw== + "@types/passport-github2@^1.2.4": version "1.2.4" resolved "https://registry.npmjs.org/@types/passport-github2/-/passport-github2-1.2.4.tgz#f56c386d1fe6435e359430e57adc1747a627bd86" @@ -6438,6 +7237,11 @@ resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.0.0.tgz#dc85454b953178cc6043df5208b9e949b54a3bc4" integrity sha512-/rM+sWiuOZ5dvuVzV37sUuklsbg+JPOP8d+nNFlo2ZtfpzPiPvh1/gc8liWOLBqe+sR+ZM7guPaIcTt6UZTo7Q== +"@types/pretty-hrtime@^1.0.0": + version "1.0.1" + resolved "https://registry.npmjs.org/@types/pretty-hrtime/-/pretty-hrtime-1.0.1.tgz#72a26101dc567b0d68fd956cf42314556e42d601" + integrity sha512-VjID5MJb1eGKthz2qUerWT8+R4b9N+CHvGCzg9fn4kWZgaF9AhdYikQio3R7wV8YY1NsQKPaCwKz1Yff+aHNUQ== + "@types/prop-types@*", "@types/prop-types@^15.7.3": version "15.7.4" resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz#fcf7205c25dff795ee79af1e30da2c9790808f11" @@ -6448,7 +7252,7 @@ resolved "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== -"@types/qs@*", "@types/qs@^6.9.0", "@types/qs@^6.9.5": +"@types/qs@*", "@types/qs@^6.9.5": version "6.9.6" resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.6.tgz#df9c3c8b31a247ec315e6996566be3171df4b3b1" integrity sha512-0/HnwIfW4ki2D8L8c9GVcG5I72s9jP5GSLVF0VIXDW00kmIpA6O33G7a8n59Tmh7Nz0WUC3rSb7PTY/sdW2JzA== @@ -6470,14 +7274,6 @@ dependencies: "@types/react" "*" -"@types/react-color@^3.0.1": - version "3.0.4" - resolved "https://registry.npmjs.org/@types/react-color/-/react-color-3.0.4.tgz#c63daf012ad067ac0127bdd86725f079d02082bd" - integrity sha512-EswbYJDF1kkrx93/YU+BbBtb46CCtDMvTiGmcOa/c5PETnwTiSWoseJ1oSWeRl/4rUXkhME9bVURvvPg0W5YQw== - dependencies: - "@types/react" "*" - "@types/reactcss" "*" - "@types/react-dom@*": version "17.0.9" resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.9.tgz#441a981da9d7be117042e1a6fd3dac4b30f55add" @@ -6507,13 +7303,6 @@ dependencies: "@types/react" "*" -"@types/react-syntax-highlighter@11.0.4": - version "11.0.4" - resolved "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-11.0.4.tgz#d86d17697db62f98046874f62fdb3e53a0bbc4cd" - integrity sha512-9GfTo3a0PHwQeTVoqs0g5bS28KkSY48pp5659wA+Dp4MqceDEa8EHBqrllJvvtyusszyJhViUEap0FDvlk/9Zg== - dependencies: - "@types/react" "*" - "@types/react-syntax-highlighter@11.0.5": version "11.0.5" resolved "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-11.0.5.tgz#0d546261b4021e1f9d85b50401c0a42acb106087" @@ -6565,13 +7354,6 @@ dependencies: csstype "^2.2.0" -"@types/reactcss@*": - version "1.2.3" - resolved "https://registry.npmjs.org/@types/reactcss/-/reactcss-1.2.3.tgz#af28ae11bbb277978b99d04d1eedfd068ca71834" - integrity sha512-d2gQQ0IL6hXLnoRfVYZukQNWHuVsE75DzFTLPUuyyEhJS8G2VvlE+qfQQ91SJjaMqlURRCNIsX7Jcsw6cEuJlA== - dependencies: - "@types/react" "*" - "@types/recharts@^1.8.14", "@types/recharts@^1.8.15": version "1.8.19" resolved "https://registry.npmjs.org/@types/recharts/-/recharts-1.8.19.tgz#047f72cf4c25df545aa1085fe3a085e58a2483c1" @@ -6844,7 +7626,7 @@ "@types/webpack" "^4" http-proxy-middleware "^1.0.0" -"@types/webpack-env@^1.15.2", "@types/webpack-env@^1.15.3", "@types/webpack-env@^1.16.0": +"@types/webpack-env@^1.15.2", "@types/webpack-env@^1.16.0": version "1.16.0" resolved "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.16.0.tgz#8c0a9435dfa7b3b1be76562f3070efb3f92637b4" integrity sha512-Fx+NpfOO0CpeYX2g9bkvX8O5qh9wrU1sOF4g8sft4Mu7z+qfe387YlyY8w8daDyDsKY5vUxM0yxkAYnbkRbZEw== @@ -6858,7 +7640,7 @@ "@types/source-list-map" "*" source-map "^0.6.1" -"@types/webpack@^4": +"@types/webpack@^4", "@types/webpack@^4.41.26", "@types/webpack@^4.41.8": version "4.41.30" resolved "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.30.tgz#fd3db6d0d41e145a8eeeafcd3c4a7ccde9068ddc" integrity sha512-GUHyY+pfuQ6haAfzu4S14F+R5iGRwN6b2FRNJY7U0NilmFAqbsOfK6j1HwuLBAqwRIT+pVdNDJGJ6e8rpp0KHA== @@ -6870,18 +7652,6 @@ anymatch "^3.0.0" source-map "^0.6.0" -"@types/webpack@^4.41.8": - version "4.41.27" - resolved "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.27.tgz#f47da488c8037e7f1b2dbf2714fbbacb61ec0ffc" - integrity sha512-wK/oi5gcHi72VMTbOaQ70VcDxSQ1uX8S2tukBK9ARuGXrYM/+u4ou73roc7trXDNmCxCoerE8zruQqX/wuHszA== - dependencies: - "@types/anymatch" "*" - "@types/node" "*" - "@types/tapable" "^1" - "@types/uglify-js" "*" - "@types/webpack-sources" "*" - source-map "^0.6.0" - "@types/webpack@^5.28.0": version "5.28.0" resolved "https://registry.npmjs.org/@types/webpack/-/webpack-5.28.0.tgz#78dde06212f038d77e54116cfe69e88ae9ed2c03" @@ -7508,7 +8278,7 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.1, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.5.5, ajv@^6.7.0, ajv@~6.12.6: +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.1, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.5.5, ajv@^6.7.0, ajv@~6.12.6: version "6.12.6" resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -8143,11 +8913,6 @@ async-retry@^1.2.1, async-retry@^1.3.1: dependencies: retry "0.12.0" -async@0.9.x: - version "0.9.2" - resolved "https://registry.npmjs.org/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" - integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= - async@^2.0.1, async@^2.6.1, async@^2.6.2: version "2.6.3" resolved "https://registry.npmjs.org/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" @@ -8187,7 +8952,7 @@ autolinker@^3.11.0: dependencies: tslib "^1.9.3" -autoprefixer@^9.7.2: +autoprefixer@^9.8.6: version "9.8.6" resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg== @@ -8301,55 +9066,11 @@ azure-devops-node-api@^10.2.2: tunnel "0.0.6" typed-rest-client "^1.8.4" -babel-code-frame@^6.22.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - babel-core@^7.0.0-bridge.0: version "7.0.0-bridge.0" resolved "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== -babel-helper-evaluate-path@^0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.5.0.tgz#a62fa9c4e64ff7ea5cea9353174ef023a900a67c" - integrity sha512-mUh0UhS607bGh5wUMAQfOpt2JX2ThXMtppHRdRU1kL7ZLRWIXxoV2UIV1r2cAeeNeU1M5SB5/RSUgUxrK8yOkA== - -babel-helper-flip-expressions@^0.4.3: - version "0.4.3" - resolved "https://registry.npmjs.org/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.4.3.tgz#3696736a128ac18bc25254b5f40a22ceb3c1d3fd" - integrity sha1-NpZzahKKwYvCUlS19AoizrPB0/0= - -babel-helper-is-nodes-equiv@^0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz#34e9b300b1479ddd98ec77ea0bbe9342dfe39684" - integrity sha1-NOmzALFHnd2Y7HfqC76TQt/jloQ= - -babel-helper-is-void-0@^0.4.3: - version "0.4.3" - resolved "https://registry.npmjs.org/babel-helper-is-void-0/-/babel-helper-is-void-0-0.4.3.tgz#7d9c01b4561e7b95dbda0f6eee48f5b60e67313e" - integrity sha1-fZwBtFYee5Xb2g9u7kj1tg5nMT4= - -babel-helper-mark-eval-scopes@^0.4.3: - version "0.4.3" - resolved "https://registry.npmjs.org/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.4.3.tgz#d244a3bef9844872603ffb46e22ce8acdf551562" - integrity sha1-0kSjvvmESHJgP/tG4izorN9VFWI= - -babel-helper-remove-or-void@^0.4.3: - version "0.4.3" - resolved "https://registry.npmjs.org/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.4.3.tgz#a4f03b40077a0ffe88e45d07010dee241ff5ae60" - integrity sha1-pPA7QAd6D/6I5F0HAQ3uJB/1rmA= - -babel-helper-to-multiple-sequence-expressions@^0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.5.0.tgz#a3f924e3561882d42fcf48907aa98f7979a4588d" - integrity sha512-m2CvfDW4+1qfDdsrtf4dwOslQC3yhbgyBFptncp4wvtdrDHqueW7slsYv4gArie056phvQFhT2nRcGS4bnm6mA== - babel-jest@^26.6.3: version "26.6.3" resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" @@ -8364,15 +9085,14 @@ babel-jest@^26.6.3: graceful-fs "^4.2.4" slash "^3.0.0" -babel-loader@^8.0.6: - version "8.1.0" - resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" - integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== +babel-loader@^8.0.0: + version "8.2.2" + resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81" + integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g== dependencies: - find-cache-dir "^2.1.0" + find-cache-dir "^3.3.1" loader-utils "^1.4.0" - mkdirp "^0.5.3" - pify "^4.0.1" + make-dir "^3.1.0" schema-utils "^2.6.5" babel-plugin-add-react-displayname@^0.0.5: @@ -8380,6 +9100,14 @@ babel-plugin-add-react-displayname@^0.0.5: resolved "https://registry.npmjs.org/babel-plugin-add-react-displayname/-/babel-plugin-add-react-displayname-0.0.5.tgz#339d4cddb7b65fd62d1df9db9fe04de134122bd5" integrity sha1-M51M3be2X9YtHfnbn+BN4TQSK9U= +babel-plugin-apply-mdx-type-prop@1.6.22: + version "1.6.22" + resolved "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz#d216e8fd0de91de3f1478ef3231e05446bc8705b" + integrity sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ== + dependencies: + "@babel/helper-plugin-utils" "7.10.4" + "@mdx-js/util" "1.6.22" + babel-plugin-dynamic-import-node@^2.3.3: version "2.3.3" resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" @@ -8387,7 +9115,7 @@ babel-plugin-dynamic-import-node@^2.3.3: dependencies: object.assign "^4.1.0" -babel-plugin-emotion@^10.0.20, babel-plugin-emotion@^10.0.27: +babel-plugin-emotion@^10.0.27: version "10.0.29" resolved "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.0.29.tgz#89d8e497091fcd3d10331f097f1471e4cc3f35b4" integrity sha512-7Jpi1OCxjyz0k163lKtqP+LHMg5z3S6A7vMBfHnF06l2unmtsOmFDzZBpGf0CWo1G4m8UACfVcDJiSiRuu/cSw== @@ -8403,6 +9131,13 @@ babel-plugin-emotion@^10.0.20, babel-plugin-emotion@^10.0.27: find-root "^1.1.0" source-map "^0.5.7" +babel-plugin-extract-import-names@1.6.22: + version "1.6.22" + resolved "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz#de5f9a28eb12f3eb2578bf74472204e66d1a13dc" + integrity sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ== + dependencies: + "@babel/helper-plugin-utils" "7.10.4" + babel-plugin-istanbul@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" @@ -8433,88 +9168,21 @@ babel-plugin-macros@^2.0.0, babel-plugin-macros@^2.8.0: cosmiconfig "^6.0.0" resolve "^1.12.0" -babel-plugin-minify-builtins@^0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.5.0.tgz#31eb82ed1a0d0efdc31312f93b6e4741ce82c36b" - integrity sha512-wpqbN7Ov5hsNwGdzuzvFcjgRlzbIeVv1gMIlICbPj0xkexnfoIDe7q+AZHMkQmAE/F9R5jkrB6TLfTegImlXag== - -babel-plugin-minify-constant-folding@^0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.5.0.tgz#f84bc8dbf6a561e5e350ff95ae216b0ad5515b6e" - integrity sha512-Vj97CTn/lE9hR1D+jKUeHfNy+m1baNiJ1wJvoGyOBUx7F7kJqDZxr9nCHjO/Ad+irbR3HzR6jABpSSA29QsrXQ== +babel-plugin-macros@^3.0.1: + version "3.1.0" + resolved "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1" + integrity sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg== dependencies: - babel-helper-evaluate-path "^0.5.0" - -babel-plugin-minify-dead-code-elimination@^0.5.1: - version "0.5.1" - resolved "https://registry.npmjs.org/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.5.1.tgz#1a0c68e44be30de4976ca69ffc535e08be13683f" - integrity sha512-x8OJOZIrRmQBcSqxBcLbMIK8uPmTvNWPXH2bh5MDCW1latEqYiRMuUkPImKcfpo59pTUB2FT7HfcgtG8ZlR5Qg== - dependencies: - babel-helper-evaluate-path "^0.5.0" - babel-helper-mark-eval-scopes "^0.4.3" - babel-helper-remove-or-void "^0.4.3" - lodash "^4.17.11" - -babel-plugin-minify-flip-comparisons@^0.4.3: - version "0.4.3" - resolved "https://registry.npmjs.org/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.4.3.tgz#00ca870cb8f13b45c038b3c1ebc0f227293c965a" - integrity sha1-AMqHDLjxO0XAOLPB68DyJyk8llo= - dependencies: - babel-helper-is-void-0 "^0.4.3" - -babel-plugin-minify-guarded-expressions@^0.4.4: - version "0.4.4" - resolved "https://registry.npmjs.org/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.4.4.tgz#818960f64cc08aee9d6c75bec6da974c4d621135" - integrity sha512-RMv0tM72YuPPfLT9QLr3ix9nwUIq+sHT6z8Iu3sLbqldzC1Dls8DPCywzUIzkTx9Zh1hWX4q/m9BPoPed9GOfA== - dependencies: - babel-helper-evaluate-path "^0.5.0" - babel-helper-flip-expressions "^0.4.3" - -babel-plugin-minify-infinity@^0.4.3: - version "0.4.3" - resolved "https://registry.npmjs.org/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.4.3.tgz#dfb876a1b08a06576384ef3f92e653ba607b39ca" - integrity sha1-37h2obCKBldjhO8/kuZTumB7Oco= - -babel-plugin-minify-mangle-names@^0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.5.0.tgz#bcddb507c91d2c99e138bd6b17a19c3c271e3fd3" - integrity sha512-3jdNv6hCAw6fsX1p2wBGPfWuK69sfOjfd3zjUXkbq8McbohWy23tpXfy5RnToYWggvqzuMOwlId1PhyHOfgnGw== - dependencies: - babel-helper-mark-eval-scopes "^0.4.3" - -babel-plugin-minify-numeric-literals@^0.4.3: - version "0.4.3" - resolved "https://registry.npmjs.org/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.4.3.tgz#8e4fd561c79f7801286ff60e8c5fd9deee93c0bc" - integrity sha1-jk/VYcefeAEob/YOjF/Z3u6TwLw= - -babel-plugin-minify-replace@^0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.5.0.tgz#d3e2c9946c9096c070efc96761ce288ec5c3f71c" - integrity sha512-aXZiaqWDNUbyNNNpWs/8NyST+oU7QTpK7J9zFEFSA0eOmtUNMU3fczlTTTlnCxHmq/jYNFEmkkSG3DDBtW3Y4Q== - -babel-plugin-minify-simplify@^0.5.1: - version "0.5.1" - resolved "https://registry.npmjs.org/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.5.1.tgz#f21613c8b95af3450a2ca71502fdbd91793c8d6a" - integrity sha512-OSYDSnoCxP2cYDMk9gxNAed6uJDiDz65zgL6h8d3tm8qXIagWGMLWhqysT6DY3Vs7Fgq7YUDcjOomhVUb+xX6A== - dependencies: - babel-helper-evaluate-path "^0.5.0" - babel-helper-flip-expressions "^0.4.3" - babel-helper-is-nodes-equiv "^0.0.1" - babel-helper-to-multiple-sequence-expressions "^0.5.0" - -babel-plugin-minify-type-constructors@^0.4.3: - version "0.4.3" - resolved "https://registry.npmjs.org/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.4.3.tgz#1bc6f15b87f7ab1085d42b330b717657a2156500" - integrity sha1-G8bxW4f3qxCF1CszC3F2V6IVZQA= - dependencies: - babel-helper-is-void-0 "^0.4.3" + "@babel/runtime" "^7.12.5" + cosmiconfig "^7.0.0" + resolve "^1.19.0" babel-plugin-named-asset-import@^0.3.1: version "0.3.6" resolved "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.6.tgz#c9750a1b38d85112c9e166bf3ef7c5dbc605f4be" integrity sha512-1aGDUfL1qOOIoqk9QKGIo2lANk+C7ko/fqH0uIyC71x3PEGz0uVP8ISgfEsFuG+FKmjHTvFK/nNM8dowpmUxLA== -babel-plugin-polyfill-corejs2@^0.2.0: +babel-plugin-polyfill-corejs2@^0.2.0, babel-plugin-polyfill-corejs2@^0.2.2: version "0.2.2" resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz#e9124785e6fd94f94b618a7954e5693053bf5327" integrity sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ== @@ -8523,6 +9191,14 @@ babel-plugin-polyfill-corejs2@^0.2.0: "@babel/helper-define-polyfill-provider" "^0.2.2" semver "^6.1.1" +babel-plugin-polyfill-corejs3@^0.1.0: + version "0.1.7" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.1.7.tgz#80449d9d6f2274912e05d9e182b54816904befd0" + integrity sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.1.5" + core-js-compat "^3.8.1" + babel-plugin-polyfill-corejs3@^0.2.0: version "0.2.2" resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.2.tgz#7424a1682ee44baec817327710b1b094e5f8f7f5" @@ -8531,7 +9207,15 @@ babel-plugin-polyfill-corejs3@^0.2.0: "@babel/helper-define-polyfill-provider" "^0.2.2" core-js-compat "^3.9.1" -babel-plugin-polyfill-regenerator@^0.2.0: +babel-plugin-polyfill-corejs3@^0.2.2: + version "0.2.4" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz#68cb81316b0e8d9d721a92e0009ec6ecd4cd2ca9" + integrity sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.2.2" + core-js-compat "^3.14.0" + +babel-plugin-polyfill-regenerator@^0.2.0, babel-plugin-polyfill-regenerator@^0.2.2: version "0.2.2" resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz#b310c8d642acada348c1fa3b3e6ce0e851bee077" integrity sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg== @@ -8557,65 +9241,6 @@ babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0: resolved "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf" integrity sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ== -babel-plugin-transform-inline-consecutive-adds@^0.4.3: - version "0.4.3" - resolved "https://registry.npmjs.org/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.4.3.tgz#323d47a3ea63a83a7ac3c811ae8e6941faf2b0d1" - integrity sha1-Mj1Ho+pjqDp6w8gRro5pQfrysNE= - -babel-plugin-transform-member-expression-literals@^6.9.4: - version "6.9.4" - resolved "https://registry.npmjs.org/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.9.4.tgz#37039c9a0c3313a39495faac2ff3a6b5b9d038bf" - integrity sha1-NwOcmgwzE6OUlfqsL/OmtbnQOL8= - -babel-plugin-transform-merge-sibling-variables@^6.9.4: - version "6.9.4" - resolved "https://registry.npmjs.org/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.9.4.tgz#85b422fc3377b449c9d1cde44087203532401dae" - integrity sha1-hbQi/DN3tEnJ0c3kQIcgNTJAHa4= - -babel-plugin-transform-minify-booleans@^6.9.4: - version "6.9.4" - resolved "https://registry.npmjs.org/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.9.4.tgz#acbb3e56a3555dd23928e4b582d285162dd2b198" - integrity sha1-rLs+VqNVXdI5KOS1gtKFFi3SsZg= - -babel-plugin-transform-property-literals@^6.9.4: - version "6.9.4" - resolved "https://registry.npmjs.org/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.9.4.tgz#98c1d21e255736573f93ece54459f6ce24985d39" - integrity sha1-mMHSHiVXNlc/k+zlRFn2ziSYXTk= - dependencies: - esutils "^2.0.2" - -babel-plugin-transform-regexp-constructors@^0.4.3: - version "0.4.3" - resolved "https://registry.npmjs.org/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.4.3.tgz#58b7775b63afcf33328fae9a5f88fbd4fb0b4965" - integrity sha1-WLd3W2OvzzMyj66aX4j71PsLSWU= - -babel-plugin-transform-remove-console@^6.9.4: - version "6.9.4" - resolved "https://registry.npmjs.org/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.4.tgz#b980360c067384e24b357a588d807d3c83527780" - integrity sha1-uYA2DAZzhOJLNXpYjYB9PINSd4A= - -babel-plugin-transform-remove-debugger@^6.9.4: - version "6.9.4" - resolved "https://registry.npmjs.org/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.9.4.tgz#42b727631c97978e1eb2d199a7aec84a18339ef2" - integrity sha1-QrcnYxyXl44estGZp67IShgznvI= - -babel-plugin-transform-remove-undefined@^0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.5.0.tgz#80208b31225766c630c97fa2d288952056ea22dd" - integrity sha512-+M7fJYFaEE/M9CXa0/IRkDbiV3wRELzA1kKQFCJ4ifhrzLKn/9VCCgj9OFmYWwBd8IB48YdgPkHYtbYq+4vtHQ== - dependencies: - babel-helper-evaluate-path "^0.5.0" - -babel-plugin-transform-simplify-comparison-operators@^6.9.4: - version "6.9.4" - resolved "https://registry.npmjs.org/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.9.4.tgz#f62afe096cab0e1f68a2d753fdf283888471ceb9" - integrity sha1-9ir+CWyrDh9ootdT/fKDiIRxzrk= - -babel-plugin-transform-undefined-to-void@^6.9.4: - version "6.9.4" - resolved "https://registry.npmjs.org/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.9.4.tgz#be241ca81404030678b748717322b89d0c8fe280" - integrity sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA= - babel-preset-current-node-syntax@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.0.tgz#cf5feef29551253471cfa82fc8e0f5063df07a77" @@ -8675,35 +9300,6 @@ babel-preset-jest@^26.6.2: babel-plugin-jest-hoist "^26.6.2" babel-preset-current-node-syntax "^1.0.0" -"babel-preset-minify@^0.5.0 || 0.6.0-alpha.5": - version "0.5.1" - resolved "https://registry.npmjs.org/babel-preset-minify/-/babel-preset-minify-0.5.1.tgz#25f5d0bce36ec818be80338d0e594106e21eaa9f" - integrity sha512-1IajDumYOAPYImkHbrKeiN5AKKP9iOmRoO2IPbIuVp0j2iuCcj0n7P260z38siKMZZ+85d3mJZdtW8IgOv+Tzg== - dependencies: - babel-plugin-minify-builtins "^0.5.0" - babel-plugin-minify-constant-folding "^0.5.0" - babel-plugin-minify-dead-code-elimination "^0.5.1" - babel-plugin-minify-flip-comparisons "^0.4.3" - babel-plugin-minify-guarded-expressions "^0.4.4" - babel-plugin-minify-infinity "^0.4.3" - babel-plugin-minify-mangle-names "^0.5.0" - babel-plugin-minify-numeric-literals "^0.4.3" - babel-plugin-minify-replace "^0.5.0" - babel-plugin-minify-simplify "^0.5.1" - babel-plugin-minify-type-constructors "^0.4.3" - babel-plugin-transform-inline-consecutive-adds "^0.4.3" - babel-plugin-transform-member-expression-literals "^6.9.4" - babel-plugin-transform-merge-sibling-variables "^6.9.4" - babel-plugin-transform-minify-booleans "^6.9.4" - babel-plugin-transform-property-literals "^6.9.4" - babel-plugin-transform-regexp-constructors "^0.4.3" - babel-plugin-transform-remove-console "^6.9.4" - babel-plugin-transform-remove-debugger "^6.9.4" - babel-plugin-transform-remove-undefined "^0.5.0" - babel-plugin-transform-simplify-comparison-operators "^6.9.4" - babel-plugin-transform-undefined-to-void "^6.9.4" - lodash "^4.17.11" - babel-runtime@6.26.0, babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" @@ -8809,10 +9405,10 @@ before-after-hook@^2.1.0: resolved "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz#b6c03487f44e24200dd30ca5e6a1979c5d2fb635" integrity sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A== -better-opn@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/better-opn/-/better-opn-2.0.0.tgz#c70d198e51164bdc220306a28a885d9ac7a14c44" - integrity sha512-PPbGRgO/K0LowMHbH/JNvaV3qY3Vt+A2nH28fzJxy16h/DfR5OsVti6ldGl6S9SMsyUqT13sltikiAVtI6tKLA== +better-opn@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/better-opn/-/better-opn-2.1.1.tgz#94a55b4695dc79288f31d7d0e5f658320759f7c6" + integrity sha512-kIPXZS5qwyKiX/HcRvDYfmBQUa8XP17I0mYZZ0y4UhpYOSvtsLHDYqmomS+Mj20aDvD3knEiQ0ecQy2nhio3yA== dependencies: open "^7.0.3" @@ -8960,7 +9556,7 @@ boxen@^1.3.0: term-size "^1.2.0" widest-line "^2.0.0" -boxen@^4.1.0, boxen@^4.2.0: +boxen@^4.2.0: version "4.2.0" resolved "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ== @@ -9081,16 +9677,6 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@4.10.0: - version "4.10.0" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.10.0.tgz#f179737913eaf0d2b98e4926ac1ca6a15cbcc6a9" - integrity sha512-TpfK0TDgv71dzuTsEAlQiHeWQ/tiPqgNZVdv046fvNtBZrjbv2O3TsWCDU0AWGJJKCF/KsjNdLzR9hXOsh/CfA== - dependencies: - caniuse-lite "^1.0.30001035" - electron-to-chromium "^1.3.378" - node-releases "^1.1.52" - pkg-up "^3.1.0" - browserslist@4.14.2: version "4.14.2" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.14.2.tgz#1b3cec458a1ba87588cc5e9be62f19b6d48813ce" @@ -9399,6 +9985,11 @@ camel-case@4.1.2, camel-case@^4.1.1, camel-case@^4.1.2: pascal-case "^3.1.2" tslib "^2.0.3" +camelcase-css@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" + integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== + camelcase-keys@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" @@ -9451,7 +10042,7 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001035, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001219: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001219: version "1.0.30001230" resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001230.tgz#8135c57459854b2240b57a4a6786044bdc5a9f71" integrity sha512-5yBd5nWCBS+jWKTcHOzXwo5xzcj4ePE/yjtkZyUV1BTUmrBaA9MRGC+e7mxnqXSA90CmCA8L3eKLaSUkt099IQ== @@ -9493,16 +10084,21 @@ capture-exit@^2.0.0: dependencies: rsvp "^4.8.4" -case-sensitive-paths-webpack-plugin@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz#23ac613cc9a856e4f88ff8bb73bbb5e989825cf7" - integrity sha512-/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ== +case-sensitive-paths-webpack-plugin@^2.3.0: + version "2.4.0" + resolved "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4" + integrity sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw== caseless@~0.12.0: version "0.12.0" resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= +ccount@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" + integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg== + chainsaw@~0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98" @@ -9641,7 +10237,7 @@ chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.2.2, chokidar@^3.3.0, chokidar@^3.3.1, chokidar@^3.4.1, chokidar@^3.4.2, chokidar@^3.5.1, chokidar@^3.5.2: +chokidar@^3.2.2, chokidar@^3.3.1, chokidar@^3.4.1, chokidar@^3.4.2, chokidar@^3.5.1, chokidar@^3.5.2: version "3.5.2" resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== @@ -9797,11 +10393,6 @@ cli-truncate@^0.2.1: slice-ansi "0.0.4" string-width "^1.0.1" -cli-width@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" - integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= - cli-width@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" @@ -9939,6 +10530,11 @@ codeowners-utils@^1.0.2: ignore "^5.1.4" locate-path "^5.0.0" +collapse-white-space@^1.0.2: + version "1.0.6" + resolved "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz#e63629c0016665792060dbbeb79c42239d2c5287" + integrity sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ== + collect-v8-coverage@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.0.tgz#150ee634ac3650b71d9c985eb7f608942334feb1" @@ -10078,12 +10674,12 @@ commander@^4.0.0, commander@^4.1.1: resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== -commander@^5.0.0, commander@^5.1.0: +commander@^5.1.0: version "5.1.0" resolved "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== -commander@^6.1.0: +commander@^6.1.0, commander@^6.2.1: version "6.2.1" resolved "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== @@ -10165,10 +10761,10 @@ compute-lcm@^1.1.0, compute-lcm@^1.1.2: validate.io-function "^1.0.2" validate.io-integer-array "^1.0.0" -compute-scroll-into-view@^1.0.16: - version "1.0.16" - resolved "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.16.tgz#5b7bf4f7127ea2c19b750353d7ce6776a90ee088" - integrity sha512-a85LHKY81oQnikatZYA90pufpZ6sQx++BoCxOEMsjpZx+ZnaKGQnCyCehTRr/1p9GBIAHTjcU9k71kSYWloLiQ== +compute-scroll-into-view@^1.0.17: + version "1.0.17" + resolved "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz#6a88f18acd9d42e9cf4baa6bec7e0522607ab7ab" + integrity sha512-j4dx+Fb0URmzbwwMUrhqWM2BEWHdFGx+qZ9qqASHRPqvTYdqvWnHg0H1hIbcyLnvgnoNAVMlwkepyqM3DaIFUg== concat-map@0.0.1: version "0.0.1" @@ -10437,13 +11033,21 @@ copy-descriptor@^0.1.0: resolved "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -copy-to-clipboard@^3, copy-to-clipboard@^3.0.8, copy-to-clipboard@^3.1.0, copy-to-clipboard@^3.2.0, copy-to-clipboard@^3.3.1: +copy-to-clipboard@^3, copy-to-clipboard@^3.1.0, copy-to-clipboard@^3.2.0, copy-to-clipboard@^3.3.1: version "3.3.1" resolved "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.1.tgz#115aa1a9998ffab6196f93076ad6da3b913662ae" integrity sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw== dependencies: toggle-selection "^1.0.6" +core-js-compat@^3.14.0, core-js-compat@^3.16.0, core-js-compat@^3.8.1: + version "3.16.0" + resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.16.0.tgz#fced4a0a534e7e02f7e084bff66c701f8281805f" + integrity sha512-5D9sPHCdewoUK7pSUPfTF7ZhLh8k9/CoJXWUEo+F1dZT5Z1DVgcuRqUKhjeKW+YLb8f21rTFgWwQJiNw1hoZ5Q== + dependencies: + browserslist "^4.16.6" + semver "7.0.0" + core-js-compat@^3.9.0, core-js-compat@^3.9.1: version "3.13.1" resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.13.1.tgz#05444caa8f153be0c67db03cf8adb8ec0964e58e" @@ -10452,12 +11056,17 @@ core-js-compat@^3.9.0, core-js-compat@^3.9.1: browserslist "^4.16.6" semver "7.0.0" -core-js-pure@^3.0.0, core-js-pure@^3.0.1, core-js-pure@^3.10.2, core-js-pure@^3.6.5: +core-js-pure@^3.0.0, core-js-pure@^3.10.2, core-js-pure@^3.6.5: version "3.15.1" resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.15.1.tgz#8356f6576fa2aa8e54ca6fe02620968ff010eed7" integrity sha512-OZuWHDlYcIda8sJLY4Ec6nWq2hRjlyCqCZ+jCflyleMkVt3tPedDVErvHslyS2nbO+SlBFMSBJYvtLMwxnrzjA== -core-js@3, core-js@^3.0.1, core-js@^3.0.4, core-js@^3.6.0, core-js@^3.6.5, core-js@^3.8.2: +core-js-pure@^3.8.1, core-js-pure@^3.8.2: + version "3.16.0" + resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.16.0.tgz#218e07add3f1844e53fab195c47871fc5ba18de8" + integrity sha512-wzlhZNepF/QA9yvx3ePDgNGudU5KDB8lu/TRPKelYA/QtSnkS/cLl2W+TIdEX1FAFcBr0YpY7tPDlcmXJ7AyiQ== + +core-js@3, core-js@^3.0.4, core-js@^3.6.0, core-js@^3.6.5, core-js@^3.8.2: version "3.15.0" resolved "https://registry.npmjs.org/core-js/-/core-js-3.15.0.tgz#db9554ebce0b6fd90dc9b1f2465c841d2d055044" integrity sha512-GUbtPllXMYRzIgHNZ4dTYTcUemls2cni83Q4Q/TrFONHfhcg9oEGOtaGHfb0cpzec60P96UKPvMkjX1jET8rUw== @@ -10633,15 +11242,6 @@ cross-fetch@3.1.4, cross-fetch@^3.0.4, cross-fetch@^3.0.6, cross-fetch@^3.1.3: dependencies: node-fetch "2.6.1" -cross-spawn@7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz#0ab56286e0f7c24e153d04cc2aa027e43a9a5d14" - integrity sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - cross-spawn@7.0.3, cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -10742,7 +11342,7 @@ css-line-break@1.1.1: dependencies: base64-arraybuffer "^0.2.0" -css-loader@^3.5.3: +css-loader@^3.6.0: version "3.6.0" resolved "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645" integrity sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ== @@ -10761,6 +11361,22 @@ css-loader@^3.5.3: schema-utils "^2.7.0" semver "^6.3.0" +css-loader@^5.0.1: + version "5.2.7" + resolved "https://registry.npmjs.org/css-loader/-/css-loader-5.2.7.tgz#9b9f111edf6fb2be5dc62525644cbc9c232064ae" + integrity sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg== + dependencies: + icss-utils "^5.1.0" + loader-utils "^2.0.0" + postcss "^8.2.15" + postcss-modules-extract-imports "^3.0.0" + postcss-modules-local-by-default "^4.0.0" + postcss-modules-scope "^3.0.0" + postcss-modules-values "^4.0.0" + postcss-value-parser "^4.1.0" + schema-utils "^3.0.0" + semver "^7.3.5" + css-loader@^5.2.6: version "5.2.6" resolved "https://registry.npmjs.org/css-loader/-/css-loader-5.2.6.tgz#c3c82ab77fea1f360e587d871a6811f4450cc8d1" @@ -10802,6 +11418,17 @@ css-select@^2.0.0: domutils "^1.7.0" nth-check "^1.0.2" +css-select@^4.1.3: + version "4.1.3" + resolved "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz#a70440f70317f2669118ad74ff105e65849c7067" + integrity sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA== + dependencies: + boolbase "^1.0.0" + css-what "^5.0.0" + domhandler "^4.2.0" + domutils "^2.6.0" + nth-check "^2.0.0" + css-tree@1.0.0-alpha.37: version "1.0.0-alpha.37" resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" @@ -10841,6 +11468,11 @@ css-what@^3.2.1: resolved "https://registry.npmjs.org/css-what/-/css-what-3.2.1.tgz#f4a8f12421064621b456755e34a03a2c22df5da1" integrity sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw== +css-what@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz#3efa820131f4669a8ac2408f9c32e7c7de9f4cad" + integrity sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg== + css.escape@1.5.1, css.escape@^1.5.1: version "1.5.1" resolved "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" @@ -11564,6 +12196,13 @@ destroy@~1.0.4: resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= +detab@2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/detab/-/detab-2.0.4.tgz#b927892069aff405fbb9a186fe97a44a92a94b43" + integrity sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g== + dependencies: + repeat-string "^1.5.4" + detect-indent@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" @@ -11659,14 +12298,6 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" -dir-glob@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034" - integrity sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag== - dependencies: - arrify "^1.0.1" - path-type "^3.0.0" - dir-glob@^2.0.0, dir-glob@^2.2.2: version "2.2.2" resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" @@ -11753,7 +12384,7 @@ dom-accessibility-api@^0.5.4, dom-accessibility-api@^0.5.6: resolved "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.6.tgz#3f5d43b52c7a3bd68b5fb63fa47b4e4c1fdf65a9" integrity sha512-DplGLZd8L1lN64jlT27N9TVSESFR5STaEJvX+thCby7fuCHonfPpAlodYc3vuUYbDuDec5w8AMP7oCM5TWFsqw== -dom-converter@^0.2: +dom-converter@^0.2, dom-converter@^0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== @@ -11812,6 +12443,11 @@ domelementtype@^2.0.1, domelementtype@^2.1.0: resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e" integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== +domelementtype@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" + integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== + domexception@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" @@ -11847,6 +12483,13 @@ domhandler@^4.0.0: dependencies: domelementtype "^2.1.0" +domhandler@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz#f9768a5f034be60a89a27c2e4d0f74eba0d8b059" + integrity sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA== + dependencies: + domelementtype "^2.2.0" + dompurify@^2.0.12, dompurify@^2.1.1, dompurify@^2.2.8: version "2.2.8" resolved "https://registry.npmjs.org/dompurify/-/dompurify-2.2.8.tgz#ce88e395f6d00b6dc53f80d6b2a6fdf5446873c6" @@ -11882,6 +12525,15 @@ domutils@^2.0.0: domelementtype "^2.0.1" domhandler "^4.0.0" +domutils@^2.5.2, domutils@^2.6.0: + version "2.7.0" + resolved "https://registry.npmjs.org/domutils/-/domutils-2.7.0.tgz#8ebaf0c41ebafcf55b0b72ec31c56323712c5442" + integrity sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + dot-case@^3.0.4: version "3.0.4" resolved "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" @@ -11918,18 +12570,32 @@ dotenv-defaults@^1.0.2: dependencies: dotenv "^6.2.0" +dotenv-defaults@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/dotenv-defaults/-/dotenv-defaults-2.0.2.tgz#6b3ec2e4319aafb70940abda72d3856770ee77ac" + integrity sha512-iOIzovWfsUHU91L5i8bJce3NYK5JXeAwH50Jh6+ARUdLiiGlYWfGw6UkzsYqaXZH/hjE/eCd/PlfM/qqyK0AMg== + dependencies: + dotenv "^8.2.0" + dotenv-expand@^5.1.0: version "5.1.0" resolved "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== -dotenv-webpack@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/dotenv-webpack/-/dotenv-webpack-1.7.0.tgz#4384d8c57ee6f405c296278c14a9f9167856d3a1" - integrity sha512-wwNtOBW/6gLQSkb8p43y0Wts970A3xtNiG/mpwj9MLUhtPCQG6i+/DSXXoNN7fbPCU/vQ7JjwGmgOeGZSSZnsw== +dotenv-webpack@^1.8.0: + version "1.8.0" + resolved "https://registry.npmjs.org/dotenv-webpack/-/dotenv-webpack-1.8.0.tgz#7ca79cef2497dd4079d43e81e0796bc9d0f68a5e" + integrity sha512-o8pq6NLBehtrqA8Jv8jFQNtG9nhRtVqmoD4yWbgUyoU3+9WBlPe+c2EAiaJok9RB28QvrWvdWLZGeTT5aATDMg== dependencies: dotenv-defaults "^1.0.2" +dotenv-webpack@^7.0.0: + version "7.0.3" + resolved "https://registry.npmjs.org/dotenv-webpack/-/dotenv-webpack-7.0.3.tgz#f50ec3c7083a69ec6076e110566720003b7b107b" + integrity sha512-O0O9pOEwrk+n1zzR3T2uuXRlw64QxHSPeNN1GaiNBloQFNaCUL9V8jxSVz4jlXXFP/CIqK8YecWf8BAvsSgMjw== + dependencies: + dotenv-defaults "^2.0.2" + dotenv@^6.2.0: version "6.2.0" resolved "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz#941c0410535d942c8becf28d3f357dbd9d476064" @@ -11940,15 +12606,15 @@ dotenv@^8.0.0, dotenv@^8.2.0: resolved "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== -downshift@^6.0.6: - version "6.0.7" - resolved "https://registry.npmjs.org/downshift/-/downshift-6.0.7.tgz#05ef58b991e4467cdb8cd36e7a87a011d0bada5c" - integrity sha512-+rqgx3JTSs8b4V9q++hsLvaP8mhMOdX7u+jy5S2etg7+Y7uFLVzZaI0S7Xo2yEnNDmTcNnYZZ/vFjdWuJ2kZdg== +downshift@^6.0.15: + version "6.1.5" + resolved "https://registry.npmjs.org/downshift/-/downshift-6.1.5.tgz#f6ffbead35680df6263c15e6eeb55cec77dadc50" + integrity sha512-9hpSCQLQ0KzlnI9ebpdbLuw5ogm7MXXI1D5N1zGWYSjHph+Xe02enXKyfDDE14akGr0jppAg0S1t/cjXp677ew== dependencies: - "@babel/runtime" "^7.12.5" - compute-scroll-into-view "^1.0.16" + "@babel/runtime" "^7.14.8" + compute-scroll-into-view "^1.0.17" prop-types "^15.7.2" - react-is "^17.0.1" + react-is "^17.0.2" dset@^3.0.0: version "3.1.0" @@ -12019,13 +12685,6 @@ ee-first@1.1.1: resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -ejs@^3.1.2: - version "3.1.5" - resolved "https://registry.npmjs.org/ejs/-/ejs-3.1.5.tgz#aed723844dc20acb4b170cd9ab1017e476a0d93b" - integrity sha512-dldq3ZfFtgVTJMLjOe+/3sROTzALlL9E34V4/sDtUd/KlBSS0s6U1/+WPE1B4sj9CXHJpL1M6rhNJnc9Wbal9w== - dependencies: - jake "^10.6.1" - elastic-builder@^2.16.0: version "2.16.0" resolved "https://registry.npmjs.org/elastic-builder/-/elastic-builder-2.16.0.tgz#684757ab9e6a4214653d23d84cec5ab8d185892f" @@ -12041,7 +12700,7 @@ elastic-builder@^2.16.0: lodash.isstring "^4.0.1" lodash.omit "^4.5.0" -electron-to-chromium@^1.3.378, electron-to-chromium@^1.3.564, electron-to-chromium@^1.3.723: +electron-to-chromium@^1.3.564, electron-to-chromium@^1.3.723: version "1.3.739" resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.739.tgz#f07756aa92cabd5a6eec6f491525a64fe62f98b9" integrity sha512-+LPJVRsN7hGZ9EIUUiWCpO7l4E3qBYHNadazlucBfsXBbccDFNKUBAgzE68FnkWGJPwD/AfKhSzL+G+Iqb8A4A== @@ -12051,13 +12710,6 @@ elegant-spinner@^1.0.1: resolved "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4= -element-resize-detector@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/element-resize-detector/-/element-resize-detector-1.2.1.tgz#b0305194447a4863155e58f13323a0aef30851d1" - integrity sha512-BdFsPepnQr9fznNPF9nF4vQ457U/ZJXQDSNF1zBe7yaga8v9AdZf3/NElYxFdUh7SitSGt040QygiTo6dtatIw== - dependencies: - batch-processor "1.0.0" - element-resize-detector@^1.2.2: version "1.2.3" resolved "https://registry.npmjs.org/element-resize-detector/-/element-resize-detector-1.2.3.tgz#5078d9b99398fe4c589f8c8df94ff99e5d413ff3" @@ -12108,17 +12760,12 @@ emoji-regex@^9.0.0: resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= - emojis-list@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== -emotion-theming@^10.0.19, emotion-theming@^10.0.27: +emotion-theming@^10.0.27: version "10.0.27" resolved "https://registry.npmjs.org/emotion-theming/-/emotion-theming-10.0.27.tgz#1887baaec15199862c89b1b984b79806f2b9ab10" integrity sha512-MlF1yu/gYh8u+sLUqA0YuA9JX0P4Hb69WlKc/9OLo+WCXuX6sy/KoIa+qJimgmr2dWqnypYKYPX37esjDBbhdw== @@ -12160,7 +12807,7 @@ endent@^2.0.1: fast-json-parse "^1.0.3" objectorarray "^1.0.4" -enhanced-resolve@^4.0.0, enhanced-resolve@^4.3.0: +enhanced-resolve@^4.0.0, enhanced-resolve@^4.5.0: version "4.5.0" resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== @@ -12952,7 +13599,7 @@ express-xml-bodyparser@^0.3.0: dependencies: xml2js "^0.4.11" -express@^4.0.0, express@^4.17.0, express@^4.17.1: +express@^4.0.0, express@^4.17.1: version "4.17.1" resolved "https://registry.npmjs.org/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== @@ -13088,7 +13735,7 @@ fast-deep-equal@^3.0.0, fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^2.0.2, fast-glob@^2.2.6: +fast-glob@^2.2.6: version "2.2.7" resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== @@ -13256,7 +13903,7 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" -file-loader@^6.0.0, file-loader@^6.2.0: +file-loader@^6.2.0: version "6.2.0" resolved "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== @@ -13290,18 +13937,6 @@ filefy@0.1.10: resolved "https://registry.npmjs.org/filefy/-/filefy-0.1.10.tgz#174677c8e2fa5bc39a3af0ed6fb492f16b8fbf42" integrity sha512-VgoRVOOY1WkTpWH+KBy8zcU1G7uQTVsXqhWEgzryB9A5hg2aqCyZ6aQ/5PSzlqM5+6cnVrX6oYV0XqD3HZSnmQ== -filelist@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/filelist/-/filelist-1.0.1.tgz#f10d1a3ae86c1694808e8f20906f43d4c9132dbb" - integrity sha512-8zSK6Nu0DQIC08mUC46sWGXi+q3GGpKydAG36k+JDba6VRpkevvOWUW5a/PhShij4+vHT9M+ghgG7eM+a9JDUQ== - dependencies: - minimatch "^3.0.4" - -filesize@6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/filesize/-/filesize-6.0.1.tgz#f850b509909c7c86f7e450ea19006c31c2ed3d2f" - integrity sha512-u4AYWPgbI5GBhs6id1KdImZWn5yfyFrrQ8OWZdN7ZMfA8Bf4HcO0BGo9bmUIEV8yrp8I1xVfJ/dn90GtFNNJcg== - filesize@6.1.0: version "6.1.0" resolved "https://registry.npmjs.org/filesize/-/filesize-6.1.0.tgz#e81bdaa780e2451d714d71c0d7a4f3238d37ad00" @@ -13488,21 +14123,7 @@ forever-agent@~0.6.1: resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= -fork-ts-checker-webpack-plugin@3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-3.1.1.tgz#a1642c0d3e65f50c2cc1742e9c0a80f441f86b19" - integrity sha512-DuVkPNrM12jR41KM2e+N+styka0EgLkTnXmNcXdgOM37vtGeY+oCBK/Jx0hzSeEU6memFCtWb4htrHPMDfwwUQ== - dependencies: - babel-code-frame "^6.22.0" - chalk "^2.4.1" - chokidar "^3.3.0" - micromatch "^3.1.10" - minimatch "^3.0.4" - semver "^5.6.0" - tapable "^1.0.0" - worker-rpc "^0.1.0" - -fork-ts-checker-webpack-plugin@4.1.6, fork-ts-checker-webpack-plugin@^4.0.5, fork-ts-checker-webpack-plugin@^4.1.4: +fork-ts-checker-webpack-plugin@4.1.6, fork-ts-checker-webpack-plugin@^4.0.5, fork-ts-checker-webpack-plugin@^4.1.6: version "4.1.6" resolved "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-4.1.6.tgz#5055c703febcf37fa06405d400c122b905167fc5" integrity sha512-DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw== @@ -13515,6 +14136,25 @@ fork-ts-checker-webpack-plugin@4.1.6, fork-ts-checker-webpack-plugin@^4.0.5, for tapable "^1.0.0" worker-rpc "^0.1.0" +fork-ts-checker-webpack-plugin@^6.0.4: + version "6.3.1" + resolved "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.3.1.tgz#938535f844cdddf6796211e5761da27341b9fcd3" + integrity sha512-uxqlKTEeSJ5/JRr0zaCiw2U+kOV8F4/MhCnnRf6vbxj4ZU3Or0DLl/0CNtXro7uLWDssnuR7wUN7fU9w1I0REA== + dependencies: + "@babel/code-frame" "^7.8.3" + "@types/json-schema" "^7.0.5" + chalk "^4.1.0" + chokidar "^3.4.2" + cosmiconfig "^6.0.0" + deepmerge "^4.2.2" + fs-extra "^9.0.0" + glob "^7.1.6" + memfs "^3.1.2" + minimatch "^3.0.4" + schema-utils "2.7.0" + semver "^7.3.2" + tapable "^1.0.0" + form-data@4.0.0, form-data@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" @@ -13610,7 +14250,7 @@ fs-extra@10.0.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@9.1.0, fs-extra@^9.0.0, fs-extra@^9.1.0: +fs-extra@9.1.0, fs-extra@^9.0.0, fs-extra@^9.0.1, fs-extra@^9.1.0: version "9.1.0" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== @@ -13830,7 +14470,7 @@ generic-pool@2.4.3: resolved "https://registry.npmjs.org/generic-pool/-/generic-pool-2.4.3.tgz#780c36f69dfad05a5a045dd37be7adca11a4f6ff" integrity sha1-eAw29p360FpaBF3Te+etyhGk9v8= -gensync@^1.0.0-beta.2: +gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== @@ -14002,21 +14642,6 @@ github-slugger@^1.3.0: dependencies: emoji-regex ">=6.0.0 <=6.1.1" -glob-base@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" - integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q= - dependencies: - glob-parent "^2.0.0" - is-glob "^2.0.0" - -glob-parent@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" - integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg= - dependencies: - is-glob "^2.0.0" - glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" @@ -14122,7 +14747,7 @@ global-prefix@^3.0.0: kind-of "^6.0.2" which "^1.3.1" -global@^4.3.0, global@^4.3.2, global@^4.4.0: +global@^4.3.0, global@^4.4.0: version "4.4.0" resolved "https://registry.npmjs.org/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== @@ -14173,19 +14798,6 @@ globby@11.0.3: merge2 "^1.3.0" slash "^3.0.0" -globby@8.0.2: - version "8.0.2" - resolved "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz#5697619ccd95c5275dbb2d6faa42087c1a941d8d" - integrity sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w== - dependencies: - array-union "^1.0.1" - dir-glob "2.0.0" - fast-glob "^2.0.2" - glob "^7.1.2" - ignore "^3.3.5" - pify "^3.0.0" - slash "^1.0.0" - globby@^11.0.0, globby@^11.0.1, globby@^11.0.2: version "11.0.2" resolved "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz#1af538b766a3b540ebfb58a32b2e2d5897321d83" @@ -14402,7 +15014,7 @@ graphql-extensions@^0.15.0: apollo-server-env "^3.1.0" apollo-server-types "^0.9.0" -graphql-language-service-interface@^2.8.2: +graphql-language-service-interface@2.8.2, graphql-language-service-interface@^2.8.2: version "2.8.2" resolved "https://registry.npmjs.org/graphql-language-service-interface/-/graphql-language-service-interface-2.8.2.tgz#b3bb2aef7eaf0dff0b4ea419fa412c5f66fa268b" integrity sha512-otbOQmhgkAJU1QJgQkMztNku6SbJLu/uodoFOYOOtJsizTjrMs93vkYaHCcYnLA3oi1Goj27XcHjMnRCYQOZXQ== @@ -14412,7 +15024,7 @@ graphql-language-service-interface@^2.8.2: graphql-language-service-utils "^2.5.1" vscode-languageserver-types "^3.15.1" -graphql-language-service-parser@^1.9.0: +graphql-language-service-parser@1.9.0, graphql-language-service-parser@^1.9.0: version "1.9.0" resolved "https://registry.npmjs.org/graphql-language-service-parser/-/graphql-language-service-parser-1.9.0.tgz#79af21294119a0a7e81b6b994a1af36833bab724" integrity sha512-B5xPZLbBmIp0kHvpY1Z35I5DtPoDK9wGxQVRDIzcBaiIvAmlTrDvjo3bu7vKREdjFbYKvWNgrEWENuprMbF17Q== @@ -14695,11 +15307,63 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" +hast-to-hyperscript@^9.0.0: + version "9.0.1" + resolved "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz#9b67fd188e4c81e8ad66f803855334173920218d" + integrity sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA== + dependencies: + "@types/unist" "^2.0.3" + comma-separated-tokens "^1.0.0" + property-information "^5.3.0" + space-separated-tokens "^1.0.0" + style-to-object "^0.3.0" + unist-util-is "^4.0.0" + web-namespaces "^1.0.0" + +hast-util-from-parse5@^6.0.0: + version "6.0.1" + resolved "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz#554e34abdeea25ac76f5bd950a1f0180e0b3bc2a" + integrity sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA== + dependencies: + "@types/parse5" "^5.0.0" + hastscript "^6.0.0" + property-information "^5.0.0" + vfile "^4.0.0" + vfile-location "^3.2.0" + web-namespaces "^1.0.0" + hast-util-parse-selector@^2.0.0: version "2.2.4" resolved "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.4.tgz#60c99d0b519e12ab4ed32e58f150ec3f61ed1974" integrity sha512-gW3sxfynIvZApL4L07wryYF4+C9VvH3AUi7LAnVXV4MneGEgwOByXvFo18BgmTWnm7oHAe874jKbIB1YhHSIzA== +hast-util-raw@6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-6.0.1.tgz#973b15930b7529a7b66984c98148b46526885977" + integrity sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig== + dependencies: + "@types/hast" "^2.0.0" + hast-util-from-parse5 "^6.0.0" + hast-util-to-parse5 "^6.0.0" + html-void-elements "^1.0.0" + parse5 "^6.0.0" + unist-util-position "^3.0.0" + vfile "^4.0.0" + web-namespaces "^1.0.0" + xtend "^4.0.0" + zwitch "^1.0.0" + +hast-util-to-parse5@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz#1ec44650b631d72952066cea9b1445df699f8479" + integrity sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ== + dependencies: + hast-to-hyperscript "^9.0.0" + property-information "^5.0.0" + web-namespaces "^1.0.0" + xtend "^4.0.0" + zwitch "^1.0.0" + hastscript@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz#e8768d7eac56c3fdeac8a92830d58e811e5bf640" @@ -14838,12 +15502,7 @@ html-entities@^1.2.0: resolved "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44" integrity sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA== -html-entities@^1.2.1: - version "1.3.3" - resolved "https://registry.npmjs.org/html-entities/-/html-entities-1.3.3.tgz#3dca638a43ee7de316fc23067398491152ad4736" - integrity sha512-/VulV3SYni1taM7a4RMdceqzJWR39gpZHjBwUnsCFKWV/GJkD14CJ5F7eWcZozmHJK0/f/H5U3b3SiPkuvxMgg== - -html-entities@^2.3.2: +html-entities@^2.1.0, html-entities@^2.3.2: version "2.3.2" resolved "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz#760b404685cb1d794e4f4b744332e3b00dcfe488" integrity sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ== @@ -14876,7 +15535,12 @@ html-to-react@^1.3.4: lodash.camelcase "^4.3.0" ramda "^0.26" -html-webpack-plugin@^4.2.1: +html-void-elements@^1.0.0: + version "1.0.5" + resolved "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz#ce9159494e86d95e45795b166c2021c2cfca4483" + integrity sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w== + +html-webpack-plugin@^4.0.0: version "4.5.2" resolved "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz#76fc83fa1a0f12dd5f7da0404a54e2699666bc12" integrity sha512-q5oYdzjKUIPQVjOosjgvCHQOv9Ett9CYYHlgvJeXG0qQvdSojnBq4vAdQBwn1+yGveAwHCoe/rMR86ozX3+c2A== @@ -14891,6 +15555,17 @@ html-webpack-plugin@^4.2.1: tapable "^1.1.3" util.promisify "1.0.0" +html-webpack-plugin@^5.0.0: + version "5.3.2" + resolved "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.3.2.tgz#7b04bf80b1f6fe84a6d3f66c8b79d64739321b08" + integrity sha512-HvB33boVNCz2lTyBsSiMffsJ+m0YLIQ+pskblXgN9fnjS1BgEcuAfdInfXfGrkdXV406k9FiDi86eVCDBgJOyQ== + dependencies: + "@types/html-minifier-terser" "^5.0.0" + html-minifier-terser "^5.0.1" + lodash "^4.17.21" + pretty-error "^3.0.4" + tapable "^2.0.0" + html-webpack-plugin@^5.3.1: version "5.3.1" resolved "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.3.1.tgz#8797327548e3de438e3494e0c6d06f181a7f20d1" @@ -14931,6 +15606,16 @@ htmlparser2@^4.0: domutils "^2.0.0" entities "^2.0.0" +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" @@ -15189,11 +15874,6 @@ ignore@^5.1.4: resolved "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A== -immer@1.10.0: - version "1.10.0" - resolved "https://registry.npmjs.org/immer/-/immer-1.10.0.tgz#bad67605ba9c810275d91e1c2a47d4582e98286d" - integrity sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg== - immer@8.0.1: version "8.0.1" resolved "https://registry.npmjs.org/immer/-/immer-8.0.1.tgz#9c73db683e2b3975c424fb0572af5889877ae656" @@ -15214,13 +15894,6 @@ immutable@~3.7.6: resolved "https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz#13b4d3cb12befa15482a26fe1b2ebae640071e4b" integrity sha1-E7TTyxK++hVIKib+Gy665kAHHks= -import-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" - integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= - dependencies: - import-from "^2.1.0" - import-cwd@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz#20845547718015126ea9b3676b7592fb8bd4cf92" @@ -15256,13 +15929,6 @@ import-from@4.0.0: resolved "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz#2710b8d66817d232e16f4166e319248d3d5492e2" integrity sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ== -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - integrity sha1-M1238qev/VOqpHHUuAId7ja387E= - dependencies: - resolve-from "^3.0.0" - import-lazy@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" @@ -15328,7 +15994,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -15367,6 +16033,11 @@ init-package-json@^2.0.2: validate-npm-package-license "^3.0.4" validate-npm-package-name "^3.0.0" +inline-style-parser@0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" + integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== + inline-style-prefixer@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-6.0.0.tgz#f73d5dbf2855733d6b153a4d24b7b47a73e9770b" @@ -15374,26 +16045,7 @@ inline-style-prefixer@^6.0.0: dependencies: css-in-js-utils "^2.0.0" -inquirer@7.0.4: - version "7.0.4" - resolved "https://registry.npmjs.org/inquirer/-/inquirer-7.0.4.tgz#99af5bde47153abca23f5c7fc30db247f39da703" - integrity sha512-Bu5Td5+j11sCkqfqmUTiwv+tWisMtP0L7Q8WrqA2C/BbBhy1YTdFrvjjlrKq8oagA/tLQBski2Gcx/Sqyi2qSQ== - dependencies: - ansi-escapes "^4.2.1" - chalk "^2.4.2" - cli-cursor "^3.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.15" - mute-stream "0.0.8" - run-async "^2.2.0" - rxjs "^6.5.3" - string-width "^4.1.0" - strip-ansi "^5.1.0" - through "^2.3.6" - -inquirer@^7.0.0, inquirer@^7.0.4, inquirer@^7.3.3: +inquirer@^7.0.4, inquirer@^7.3.3: version "7.3.3" resolved "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003" integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA== @@ -15456,7 +16108,7 @@ interpret@^1.0.0: resolved "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== -interpret@^2.0.0, interpret@^2.2.0: +interpret@^2.2.0: version "2.2.0" resolved "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== @@ -15538,7 +16190,7 @@ is-accessor-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" -is-alphabetical@^1.0.0: +is-alphabetical@1.0.4, is-alphabetical@^1.0.0: version "1.0.4" resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== @@ -15712,11 +16364,6 @@ is-extendable@^1.0.1: dependencies: is-plain-object "^2.0.4" -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= - is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -15766,13 +16413,6 @@ is-glob@4.0.1, is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" -is-glob@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM= - dependencies: - is-extglob "^1.0.0" - is-glob@^3.0.0, is-glob@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" @@ -16095,6 +16735,11 @@ is-utf8@^0.2.0: resolved "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= +is-whitespace-character@^1.0.0: + version "1.0.4" + resolved "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7" + integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w== + is-window@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/is-window/-/is-window-1.0.2.tgz#2c896ca53db97de45d3c33133a65d8c9f563480d" @@ -16105,6 +16750,11 @@ is-windows@^1.0.0, is-windows@^1.0.1, is-windows@^1.0.2: resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== +is-word-character@^1.0.0: + version "1.0.4" + resolved "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz#ce0e73216f98599060592f62ff31354ddbeb0230" + integrity sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA== + is-wsl@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" @@ -16273,16 +16923,6 @@ jade@0.26.3: commander "0.6.1" mkdirp "0.3.0" -jake@^10.6.1: - version "10.8.2" - resolved "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz#ebc9de8558160a66d82d0eadc6a2e58fbc500a7b" - integrity sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A== - dependencies: - async "0.9.x" - chalk "^2.4.2" - filelist "^1.0.1" - minimatch "^3.0.4" - jenkins@^0.28.1: version "0.28.1" resolved "https://registry.npmjs.org/jenkins/-/jenkins-0.28.1.tgz#f7951798ee5d2bb501a831979b6b5ecc1a922a64" @@ -16704,7 +17344,7 @@ jest-when@^3.1.0: bunyan "^1.8.12" expect "^24.8.0" -jest-worker@^26.2.1, jest-worker@^26.6.2: +jest-worker@^26.5.0, jest-worker@^26.6.2: version "26.6.2" resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== @@ -16791,7 +17431,7 @@ js-levenshtein@^1.1.6: resolved "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== -js-string-escape@1.0.1: +js-string-escape@1.0.1, js-string-escape@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz#e2625badbc0d67c7533e9edc1068c587ae4137ef" integrity sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8= @@ -16801,11 +17441,6 @@ js-string-escape@1.0.1: resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= - js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.14.0, js-yaml@^3.6.1, js-yaml@^3.7.0, js-yaml@^3.8.3: version "3.14.1" resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" @@ -17077,7 +17712,7 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" -json5@^2.1.1, json5@^2.1.2, json5@^2.1.3: +json5@^2.1.2, json5@^2.1.3: version "2.2.0" resolved "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== @@ -17387,6 +18022,11 @@ kleur@^3.0.3: resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== +klona@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" + integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA== + knex@^0.95.1: version "0.95.6" resolved "https://registry.npmjs.org/knex/-/knex-0.95.6.tgz#5fc60ffc2935567bf122925526b1b06b8dbca785" @@ -17756,15 +18396,6 @@ loader-runner@^4.2.0: resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== -loader-utils@1.2.3: - version "1.2.3" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" - integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== - dependencies: - big.js "^5.2.2" - emojis-list "^2.0.0" - json5 "^1.0.1" - loader-utils@2.0.0, loader-utils@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" @@ -17998,7 +18629,7 @@ lodash.union@^4.6.0: resolved "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" integrity sha1-SLtQiECfFvGCFmZkHETdGqrjzYg= -lodash.uniq@^4.5.0: +lodash.uniq@4.5.0, lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= @@ -18013,7 +18644,7 @@ lodash@4.17.15: resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== -lodash@4.17.21, lodash@^4.0.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@~4.17.0, lodash@~4.17.15, lodash@~4.17.4: +lodash@4.17.21, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@~4.17.0, lodash@~4.17.15, lodash@~4.17.4: version "4.17.21" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -18213,6 +18844,13 @@ make-dir@^3.0.0, make-dir@^3.0.2: dependencies: semver "^6.0.0" +make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + make-error@^1, make-error@^1.1.1, make-error@^1.3.6: version "1.3.6" resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" @@ -18285,6 +18923,11 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" +markdown-escapes@^1.0.0: + version "1.0.4" + resolved "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535" + integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg== + markdown-it@^10.0.0: version "10.0.0" resolved "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz#abfc64f141b1722d663402044e43927f1f50a8dc" @@ -18314,24 +18957,11 @@ markdown-table@^2.0.0: dependencies: repeat-string "^1.0.0" -markdown-to-jsx@^6.11.4: - version "6.11.4" - resolved "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-6.11.4.tgz#b4528b1ab668aef7fe61c1535c27e837819392c5" - integrity sha512-3lRCD5Sh+tfA52iGgfs/XZiw33f7fFX9Bn55aNnVNUd2GzLDkOWyKYYD8Yju2B1Vn+feiEdgJs8T6Tg0xNokPw== - dependencies: - prop-types "^15.6.2" - unquote "^1.1.0" - -markdown-to-jsx@^7.1.0, markdown-to-jsx@^7.1.3: +markdown-to-jsx@^7.1.3: version "7.1.3" resolved "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.1.3.tgz#f00bae66c0abe7dd2d274123f84cb6bd2a2c7c6a" integrity sha512-jtQ6VyT7rMT5tPV0g2EJakEnXLiPksnvlYtwQsVVZ611JsWGN8bQ1tVSDX4s6JllfEH6wmsYxNjTUAMrPmNA8w== -material-colors@^1.2.1: - version "1.2.6" - resolved "https://registry.npmjs.org/material-colors/-/material-colors-1.2.6.tgz#6d1958871126992ceecc72f4bcc4d8f010865f46" - integrity sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg== - material-table@^1.69.1: version "1.69.1" resolved "https://registry.npmjs.org/material-table/-/material-table-1.69.1.tgz#8d1c8b23207f18bd3328cae1b5775ede284682e6" @@ -18371,6 +19001,20 @@ mdast-add-list-metadata@1.0.1: dependencies: unist-util-visit-parents "1.1.2" +mdast-squeeze-paragraphs@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz#7c4c114679c3bee27ef10b58e2e015be79f1ef97" + integrity sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ== + dependencies: + unist-util-remove "^2.0.0" + +mdast-util-definitions@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz#c5c1a84db799173b4dcf7643cda999e440c24db2" + integrity sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ== + dependencies: + unist-util-visit "^2.0.0" + mdast-util-from-markdown@^0.8.0: version "0.8.1" resolved "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.1.tgz#781371d493cac11212947226190270c15dc97116" @@ -18418,6 +19062,20 @@ mdast-util-gfm@^0.1.0: mdast-util-gfm-table "^0.1.0" mdast-util-gfm-task-list-item "^0.1.0" +mdast-util-to-hast@10.0.1: + version "10.0.1" + resolved "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz#0cfc82089494c52d46eb0e3edb7a4eb2aea021eb" + integrity sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + mdast-util-definitions "^4.0.0" + mdurl "^1.0.0" + unist-builder "^2.0.0" + unist-util-generated "^1.0.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + mdast-util-to-markdown@^0.5.0: version "0.5.3" resolved "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.5.3.tgz#e05c54a3ccd239bab63c48a1e5b5747f0dcd5aca" @@ -18445,7 +19103,7 @@ mdn-data@2.0.4: resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== -mdurl@^1.0.1: +mdurl@^1.0.0, mdurl@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= @@ -18463,7 +19121,7 @@ mem@^8.1.1: map-age-cleaner "^0.1.3" mimic-fn "^3.1.0" -memfs@^3.2.2: +memfs@^3.1.2, memfs@^3.2.2: version "3.2.2" resolved "https://registry.npmjs.org/memfs/-/memfs-3.2.2.tgz#5de461389d596e3f23d48bb7c2afb6161f4df40e" integrity sha512-RE0CwmIM3CEvpcdK3rZ19BC4E6hv9kADkMN5rPduRak58cNArWLi/9jFLsa4rhsjfVxMP3v0jO7FHXq7SvFY5Q== @@ -18719,7 +19377,7 @@ mime-types@^2.0.8, mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.17, m dependencies: mime-db "1.48.0" -mime-types@^2.1.31: +mime-types@^2.1.30, mime-types@^2.1.31: version "2.1.32" resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5" integrity sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A== @@ -19225,13 +19883,6 @@ napi-build-utils@^1.0.1: resolved "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== -native-url@^0.2.6: - version "0.2.6" - resolved "https://registry.npmjs.org/native-url/-/native-url-0.2.6.tgz#ca1258f5ace169c716ff44eccbddb674e10399ae" - integrity sha512-k4bDC87WtgrdD362gZz6zoiXQrl40kYlBmpfmSjwRO1VU0V5ccwJTlxuE72F6m3V0vc1xOf6n3UCP9QyerRqmA== - dependencies: - querystring "^0.2.0" - natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -19485,7 +20136,7 @@ node-pre-gyp@^0.15.0: semver "^5.3.0" tar "^4.4.2" -node-releases@^1.1.52, node-releases@^1.1.61, node-releases@^1.1.71: +node-releases@^1.1.61, node-releases@^1.1.71: version "1.1.72" resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe" integrity sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw== @@ -19697,6 +20348,13 @@ nth-check@^1.0.2, nth-check@~1.0.1: dependencies: boolbase "~1.0.0" +nth-check@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz#1bb4f6dac70072fc313e8c9cd1417b5074c0a125" + integrity sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q== + dependencies: + boolbase "^1.0.0" + nullthrows@^1.0.0, nullthrows@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1" @@ -20039,7 +20697,7 @@ outdent@^0.5.0: resolved "https://registry.npmjs.org/outdent/-/outdent-0.5.0.tgz#9e10982fdc41492bb473ad13840d22f9655be2ff" integrity sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q== -overlayscrollbars@^1.10.2, overlayscrollbars@^1.13.1: +overlayscrollbars@^1.13.1: version "1.13.1" resolved "https://registry.npmjs.org/overlayscrollbars/-/overlayscrollbars-1.13.1.tgz#0b840a88737f43a946b9d87875a2f9e421d0338a" integrity sha512-gIQfzgGgu1wy80EB4/6DaJGHMEGmizq27xHIESrzXq0Y/J0Ay1P3DWk6tuVmEPIZH15zaBlxeEJOqdJKmowHCQ== @@ -20393,6 +21051,11 @@ parse5@5.1.1: resolved "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== +parse5@^6.0.0: + version "6.0.1" + resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + parseurl@^1.3.2, parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -20840,7 +21503,14 @@ pkg-dir@^4.1.0, pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" -pkg-up@3.1.0, pkg-up@^3.1.0: +pkg-dir@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760" + integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA== + dependencies: + find-up "^5.0.0" + +pkg-up@3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== @@ -20898,13 +21568,6 @@ pnp-webpack-plugin@1.6.4: dependencies: ts-pnp "^1.1.6" -polished@^3.4.4: - version "3.6.5" - resolved "https://registry.npmjs.org/polished/-/polished-3.6.5.tgz#dbefdde64c675935ec55119fe2a2ab627ca82e9c" - integrity sha512-VwhC9MlhW7O5dg/z7k32dabcAFW1VI2+7fSe8cE/kXcfL7mVdoa5UxciYGW2sJU78ldDLT6+ROEKIZKFNTnUXQ== - dependencies: - "@babel/runtime" "^7.9.2" - polished@^4.0.5: version "4.1.3" resolved "https://registry.npmjs.org/polished/-/polished-4.1.3.tgz#7a3abf2972364e7d97770b827eec9a9e64002cfc" @@ -20987,21 +21650,13 @@ postcss-discard-overridden@^4.0.1: dependencies: postcss "^7.0.0" -postcss-flexbugs-fixes@^4.1.0: - version "4.2.0" - resolved "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.0.tgz#662b3dcb6354638b9213a55eed8913bcdc8d004a" - integrity sha512-QRE0n3hpkxxS/OGvzOa+PDuy4mh/Jg4o9ui22/ko5iGYOG3M5dfJabjnAZjTdh2G9F85c7Hv8hWcEDEKW/xceQ== +postcss-flexbugs-fixes@^4.2.1: + version "4.2.1" + resolved "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz#9218a65249f30897deab1033aced8578562a6690" + integrity sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ== dependencies: postcss "^7.0.26" -postcss-load-config@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz#c84d692b7bb7b41ddced94ee62e8ab31b417b003" - integrity sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q== - dependencies: - cosmiconfig "^5.0.0" - import-cwd "^2.0.0" - postcss-load-config@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.0.1.tgz#d214bf9cfec1608ffaf0f4161b3ba20664ab64b9" @@ -21010,15 +21665,16 @@ postcss-load-config@^3.0.0: cosmiconfig "^7.0.0" import-cwd "^3.0.0" -postcss-loader@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" - integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== +postcss-loader@^4.2.0: + version "4.3.0" + resolved "https://registry.npmjs.org/postcss-loader/-/postcss-loader-4.3.0.tgz#2c4de9657cd4f07af5ab42bd60a673004da1b8cc" + integrity sha512-M/dSoIiNDOo8Rk0mUqoj4kpGq91gcxCfb9PoyZVdZ76/AuhxylHDYZblNE8o+EQ9AMSASeMFEKxZf5aU6wlx1Q== dependencies: - loader-utils "^1.1.0" - postcss "^7.0.0" - postcss-load-config "^2.0.0" - schema-utils "^1.0.0" + cosmiconfig "^7.0.0" + klona "^2.0.4" + loader-utils "^2.0.0" + schema-utils "^3.0.0" + semver "^7.3.4" postcss-merge-longhand@^4.0.11: version "4.0.11" @@ -21324,6 +21980,15 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2, postcss-value-parser@^ source-map "^0.6.1" supports-color "^6.1.0" +postcss@^7.0.36: + version "7.0.36" + resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz#056f8cffa939662a8f5905950c07d5285644dfcb" + integrity sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + postcss@^8.1.0, postcss@^8.2.15: version "8.3.5" resolved "https://registry.npmjs.org/postcss/-/postcss-8.3.5.tgz#982216b113412bc20a86289e91eb994952a5b709" @@ -21414,7 +22079,7 @@ prettier@^1.19.1: resolved "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== -prettier@^2.2.1, prettier@~2.2.1: +prettier@^2.2.1: version "2.2.1" resolved "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== @@ -21432,6 +22097,14 @@ pretty-error@^2.1.1: renderkid "^2.0.1" utila "~0.4" +pretty-error@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/pretty-error/-/pretty-error-3.0.4.tgz#94b1d54f76c1ed95b9c604b9de2194838e5b574e" + integrity sha512-ytLFLfv1So4AO1UkoBF6GXQgJRaKbiSiGFICaOPNwQ3CMvBvXpLRubeQWyPGnsbV/t9ml9qto6IeCsho0aEvwQ== + dependencies: + lodash "^4.17.20" + renderkid "^2.0.6" + pretty-format@^24.9.0: version "24.9.0" resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" @@ -21542,6 +22215,14 @@ prompts@2.4.0, prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.5" +prompts@^2.4.0: + version "2.4.1" + resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz#befd3b1195ba052f9fd2fde8a486c4e82ee77f61" + integrity sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + promzard@^0.3.0: version "0.3.0" resolved "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee" @@ -21570,6 +22251,13 @@ property-information@^5.0.0: dependencies: xtend "^4.0.0" +property-information@^5.3.0: + version "5.6.0" + resolved "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz#61675545fb23002f245c6540ec46077d4da3ed69" + integrity sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA== + dependencies: + xtend "^4.0.0" + proto-list@~1.2.1: version "1.2.4" resolved "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" @@ -21717,7 +22405,7 @@ qs@6.7.0: resolved "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== -qs@^6.10.0, qs@^6.10.1, qs@^6.5.1, qs@^6.5.2, qs@^6.6.0, qs@^6.7.0, qs@^6.9.1, qs@^6.9.4, qs@^6.9.6: +qs@^6.10.0, qs@^6.10.1, qs@^6.5.1, qs@^6.5.2, qs@^6.7.0, qs@^6.9.1, qs@^6.9.4, qs@^6.9.6: version "6.10.1" resolved "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz#4931482fa8d647a5aab799c5271d2133b981fb6a" integrity sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg== @@ -21841,7 +22529,7 @@ raw-body@^2.4.1: iconv-lite "0.4.24" unpipe "1.0.0" -raw-loader@^4.0.1: +raw-loader@^4.0.1, raw-loader@^4.0.2: version "4.0.2" resolved "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz#1aac6b7d1ad1501e66efdac1522c73e59a584eb6" integrity sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA== @@ -21880,19 +22568,7 @@ react-beautiful-dnd@^13.0.0: redux "^4.0.4" use-memo-one "^1.1.1" -react-color@^2.17.0: - version "2.18.1" - resolved "https://registry.npmjs.org/react-color/-/react-color-2.18.1.tgz#2cda8cc8e06a9e2c52ad391a30ddad31972472f4" - integrity sha512-X5XpyJS6ncplZs74ak0JJoqPi+33Nzpv5RYWWxn17bslih+X7OlgmfpmGC1fNvdkK7/SGWYf1JJdn7D2n5gSuQ== - dependencies: - "@icons/material" "^0.2.4" - lodash "^4.17.11" - material-colors "^1.2.1" - prop-types "^15.5.10" - reactcss "^1.2.0" - tinycolor2 "^1.4.1" - -react-colorful@^5.0.1, react-colorful@^5.1.2: +react-colorful@^5.1.2: version "5.2.2" resolved "https://registry.npmjs.org/react-colorful/-/react-colorful-5.2.2.tgz#0a69d0648db47e51359d343854d83d250a742243" integrity sha512-Xdb1Rl6lZ5SMdNBH59eE0lGqR1g2LVD8IgPlw0WeMDrOC65lYI8fgMEwj/0dDpVRVMh5qp73ciISDst/t2O2iQ== @@ -21913,37 +22589,7 @@ react-debounce-input@^3.2.3: lodash.debounce "^4" prop-types "^15.7.2" -react-dev-utils@^10.0.0: - version "10.2.1" - resolved "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-10.2.1.tgz#f6de325ae25fa4d546d09df4bb1befdc6dd19c19" - integrity sha512-XxTbgJnYZmxuPtY3y/UV0D8/65NKkmaia4rXzViknVnZeVlklSh8u6TnaEYPfAi/Gh1TP4mEOXHI6jQOPbeakQ== - dependencies: - "@babel/code-frame" "7.8.3" - address "1.1.2" - browserslist "4.10.0" - chalk "2.4.2" - cross-spawn "7.0.1" - detect-port-alt "1.1.6" - escape-string-regexp "2.0.0" - filesize "6.0.1" - find-up "4.1.0" - fork-ts-checker-webpack-plugin "3.1.1" - global-modules "2.0.0" - globby "8.0.2" - gzip-size "5.1.1" - immer "1.10.0" - inquirer "7.0.4" - is-root "2.1.0" - loader-utils "1.2.3" - open "^7.0.2" - pkg-up "3.1.0" - react-error-overlay "^6.0.7" - recursive-readdir "2.2.2" - shell-quote "1.7.2" - strip-ansi "6.0.0" - text-table "0.2.0" - -react-dev-utils@^11.0.4: +react-dev-utils@^11.0.3, react-dev-utils@^11.0.4: version "11.0.4" resolved "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-11.0.4.tgz#a7ccb60257a1ca2e0efe7a83e38e6700d17aa37a" integrity sha512-dx0LvIGHcOPtKbeiSUM4jqpBl3TcY7CDjZdfOIcKeznE7BWr9dg0iPG90G5yfVQ+p/rGNMXdbfStvzQZEVEi4A== @@ -21973,21 +22619,10 @@ react-dev-utils@^11.0.4: strip-ansi "6.0.0" text-table "0.2.0" -react-docgen-typescript-plugin@^0.6.2: - version "0.6.3" - resolved "https://registry.npmjs.org/react-docgen-typescript-plugin/-/react-docgen-typescript-plugin-0.6.3.tgz#664b22601df083597ecb1e60bd21beca60125fdf" - integrity sha512-av1S/fmWBNFGgNa4qtkidFjjOz23eEi6EdCtwSWo9WNhGzUMyMygbD/DosMWoeFlZpk9R3MXPkRE7PDH6j5GMQ== - dependencies: - debug "^4.1.1" - endent "^2.0.1" - micromatch "^4.0.2" - react-docgen-typescript "^1.20.5" - tslib "^2.0.0" - -react-docgen-typescript@^1.20.5: - version "1.20.5" - resolved "https://registry.npmjs.org/react-docgen-typescript/-/react-docgen-typescript-1.20.5.tgz#fb8d78a707243498436c2952bd3f6f488a68d4f3" - integrity sha512-AbLGMtn76bn7SYBJSSaKJrZ0lgNRRR3qL60PucM5M4v/AXyC8221cKBXW5Pyt9TfDRfe+LDnPNlg7TibxX0ovA== +react-docgen-typescript@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/react-docgen-typescript/-/react-docgen-typescript-2.1.0.tgz#20db64a7fd62e63a8a9469fb4abd90600878cbb2" + integrity sha512-7kpzLsYzVxff//HUVz1sPWLCdoSNvHD3M8b/iQLdF8fgf7zp26eVysRrAUSxiAT4yQv2zl09zHjJEYSYNxQ8Jw== react-docgen@^5.0.0: version "5.3.0" @@ -22018,15 +22653,15 @@ react-double-scrollbar@0.0.15: resolved "https://registry.npmjs.org/react-double-scrollbar/-/react-double-scrollbar-0.0.15.tgz#e915ab8cb3b959877075f49436debfdb04288fe4" integrity sha1-6RWrjLO5WYdwdfSUNt6/2wQoj+Q= -react-draggable@^4.0.3: - version "4.2.0" - resolved "https://registry.npmjs.org/react-draggable/-/react-draggable-4.2.0.tgz#40cc5209082ca7d613104bf6daf31372cc0e1114" - integrity sha512-5wFq//gEoeTYprnd4ze8GrFc+Rbnx+9RkOMR3vk4EbWxj02U6L6T3yrlKeiw4X5CtjD2ma2+b3WujghcXNRzkw== +react-draggable@^4.4.3: + version "4.4.3" + resolved "https://registry.npmjs.org/react-draggable/-/react-draggable-4.4.3.tgz#0727f2cae5813e36b0e4962bf11b2f9ef2b406f3" + integrity sha512-jV4TE59MBuWm7gb6Ns3Q1mxX8Azffb7oTtDtBgFkxRvhDp38YAARmRplrj0+XGkhOJB5XziArX+4HUUABtyZ0w== dependencies: classnames "^2.2.5" prop-types "^15.6.0" -react-error-overlay@^6.0.7, react-error-overlay@^6.0.9: +react-error-overlay@^6.0.9: version "6.0.9" resolved "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz#3c743010c9359608c375ecd6bc76f35d93995b0a" integrity sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew== @@ -22036,20 +22671,20 @@ react-fast-compare@^2.0.4: resolved "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz#e84b4d455b0fec113e0402c329352715196f81f9" integrity sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw== -react-fast-compare@^3.0.1, react-fast-compare@^3.1.1: +react-fast-compare@^3.0.1, react-fast-compare@^3.1.1, react-fast-compare@^3.2.0: version "3.2.0" resolved "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz#641a9da81b6a6320f270e89724fb45a0b39e43bb" integrity sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA== -react-helmet-async@^1.0.2: - version "1.0.4" - resolved "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.0.4.tgz#079ef10b7fefcaee6240fefd150711e62463cc97" - integrity sha512-KTGHE9sz8N7+fCkZ2a3vzXH9eIkiTNhL2NhKR7XzzQl3WsGlCHh76arauJUIiGdfhjeMp7DY7PkASAmYFXeJYg== +react-helmet-async@^1.0.7: + version "1.0.9" + resolved "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.0.9.tgz#5b9ed2059de6b4aab47f769532f9fbcbce16c5ca" + integrity sha512-N+iUlo9WR3/u9qGMmP4jiYfaD6pe9IvDTapZLFJz2D3xlTlCM1Bzy4Ab3g72Nbajo/0ZyW+W9hdz8Hbe4l97pQ== dependencies: - "@babel/runtime" "^7.3.4" + "@babel/runtime" "^7.12.5" invariant "^2.2.4" prop-types "^15.7.2" - react-fast-compare "^2.0.4" + react-fast-compare "^3.2.0" shallowequal "^1.1.0" react-helmet@6.1.0: @@ -22086,13 +22721,6 @@ react-hot-loader@^4.12.21: shallowequal "^1.1.0" source-map "^0.7.3" -react-hotkeys@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/react-hotkeys/-/react-hotkeys-2.0.0.tgz#a7719c7340cbba888b0e9184f806a9ec0ac2c53f" - integrity sha512-3n3OU8vLX/pfcJrR3xJ1zlww6KS1kEJt0Whxc4FiGV+MJrQ1mYSYI3qS/11d2MJDFm8IhOXMTFQirfu6AVOF6Q== - dependencies: - prop-types "^15.6.1" - react-immutable-proptypes@2.2.0: version "2.2.0" resolved "https://registry.npmjs.org/react-immutable-proptypes/-/react-immutable-proptypes-2.2.0.tgz#cce96d68cc3c18e89617cbf3092d08e35126af4a" @@ -22135,6 +22763,11 @@ react-is@^16.7.0, react-is@^16.8.0, react-is@^16.8.1, react-is@^16.8.4, react-is resolved "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz#5b3531bd76a645a4c9fb6e693ed36419e3301339" integrity sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA== +react-is@^17.0.2: + version "17.0.2" + resolved "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + react-lazylog@^4.5.2, react-lazylog@^4.5.3: version "4.5.3" resolved "https://registry.npmjs.org/react-lazylog/-/react-lazylog-4.5.3.tgz#289e24995b5599e75943556ac63f5e2c04d0001e" @@ -22220,10 +22853,10 @@ react-redux@^7.1.1: prop-types "^15.7.2" react-is "^16.9.0" -react-refresh@^0.8.3: - version "0.8.3" - resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f" - integrity sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg== +react-refresh@^0.10.0: + version "0.10.0" + resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.10.0.tgz#2f536c9660c0b9b1d500684d9e52a65e7404f7e3" + integrity sha512-PgidR3wST3dDYKr6b4pJoqQFpPGNKDSCDx4cZoshjXipw3LzO7mG1My2pwEzz2JVkF+inx3xRpDeQLFQGH/hsQ== react-resize-detector@^2.3.0: version "2.3.0" @@ -22255,16 +22888,6 @@ react-side-effect@^2.1.0: resolved "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.0.tgz#1ce4a8b4445168c487ed24dab886421f74d380d3" integrity sha512-IgmcegOSi5SNX+2Snh1vqmF0Vg/CbkycU9XZbOHJlZ6kMzTmi3yc254oB1WCkgA7OQtIAoLmcSFuHTc/tlcqXg== -react-sizeme@^2.6.7: - version "2.6.12" - resolved "https://registry.npmjs.org/react-sizeme/-/react-sizeme-2.6.12.tgz#ed207be5476f4a85bf364e92042520499455453e" - integrity sha512-tL4sCgfmvapYRZ1FO2VmBmjPVzzqgHA7kI8lSJ6JS6L78jXFNRdOZFpXyK6P1NBZvKPPCZxReNgzZNUajAerZw== - dependencies: - element-resize-detector "^1.2.1" - invariant "^2.2.4" - shallowequal "^1.1.0" - throttle-debounce "^2.1.0" - react-sizeme@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/react-sizeme/-/react-sizeme-3.0.1.tgz#4d12f4244e0e6a0fb97253e7af0314dc7c83a5a0" @@ -22299,7 +22922,7 @@ react-string-replace@^0.4.1: dependencies: lodash "^4.17.4" -react-syntax-highlighter@^13.5.0, react-syntax-highlighter@^13.5.3: +react-syntax-highlighter@^13.5.3: version "13.5.3" resolved "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-13.5.3.tgz#9712850f883a3e19eb858cf93fad7bb357eea9c6" integrity sha512-crPaF+QGPeHNIblxxCdf2Lg936NAHKhNhuMzRL3F9ct6aYXL3NcZtCL0Rms9+qVo6Y1EQLdXGypBNSbPL/r+qg== @@ -22338,7 +22961,7 @@ react-text-truncate@^0.16.0: dependencies: prop-types "^15.5.7" -react-textarea-autosize@^8.1.1, react-textarea-autosize@^8.3.0: +react-textarea-autosize@^8.3.0: version "8.3.3" resolved "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.3.3.tgz#f70913945369da453fd554c168f6baacd1fa04d8" integrity sha512-2XlHXK2TDxS6vbQaoPbMOfQ8GK7+irc2fVK6QFIcC8GOnH3zI/v481n+j1L0WaPVvKxwesnY93fEfH++sus2rQ== @@ -22435,13 +23058,6 @@ react@^16.0.0, react@^16.12.0, react@^16.13.1: object-assign "^4.1.1" prop-types "^15.6.2" -reactcss@^1.2.0: - version "1.2.3" - resolved "https://registry.npmjs.org/reactcss/-/reactcss-1.2.3.tgz#c00013875e557b1cf0dfd9a368a1c3dab3b548dd" - integrity sha512-KiwVUcFu1RErkI97ywr8nvx8dNOpT03rbnma0SSalTYjkrPYaEajR4a/MRt6DZ46K6arDRbWMNHF+xH7G7n/8A== - dependencies: - lodash "^4.0.1" - read-cmd-shim@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz#4a50a71d6f0965364938e9038476f7eede3928d9" @@ -22883,6 +23499,11 @@ relay-runtime@10.1.0: "@babel/runtime" "^7.0.0" fbjs "^3.0.0" +remark-footnotes@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-2.0.0.tgz#9001c4c2ffebba55695d2dd80ffb8b82f7e6303f" + integrity sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ== + remark-gfm@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/remark-gfm/-/remark-gfm-1.0.0.tgz#9213643001be3f277da6256464d56fd28c3b3c0d" @@ -22891,6 +23512,42 @@ remark-gfm@^1.0.0: mdast-util-gfm "^0.1.0" micromark-extension-gfm "^0.3.0" +remark-mdx@1.6.22: + version "1.6.22" + resolved "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz#06a8dab07dcfdd57f3373af7f86bd0e992108bbd" + integrity sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ== + dependencies: + "@babel/core" "7.12.9" + "@babel/helper-plugin-utils" "7.10.4" + "@babel/plugin-proposal-object-rest-spread" "7.12.1" + "@babel/plugin-syntax-jsx" "7.12.1" + "@mdx-js/util" "1.6.22" + is-alphabetical "1.0.4" + remark-parse "8.0.3" + unified "9.2.0" + +remark-parse@8.0.3: + version "8.0.3" + resolved "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz#9c62aa3b35b79a486454c690472906075f40c7e1" + integrity sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q== + dependencies: + ccount "^1.0.0" + collapse-white-space "^1.0.2" + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + is-whitespace-character "^1.0.0" + is-word-character "^1.0.0" + markdown-escapes "^1.0.0" + parse-entities "^2.0.0" + repeat-string "^1.5.4" + state-toggle "^1.0.0" + trim "0.0.1" + trim-trailing-lines "^1.0.0" + unherit "^1.0.4" + unist-util-remove-position "^2.0.0" + vfile-location "^3.0.0" + xtend "^4.0.1" + remark-parse@^9.0.0: version "9.0.0" resolved "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz#4d20a299665880e4f4af5d90b7c7b8a935853640" @@ -22898,6 +23555,13 @@ remark-parse@^9.0.0: dependencies: mdast-util-from-markdown "^0.8.0" +remark-squeeze-paragraphs@4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz#76eb0e085295131c84748c8e43810159c5653ead" + integrity sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw== + dependencies: + mdast-squeeze-paragraphs "^4.0.0" + remarkable@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/remarkable/-/remarkable-2.0.1.tgz#280ae6627384dfb13d98ee3995627ca550a12f31" @@ -22932,12 +23596,23 @@ renderkid@^2.0.1: strip-ansi "^3.0.0" utila "^0.4.0" +renderkid@^2.0.6: + version "2.0.7" + resolved "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609" + integrity sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ== + dependencies: + css-select "^4.1.3" + dom-converter "^0.2.0" + htmlparser2 "^6.1.0" + lodash "^4.17.21" + strip-ansi "^3.0.1" + repeat-element@^1.1.2: version "1.1.3" resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== -repeat-string@^1.0.0, repeat-string@^1.5.2, repeat-string@^1.6.1: +repeat-string@^1.0.0, repeat-string@^1.5.2, repeat-string@^1.5.4, repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= @@ -23084,7 +23759,7 @@ resolve-url@^0.2.1: resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.19.0, resolve@^1.9.0: +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.19.0, resolve@^1.3.2, resolve@^1.9.0: version "1.20.0" resolved "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -23319,7 +23994,7 @@ rtl-css-js@^1.14.0: dependencies: "@babel/runtime" "^7.1.2" -run-async@^2.2.0, run-async@^2.4.0: +run-async@^2.4.0: version "2.4.0" resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz#e59054a5b86876cfae07f431d18cbaddc594f1e8" integrity sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg== @@ -23343,7 +24018,7 @@ run-script-webpack-plugin@^0.0.11: resolved "https://registry.npmjs.org/run-script-webpack-plugin/-/run-script-webpack-plugin-0.0.11.tgz#04c510bed06b907fa2285e75feece71a25691171" integrity sha512-QmuBhiqBPmhQLpO5vMBHVTAGyoPBnrCM5gQ3IzgieiImBXiBbXcIv4kysCT1gilFNFxQk22oKQfiIhWbT/zXCw== -rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.5.3, rxjs@^6.5.5, rxjs@^6.6.0: +rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.5.5, rxjs@^6.6.0: version "6.6.2" resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz#8096a7ac03f2cc4fe5860ef6e572810d9e01c0d2" integrity sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg== @@ -23455,6 +24130,15 @@ scheduler@^0.19.0, scheduler@^0.19.1: loose-envify "^1.1.0" object-assign "^4.1.1" +schema-utils@2.7.0: + version "2.7.0" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" + integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== + dependencies: + "@types/json-schema" "^7.0.4" + ajv "^6.12.2" + ajv-keywords "^3.4.1" + schema-utils@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" @@ -23624,10 +24308,10 @@ serialize-javascript@^2.1.2: resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== -serialize-javascript@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" - integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== +serialize-javascript@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" + integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== dependencies: randombytes "^2.1.0" @@ -24332,6 +25016,11 @@ start-server-and-test@^1.10.11: ps-tree "1.2.0" wait-on "6.0.0" +state-toggle@^1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe" + integrity sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ== + static-extend@^0.1.1: version "0.1.2" resolved "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" @@ -24360,15 +25049,15 @@ stoppable@^1.1.0: resolved "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz#32da568e83ea488b08e4d7ea2c3bcc9d75015d5b" integrity sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw== -store2@^2.12.0, store2@^2.7.1: +store2@^2.12.0: version "2.12.0" resolved "https://registry.npmjs.org/store2/-/store2-2.12.0.tgz#e1f1b7e1a59b6083b2596a8d067f6ee88fd4d3cf" integrity sha512-7t+/wpKLanLzSnQPX8WAcuLCCeuSHoWdQuh9SB3xD0kNOM38DNf+0Oa+wmvxmYueRzkmh6IcdKFtvTa+ecgPDw== -storybook-dark-mode@^1.0.3: - version "1.0.8" - resolved "https://registry.npmjs.org/storybook-dark-mode/-/storybook-dark-mode-1.0.8.tgz#bbd64b382fd62d38685fdd769e2cac4e32ec293d" - integrity sha512-uY6yTSd1vYE0YwlON50u+iIoNF/fmMj59ww1cpd/naUcmOmCjwawViKFG5YjichwdR/yJ5ybWRUF0tnRQfaSiw== +storybook-dark-mode@^1.0.9-canary.158.3571.0: + version "1.0.9-canary.158.3571.0" + resolved "https://registry.npmjs.org/storybook-dark-mode/-/storybook-dark-mode-1.0.9-canary.158.3571.0.tgz#b213521e9d6e1f31fa030c7b684902837cf782d6" + integrity sha512-xfnPJkP8o6VW92rbQVwafL4zn611Drrnx6OgBIiuqIT7D+xzTOzsQ+fJYo14I+Ggwbam1Cri3xeOjrShi0Yehg== dependencies: fast-deep-equal "^3.0.0" memoizerific "^1.11.3" @@ -24700,6 +25389,29 @@ style-loader@^1.2.1: loader-utils "^2.0.0" schema-utils "^2.6.6" +style-loader@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/style-loader/-/style-loader-1.3.0.tgz#828b4a3b3b7e7aa5847ce7bae9e874512114249e" + integrity sha512-V7TCORko8rs9rIqkSrlMfkqA63DfoGBBJmK1kKGCcSi+BWb4cqz0SRsnp4l6rU5iwOEd0/2ePv68SV22VXon4Q== + dependencies: + loader-utils "^2.0.0" + schema-utils "^2.7.0" + +style-loader@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/style-loader/-/style-loader-2.0.0.tgz#9669602fd4690740eaaec137799a03addbbc393c" + integrity sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +style-to-object@0.3.0, style-to-object@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz#b1b790d205991cc783801967214979ee19a76e46" + integrity sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA== + dependencies: + inline-style-parser "0.1.1" + stylehacks@^4.0.0: version "4.0.3" resolved "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" @@ -25074,7 +25786,7 @@ teeny-request@^7.0.0: stream-events "^1.0.5" uuid "^8.0.0" -telejson@^5.0.2, telejson@^5.1.0, telejson@^5.3.2: +telejson@^5.3.2: version "5.3.3" resolved "https://registry.npmjs.org/telejson/-/telejson-5.3.3.tgz#fa8ca84543e336576d8734123876a9f02bf41d2e" integrity sha512-PjqkJZpzEggA9TBpVtJi1LVptP7tYtXB6rEubwlHap76AMjzvOdKX41CxyaW7ahhzDU1aftXnMCx5kAPDZTQBA== @@ -25146,22 +25858,22 @@ terser-webpack-plugin@^1.4.3: webpack-sources "^1.4.0" worker-farm "^1.7.0" -terser-webpack-plugin@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-3.1.0.tgz#91e6d39571460ed240c0cf69d295bcf30ebf98cb" - integrity sha512-cjdZte66fYkZ65rQ2oJfrdCAkkhJA7YLYk5eGOcGCSGlq0ieZupRdjedSQXYknMPo2IveQL+tPdrxUkERENCFA== +terser-webpack-plugin@^4.2.3: + version "4.2.3" + resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz#28daef4a83bd17c1db0297070adc07fc8cfc6a9a" + integrity sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ== dependencies: cacache "^15.0.5" find-cache-dir "^3.3.1" - jest-worker "^26.2.1" + jest-worker "^26.5.0" p-limit "^3.0.2" - schema-utils "^2.6.6" - serialize-javascript "^4.0.0" + schema-utils "^3.0.0" + serialize-javascript "^5.0.1" source-map "^0.6.1" - terser "^4.8.0" + terser "^5.3.4" webpack-sources "^1.4.3" -terser-webpack-plugin@^5.1.3: +terser-webpack-plugin@^5.0.3, terser-webpack-plugin@^5.1.3: version "5.1.4" resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz#c369cf8a47aa9922bd0d8a94fe3d3da11a7678a1" integrity sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA== @@ -25173,7 +25885,7 @@ terser-webpack-plugin@^5.1.3: source-map "^0.6.1" terser "^5.7.0" -terser@^4.1.2, terser@^4.6.3, terser@^4.8.0: +terser@^4.1.2, terser@^4.6.3: version "4.8.0" resolved "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== @@ -25182,7 +25894,7 @@ terser@^4.1.2, terser@^4.6.3, terser@^4.8.0: source-map "~0.6.1" source-map-support "~0.5.12" -terser@^5.7.0: +terser@^5.3.4, terser@^5.7.0: version "5.7.1" resolved "https://registry.npmjs.org/terser/-/terser-5.7.1.tgz#2dc7a61009b66bb638305cb2a824763b116bf784" integrity sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg== @@ -25258,7 +25970,7 @@ throat@^5.0.0: resolved "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== -throttle-debounce@^2.0.1, throttle-debounce@^2.1.0: +throttle-debounce@^2.0.1: version "2.2.1" resolved "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-2.2.1.tgz#fbd933ae6793448816f7d5b3cae259d464c98137" integrity sha512-i9hAVld1f+woAiyNGqWelpDD5W1tpMroL3NofTz9xzwq6acWBlO2dC8k5EFSZepU6oOINtV5Q3aSPoRg7o4+fA== @@ -25351,11 +26063,6 @@ tiny-warning@^1.0.2: resolved "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== -tinycolor2@^1.4.1: - version "1.4.1" - resolved "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz#f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8" - integrity sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g= - title-case@^3.0.3: version "3.0.3" resolved "https://registry.npmjs.org/title-case/-/title-case-3.0.3.tgz#bc689b46f02e411f1d1e1d081f7c3deca0489982" @@ -25538,6 +26245,16 @@ trim-off-newlines@^1.0.0: resolved "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz#9f9ba9d9efa8764c387698bcbfeb2c848f11adb3" integrity sha1-n5up2e+odkw4dpi8v+sshI8RrbM= +trim-trailing-lines@^1.0.0: + version "1.1.4" + resolved "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz#bd4abbec7cc880462f10b2c8b5ce1d8d1ec7c2c0" + integrity sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ== + +trim@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" + integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= + triple-beam@^1.2.0, triple-beam@^1.3.0: version "1.3.0" resolved "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9" @@ -25903,10 +26620,18 @@ underscore@^1.12.1, underscore@^1.9.1: resolved "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz#0c1c6bd2df54b6b69f2314066d65b6cde6fcf9d1" integrity sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g== -unfetch@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/unfetch/-/unfetch-4.1.0.tgz#6ec2dd0de887e58a4dee83a050ded80ffc4137db" - integrity sha512-crP/n3eAPUJxZXM9T80/yv0YhkTEx2K1D3h7D1AJM6fzsWZrxdyRuLN0JH/dkZh1LNH8LxCnBzoPFCPbb2iGpg== +unfetch@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz#7e21b0ef7d363d8d9af0fb929a5555f6ef97a3be" + integrity sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA== + +unherit@^1.0.4: + version "1.1.3" + resolved "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz#6c9b503f2b41b262330c80e91c8614abdaa69c22" + integrity sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ== + dependencies: + inherits "^2.0.0" + xtend "^4.0.0" unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" @@ -25931,7 +26656,7 @@ unicode-property-aliases-ecmascript@^1.0.4: resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== -unified@^9.0.0: +unified@9.2.0, unified@^9.0.0: version "9.2.0" resolved "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz#67a62c627c40589edebbf60f53edfd4d822027f8" integrity sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg== @@ -25991,11 +26716,40 @@ unique-string@^2.0.0: dependencies: crypto-random-string "^2.0.0" +unist-builder@2.0.3, unist-builder@^2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz#77648711b5d86af0942f334397a33c5e91516436" + integrity sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw== + +unist-util-generated@^1.0.0: + version "1.1.6" + resolved "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz#5ab51f689e2992a472beb1b35f2ce7ff2f324d4b" + integrity sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg== + unist-util-is@^4.0.0: version "4.0.3" resolved "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.3.tgz#e8b44db55fc20c43752b3346c116344d45d7c91d" integrity sha512-bTofCFVx0iQM8Jqb1TBDVRIQW03YkD3p66JOd/aCWuqzlLyUtx1ZAGw/u+Zw+SttKvSVcvTiKYbfrtLoLefykw== +unist-util-position@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz#1c42ee6301f8d52f47d14f62bbdb796571fa2d47" + integrity sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA== + +unist-util-remove-position@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz#5d19ca79fdba712301999b2b73553ca8f3b352cc" + integrity sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA== + dependencies: + unist-util-visit "^2.0.0" + +unist-util-remove@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.1.0.tgz#b0b4738aa7ee445c402fda9328d604a02d010588" + integrity sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q== + dependencies: + unist-util-is "^4.0.0" + unist-util-stringify-position@^2.0.0: version "2.0.3" resolved "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" @@ -26016,7 +26770,7 @@ unist-util-visit-parents@^3.0.0: "@types/unist" "^2.0.0" unist-util-is "^4.0.0" -unist-util-visit@^2.0.0: +unist-util-visit@2.0.3, unist-util-visit@^2.0.0: version "2.0.3" resolved "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c" integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q== @@ -26072,7 +26826,7 @@ unpipe@1.0.0, unpipe@~1.0.0: resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= -unquote@^1.1.0, unquote@~1.1.1: +unquote@~1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= @@ -26166,7 +26920,7 @@ url-join@^4.0.0: resolved "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz#b642e21a2646808ffa178c4c5fda39844e12cde7" integrity sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA== -url-loader@^4.0.0, url-loader@^4.1.0: +url-loader@^4.1.0, url-loader@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== @@ -26431,6 +27185,11 @@ verror@1.10.0, verror@^1.8.1: core-util-is "1.0.2" extsprintf "^1.2.0" +vfile-location@^3.0.0, vfile-location@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz#d8e41fbcbd406063669ebf6c33d56ae8721d0f3c" + integrity sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA== + vfile-message@^2.0.0: version "2.0.4" resolved "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" @@ -26544,6 +27303,11 @@ wcwidth@^1.0.0, wcwidth@^1.0.1: dependencies: defaults "^1.0.3" +web-namespaces@^1.0.0: + version "1.1.4" + resolved "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz#bc98a3de60dadd7faefc403d1076d529f5e030ec" + integrity sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw== + webidl-conversions@^4.0.2: version "4.0.2" resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" @@ -26559,10 +27323,10 @@ webidl-conversions@^6.1.0: resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== -webpack-dev-middleware@^3.7.0: - version "3.7.2" - resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" - integrity sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw== +webpack-dev-middleware@^3.7.3: + version "3.7.3" + resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" + integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== dependencies: memory-fs "^0.4.1" mime "^2.4.4" @@ -26570,6 +27334,18 @@ webpack-dev-middleware@^3.7.0: range-parser "^1.2.1" webpack-log "^2.0.0" +webpack-dev-middleware@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-4.3.0.tgz#179cc40795882cae510b1aa7f3710cbe93c9333e" + integrity sha512-PjwyVY95/bhBh6VUqt6z4THplYcsvQ8YNNBTBM873xLVmw8FLeALn0qurHbs9EmcfhzQis/eoqypSnZeuUz26w== + dependencies: + colorette "^1.2.2" + mem "^8.1.1" + memfs "^3.2.2" + mime-types "^2.1.30" + range-parser "^1.2.1" + schema-utils "^3.0.0" + webpack-dev-middleware@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.0.0.tgz#0abe825275720e0a339978aea5f0b03b140c1584" @@ -26662,10 +27438,15 @@ webpack-virtual-modules@^0.2.2: dependencies: debug "^3.0.0" -webpack@^4.44.2: - version "4.44.2" - resolved "https://registry.npmjs.org/webpack/-/webpack-4.44.2.tgz#6bfe2b0af055c8b2d1e90ed2cd9363f841266b72" - integrity sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q== +webpack-virtual-modules@^0.4.1: + version "0.4.3" + resolved "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.4.3.tgz#cd597c6d51d5a5ecb473eea1983a58fa8a17ded9" + integrity sha512-5NUqC2JquIL2pBAAo/VfBP6KuGkHIZQXW/lNKupLPfhViwh8wNsu0BObtl09yuKZszeEUfbXz8xhrHvSG16Nqw== + +webpack@4: + version "4.46.0" + resolved "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" + integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q== dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-module-context" "1.9.0" @@ -26675,7 +27456,7 @@ webpack@^4.44.2: ajv "^6.10.2" ajv-keywords "^3.4.1" chrome-trace-event "^1.0.2" - enhanced-resolve "^4.3.0" + enhanced-resolve "^4.5.0" eslint-scope "^4.0.3" json-parse-better-errors "^1.0.2" loader-runner "^2.4.0" @@ -26691,7 +27472,7 @@ webpack@^4.44.2: watchpack "^1.7.4" webpack-sources "^1.4.1" -webpack@^5, webpack@^5.48.0: +webpack@^5, webpack@^5.48.0, webpack@^5.9.0: version "5.48.0" resolved "https://registry.npmjs.org/webpack/-/webpack-5.48.0.tgz#06180fef9767a6fd066889559a4c4d49bee19b83" integrity sha512-CGe+nfbHrYzbk7SKoYITCgN3LRAG0yVddjNUecz9uugo1QtYdiyrVD8nP1PhkNqPfdxC2hknmmKpP355Epyn6A== @@ -27020,10 +27801,10 @@ write-pkg@^4.0.0: type-fest "^0.4.1" write-json-file "^3.2.0" -ws@7.4.5: - version "7.4.5" - resolved "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz#a484dd851e9beb6fdb420027e3885e8ce48986c1" - integrity sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g== +ws@7.4.5, ws@^7.4.6, ws@^7.5.3: + version "7.5.3" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" + integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== ws@^5.2.0: version "5.2.3" @@ -27049,11 +27830,6 @@ ws@^7.2.3, ws@^7.3.1: resolved "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8" integrity sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA== -ws@^7.5.3: - version "7.5.3" - resolved "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" - integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== - xcase@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/xcase/-/xcase-2.0.1.tgz#c7fa72caa0f440db78fd5673432038ac984450b9" From bb352b6b7039f721e28a2df7c0fc22687ade3399 Mon Sep 17 00:00:00 2001 From: blam Date: Wed, 4 Aug 2021 15:53:36 +0200 Subject: [PATCH 39/64] chore: don't hoist anything with storybook prefixes Signed-off-by: blam --- package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package.json b/package.json index ea1cf0c9b4..3e151cd19c 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,9 @@ "packages": [ "packages/*", "plugins/*" + ], + "nohoist": [ + "**/@storybook/**" ] }, "resolutions": { From 12c6a54d9b63b93ed551a66eff591b26da9d077e Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 5 Aug 2021 02:17:37 +0200 Subject: [PATCH 40/64] chore: fix prettier and fix storybook Signed-off-by: blam --- .github/workflows/chromatic-storybook-test.yml | 3 ++- packages/cli/src/types.d.ts | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/chromatic-storybook-test.yml b/.github/workflows/chromatic-storybook-test.yml index d189236987..043777601f 100644 --- a/.github/workflows/chromatic-storybook-test.yml +++ b/.github/workflows/chromatic-storybook-test.yml @@ -50,4 +50,5 @@ jobs: # projetToken intentionally shared to allow collaborators to run Chromatic on forks # https://www.chromatic.com/docs/custom-ci-provider#run-chromatic-on-external-forks-of-open-source-projects projectToken: 9tzak77m9nj - storybookBuildDir: 'packages/storybook/dist' + workingDir: 'packages/storybook' + storybookBuildDir: 'dist' diff --git a/packages/cli/src/types.d.ts b/packages/cli/src/types.d.ts index 5f5580fdbe..07684bc15a 100644 --- a/packages/cli/src/types.d.ts +++ b/packages/cli/src/types.d.ts @@ -33,7 +33,7 @@ declare module '@rollup/plugin-yaml'; declare module 'terser-webpack-plugin'; declare module 'react-dev-utils/formatWebpackMessages' { - export default function( + export default function ( stats: any, ): { errors: string[]; @@ -42,7 +42,7 @@ declare module 'react-dev-utils/formatWebpackMessages' { } declare module 'react-dev-utils/openBrowser' { - export default function(url: string): boolean; + export default function (url: string): boolean; } declare module 'react-dev-utils/ModuleScopePlugin' { From eb294ea987d0e165e97cf4d6e7642d75bd476602 Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 5 Aug 2021 03:09:01 +0200 Subject: [PATCH 41/64] chore: add extra dep for now Signed-off-by: blam --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 3e151cd19c..0fe93ffb5e 100644 --- a/package.json +++ b/package.json @@ -58,6 +58,7 @@ "@microsoft/api-extractor-model": "^7.13.3" }, "devDependencies": { + "@types/webpack": "^5.28.0", "@changesets/cli": "^2.14.0", "@octokit/openapi-types": "^2.2.0", "@spotify/prettier-config": "^10.0.0", From f0fbf3a16d5d0840bf002e71107cd55ed0e4c127 Mon Sep 17 00:00:00 2001 From: blam Date: Thu, 5 Aug 2021 05:21:02 +0200 Subject: [PATCH 42/64] chore: maybe fix stuff Signed-off-by: blam --- packages/cli/src/lib/bundler/server.ts | 47 ++++++++++++++------------ packages/core-components/package.json | 3 +- yarn.lock | 7 ++++ 3 files changed, 34 insertions(+), 23 deletions(-) diff --git a/packages/cli/src/lib/bundler/server.ts b/packages/cli/src/lib/bundler/server.ts index 254da4783b..060b482479 100644 --- a/packages/cli/src/lib/bundler/server.ts +++ b/packages/cli/src/lib/bundler/server.ts @@ -42,28 +42,31 @@ export async function serveBundle(options: ServeOptions) { }); const compiler = webpack(config); - const server = new WebpackDevServer(compiler, { - hot: !process.env.CI, - devMiddleware: { - publicPath: config.output?.publicPath as string, - stats: 'errors-warnings', - }, - static: { - publicPath: config.output?.publicPath as string, - directory: paths.targetPublic, - }, - historyApiFallback: { - // Paths with dots should still use the history fallback. - // See https://github.com/facebookincubator/create-react-app/issues/387. - disableDotRule: true, - }, - https: url.protocol === 'https:', - host, - port, - proxy: pkg.proxy, - // When the dev server is behind a proxy, the host and public hostname differ - allowedHosts: [url.hostname], - }); + const server = new WebpackDevServer( + compiler as any, + { + hot: !process.env.CI, + devMiddleware: { + publicPath: config.output?.publicPath as string, + stats: 'errors-warnings', + }, + static: { + publicPath: config.output?.publicPath as string, + directory: paths.targetPublic, + }, + historyApiFallback: { + // Paths with dots should still use the history fallback. + // See https://github.com/facebookincubator/create-react-app/issues/387. + disableDotRule: true, + }, + https: url.protocol === 'https:', + host, + port, + proxy: pkg.proxy, + // When the dev server is behind a proxy, the host and public hostname differ + allowedHosts: [url.hostname], + } as any, + ); await new Promise((resolve, reject) => { server.listen(port, host, (err?: Error) => { diff --git a/packages/core-components/package.json b/packages/core-components/package.json index 998af15f19..5ae86a0030 100644 --- a/packages/core-components/package.json +++ b/packages/core-components/package.json @@ -33,6 +33,7 @@ "@backstage/core-plugin-api": "^0.1.5", "@backstage/errors": "^0.1.1", "@backstage/theme": "^0.2.9", + "@material-table/core": "^3.1.0", "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.45", @@ -50,7 +51,6 @@ "dagre": "^0.8.5", "immer": "^9.0.1", "lodash": "^4.17.15", - "@material-table/core": "^3.1.0", "pluralize": "^8.0.0", "prop-types": "^15.7.2", "qs": "^6.9.4", @@ -84,6 +84,7 @@ "@types/jest": "^26.0.7", "@types/node": "^14.14.32", "@types/react-helmet": "^6.1.0", + "@types/react-syntax-highlighter": "^13.5.2", "@types/zen-observable": "^0.8.0" }, "files": [ diff --git a/yarn.lock b/yarn.lock index c1cf9847ca..1cc0b8e6e1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7310,6 +7310,13 @@ dependencies: "@types/react" "*" +"@types/react-syntax-highlighter@^13.5.2": + version "13.5.2" + resolved "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-13.5.2.tgz#357cc03581dc434c57c3b31f70e0eecdbf7b3ab0" + integrity sha512-sRZoKZBGKaE7CzMvTTgz+0x/aVR58ZYUTfB7HN76vC+yQnvo1FWtzNARBt0fGqcLGEVakEzMu/CtPzssmanu8Q== + dependencies: + "@types/react" "*" + "@types/react-test-renderer@*": version "16.9.2" resolved "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-16.9.2.tgz#e1c408831e8183e5ad748fdece02214a7c2ab6c5" From 5688543ce8f180977615edbced5c621e14687b1c Mon Sep 17 00:00:00 2001 From: blam Date: Fri, 6 Aug 2021 10:46:35 +0200 Subject: [PATCH 43/64] chore: revert to webpack4 Signed-off-by: blam --- packages/storybook/.storybook/main.js | 3 - packages/storybook/package.json | 26 +- yarn.lock | 765 ++++++++++---------------- 3 files changed, 303 insertions(+), 491 deletions(-) diff --git a/packages/storybook/.storybook/main.js b/packages/storybook/.storybook/main.js index 899896a125..4afcac335c 100644 --- a/packages/storybook/.storybook/main.js +++ b/packages/storybook/.storybook/main.js @@ -2,9 +2,6 @@ const path = require('path'); const WebpackPluginFailBuildOnWarning = require('./webpack-plugin-fail-build-on-warning'); module.exports = { - core: { - builder: 'webpack5', - }, stories: [ '../../core-components/src/**/*.stories.tsx', '../../../plugins/**/src/**/*.stories.tsx', diff --git a/packages/storybook/package.json b/packages/storybook/package.json index 2d1f624210..8195efca1c 100644 --- a/packages/storybook/package.json +++ b/packages/storybook/package.json @@ -7,26 +7,24 @@ "start": "start-storybook -p 6006", "build-storybook": "build-storybook --output-dir dist" }, - "dependencies": { - "@backstage/theme": "^0.2.0", - "react": "^16.12.0", - "react-dom": "^16.12.0" - }, "workspaces": { "nohoist": [ "@storybook/react/**", "@storybook/addons/**" ] }, + "dependencies": { + "@backstage/theme": "^0.2.0", + "react": "^16.12.0", + "react-dom": "^16.12.0" + }, "devDependencies": { - "@storybook/addon-a11y": "^6.4.0-alpha.23", - "@storybook/addon-actions": "^6.4.0-alpha.23", - "@storybook/addon-links": "^6.4.0-alpha.23", - "@storybook/addon-storysource": "^6.4.0-alpha.23", - "@storybook/addons": "^6.4.0-alpha.23", - "@storybook/builder-webpack5": "^6.4.0-alpha.23", - "@storybook/manager-webpack5": "^6.4.0-alpha.23", - "@storybook/react": "^6.4.0-alpha.23", - "storybook-dark-mode": "^1.0.9-canary.158.3571.0" + "@storybook/addon-a11y": "^6.3.4", + "@storybook/addon-actions": "^6.1.11", + "@storybook/addon-links": "^6.1.11", + "@storybook/addon-storysource": "^6.1.11", + "@storybook/addons": "^6.1.11", + "@storybook/react": "^6.1.11", + "storybook-dark-mode": "^1.0.3" } } diff --git a/yarn.lock b/yarn.lock index 1cc0b8e6e1..1d1738673e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5004,17 +5004,16 @@ resolved "https://registry.npmjs.org/@panva/asn1.js/-/asn1.js-1.0.0.tgz#dd55ae7b8129e02049f009408b97c61ccf9032f6" integrity sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw== -"@pmmmwh/react-refresh-webpack-plugin@^0.5.0-rc.2": - version "0.5.0-rc.2" - resolved "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.0-rc.2.tgz#7f1049150d8474cd8bfe21ae0efec581238dc924" - integrity sha512-LTZK5rAAiog7FvsDKX7mJBifV9yyzhIXHqlHA8E978Z0iFLsW40j6OVJFZ/AzV3wBIvN3+iPVYvhVGckkoy8OQ== +"@pmmmwh/react-refresh-webpack-plugin@^0.4.3": + version "0.4.3" + resolved "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.4.3.tgz#1eec460596d200c0236bf195b078a5d1df89b766" + integrity sha512-br5Qwvh8D2OQqSXpd1g/xqXKnK0r+Jz6qVKBbWmpUcrbGOxUrf39V5oZ1876084CGn18uMdR5uvPqBv9UqtBjQ== dependencies: ansi-html "^0.0.7" - core-js-pure "^3.8.1" error-stack-parser "^2.0.6" - html-entities "^2.1.0" - loader-utils "^2.0.0" - schema-utils "^3.0.0" + html-entities "^1.2.1" + native-url "^0.2.6" + schema-utils "^2.6.5" source-map "^0.7.3" "@popperjs/core@^2.5.4", "@popperjs/core@^2.6.0": @@ -5385,19 +5384,19 @@ resolved "https://registry.npmjs.org/@spotify/prettier-config/-/prettier-config-10.0.0.tgz#fa076d98d2e7e6c53dd3d86a696307a7010bd056" integrity sha512-VYOdo8P7lIScAkl02nB9KpUAuOYMManryBIBuKJkAw5D3aVtLobfmdIKvdV6MqEmGMEQPbn7w/UpnjJYhUH+IA== -"@storybook/addon-a11y@^6.4.0-alpha.23": - version "6.4.0-alpha.23" - resolved "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-6.4.0-alpha.23.tgz#37972e133439d2fe6deb3cceef5f511e70f73fd2" - integrity sha512-v+JV2asNnG1xTKmzDeZuxM/sxmlUzyuheQhx5EnpuOHBM0PVA2H+254+irZh8wq5ghSG8mHp+w8KgUBv6aiQCw== +"@storybook/addon-a11y@^6.3.4": + version "6.3.6" + resolved "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-6.3.6.tgz#6d9dbdaa067a8f6ad15cef64f2103568457d2aae" + integrity sha512-IYVDFEGgKORdm7NPZPqltOvu29R9LaZwGBvfzbS3GUc3I9XLbT/cxkZN68Zzmjn2GtP/X1v4uLqp57OsPb4Cdg== dependencies: - "@storybook/addons" "6.4.0-alpha.23" - "@storybook/api" "6.4.0-alpha.23" - "@storybook/channels" "6.4.0-alpha.23" - "@storybook/client-api" "6.4.0-alpha.23" - "@storybook/client-logger" "6.4.0-alpha.23" - "@storybook/components" "6.4.0-alpha.23" - "@storybook/core-events" "6.4.0-alpha.23" - "@storybook/theming" "6.4.0-alpha.23" + "@storybook/addons" "6.3.6" + "@storybook/api" "6.3.6" + "@storybook/channels" "6.3.6" + "@storybook/client-api" "6.3.6" + "@storybook/client-logger" "6.3.6" + "@storybook/components" "6.3.6" + "@storybook/core-events" "6.3.6" + "@storybook/theming" "6.3.6" axe-core "^4.2.0" core-js "^3.8.2" global "^4.4.0" @@ -5407,17 +5406,17 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/addon-actions@^6.4.0-alpha.23": - version "6.4.0-alpha.23" - resolved "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-6.4.0-alpha.23.tgz#4476d45094c3c105e3bd65e40f74eb177e82df3f" - integrity sha512-wZ98pUvwa/QbGzizedRwm1xqQSXc2oFkZ50B+HudoJBUMQLXuE8r4DOFS3pFmr3NuTK6K9W9abXPzmFbkC6FpA== +"@storybook/addon-actions@^6.1.11": + version "6.3.6" + resolved "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-6.3.6.tgz#691d61d6aca9c4b3edba50c531cbe4d4139ed451" + integrity sha512-1MBqCbFiupGEDyIXqFkzF4iR8AduuB7qSNduqtsFauvIkrG5bnlbg5JC7WjnixkCaaWlufgbpasEHioXO9EXGw== dependencies: - "@storybook/addons" "6.4.0-alpha.23" - "@storybook/api" "6.4.0-alpha.23" - "@storybook/client-api" "6.4.0-alpha.23" - "@storybook/components" "6.4.0-alpha.23" - "@storybook/core-events" "6.4.0-alpha.23" - "@storybook/theming" "6.4.0-alpha.23" + "@storybook/addons" "6.3.6" + "@storybook/api" "6.3.6" + "@storybook/client-api" "6.3.6" + "@storybook/components" "6.3.6" + "@storybook/core-events" "6.3.6" + "@storybook/theming" "6.3.6" core-js "^3.8.2" fast-deep-equal "^3.1.3" global "^4.4.0" @@ -5430,16 +5429,16 @@ util-deprecate "^1.0.2" uuid-browser "^3.1.0" -"@storybook/addon-links@^6.4.0-alpha.23": - version "6.4.0-alpha.23" - resolved "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-6.4.0-alpha.23.tgz#e7cfa96f3fc46513d5b780a0f824c325cf0e9296" - integrity sha512-FuhU0a/5VXPGH0WkcRt5K+ZYHBbhFIjBJBD0IVx2zYGyJza4D25HTJQnjPXAOHAveacKvxp0IdepIwjIeOu2pQ== +"@storybook/addon-links@^6.1.11": + version "6.3.6" + resolved "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-6.3.6.tgz#dc410d5b4a0d222b6b8d0ef03da7a4c16919c092" + integrity sha512-PaeAJTjwtPlhrLZlaSQ1YIFA8V0C1yI0dc351lPbTiE7fJ7DwTE03K6xIF/jEdTo+xzhi2PM1Fgvi/SsSecI8w== dependencies: - "@storybook/addons" "6.4.0-alpha.23" - "@storybook/client-logger" "6.4.0-alpha.23" - "@storybook/core-events" "6.4.0-alpha.23" + "@storybook/addons" "6.3.6" + "@storybook/client-logger" "6.3.6" + "@storybook/core-events" "6.3.6" "@storybook/csf" "0.0.1" - "@storybook/router" "6.4.0-alpha.23" + "@storybook/router" "6.3.6" "@types/qs" "^6.9.5" core-js "^3.8.2" global "^4.4.0" @@ -5448,54 +5447,54 @@ regenerator-runtime "^0.13.7" ts-dedent "^2.0.0" -"@storybook/addon-storysource@^6.4.0-alpha.23": - version "6.4.0-alpha.23" - resolved "https://registry.npmjs.org/@storybook/addon-storysource/-/addon-storysource-6.4.0-alpha.23.tgz#0874d310abb37f79bf41391f297354efda212b2f" - integrity sha512-RPMxkPAVaUGwKiWGyJcL/yXQWjWOj822uuX1Wb0UhNHOZxwHLsUWlTGFuzHsW0FmfGInMYLOjkFeb7SDz6EAqw== +"@storybook/addon-storysource@^6.1.11": + version "6.3.6" + resolved "https://registry.npmjs.org/@storybook/addon-storysource/-/addon-storysource-6.3.6.tgz#3ecacd39690675ffcba0d40ca235090fc2bf5574" + integrity sha512-BNNuy/6Vb7NzeCDbt+bCL1dC/XQOalzKHW6FplO0pR0eMSi6EmJJnU9V+5rFAUtG5zxGeCx2h7TrrFecouM2BA== dependencies: - "@storybook/addons" "6.4.0-alpha.23" - "@storybook/api" "6.4.0-alpha.23" - "@storybook/client-logger" "6.4.0-alpha.23" - "@storybook/components" "6.4.0-alpha.23" - "@storybook/router" "6.4.0-alpha.23" - "@storybook/source-loader" "6.4.0-alpha.23" - "@storybook/theming" "6.4.0-alpha.23" + "@storybook/addons" "6.3.6" + "@storybook/api" "6.3.6" + "@storybook/client-logger" "6.3.6" + "@storybook/components" "6.3.6" + "@storybook/router" "6.3.6" + "@storybook/source-loader" "6.3.6" + "@storybook/theming" "6.3.6" core-js "^3.8.2" estraverse "^5.2.0" loader-utils "^2.0.0" - prettier "^2.2.1" + prettier "~2.2.1" prop-types "^15.7.2" react-syntax-highlighter "^13.5.3" regenerator-runtime "^0.13.7" -"@storybook/addons@6.4.0-alpha.23", "@storybook/addons@^6.4.0-alpha.23": - version "6.4.0-alpha.23" - resolved "https://registry.npmjs.org/@storybook/addons/-/addons-6.4.0-alpha.23.tgz#cf1fa64dc398067cf4893145c709e666f9822af2" - integrity sha512-4EhhOVX9uND2Sw0RXTFSgYRu3f9MJRaT+PD9UpC4xaj5Za536UPYHObyx9s+rgc4JhVMQcv9vZwz4W0QzTXzpw== +"@storybook/addons@6.3.6", "@storybook/addons@^6.1.11": + version "6.3.6" + resolved "https://registry.npmjs.org/@storybook/addons/-/addons-6.3.6.tgz#330fd722bdae8abefeb029583e89e51e62c20b60" + integrity sha512-tVV0vqaEEN9Md4bgScwfrnZYkN8iKZarpkIOFheLev+PHjSp8lgWMK5SNWDlbBYqfQfzrz9xbs+F07bMjfx9jQ== dependencies: - "@storybook/api" "6.4.0-alpha.23" - "@storybook/channels" "6.4.0-alpha.23" - "@storybook/client-logger" "6.4.0-alpha.23" - "@storybook/core-events" "6.4.0-alpha.23" - "@storybook/router" "6.4.0-alpha.23" - "@storybook/theming" "6.4.0-alpha.23" + "@storybook/api" "6.3.6" + "@storybook/channels" "6.3.6" + "@storybook/client-logger" "6.3.6" + "@storybook/core-events" "6.3.6" + "@storybook/router" "6.3.6" + "@storybook/theming" "6.3.6" core-js "^3.8.2" global "^4.4.0" regenerator-runtime "^0.13.7" -"@storybook/api@6.4.0-alpha.23": - version "6.4.0-alpha.23" - resolved "https://registry.npmjs.org/@storybook/api/-/api-6.4.0-alpha.23.tgz#0c37a12cf5a4e8754cddbab53f6a648d02ec5db0" - integrity sha512-exa9PoFRVKoL+kWvRtgIQm47bkNW73wNE5eO4sBtnHUhaBloDreKmdcmMo/ep2ayM1P1JFdcUdsHmxSOo5eC7w== +"@storybook/api@6.3.6": + version "6.3.6" + resolved "https://registry.npmjs.org/@storybook/api/-/api-6.3.6.tgz#b110688ae0a970c9443d47b87616a09456f3708e" + integrity sha512-F5VuR1FrEwD51OO/EDDAZXNfF5XmJedYHJLwwCB4az2ZMrzG45TxGRmiEohrSTO6wAHGkAvjlEoX5jWOCqQ4pw== dependencies: "@reach/router" "^1.3.4" - "@storybook/channels" "6.4.0-alpha.23" - "@storybook/client-logger" "6.4.0-alpha.23" - "@storybook/core-events" "6.4.0-alpha.23" + "@storybook/channels" "6.3.6" + "@storybook/client-logger" "6.3.6" + "@storybook/core-events" "6.3.6" "@storybook/csf" "0.0.1" - "@storybook/router" "6.4.0-alpha.23" + "@storybook/router" "6.3.6" "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.4.0-alpha.23" + "@storybook/theming" "6.3.6" "@types/reach__router" "^1.3.7" core-js "^3.8.2" fast-deep-equal "^3.1.3" @@ -5509,10 +5508,10 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/builder-webpack4@6.4.0-alpha.23": - version "6.4.0-alpha.23" - resolved "https://registry.npmjs.org/@storybook/builder-webpack4/-/builder-webpack4-6.4.0-alpha.23.tgz#25e8c39303abb0baa86d5f1538c46f1394f4b295" - integrity sha512-y2M1TWpftPRSjpFglbhnsZHLKe7aBmscrUwW0fx8gMSNRmAvetBcaGDieYHeBYBcC7K6B63YLc7UnZXX/2TOgQ== +"@storybook/builder-webpack4@6.3.6": + version "6.3.6" + resolved "https://registry.npmjs.org/@storybook/builder-webpack4/-/builder-webpack4-6.3.6.tgz#fe444abfc178e005ea077e2bcfd6ae7509522908" + integrity sha512-LhTPQQowS2t6BRnyfusWZLbhjjf54/HiQyovJTTDnqrCiO6QoCMbVnp79LeO1aSkpQCKoeqOZ7TzH87fCytnZA== dependencies: "@babel/core" "^7.12.10" "@babel/plugin-proposal-class-properties" "^7.12.1" @@ -5535,24 +5534,24 @@ "@babel/preset-env" "^7.12.11" "@babel/preset-react" "^7.12.10" "@babel/preset-typescript" "^7.12.7" - "@storybook/addons" "6.4.0-alpha.23" - "@storybook/api" "6.4.0-alpha.23" - "@storybook/channel-postmessage" "6.4.0-alpha.23" - "@storybook/channels" "6.4.0-alpha.23" - "@storybook/client-api" "6.4.0-alpha.23" - "@storybook/client-logger" "6.4.0-alpha.23" - "@storybook/components" "6.4.0-alpha.23" - "@storybook/core-common" "6.4.0-alpha.23" - "@storybook/core-events" "6.4.0-alpha.23" - "@storybook/node-logger" "6.4.0-alpha.23" - "@storybook/router" "6.4.0-alpha.23" + "@storybook/addons" "6.3.6" + "@storybook/api" "6.3.6" + "@storybook/channel-postmessage" "6.3.6" + "@storybook/channels" "6.3.6" + "@storybook/client-api" "6.3.6" + "@storybook/client-logger" "6.3.6" + "@storybook/components" "6.3.6" + "@storybook/core-common" "6.3.6" + "@storybook/core-events" "6.3.6" + "@storybook/node-logger" "6.3.6" + "@storybook/router" "6.3.6" "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.4.0-alpha.23" - "@storybook/ui" "6.4.0-alpha.23" + "@storybook/theming" "6.3.6" + "@storybook/ui" "6.3.6" "@types/node" "^14.0.10" "@types/webpack" "^4.41.26" autoprefixer "^9.8.6" - babel-loader "^8.0.0" + babel-loader "^8.2.2" babel-plugin-macros "^2.8.0" babel-plugin-polyfill-corejs3 "^0.1.0" case-sensitive-paths-webpack-plugin "^2.3.0" @@ -5585,100 +5584,38 @@ webpack-hot-middleware "^2.25.0" webpack-virtual-modules "^0.2.2" -"@storybook/builder-webpack5@^6.4.0-alpha.23": - version "6.4.0-alpha.23" - resolved "https://registry.npmjs.org/@storybook/builder-webpack5/-/builder-webpack5-6.4.0-alpha.23.tgz#fa572f25a3b4f86d5b5254399d8f49b0ca9058d7" - integrity sha512-6DsMQ5kLlCzwlL6JMj2VJ/vLmlOaDumBV8I9XIw1FQBYshCiW/6UIhiRsCsRN3M7lF9gTxrP7vSwTqJ9efb9nQ== +"@storybook/channel-postmessage@6.3.6": + version "6.3.6" + resolved "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.3.6.tgz#f29c3678161462428e78c9cfed2da11ffca4acb0" + integrity sha512-GK7hXnaa+1pxEeMpREDzAZ3+2+k1KN1lbrZf+V7Kc1JZv1/Ji/vxk8AgxwiuzPAMx5J0yh/FduPscIPZ87Pibw== dependencies: - "@babel/core" "^7.12.10" - "@babel/plugin-proposal-class-properties" "^7.12.1" - "@babel/plugin-proposal-decorators" "^7.12.12" - "@babel/plugin-proposal-export-default-from" "^7.12.1" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1" - "@babel/plugin-proposal-object-rest-spread" "^7.12.1" - "@babel/plugin-proposal-optional-chaining" "^7.12.7" - "@babel/plugin-proposal-private-methods" "^7.12.1" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-transform-arrow-functions" "^7.12.1" - "@babel/plugin-transform-block-scoping" "^7.12.12" - "@babel/plugin-transform-classes" "^7.12.1" - "@babel/plugin-transform-destructuring" "^7.12.1" - "@babel/plugin-transform-for-of" "^7.12.1" - "@babel/plugin-transform-parameters" "^7.12.1" - "@babel/plugin-transform-shorthand-properties" "^7.12.1" - "@babel/plugin-transform-spread" "^7.12.1" - "@babel/preset-env" "^7.12.11" - "@babel/preset-react" "^7.12.10" - "@babel/preset-typescript" "^7.12.7" - "@storybook/addons" "6.4.0-alpha.23" - "@storybook/api" "6.4.0-alpha.23" - "@storybook/channel-postmessage" "6.4.0-alpha.23" - "@storybook/channels" "6.4.0-alpha.23" - "@storybook/client-api" "6.4.0-alpha.23" - "@storybook/client-logger" "6.4.0-alpha.23" - "@storybook/components" "6.4.0-alpha.23" - "@storybook/core-common" "6.4.0-alpha.23" - "@storybook/core-events" "6.4.0-alpha.23" - "@storybook/node-logger" "6.4.0-alpha.23" - "@storybook/router" "6.4.0-alpha.23" - "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.4.0-alpha.23" - "@types/node" "^14.0.10" - babel-loader "^8.0.0" - babel-plugin-macros "^3.0.1" - babel-plugin-polyfill-corejs3 "^0.1.0" - case-sensitive-paths-webpack-plugin "^2.3.0" - core-js "^3.8.2" - css-loader "^5.0.1" - dotenv-webpack "^7.0.0" - fork-ts-checker-webpack-plugin "^6.0.4" - fs-extra "^9.0.1" - glob "^7.1.6" - glob-promise "^3.4.0" - html-webpack-plugin "^5.0.0" - react-dev-utils "^11.0.3" - stable "^0.1.8" - style-loader "^2.0.0" - terser-webpack-plugin "^5.0.3" - ts-dedent "^2.0.0" - util-deprecate "^1.0.2" - webpack "^5.9.0" - webpack-dev-middleware "^4.1.0" - webpack-hot-middleware "^2.25.0" - webpack-virtual-modules "^0.4.1" - -"@storybook/channel-postmessage@6.4.0-alpha.23": - version "6.4.0-alpha.23" - resolved "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.4.0-alpha.23.tgz#6542137d5620f364e3054db29807fea1408a3397" - integrity sha512-4tX0ZE/1j9RaJv8qZD6EGw0pss6KF3HdaSTgd7g0zE/uqTlu6up0mw9wOkdwAHhb2LgXVWaiKx5qvrKUUl3P4Q== - dependencies: - "@storybook/channels" "6.4.0-alpha.23" - "@storybook/client-logger" "6.4.0-alpha.23" - "@storybook/core-events" "6.4.0-alpha.23" + "@storybook/channels" "6.3.6" + "@storybook/client-logger" "6.3.6" + "@storybook/core-events" "6.3.6" core-js "^3.8.2" global "^4.4.0" qs "^6.10.0" telejson "^5.3.2" -"@storybook/channels@6.4.0-alpha.23": - version "6.4.0-alpha.23" - resolved "https://registry.npmjs.org/@storybook/channels/-/channels-6.4.0-alpha.23.tgz#3021c601e58fe6b95e8c738894bf18ba4db7ccbf" - integrity sha512-BvuVunIrMtKN8D6axOhvpzvJ5VR7CvvXNq+a/x899Jo6zYBf78TsycHQIQNwKRzEbUKYLJ7VrVFEqoQFjDWHsg== +"@storybook/channels@6.3.6": + version "6.3.6" + resolved "https://registry.npmjs.org/@storybook/channels/-/channels-6.3.6.tgz#a258764ed78fd836ff90489ae74ac055312bf056" + integrity sha512-gCIQVr+dS/tg3AyCxIvkOXMVAs08BCIHXsaa2+XzmacnJBSP+CEHtI6IZ8WEv7tzZuXOiKLVg+wugeIh4j2I4g== dependencies: core-js "^3.8.2" ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/client-api@6.4.0-alpha.23": - version "6.4.0-alpha.23" - resolved "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.4.0-alpha.23.tgz#2c1e825bc51d5dd073d200f68e13fc9571f48111" - integrity sha512-OohK5G5wg+wSVRxIQhACK08Vopkml8i7VKZJlSnQ+FqwX2fRCDnzU7R8OvH53jKYPI5YDsw/KZ+k6a9lK3inOg== +"@storybook/client-api@6.3.6": + version "6.3.6" + resolved "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.3.6.tgz#4826ce366ae109f608da6ade24b29efeb9b7f7dd" + integrity sha512-Q/bWuH691L6k7xkiKtBmZo8C+ijgmQ+vc2Fz8pzIRZuMV8ROL74qhrS4BMKV4LhiYm4f8todtWfaQPBjawZMIA== dependencies: - "@storybook/addons" "6.4.0-alpha.23" - "@storybook/channel-postmessage" "6.4.0-alpha.23" - "@storybook/channels" "6.4.0-alpha.23" - "@storybook/client-logger" "6.4.0-alpha.23" - "@storybook/core-events" "6.4.0-alpha.23" + "@storybook/addons" "6.3.6" + "@storybook/channel-postmessage" "6.3.6" + "@storybook/channels" "6.3.6" + "@storybook/client-logger" "6.3.6" + "@storybook/core-events" "6.3.6" "@storybook/csf" "0.0.1" "@types/qs" "^6.9.5" "@types/webpack-env" "^1.16.0" @@ -5693,23 +5630,23 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/client-logger@6.4.0-alpha.23": - version "6.4.0-alpha.23" - resolved "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.4.0-alpha.23.tgz#b0862379e8ef74f1128221131662e5f0199f07cb" - integrity sha512-VOy7vBoboXV6UgxvuUkAV0x1vHF/Uu1y2XpvSmVlffyzSRbE6FUwpqCbbylg/uU8Lh1CF9boLrSHLepoYBiozA== +"@storybook/client-logger@6.3.6": + version "6.3.6" + resolved "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.3.6.tgz#020ba518ab8286194ce103a6ff91767042e296c0" + integrity sha512-qpXQ52ylxPm7l3+WAteV42NmqWA+L1FaJhMOvm2gwl3PxRd2cNXn2BwEhw++eA6qmJH/7mfOKXG+K+QQwOTpRA== dependencies: core-js "^3.8.2" global "^4.4.0" -"@storybook/components@6.4.0-alpha.23": - version "6.4.0-alpha.23" - resolved "https://registry.npmjs.org/@storybook/components/-/components-6.4.0-alpha.23.tgz#f2f63ede36ba82fd3e4832311b1380b138365e56" - integrity sha512-s0rqAvTRulJwuEqzX1QRXFQuYNsU6gJMkc3PPHG2OHz5qxTwHth8+4phlBmpUPPrCmkRPyYxuu2QYWh1fszOLg== +"@storybook/components@6.3.6": + version "6.3.6" + resolved "https://registry.npmjs.org/@storybook/components/-/components-6.3.6.tgz#bc2fa1dbe59f42b5b2aeb9f84424072835d4ce8b" + integrity sha512-aZkmtAY8b+LFXG6dVp6cTS6zGJuxkHRHcesRSWRQPxtgitaz1G58clRHxbKPRokfjPHNgYA3snogyeqxSA7YNQ== dependencies: "@popperjs/core" "^2.6.0" - "@storybook/client-logger" "6.4.0-alpha.23" + "@storybook/client-logger" "6.3.6" "@storybook/csf" "0.0.1" - "@storybook/theming" "6.4.0-alpha.23" + "@storybook/theming" "6.3.6" "@types/color-convert" "^2.0.0" "@types/overlayscrollbars" "^1.12.0" "@types/react-syntax-highlighter" "11.0.5" @@ -5731,18 +5668,18 @@ ts-dedent "^2.0.0" util-deprecate "^1.0.2" -"@storybook/core-client@6.4.0-alpha.23": - version "6.4.0-alpha.23" - resolved "https://registry.npmjs.org/@storybook/core-client/-/core-client-6.4.0-alpha.23.tgz#65da7b7316ffdc96dbd7a51df66c7bc3dfc2e7dd" - integrity sha512-Fma1yLJbUHhO8wGwmR1/P7kVVX31+tR6LF+sv0BVZmjiSKrJLt3yFEwaZWxAVNiKx9NkIXwxg6KtqzCnyDRr+w== +"@storybook/core-client@6.3.6": + version "6.3.6" + resolved "https://registry.npmjs.org/@storybook/core-client/-/core-client-6.3.6.tgz#7def721aa15d4faaff574780d30b92055db7261c" + integrity sha512-Bq86flEdXdMNbdHrGMNQ6OT1tcBQU8ym56d+nG46Ctjf5GN+Dl+rPtRWuu7cIZs10KgqJH+86DXp+tvpQIDidg== dependencies: - "@storybook/addons" "6.4.0-alpha.23" - "@storybook/channel-postmessage" "6.4.0-alpha.23" - "@storybook/client-api" "6.4.0-alpha.23" - "@storybook/client-logger" "6.4.0-alpha.23" - "@storybook/core-events" "6.4.0-alpha.23" + "@storybook/addons" "6.3.6" + "@storybook/channel-postmessage" "6.3.6" + "@storybook/client-api" "6.3.6" + "@storybook/client-logger" "6.3.6" + "@storybook/core-events" "6.3.6" "@storybook/csf" "0.0.1" - "@storybook/ui" "6.4.0-alpha.23" + "@storybook/ui" "6.3.6" airbnb-js-shims "^2.2.1" ansi-to-html "^0.6.11" core-js "^3.8.2" @@ -5754,10 +5691,10 @@ unfetch "^4.2.0" util-deprecate "^1.0.2" -"@storybook/core-common@6.4.0-alpha.23": - version "6.4.0-alpha.23" - resolved "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.4.0-alpha.23.tgz#a8e7d2ce123a0d01a0442c68d7be9cadc9585922" - integrity sha512-ji+ec59fmJGXG+Z0akgyz5wrpJzT3GaMbl51BIdg7jmGshHClvN76u8GTJjYeTdzMqL7eAcEVWAFb8Z50XeH5w== +"@storybook/core-common@6.3.6": + version "6.3.6" + resolved "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.3.6.tgz#da8eed703b609968e15177446f0f1609d1d6d0d0" + integrity sha512-nHolFOmTPymI50j180bCtcf1UJZ2eOnYaECRtHvVrCUod5KFF7wh2EHrgWoKqrKrsn84UOY/LkX2C2WkbYtWRg== dependencies: "@babel/core" "^7.12.10" "@babel/plugin-proposal-class-properties" "^7.12.1" @@ -5780,12 +5717,13 @@ "@babel/preset-react" "^7.12.10" "@babel/preset-typescript" "^7.12.7" "@babel/register" "^7.12.1" - "@storybook/node-logger" "6.4.0-alpha.23" + "@storybook/node-logger" "6.3.6" "@storybook/semver" "^7.3.2" + "@types/glob-base" "^0.3.0" "@types/micromatch" "^4.0.1" "@types/node" "^14.0.10" "@types/pretty-hrtime" "^1.0.0" - babel-loader "^8.0.0" + babel-loader "^8.2.2" babel-plugin-macros "^3.0.1" babel-plugin-polyfill-corejs3 "^0.1.0" chalk "^4.1.0" @@ -5795,6 +5733,7 @@ find-up "^5.0.0" fork-ts-checker-webpack-plugin "^6.0.4" glob "^7.1.6" + glob-base "^0.3.0" interpret "^2.2.0" json5 "^2.1.3" lazy-universal-dotenv "^3.0.1" @@ -5806,24 +5745,24 @@ util-deprecate "^1.0.2" webpack "4" -"@storybook/core-events@6.4.0-alpha.23": - version "6.4.0-alpha.23" - resolved "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.4.0-alpha.23.tgz#8a680e4fcaad0065f0f500f930ef53a21a1d5d0c" - integrity sha512-6iIQQnhvlKNzTCm/e++pCRs2lKXSEkFifFKzP3Y08mEihmH/VqZzbZqKCxONeS1jo8RJT0cSgBghiP5Yq2NaUg== +"@storybook/core-events@6.3.6": + version "6.3.6" + resolved "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.3.6.tgz#c4a09e2c703170995604d63e46e45adc3c9cd759" + integrity sha512-Ut1dz96bJ939oSn5t1ckPXd3WcFejK96Sb3+R/z23vEHUWGBFtygGyw8r/SX/WNDVzGmQU8c+mzJJTZwCBJz8A== dependencies: core-js "^3.8.2" -"@storybook/core-server@6.4.0-alpha.23": - version "6.4.0-alpha.23" - resolved "https://registry.npmjs.org/@storybook/core-server/-/core-server-6.4.0-alpha.23.tgz#8b7aa7912bdd0bb7ddbb4d96ff643efde716558d" - integrity sha512-DjtkxLdyAhwm3oKe37EteROrIwqkjjZkmslDgoL/arpdon6eccgSZkd/RSiCH5U1GcdyZT8a4OjqT524kVzqhA== +"@storybook/core-server@6.3.6": + version "6.3.6" + resolved "https://registry.npmjs.org/@storybook/core-server/-/core-server-6.3.6.tgz#43c1415573c3b72ec6b9ae48d68e1bb446722f7c" + integrity sha512-47ZcfxYn7t891oAMG98iH1BQIgQT9Yk/2BBNVCWY43Ong+ME1xJ6j4C/jkRUOseP7URlfLUQsUYKAYJNVijDvg== dependencies: - "@storybook/builder-webpack4" "6.4.0-alpha.23" - "@storybook/core-client" "6.4.0-alpha.23" - "@storybook/core-common" "6.4.0-alpha.23" - "@storybook/csf-tools" "6.4.0-alpha.23" - "@storybook/manager-webpack4" "6.4.0-alpha.23" - "@storybook/node-logger" "6.4.0-alpha.23" + "@storybook/builder-webpack4" "6.3.6" + "@storybook/core-client" "6.3.6" + "@storybook/core-common" "6.3.6" + "@storybook/csf-tools" "6.3.6" + "@storybook/manager-webpack4" "6.3.6" + "@storybook/node-logger" "6.3.6" "@storybook/semver" "^7.3.2" "@types/node" "^14.0.10" "@types/node-fetch" "^2.5.7" @@ -5852,20 +5791,19 @@ util-deprecate "^1.0.2" webpack "4" -"@storybook/core@6.4.0-alpha.23": - version "6.4.0-alpha.23" - resolved "https://registry.npmjs.org/@storybook/core/-/core-6.4.0-alpha.23.tgz#3394771980af0619fe1538c020194225f0057e7e" - integrity sha512-66SIJIMCD8cHb9soDuAPPUyDp+T5V8zs2eXmfZYKtS94zjinTJn26wGhRbcfyNCuzgZU+p0KLZWo1qApsPze5A== +"@storybook/core@6.3.6": + version "6.3.6" + resolved "https://registry.npmjs.org/@storybook/core/-/core-6.3.6.tgz#604419d346433103675901b3736bfa1ed9bc534f" + integrity sha512-y71VvVEbqCpG28fDBnfNg3RnUPnicwFYq9yuoFVRF0LYcJCy5cYhkIfW3JG8mN2m0P+LzH80mt2Rj6xlSXrkdQ== dependencies: - "@storybook/core-client" "6.4.0-alpha.23" - "@storybook/core-server" "6.4.0-alpha.23" + "@storybook/core-client" "6.3.6" + "@storybook/core-server" "6.3.6" -"@storybook/csf-tools@6.4.0-alpha.23": - version "6.4.0-alpha.23" - resolved "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-6.4.0-alpha.23.tgz#f89139626549afa020f7fddb6ff3836b4d1624c5" - integrity sha512-JE4b2b1zWUnsMXXOF0BECobrdsNKtzgJqbfwKDQl0xOiUsBDzwYhD4xknGAc9Qj2nc9GMABUIPahFJ9Ha9ZNWw== +"@storybook/csf-tools@6.3.6": + version "6.3.6" + resolved "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-6.3.6.tgz#603d9e832f946998b75ff8368fe862375d6cb52c" + integrity sha512-MQevelkEUVNCSjKMXLNc/G8q/BB5babPnSeI0IcJq4k+kLUSHtviimLNpPowMgGJBPx/y9VihH8N7vdJUWVj9w== dependencies: - "@babel/core" "^7.12.10" "@babel/generator" "^7.12.11" "@babel/parser" "^7.12.11" "@babel/plugin-transform-react-jsx" "^7.12.12" @@ -5876,10 +5814,9 @@ "@storybook/csf" "^0.0.1" core-js "^3.8.2" fs-extra "^9.0.1" - global "^4.4.0" js-string-escape "^1.0.1" lodash "^4.17.20" - prettier "^2.2.1" + prettier "~2.2.1" regenerator-runtime "^0.13.7" "@storybook/csf@0.0.1", "@storybook/csf@^0.0.1": @@ -5889,23 +5826,23 @@ dependencies: lodash "^4.17.15" -"@storybook/manager-webpack4@6.4.0-alpha.23": - version "6.4.0-alpha.23" - resolved "https://registry.npmjs.org/@storybook/manager-webpack4/-/manager-webpack4-6.4.0-alpha.23.tgz#04bef117795753af565c327522023f7e8a83a7ba" - integrity sha512-sBsky10kkkCpZPO+WAEALRpCpBd5sOOT9K3FLLxb7Hl8EWNWmXtYfSKjpR/OJ0kdmPG0eRg7xnSyZSGLXCnQUQ== +"@storybook/manager-webpack4@6.3.6": + version "6.3.6" + resolved "https://registry.npmjs.org/@storybook/manager-webpack4/-/manager-webpack4-6.3.6.tgz#a5334aa7ae1e048bca8f4daf868925d7054fb715" + integrity sha512-qh/jV4b6mFRpRFfhk1JSyO2gKRz8PLPvDt2AD52/bTAtNRzypKoiWqyZNR2CJ9hgNQtDrk2CO3eKPrcdKYGizQ== dependencies: "@babel/core" "^7.12.10" "@babel/plugin-transform-template-literals" "^7.12.1" "@babel/preset-react" "^7.12.10" - "@storybook/addons" "6.4.0-alpha.23" - "@storybook/core-client" "6.4.0-alpha.23" - "@storybook/core-common" "6.4.0-alpha.23" - "@storybook/node-logger" "6.4.0-alpha.23" - "@storybook/theming" "6.4.0-alpha.23" - "@storybook/ui" "6.4.0-alpha.23" + "@storybook/addons" "6.3.6" + "@storybook/core-client" "6.3.6" + "@storybook/core-common" "6.3.6" + "@storybook/node-logger" "6.3.6" + "@storybook/theming" "6.3.6" + "@storybook/ui" "6.3.6" "@types/node" "^14.0.10" "@types/webpack" "^4.41.26" - babel-loader "^8.0.0" + babel-loader "^8.2.2" case-sensitive-paths-webpack-plugin "^2.3.0" chalk "^4.1.0" core-js "^3.8.2" @@ -5932,51 +5869,10 @@ webpack-dev-middleware "^3.7.3" webpack-virtual-modules "^0.2.2" -"@storybook/manager-webpack5@^6.4.0-alpha.23": - version "6.4.0-alpha.23" - resolved "https://registry.npmjs.org/@storybook/manager-webpack5/-/manager-webpack5-6.4.0-alpha.23.tgz#d60989136d181644b8b2ee05dbbc740205945a9c" - integrity sha512-ykBSrqYFOeP4R8ACnPJTZxdSaf9iI5Top9hSn3nICHztlDU5VSzCHWIgixCfxWt5bzcU8yUZLkzKmNYQ84uRmg== - dependencies: - "@babel/core" "^7.12.10" - "@babel/plugin-transform-template-literals" "^7.12.1" - "@babel/preset-react" "^7.12.10" - "@storybook/addons" "6.4.0-alpha.23" - "@storybook/core-client" "6.4.0-alpha.23" - "@storybook/core-common" "6.4.0-alpha.23" - "@storybook/node-logger" "6.4.0-alpha.23" - "@storybook/theming" "6.4.0-alpha.23" - "@storybook/ui" "6.4.0-alpha.23" - "@types/node" "^14.0.10" - babel-loader "^8.0.0" - case-sensitive-paths-webpack-plugin "^2.3.0" - chalk "^4.1.0" - core-js "^3.8.2" - css-loader "^5.0.1" - dotenv-webpack "^7.0.0" - express "^4.17.1" - file-loader "^6.2.0" - file-system-cache "^1.0.5" - find-up "^5.0.0" - fs-extra "^9.0.1" - html-webpack-plugin "^5.0.0" - node-fetch "^2.6.1" - read-pkg-up "^7.0.1" - regenerator-runtime "^0.13.7" - resolve-from "^5.0.0" - style-loader "^2.0.0" - telejson "^5.3.2" - terser-webpack-plugin "^5.0.3" - ts-dedent "^2.0.0" - url-loader "^4.1.1" - util-deprecate "^1.0.2" - webpack "^5.9.0" - webpack-dev-middleware "^4.1.0" - webpack-virtual-modules "^0.4.1" - -"@storybook/node-logger@6.4.0-alpha.23": - version "6.4.0-alpha.23" - resolved "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.4.0-alpha.23.tgz#1196823c05a8cbc22c892e60490e5722e51da71f" - integrity sha512-zJpDYiKh5x7VdrpVB0ReuhYySaaYUsrZyhqZ/LJftK36uZOKxboA271WqHCF5p5dGTsvPsaXzeot+d88cQJrdQ== +"@storybook/node-logger@6.3.6": + version "6.3.6" + resolved "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.3.6.tgz#10356608593440a8e3acf2aababef40333a3401b" + integrity sha512-XMDkMN7nVRojjiezrURlkI57+nz3OoH4UBV6qJZICKclxtdKAy0wwOlUSYEUq+axcJ4nvdfzPPoDfGoj37SW7A== dependencies: "@types/npmlog" "^4.1.2" chalk "^4.1.0" @@ -5997,18 +5893,18 @@ react-docgen-typescript "^2.0.0" tslib "^2.0.0" -"@storybook/react@^6.4.0-alpha.23": - version "6.4.0-alpha.23" - resolved "https://registry.npmjs.org/@storybook/react/-/react-6.4.0-alpha.23.tgz#ba91bd5ff641ba2343ff189ca46589277ee9038c" - integrity sha512-r1L2XH9HWXNmac23ai2q1ipBM967rh1vb0S6UqzpOXrkEwNKpyINpW2+1LBF+mKCYhYgEgOoWnvZowmD9Sw1aw== +"@storybook/react@^6.1.11": + version "6.3.6" + resolved "https://registry.npmjs.org/@storybook/react/-/react-6.3.6.tgz#593bc0743ad22ed5e6e072e6157c20c704864fc3" + integrity sha512-2c30XTe7WzKnvgHBGOp1dzBVlhcbc3oEX0SIeVE9ZYkLvRPF+J1jG948a26iqOCOgRAW13Bele37mG1gbl4tiw== dependencies: "@babel/preset-flow" "^7.12.1" "@babel/preset-react" "^7.12.10" - "@pmmmwh/react-refresh-webpack-plugin" "^0.5.0-rc.2" - "@storybook/addons" "6.4.0-alpha.23" - "@storybook/core" "6.4.0-alpha.23" - "@storybook/core-common" "6.4.0-alpha.23" - "@storybook/node-logger" "6.4.0-alpha.23" + "@pmmmwh/react-refresh-webpack-plugin" "^0.4.3" + "@storybook/addons" "6.3.6" + "@storybook/core" "6.3.6" + "@storybook/core-common" "6.3.6" + "@storybook/node-logger" "6.3.6" "@storybook/react-docgen-typescript-plugin" "1.0.2-canary.253f8c1.0" "@storybook/semver" "^7.3.2" "@types/webpack-env" "^1.16.0" @@ -6020,19 +5916,19 @@ lodash "^4.17.20" prop-types "^15.7.2" react-dev-utils "^11.0.3" - react-refresh "^0.10.0" + react-refresh "^0.8.3" read-pkg-up "^7.0.1" regenerator-runtime "^0.13.7" ts-dedent "^2.0.0" webpack "4" -"@storybook/router@6.4.0-alpha.23": - version "6.4.0-alpha.23" - resolved "https://registry.npmjs.org/@storybook/router/-/router-6.4.0-alpha.23.tgz#f7e1b893052b1c00b41fea2fe5d9d06fb01f5dac" - integrity sha512-HhU9o/sSxqS9ScZ/sCLpmjhJ+SRoswwgRVfXYqsf/s/Wk1vWdrTw+ZINNMSEYLMC+rLp920bIr7C32DghcO03w== +"@storybook/router@6.3.6": + version "6.3.6" + resolved "https://registry.npmjs.org/@storybook/router/-/router-6.3.6.tgz#cea20d64bae17397dc9e1689a656b80a98674c34" + integrity sha512-fQ1n7cm7lPFav7I+fStQciSVMlNdU+yLY6Fue252rpV5Q68bMTjwKpjO9P2/Y3CCj4QD3dPqwEkn4s0qUn5tNA== dependencies: "@reach/router" "^1.3.4" - "@storybook/client-logger" "6.4.0-alpha.23" + "@storybook/client-logger" "6.3.6" "@types/reach__router" "^1.3.7" core-js "^3.8.2" fast-deep-equal "^3.1.3" @@ -6050,31 +5946,31 @@ core-js "^3.6.5" find-up "^4.1.0" -"@storybook/source-loader@6.4.0-alpha.23": - version "6.4.0-alpha.23" - resolved "https://registry.npmjs.org/@storybook/source-loader/-/source-loader-6.4.0-alpha.23.tgz#8ae94f72ef530ee45c7be2d2f7ea8122c51853e1" - integrity sha512-S5gkibZZRwC7jJDEC2XPkVBlVzQzJIkqWkhcyZVOljvwUSWR2ov5l3vBZ2hAOEyDT3WskIFbnbV/aHBWwSBu4w== +"@storybook/source-loader@6.3.6": + version "6.3.6" + resolved "https://registry.npmjs.org/@storybook/source-loader/-/source-loader-6.3.6.tgz#2d3d01919baad7a40f67d1150c74e41dea5f1d4c" + integrity sha512-om3iS3a+D287FzBrbXB/IXB6Z5Ql2yc4dFKTy6FPe5v4N3U0p5puWOKUYWWbTX1JbcpRj0IXXo7952G68tcC1g== dependencies: - "@storybook/addons" "6.4.0-alpha.23" - "@storybook/client-logger" "6.4.0-alpha.23" + "@storybook/addons" "6.3.6" + "@storybook/client-logger" "6.3.6" "@storybook/csf" "0.0.1" core-js "^3.8.2" estraverse "^5.2.0" global "^4.4.0" loader-utils "^2.0.0" lodash "^4.17.20" - prettier "^2.2.1" + prettier "~2.2.1" regenerator-runtime "^0.13.7" -"@storybook/theming@6.4.0-alpha.23": - version "6.4.0-alpha.23" - resolved "https://registry.npmjs.org/@storybook/theming/-/theming-6.4.0-alpha.23.tgz#b83aacbce79480066d35b968565cbbc87b283ba8" - integrity sha512-IKgnqQPTR5+JQEmJyNvAeyC4UO1VJt9bVfJg379cjm2DqigLN9IOwuDdZ6kdEF9xBnFZtUce/K9kn+OJo27x5w== +"@storybook/theming@6.3.6": + version "6.3.6" + resolved "https://registry.npmjs.org/@storybook/theming/-/theming-6.3.6.tgz#75624f6d4e01530b87afca3eab9996a16c0370ab" + integrity sha512-mPrQrMUREajNEWxzgR8t0YIZsI9avPv25VNA08fANnwVsc887p4OL5eCTL2dFIlD34YDzAwiyRKYoLj2vDW4nw== dependencies: "@emotion/core" "^10.1.1" "@emotion/is-prop-valid" "^0.8.6" "@emotion/styled" "^10.0.27" - "@storybook/client-logger" "6.4.0-alpha.23" + "@storybook/client-logger" "6.3.6" core-js "^3.8.2" deep-object-diff "^1.1.0" emotion-theming "^10.0.27" @@ -6084,21 +5980,22 @@ resolve-from "^5.0.0" ts-dedent "^2.0.0" -"@storybook/ui@6.4.0-alpha.23": - version "6.4.0-alpha.23" - resolved "https://registry.npmjs.org/@storybook/ui/-/ui-6.4.0-alpha.23.tgz#f6823f14177f0516f1a1db1542d3307dffad7ca1" - integrity sha512-rSi0HYZ5LOVkcSZk7R1ZFTwsCWdGyBi0BWfBmYQQK1ds2Lg7hRzXoalV+yXfn8mW1D0d3Rxr+S7trejWvDmnIg== +"@storybook/ui@6.3.6": + version "6.3.6" + resolved "https://registry.npmjs.org/@storybook/ui/-/ui-6.3.6.tgz#a9ed8265e34bb8ef9f0dd08f40170b3dcf8a8931" + integrity sha512-S9FjISUiAmbBR7d6ubUEcELQdffDfRxerloxkXs5Ou7n8fEPqpgQB01Hw5MLRUwTEpxPzHn+xtIGYritAGxt/Q== dependencies: "@emotion/core" "^10.1.1" - "@storybook/addons" "6.4.0-alpha.23" - "@storybook/api" "6.4.0-alpha.23" - "@storybook/channels" "6.4.0-alpha.23" - "@storybook/client-logger" "6.4.0-alpha.23" - "@storybook/components" "6.4.0-alpha.23" - "@storybook/core-events" "6.4.0-alpha.23" - "@storybook/router" "6.4.0-alpha.23" + "@storybook/addons" "6.3.6" + "@storybook/api" "6.3.6" + "@storybook/channels" "6.3.6" + "@storybook/client-logger" "6.3.6" + "@storybook/components" "6.3.6" + "@storybook/core-events" "6.3.6" + "@storybook/router" "6.3.6" "@storybook/semver" "^7.3.2" - "@storybook/theming" "6.4.0-alpha.23" + "@storybook/theming" "6.3.6" + "@types/markdown-to-jsx" "^6.11.3" copy-to-clipboard "^3.3.1" core-js "^3.8.2" core-js-pure "^3.8.2" @@ -6107,7 +6004,7 @@ fuse.js "^3.6.1" global "^4.4.0" lodash "^4.17.20" - markdown-to-jsx "^7.1.3" + markdown-to-jsx "^6.11.4" memoizerific "^1.11.3" polished "^4.0.5" qs "^6.10.0" @@ -6749,6 +6646,11 @@ resolved "https://registry.npmjs.org/@types/github-slugger/-/github-slugger-1.3.0.tgz#16ab393b30d8ae2a111ac748a015ac05a1fc5524" integrity sha512-J/rMZa7RqiH/rT29TEVZO4nBoDP9XJOjnbbIofg7GQKs4JIduEO3WLpte+6WeUz/TcrXKlY+bM7FYrp8yFB+3g== +"@types/glob-base@^0.3.0": + version "0.3.0" + resolved "https://registry.npmjs.org/@types/glob-base/-/glob-base-0.3.0.tgz#a581d688347e10e50dd7c17d6f2880a10354319d" + integrity sha1-pYHWiDR+EOUN18F9byiAoQNUMZ0= + "@types/glob@*", "@types/glob@^7.1.1": version "7.1.3" resolved "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" @@ -7038,6 +6940,13 @@ resolved "https://registry.npmjs.org/@types/luxon/-/luxon-1.27.0.tgz#1e3b5a7f8ca6944349c43498b4442b742c71ab0b" integrity sha512-rr2lNXsErnA/ARtgFn46NtQjUa66cuwZYeo/2K7oqqxhJErhXgHBPyNKCo+pfOC3L7HFwtao8ebViiU9h4iAxA== +"@types/markdown-to-jsx@^6.11.3": + version "6.11.3" + resolved "https://registry.npmjs.org/@types/markdown-to-jsx/-/markdown-to-jsx-6.11.3.tgz#cdd1619308fecbc8be7e6a26f3751260249b020e" + integrity sha512-30nFYpceM/ZEvhGiqWjm5quLUxNeld0HCzJEXMZZDpq53FPkS85mTwkWtCXzCqq8s5JYLgM5W392a02xn8Bdaw== + dependencies: + "@types/react" "*" + "@types/mdast@^3.0.0", "@types/mdast@^3.0.3": version "3.0.3" resolved "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.3.tgz#2d7d671b1cd1ea3deb306ea75036c2a0407d2deb" @@ -9092,7 +9001,7 @@ babel-jest@^26.6.3: graceful-fs "^4.2.4" slash "^3.0.0" -babel-loader@^8.0.0: +babel-loader@^8.2.2: version "8.2.2" resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81" integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g== @@ -11068,7 +10977,7 @@ core-js-pure@^3.0.0, core-js-pure@^3.10.2, core-js-pure@^3.6.5: resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.15.1.tgz#8356f6576fa2aa8e54ca6fe02620968ff010eed7" integrity sha512-OZuWHDlYcIda8sJLY4Ec6nWq2hRjlyCqCZ+jCflyleMkVt3tPedDVErvHslyS2nbO+SlBFMSBJYvtLMwxnrzjA== -core-js-pure@^3.8.1, core-js-pure@^3.8.2: +core-js-pure@^3.8.2: version "3.16.0" resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.16.0.tgz#218e07add3f1844e53fab195c47871fc5ba18de8" integrity sha512-wzlhZNepF/QA9yvx3ePDgNGudU5KDB8lu/TRPKelYA/QtSnkS/cLl2W+TIdEX1FAFcBr0YpY7tPDlcmXJ7AyiQ== @@ -11368,22 +11277,6 @@ css-loader@^3.6.0: schema-utils "^2.7.0" semver "^6.3.0" -css-loader@^5.0.1: - version "5.2.7" - resolved "https://registry.npmjs.org/css-loader/-/css-loader-5.2.7.tgz#9b9f111edf6fb2be5dc62525644cbc9c232064ae" - integrity sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg== - dependencies: - icss-utils "^5.1.0" - loader-utils "^2.0.0" - postcss "^8.2.15" - postcss-modules-extract-imports "^3.0.0" - postcss-modules-local-by-default "^4.0.0" - postcss-modules-scope "^3.0.0" - postcss-modules-values "^4.0.0" - postcss-value-parser "^4.1.0" - schema-utils "^3.0.0" - semver "^7.3.5" - css-loader@^5.2.6: version "5.2.6" resolved "https://registry.npmjs.org/css-loader/-/css-loader-5.2.6.tgz#c3c82ab77fea1f360e587d871a6811f4450cc8d1" @@ -11425,17 +11318,6 @@ css-select@^2.0.0: domutils "^1.7.0" nth-check "^1.0.2" -css-select@^4.1.3: - version "4.1.3" - resolved "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz#a70440f70317f2669118ad74ff105e65849c7067" - integrity sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA== - dependencies: - boolbase "^1.0.0" - css-what "^5.0.0" - domhandler "^4.2.0" - domutils "^2.6.0" - nth-check "^2.0.0" - css-tree@1.0.0-alpha.37: version "1.0.0-alpha.37" resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" @@ -11475,11 +11357,6 @@ css-what@^3.2.1: resolved "https://registry.npmjs.org/css-what/-/css-what-3.2.1.tgz#f4a8f12421064621b456755e34a03a2c22df5da1" integrity sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw== -css-what@^5.0.0: - version "5.0.1" - resolved "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz#3efa820131f4669a8ac2408f9c32e7c7de9f4cad" - integrity sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg== - css.escape@1.5.1, css.escape@^1.5.1: version "1.5.1" resolved "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" @@ -12391,7 +12268,7 @@ dom-accessibility-api@^0.5.4, dom-accessibility-api@^0.5.6: resolved "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.6.tgz#3f5d43b52c7a3bd68b5fb63fa47b4e4c1fdf65a9" integrity sha512-DplGLZd8L1lN64jlT27N9TVSESFR5STaEJvX+thCby7fuCHonfPpAlodYc3vuUYbDuDec5w8AMP7oCM5TWFsqw== -dom-converter@^0.2, dom-converter@^0.2.0: +dom-converter@^0.2: version "0.2.0" resolved "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== @@ -12450,11 +12327,6 @@ domelementtype@^2.0.1, domelementtype@^2.1.0: resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e" integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== -domelementtype@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" - integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== - domexception@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" @@ -12490,13 +12362,6 @@ domhandler@^4.0.0: dependencies: domelementtype "^2.1.0" -domhandler@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz#f9768a5f034be60a89a27c2e4d0f74eba0d8b059" - integrity sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA== - dependencies: - domelementtype "^2.2.0" - dompurify@^2.0.12, dompurify@^2.1.1, dompurify@^2.2.8: version "2.2.8" resolved "https://registry.npmjs.org/dompurify/-/dompurify-2.2.8.tgz#ce88e395f6d00b6dc53f80d6b2a6fdf5446873c6" @@ -12532,15 +12397,6 @@ domutils@^2.0.0: domelementtype "^2.0.1" domhandler "^4.0.0" -domutils@^2.5.2, domutils@^2.6.0: - version "2.7.0" - resolved "https://registry.npmjs.org/domutils/-/domutils-2.7.0.tgz#8ebaf0c41ebafcf55b0b72ec31c56323712c5442" - integrity sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg== - dependencies: - dom-serializer "^1.0.1" - domelementtype "^2.2.0" - domhandler "^4.2.0" - dot-case@^3.0.4: version "3.0.4" resolved "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" @@ -12577,13 +12433,6 @@ dotenv-defaults@^1.0.2: dependencies: dotenv "^6.2.0" -dotenv-defaults@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/dotenv-defaults/-/dotenv-defaults-2.0.2.tgz#6b3ec2e4319aafb70940abda72d3856770ee77ac" - integrity sha512-iOIzovWfsUHU91L5i8bJce3NYK5JXeAwH50Jh6+ARUdLiiGlYWfGw6UkzsYqaXZH/hjE/eCd/PlfM/qqyK0AMg== - dependencies: - dotenv "^8.2.0" - dotenv-expand@^5.1.0: version "5.1.0" resolved "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" @@ -12596,13 +12445,6 @@ dotenv-webpack@^1.8.0: dependencies: dotenv-defaults "^1.0.2" -dotenv-webpack@^7.0.0: - version "7.0.3" - resolved "https://registry.npmjs.org/dotenv-webpack/-/dotenv-webpack-7.0.3.tgz#f50ec3c7083a69ec6076e110566720003b7b107b" - integrity sha512-O0O9pOEwrk+n1zzR3T2uuXRlw64QxHSPeNN1GaiNBloQFNaCUL9V8jxSVz4jlXXFP/CIqK8YecWf8BAvsSgMjw== - dependencies: - dotenv-defaults "^2.0.2" - dotenv@^6.2.0: version "6.2.0" resolved "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz#941c0410535d942c8becf28d3f357dbd9d476064" @@ -14649,6 +14491,21 @@ github-slugger@^1.3.0: dependencies: emoji-regex ">=6.0.0 <=6.1.1" +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q= + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg= + dependencies: + is-glob "^2.0.0" + glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" @@ -15509,7 +15366,12 @@ html-entities@^1.2.0: resolved "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44" integrity sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA== -html-entities@^2.1.0, html-entities@^2.3.2: +html-entities@^1.2.1: + version "1.4.0" + resolved "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" + integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== + +html-entities@^2.3.2: version "2.3.2" resolved "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz#760b404685cb1d794e4f4b744332e3b00dcfe488" integrity sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ== @@ -15562,17 +15424,6 @@ html-webpack-plugin@^4.0.0: tapable "^1.1.3" util.promisify "1.0.0" -html-webpack-plugin@^5.0.0: - version "5.3.2" - resolved "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.3.2.tgz#7b04bf80b1f6fe84a6d3f66c8b79d64739321b08" - integrity sha512-HvB33boVNCz2lTyBsSiMffsJ+m0YLIQ+pskblXgN9fnjS1BgEcuAfdInfXfGrkdXV406k9FiDi86eVCDBgJOyQ== - dependencies: - "@types/html-minifier-terser" "^5.0.0" - html-minifier-terser "^5.0.1" - lodash "^4.17.21" - pretty-error "^3.0.4" - tapable "^2.0.0" - html-webpack-plugin@^5.3.1: version "5.3.1" resolved "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.3.1.tgz#8797327548e3de438e3494e0c6d06f181a7f20d1" @@ -15613,16 +15464,6 @@ htmlparser2@^4.0: domutils "^2.0.0" entities "^2.0.0" -htmlparser2@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" - integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.0.0" - domutils "^2.5.2" - entities "^2.0.0" - http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" @@ -16371,6 +16212,11 @@ is-extendable@^1.0.1: dependencies: is-plain-object "^2.0.4" +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= + is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -16420,6 +16266,13 @@ is-glob@4.0.1, is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" +is-glob@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM= + dependencies: + is-extglob "^1.0.0" + is-glob@^3.0.0, is-glob@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" @@ -18964,6 +18817,14 @@ markdown-table@^2.0.0: dependencies: repeat-string "^1.0.0" +markdown-to-jsx@^6.11.4: + version "6.11.4" + resolved "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-6.11.4.tgz#b4528b1ab668aef7fe61c1535c27e837819392c5" + integrity sha512-3lRCD5Sh+tfA52iGgfs/XZiw33f7fFX9Bn55aNnVNUd2GzLDkOWyKYYD8Yju2B1Vn+feiEdgJs8T6Tg0xNokPw== + dependencies: + prop-types "^15.6.2" + unquote "^1.1.0" + markdown-to-jsx@^7.1.3: version "7.1.3" resolved "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.1.3.tgz#f00bae66c0abe7dd2d274123f84cb6bd2a2c7c6a" @@ -19384,7 +19245,7 @@ mime-types@^2.0.8, mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.17, m dependencies: mime-db "1.48.0" -mime-types@^2.1.30, mime-types@^2.1.31: +mime-types@^2.1.31: version "2.1.32" resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5" integrity sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A== @@ -19890,6 +19751,13 @@ napi-build-utils@^1.0.1: resolved "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== +native-url@^0.2.6: + version "0.2.6" + resolved "https://registry.npmjs.org/native-url/-/native-url-0.2.6.tgz#ca1258f5ace169c716ff44eccbddb674e10399ae" + integrity sha512-k4bDC87WtgrdD362gZz6zoiXQrl40kYlBmpfmSjwRO1VU0V5ccwJTlxuE72F6m3V0vc1xOf6n3UCP9QyerRqmA== + dependencies: + querystring "^0.2.0" + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -20355,13 +20223,6 @@ nth-check@^1.0.2, nth-check@~1.0.1: dependencies: boolbase "~1.0.0" -nth-check@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz#1bb4f6dac70072fc313e8c9cd1417b5074c0a125" - integrity sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q== - dependencies: - boolbase "^1.0.0" - nullthrows@^1.0.0, nullthrows@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1" @@ -22086,7 +21947,7 @@ prettier@^1.19.1: resolved "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== -prettier@^2.2.1: +prettier@^2.2.1, prettier@~2.2.1: version "2.2.1" resolved "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== @@ -22104,14 +21965,6 @@ pretty-error@^2.1.1: renderkid "^2.0.1" utila "~0.4" -pretty-error@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/pretty-error/-/pretty-error-3.0.4.tgz#94b1d54f76c1ed95b9c604b9de2194838e5b574e" - integrity sha512-ytLFLfv1So4AO1UkoBF6GXQgJRaKbiSiGFICaOPNwQ3CMvBvXpLRubeQWyPGnsbV/t9ml9qto6IeCsho0aEvwQ== - dependencies: - lodash "^4.17.20" - renderkid "^2.0.6" - pretty-format@^24.9.0: version "24.9.0" resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" @@ -22860,10 +22713,10 @@ react-redux@^7.1.1: prop-types "^15.7.2" react-is "^16.9.0" -react-refresh@^0.10.0: - version "0.10.0" - resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.10.0.tgz#2f536c9660c0b9b1d500684d9e52a65e7404f7e3" - integrity sha512-PgidR3wST3dDYKr6b4pJoqQFpPGNKDSCDx4cZoshjXipw3LzO7mG1My2pwEzz2JVkF+inx3xRpDeQLFQGH/hsQ== +react-refresh@^0.8.3: + version "0.8.3" + resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f" + integrity sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg== react-resize-detector@^2.3.0: version "2.3.0" @@ -23603,17 +23456,6 @@ renderkid@^2.0.1: strip-ansi "^3.0.0" utila "^0.4.0" -renderkid@^2.0.6: - version "2.0.7" - resolved "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz#464f276a6bdcee606f4a15993f9b29fc74ca8609" - integrity sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ== - dependencies: - css-select "^4.1.3" - dom-converter "^0.2.0" - htmlparser2 "^6.1.0" - lodash "^4.17.21" - strip-ansi "^3.0.1" - repeat-element@^1.1.2: version "1.1.3" resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" @@ -25061,10 +24903,10 @@ store2@^2.12.0: resolved "https://registry.npmjs.org/store2/-/store2-2.12.0.tgz#e1f1b7e1a59b6083b2596a8d067f6ee88fd4d3cf" integrity sha512-7t+/wpKLanLzSnQPX8WAcuLCCeuSHoWdQuh9SB3xD0kNOM38DNf+0Oa+wmvxmYueRzkmh6IcdKFtvTa+ecgPDw== -storybook-dark-mode@^1.0.9-canary.158.3571.0: - version "1.0.9-canary.158.3571.0" - resolved "https://registry.npmjs.org/storybook-dark-mode/-/storybook-dark-mode-1.0.9-canary.158.3571.0.tgz#b213521e9d6e1f31fa030c7b684902837cf782d6" - integrity sha512-xfnPJkP8o6VW92rbQVwafL4zn611Drrnx6OgBIiuqIT7D+xzTOzsQ+fJYo14I+Ggwbam1Cri3xeOjrShi0Yehg== +storybook-dark-mode@^1.0.3: + version "1.0.8" + resolved "https://registry.npmjs.org/storybook-dark-mode/-/storybook-dark-mode-1.0.8.tgz#bbd64b382fd62d38685fdd769e2cac4e32ec293d" + integrity sha512-uY6yTSd1vYE0YwlON50u+iIoNF/fmMj59ww1cpd/naUcmOmCjwawViKFG5YjichwdR/yJ5ybWRUF0tnRQfaSiw== dependencies: fast-deep-equal "^3.0.0" memoizerific "^1.11.3" @@ -25404,14 +25246,6 @@ style-loader@^1.3.0: loader-utils "^2.0.0" schema-utils "^2.7.0" -style-loader@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/style-loader/-/style-loader-2.0.0.tgz#9669602fd4690740eaaec137799a03addbbc393c" - integrity sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ== - dependencies: - loader-utils "^2.0.0" - schema-utils "^3.0.0" - style-to-object@0.3.0, style-to-object@^0.3.0: version "0.3.0" resolved "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz#b1b790d205991cc783801967214979ee19a76e46" @@ -25880,7 +25714,7 @@ terser-webpack-plugin@^4.2.3: terser "^5.3.4" webpack-sources "^1.4.3" -terser-webpack-plugin@^5.0.3, terser-webpack-plugin@^5.1.3: +terser-webpack-plugin@^5.1.3: version "5.1.4" resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz#c369cf8a47aa9922bd0d8a94fe3d3da11a7678a1" integrity sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA== @@ -26833,7 +26667,7 @@ unpipe@1.0.0, unpipe@~1.0.0: resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= -unquote@~1.1.1: +unquote@^1.1.0, unquote@~1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= @@ -27341,18 +27175,6 @@ webpack-dev-middleware@^3.7.3: range-parser "^1.2.1" webpack-log "^2.0.0" -webpack-dev-middleware@^4.1.0: - version "4.3.0" - resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-4.3.0.tgz#179cc40795882cae510b1aa7f3710cbe93c9333e" - integrity sha512-PjwyVY95/bhBh6VUqt6z4THplYcsvQ8YNNBTBM873xLVmw8FLeALn0qurHbs9EmcfhzQis/eoqypSnZeuUz26w== - dependencies: - colorette "^1.2.2" - mem "^8.1.1" - memfs "^3.2.2" - mime-types "^2.1.30" - range-parser "^1.2.1" - schema-utils "^3.0.0" - webpack-dev-middleware@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.0.0.tgz#0abe825275720e0a339978aea5f0b03b140c1584" @@ -27445,11 +27267,6 @@ webpack-virtual-modules@^0.2.2: dependencies: debug "^3.0.0" -webpack-virtual-modules@^0.4.1: - version "0.4.3" - resolved "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.4.3.tgz#cd597c6d51d5a5ecb473eea1983a58fa8a17ded9" - integrity sha512-5NUqC2JquIL2pBAAo/VfBP6KuGkHIZQXW/lNKupLPfhViwh8wNsu0BObtl09yuKZszeEUfbXz8xhrHvSG16Nqw== - webpack@4: version "4.46.0" resolved "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" @@ -27479,7 +27296,7 @@ webpack@4: watchpack "^1.7.4" webpack-sources "^1.4.1" -webpack@^5, webpack@^5.48.0, webpack@^5.9.0: +webpack@^5, webpack@^5.48.0: version "5.48.0" resolved "https://registry.npmjs.org/webpack/-/webpack-5.48.0.tgz#06180fef9767a6fd066889559a4c4d49bee19b83" integrity sha512-CGe+nfbHrYzbk7SKoYITCgN3LRAG0yVddjNUecz9uugo1QtYdiyrVD8nP1PhkNqPfdxC2hknmmKpP355Epyn6A== From 7a072dc8ca56dd0ff20957ce459fb23bcd5a310d Mon Sep 17 00:00:00 2001 From: blam Date: Fri, 6 Aug 2021 10:50:21 +0200 Subject: [PATCH 44/64] chore: remove the no-hoist Signed-off-by: blam --- package.json | 3 ++- packages/storybook/package.json | 6 ------ 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 0fe93ffb5e..c9a33f78e6 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,8 @@ "plugins/*" ], "nohoist": [ - "**/@storybook/**" + "**/@storybook/**", + "**/@storybook" ] }, "resolutions": { diff --git a/packages/storybook/package.json b/packages/storybook/package.json index 8195efca1c..c464755e55 100644 --- a/packages/storybook/package.json +++ b/packages/storybook/package.json @@ -7,12 +7,6 @@ "start": "start-storybook -p 6006", "build-storybook": "build-storybook --output-dir dist" }, - "workspaces": { - "nohoist": [ - "@storybook/react/**", - "@storybook/addons/**" - ] - }, "dependencies": { "@backstage/theme": "^0.2.0", "react": "^16.12.0", From 6d9698eaa92c5b5ed9b646cbe5c26e61a3d597e6 Mon Sep 17 00:00:00 2001 From: Brian Fletcher Date: Fri, 6 Aug 2021 11:03:12 +0100 Subject: [PATCH 45/64] move special handling for gh disc processor This change moves the special handling for the GitHub Discovery processor from the GitHub credentials provider into the GitHub Discovery logic. Signed-off-by: Brian Fletcher --- .../src/github/GithubCredentialsProvider.ts | 11 ++--------- .../ingestion/processors/GithubDiscoveryProcessor.ts | 9 ++++++++- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/integration/src/github/GithubCredentialsProvider.ts b/packages/integration/src/github/GithubCredentialsProvider.ts index ebd9fce745..fd5d13caa2 100644 --- a/packages/integration/src/github/GithubCredentialsProvider.ts +++ b/packages/integration/src/github/GithubCredentialsProvider.ts @@ -86,11 +86,7 @@ class GithubAppManager { ): Promise<{ accessToken: string }> { const { installationId, suspended } = await this.getInstallationData(owner); if (suspended) { - throw new Error( - `The GitHub application for ${[owner] - .filter(Boolean) - .join('/')} is suspended`, - ); + throw new Error(`The GitHub application for ${owner} is suspended`); } const cacheKey = repo ? `${owner}/${repo}` : owner; @@ -233,10 +229,7 @@ export class GithubCredentialsProvider { const parsed = parseGitUrl(opts.url); const owner = parsed.owner || parsed.name; - let repo = parsed.owner ? parsed.name : undefined; - // the github-discovery plugin passes an • as a repo name. This simply means it wants access to all repos - // that are available to the installation. - repo = repo === '*' ? undefined : repo; + const repo = parsed.owner ? parsed.name : undefined; let type: GithubCredentialType = 'app'; let token = await this.githubAppCredentialsMux.getAppToken(owner, repo); diff --git a/plugins/catalog-backend/src/ingestion/processors/GithubDiscoveryProcessor.ts b/plugins/catalog-backend/src/ingestion/processors/GithubDiscoveryProcessor.ts index 2219e02406..e28e56941b 100644 --- a/plugins/catalog-backend/src/ingestion/processors/GithubDiscoveryProcessor.ts +++ b/plugins/catalog-backend/src/ingestion/processors/GithubDiscoveryProcessor.ts @@ -25,6 +25,7 @@ import { Logger } from 'winston'; import { getOrganizationRepositories } from './github'; import * as results from './results'; import { CatalogProcessor, CatalogProcessorEmit } from './types'; +import parseGitUrl from 'git-url-parse'; /** * Extracts repositories out of a GitHub org. @@ -63,9 +64,15 @@ export class GithubDiscoveryProcessor implements CatalogProcessor { `There is no GitHub integration that matches ${location.target}. Please add a configuration entry for it under integrations.github`, ); } + + // Building the org url here so that the github creds provider doesn't need to know + // about how to handle the wild card which is special for this processor. + const { source, organization } = parseGitUrl(location.target); + const orgUrl = `https://${source}/${organization}`; + const { headers } = await GithubCredentialsProvider.create( gitHubConfig, - ).getCredentials({ url: location.target }); + ).getCredentials({ url: orgUrl }); const { org, repoSearchPath, catalogPath } = parseUrl(location.target); const client = graphql.defaults({ From 095db2591c06c95c34e9c54578062fe0ded9f44e Mon Sep 17 00:00:00 2001 From: blam Date: Fri, 6 Aug 2021 14:35:59 +0200 Subject: [PATCH 46/64] chore: maybe fixing things! Signed-off-by: blam --- packages/cli/package.json | 3 +- packages/cli/src/lib/bundler/optimization.ts | 6 +-- packages/cli/src/types.d.ts | 3 -- packages/config/package.json | 7 ++-- yarn.lock | 40 +++++++++++++++++++- 5 files changed, 48 insertions(+), 11 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index 6af8fd90a3..c0e6d987f1 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -104,7 +104,7 @@ "style-loader": "^1.2.1", "sucrase": "^3.18.2", "tar": "^6.1.2", - "terser-webpack-plugin": "^1.4.3", + "terser-webpack-plugin": "^5.1.3", "ts-loader": "^8.0.17", "typescript": "^4.0.3", "url-loader": "^4.1.0", @@ -137,6 +137,7 @@ "@types/rollup-plugin-peer-deps-external": "^2.2.0", "@types/rollup-plugin-postcss": "^2.0.0", "@types/tar": "^4.0.3", + "@types/terser-webpack-plugin": "^5.0.4", "@types/webpack": "^5.28.0", "@types/webpack-dev-server": "^3.11.5", "@types/yarnpkg__lockfile": "^1.1.4", diff --git a/packages/cli/src/lib/bundler/optimization.ts b/packages/cli/src/lib/bundler/optimization.ts index f42018e522..4d77f2cc73 100644 --- a/packages/cli/src/lib/bundler/optimization.ts +++ b/packages/cli/src/lib/bundler/optimization.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { WebpackOptionsNormalized } from 'webpack'; +import { WebpackOptionsNormalized, WebpackPluginInstance } from 'webpack'; import TerserPlugin from 'terser-webpack-plugin'; import { BundlingOptions } from './types'; import { isParallelDefault } from '../parallel'; @@ -30,9 +30,9 @@ export const optimization = ( ...(!isParallelDefault(options.parallel) ? { minimizer: [ - new TerserPlugin({ + (new TerserPlugin({ parallel: options.parallel, - }), + }) as unknown) as WebpackPluginInstance, ], } : {}), diff --git a/packages/cli/src/types.d.ts b/packages/cli/src/types.d.ts index 07684bc15a..d3ef72646b 100644 --- a/packages/cli/src/types.d.ts +++ b/packages/cli/src/types.d.ts @@ -29,9 +29,6 @@ declare module '@svgr/rollup' { } declare module '@rollup/plugin-yaml'; - -declare module 'terser-webpack-plugin'; - declare module 'react-dev-utils/formatWebpackMessages' { export default function ( stats: any, diff --git a/packages/config/package.json b/packages/config/package.json index 5d9bf94446..ad1afbbce7 100644 --- a/packages/config/package.json +++ b/packages/config/package.json @@ -19,8 +19,8 @@ "backstage" ], "license": "Apache-2.0", - "main": "src/index.ts", - "types": "src/index.ts", + "main": "dist/index.cjs.js", + "types": "dist/index.d.ts", "scripts": { "build": "backstage-cli build", "lint": "backstage-cli lint", @@ -38,5 +38,6 @@ }, "files": [ "dist" - ] + ], + "module": "dist/index.esm.js" } diff --git a/yarn.lock b/yarn.lock index 1d1738673e..9660983a75 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7464,6 +7464,14 @@ dependencies: "@types/estree" "*" +"@types/terser-webpack-plugin@^5.0.4": + version "5.0.4" + resolved "https://registry.npmjs.org/@types/terser-webpack-plugin/-/terser-webpack-plugin-5.0.4.tgz#852949e1d124e6c895cfa8cb17eb6265e4fdfe59" + integrity sha512-1iyfZpMNNA/h/Q8uBpwuVhxKfKQHc98PD9NaCTrg22nj6d8aUvT79KBMtRLmR43v1PtCB0r1/gWGdNXrrMEK7A== + dependencies: + terser "^5.3.8" + webpack "^5.1.0" + "@types/testing-library__jest-dom@^5.9.1": version "5.9.5" resolved "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.9.5.tgz#5bf25c91ad2d7b38f264b12275e5c92a66d849b0" @@ -25735,7 +25743,7 @@ terser@^4.1.2, terser@^4.6.3: source-map "~0.6.1" source-map-support "~0.5.12" -terser@^5.3.4, terser@^5.7.0: +terser@^5.3.4, terser@^5.3.8, terser@^5.7.0: version "5.7.1" resolved "https://registry.npmjs.org/terser/-/terser-5.7.1.tgz#2dc7a61009b66bb638305cb2a824763b116bf784" integrity sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg== @@ -27326,6 +27334,36 @@ webpack@^5, webpack@^5.48.0: watchpack "^2.2.0" webpack-sources "^3.2.0" +webpack@^5.1.0: + version "5.49.0" + resolved "https://registry.npmjs.org/webpack/-/webpack-5.49.0.tgz#e250362b781a9fb614ba0a97ed67c66b9c5310cd" + integrity sha512-XarsANVf28A7Q3KPxSnX80EkCcuOer5hTOEJWJNvbskOZ+EK3pobHarGHceyUZMxpsTHBHhlV7hiQyLZzGosYw== + dependencies: + "@types/eslint-scope" "^3.7.0" + "@types/estree" "^0.0.50" + "@webassemblyjs/ast" "1.11.1" + "@webassemblyjs/wasm-edit" "1.11.1" + "@webassemblyjs/wasm-parser" "1.11.1" + acorn "^8.4.1" + acorn-import-assertions "^1.7.6" + browserslist "^4.14.5" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.8.0" + es-module-lexer "^0.7.1" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.4" + json-parse-better-errors "^1.0.2" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^3.1.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.1.3" + watchpack "^2.2.0" + webpack-sources "^3.2.0" + websocket-driver@>=0.5.1: version "0.7.3" resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9" From 5af699a12e1247883d4b87fe57a09d3184661148 Mon Sep 17 00:00:00 2001 From: blam Date: Fri, 6 Aug 2021 14:43:33 +0200 Subject: [PATCH 47/64] chore: revert accidental change of package.json when half way through a build Signed-off-by: blam --- packages/config/package.json | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/config/package.json b/packages/config/package.json index ad1afbbce7..5d9bf94446 100644 --- a/packages/config/package.json +++ b/packages/config/package.json @@ -19,8 +19,8 @@ "backstage" ], "license": "Apache-2.0", - "main": "dist/index.cjs.js", - "types": "dist/index.d.ts", + "main": "src/index.ts", + "types": "src/index.ts", "scripts": { "build": "backstage-cli build", "lint": "backstage-cli lint", @@ -38,6 +38,5 @@ }, "files": [ "dist" - ], - "module": "dist/index.esm.js" + ] } From 38539895af18803477e435e6637b47672cda9d3b Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 6 Aug 2021 16:43:52 +0200 Subject: [PATCH 48/64] lerna.json: set version to 0.1.0 Signed-off-by: Patrik Oldsberg --- lerna.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lerna.json b/lerna.json index dd2dd884eb..322929db1d 100644 --- a/lerna.json +++ b/lerna.json @@ -2,5 +2,5 @@ "packages": ["packages/*", "plugins/*"], "npmClient": "yarn", "useWorkspaces": true, - "version": "0.1.1" + "version": "0.1.0" } From 0e0c11ff04f310781b216f9e62444a692682c269 Mon Sep 17 00:00:00 2001 From: blam Date: Fri, 6 Aug 2021 17:40:01 +0200 Subject: [PATCH 49/64] chore: removing legacy plugin from monorepo Signed-off-by: blam --- plugins/register-component/.eslintrc.js | 3 - plugins/register-component/CHANGELOG.md | 342 ------------------ plugins/register-component/README.md | 50 --- plugins/register-component/api-report.md | 42 --- plugins/register-component/dev/index.tsx | 20 - plugins/register-component/package.json | 64 ---- .../src/assets/screenshot-1.png | Bin 465911 -> 0 bytes .../src/assets/screenshot-2.png | Bin 423815 -> 0 bytes .../src/assets/screenshot-3.png | Bin 420428 -> 0 bytes .../src/assets/screenshot-4.png | Bin 412247 -> 0 bytes .../src/assets/screenshot-5.png | Bin 392512 -> 0 bytes .../RegisterComponentForm.test.tsx | 53 --- .../RegisterComponentForm.tsx | 125 ------- .../components/RegisterComponentForm/index.ts | 17 - .../RegisterComponentPage.test.tsx | 70 ---- .../RegisterComponentPage.tsx | 137 ------- .../components/RegisterComponentPage/index.ts | 17 - .../RegisterComponentResultDialog.test.tsx | 93 ----- .../RegisterComponentResultDialog.tsx | 142 -------- .../RegisterComponentResultDialog/index.ts | 17 - .../src/components/Router.tsx | 36 -- plugins/register-component/src/index.ts | 22 -- plugins/register-component/src/plugin.test.ts | 23 -- plugins/register-component/src/plugin.ts | 42 --- plugins/register-component/src/setupTests.ts | 17 - .../src/util/validate.test.ts | 48 --- .../register-component/src/util/validate.ts | 24 -- plugins/register-component/tsconfig.json | 5 - 28 files changed, 1409 deletions(-) delete mode 100644 plugins/register-component/.eslintrc.js delete mode 100644 plugins/register-component/CHANGELOG.md delete mode 100644 plugins/register-component/README.md delete mode 100644 plugins/register-component/api-report.md delete mode 100644 plugins/register-component/dev/index.tsx delete mode 100644 plugins/register-component/package.json delete mode 100644 plugins/register-component/src/assets/screenshot-1.png delete mode 100644 plugins/register-component/src/assets/screenshot-2.png delete mode 100644 plugins/register-component/src/assets/screenshot-3.png delete mode 100644 plugins/register-component/src/assets/screenshot-4.png delete mode 100644 plugins/register-component/src/assets/screenshot-5.png delete mode 100644 plugins/register-component/src/components/RegisterComponentForm/RegisterComponentForm.test.tsx delete mode 100644 plugins/register-component/src/components/RegisterComponentForm/RegisterComponentForm.tsx delete mode 100644 plugins/register-component/src/components/RegisterComponentForm/index.ts delete mode 100644 plugins/register-component/src/components/RegisterComponentPage/RegisterComponentPage.test.tsx delete mode 100644 plugins/register-component/src/components/RegisterComponentPage/RegisterComponentPage.tsx delete mode 100644 plugins/register-component/src/components/RegisterComponentPage/index.ts delete mode 100644 plugins/register-component/src/components/RegisterComponentResultDialog/RegisterComponentResultDialog.test.tsx delete mode 100644 plugins/register-component/src/components/RegisterComponentResultDialog/RegisterComponentResultDialog.tsx delete mode 100644 plugins/register-component/src/components/RegisterComponentResultDialog/index.ts delete mode 100644 plugins/register-component/src/components/Router.tsx delete mode 100644 plugins/register-component/src/index.ts delete mode 100644 plugins/register-component/src/plugin.test.ts delete mode 100644 plugins/register-component/src/plugin.ts delete mode 100644 plugins/register-component/src/setupTests.ts delete mode 100644 plugins/register-component/src/util/validate.test.ts delete mode 100644 plugins/register-component/src/util/validate.ts delete mode 100644 plugins/register-component/tsconfig.json diff --git a/plugins/register-component/.eslintrc.js b/plugins/register-component/.eslintrc.js deleted file mode 100644 index 13573efa9c..0000000000 --- a/plugins/register-component/.eslintrc.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - extends: [require.resolve('@backstage/cli/config/eslint')], -}; diff --git a/plugins/register-component/CHANGELOG.md b/plugins/register-component/CHANGELOG.md deleted file mode 100644 index b4123e326f..0000000000 --- a/plugins/register-component/CHANGELOG.md +++ /dev/null @@ -1,342 +0,0 @@ -# @backstage/plugin-register-component - -## 0.2.22 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.3.0 - - @backstage/core-plugin-api@0.1.5 - - @backstage/plugin-catalog-react@0.4.1 - -## 0.2.21 - -### Patch Changes - -- 9d40fcb1e: - Bumping `material-ui/core` version to at least `4.12.2` as they made some breaking changes in later versions which broke `Pagination` of the `Table`. - - Switching out `material-table` to `@material-table/core` for support for the later versions of `material-ui/core` - - This causes a minor API change to `@backstage/core-components` as the interface for `Table` re-exports the `prop` from the underlying `Table` components. - - `onChangeRowsPerPage` has been renamed to `onRowsPerPageChange` - - `onChangePage` has been renamed to `onPageChange` - - Migration guide is here: https://material-table-core.com/docs/breaking-changes -- Updated dependencies - - @backstage/core-components@0.2.0 - - @backstage/plugin-catalog-react@0.4.0 - - @backstage/core-plugin-api@0.1.4 - - @backstage/theme@0.2.9 - -## 0.2.20 - -### Patch Changes - -- Updated dependencies - - @backstage/plugin-catalog-react@0.3.0 - -## 0.2.19 - -### Patch Changes - -- Updated dependencies - - @backstage/core-components@0.1.5 - - @backstage/catalog-model@0.9.0 - - @backstage/plugin-catalog-react@0.2.6 - -## 0.2.18 - -### Patch Changes - -- b47fc34bc: Update "service catalog" references to "software catalog" -- Updated dependencies - - @backstage/plugin-catalog-react@0.2.5 - - @backstage/core-components@0.1.4 - -## 0.2.17 - -### Patch Changes - -- 48c9fcd33: Migrated to use the new `@backstage/core-*` packages rather than `@backstage/core`. -- Updated dependencies - - @backstage/core-plugin-api@0.1.3 - - @backstage/catalog-model@0.8.4 - - @backstage/plugin-catalog-react@0.2.4 - -## 0.2.16 - -### Patch Changes - -- Updated dependencies [add62a455] -- Updated dependencies [cc592248b] -- Updated dependencies [17c497b81] -- Updated dependencies [704875e26] - - @backstage/catalog-model@0.8.0 - - @backstage/core@0.7.11 - - @backstage/plugin-catalog-react@0.2.0 - -## 0.2.15 - -### Patch Changes - -- 062bbf90f: chore: bump `@testing-library/user-event` from 12.8.3 to 13.1.8 -- 675a569a9: chore: bump `react-use` dependency in all packages -- Updated dependencies [062bbf90f] -- Updated dependencies [10c008a3a] -- Updated dependencies [889d89b6e] -- Updated dependencies [16be1d093] -- Updated dependencies [3f988cb63] -- Updated dependencies [675a569a9] - - @backstage/core@0.7.9 - - @backstage/plugin-catalog-react@0.1.6 - - @backstage/catalog-model@0.7.9 - -## 0.2.14 - -### Patch Changes - -- c614ede9a: Updated README to have up-to-date install instructions. -- Updated dependencies [9afcac5af] -- Updated dependencies [e0c9ed759] -- Updated dependencies [6eaecbd81] - - @backstage/core@0.7.7 - -## 0.2.13 - -### Patch Changes - -- 676ede643: Added the `getOriginLocationByEntity` and `removeLocationById` methods to the catalog client -- Updated dependencies [9f48b548c] -- Updated dependencies [8488a1a96] - - @backstage/plugin-catalog-react@0.1.4 - - @backstage/catalog-model@0.7.5 - -## 0.2.12 - -### Patch Changes - -- Updated dependencies [12d8f27a6] -- Updated dependencies [40c0fdbaa] -- Updated dependencies [2a271d89e] -- Updated dependencies [bece09057] -- Updated dependencies [169f48deb] -- Updated dependencies [8a1566719] -- Updated dependencies [9d455f69a] -- Updated dependencies [4c049a1a1] -- Updated dependencies [02816ecd7] - - @backstage/catalog-model@0.7.3 - - @backstage/core@0.7.0 - - @backstage/plugin-catalog-react@0.1.1 - -## 0.2.11 - -### Patch Changes - -- Updated dependencies [3a58084b6] -- Updated dependencies [e799e74d4] -- Updated dependencies [d0760ecdf] -- Updated dependencies [1407b34c6] -- Updated dependencies [88f1f1b60] -- Updated dependencies [bad21a085] -- Updated dependencies [9615e68fb] -- Updated dependencies [49f9b7346] -- Updated dependencies [5c2e2863f] -- Updated dependencies [3a58084b6] -- Updated dependencies [2c1f2a7c2] - - @backstage/core@0.6.3 - - @backstage/plugin-catalog-react@0.1.0 - - @backstage/catalog-model@0.7.2 - -## 0.2.10 - -### Patch Changes - -- Updated dependencies [fd3f2a8c0] -- Updated dependencies [d34d26125] -- Updated dependencies [0af242b6d] -- Updated dependencies [f4c2bcf54] -- Updated dependencies [10a0124e0] -- Updated dependencies [07e226872] -- Updated dependencies [f62e7abe5] -- Updated dependencies [96f378d10] -- Updated dependencies [688b73110] - - @backstage/core@0.6.2 - - @backstage/plugin-catalog-react@0.0.4 - -## 0.2.9 - -### Patch Changes - -- 9ec66c345: Migrated to new composability API, exporting the plugin instance as `registerComponentPlugin`, and page as `RegisterComponentPage`. -- Updated dependencies [19d354c78] -- Updated dependencies [b51ee6ece] - - @backstage/plugin-catalog-react@0.0.3 - - @backstage/core@0.6.1 - -## 0.2.8 - -### Patch Changes - -- 019fe39a0: Switch dependency from `@backstage/plugin-catalog` to `@backstage/plugin-catalog-react`. -- Updated dependencies [12ece98cd] -- Updated dependencies [d82246867] -- Updated dependencies [7fc89bae2] -- Updated dependencies [c810082ae] -- Updated dependencies [5fa3bdb55] -- Updated dependencies [6e612ce25] -- Updated dependencies [025e122c3] -- Updated dependencies [21e624ba9] -- Updated dependencies [da9f53c60] -- Updated dependencies [32c95605f] -- Updated dependencies [7881f2117] -- Updated dependencies [54c7d02f7] -- Updated dependencies [11cb5ef94] - - @backstage/core@0.6.0 - - @backstage/plugin-catalog-react@0.0.2 - - @backstage/theme@0.2.3 - - @backstage/catalog-model@0.7.1 - -## 0.2.7 - -### Patch Changes - -- Updated dependencies [def2307f3] -- Updated dependencies [efd6ef753] -- Updated dependencies [593632f07] -- Updated dependencies [33846acfc] -- Updated dependencies [a187b8ad0] -- Updated dependencies [f04db53d7] -- Updated dependencies [a93f42213] - - @backstage/catalog-model@0.7.0 - - @backstage/core@0.5.0 - - @backstage/plugin-catalog@0.2.12 - -## 0.2.6 - -### Patch Changes - -- 1517876fd: Register component plugin is deprecated in favor of @backstage/plugin-catalog-import -- Updated dependencies [a08c32ced] -- Updated dependencies [7e0b8cac5] -- Updated dependencies [87c0c53c2] - - @backstage/core@0.4.3 - - @backstage/plugin-catalog@0.2.9 - -## 0.2.5 - -### Patch Changes - -- Updated dependencies [c911061b7] -- Updated dependencies [8ef71ed32] -- Updated dependencies [0e6298f7e] -- Updated dependencies [ac3560b42] - - @backstage/catalog-model@0.6.0 - - @backstage/core@0.4.1 - - @backstage/plugin-catalog@0.2.7 - -## 0.2.4 - -### Patch Changes - -- Updated dependencies [2527628e1] -- Updated dependencies [6011b7d3e] -- Updated dependencies [1c69d4716] -- Updated dependencies [83b6e0c1f] -- Updated dependencies [1665ae8bb] -- Updated dependencies [04f26f88d] -- Updated dependencies [ff243ce96] - - @backstage/core@0.4.0 - - @backstage/plugin-catalog@0.2.6 - - @backstage/catalog-model@0.5.0 - - @backstage/theme@0.2.2 - -## 0.2.3 - -### Patch Changes - -- Updated dependencies [08835a61d] -- Updated dependencies [a9fd599f7] -- Updated dependencies [bcc211a08] -- Updated dependencies [ebf37bbae] - - @backstage/catalog-model@0.4.0 - - @backstage/plugin-catalog@0.2.5 - -## 0.2.2 - -### Patch Changes - -- 2a71f4bab: Remove catalog link on validate popup -- Updated dependencies [475fc0aaa] -- Updated dependencies [1166fcc36] -- Updated dependencies [1185919f3] - - @backstage/core@0.3.2 - - @backstage/catalog-model@0.3.0 - - @backstage/plugin-catalog@0.2.3 - -## 0.2.1 - -### Patch Changes - -- Updated dependencies [7b37d65fd] -- Updated dependencies [4aca74e08] -- Updated dependencies [e8f69ba93] -- Updated dependencies [0c0798f08] -- Updated dependencies [0c0798f08] -- Updated dependencies [199237d2f] -- Updated dependencies [6627b626f] -- Updated dependencies [4577e377b] -- Updated dependencies [2d0bd1be7] - - @backstage/core@0.3.0 - - @backstage/theme@0.2.1 - - @backstage/plugin-catalog@0.2.1 - -## 0.2.0 - -### Minor Changes - -- 28edd7d29: Create backend plugin through CLI -- 2ebcfac8d: Add a validate button to the register-component page - - This allows the user to validate his location before adding it. - -### Patch Changes - -- 8b9c8196f: Locations registered through the catalog client now default to the 'url' type. The type selection dropdown in the register-component form has been removed. -- Updated dependencies [28edd7d29] -- Updated dependencies [819a70229] -- Updated dependencies [3a4236570] -- Updated dependencies [ae5983387] -- Updated dependencies [0d4459c08] -- Updated dependencies [482b6313d] -- Updated dependencies [e0be86b6f] -- Updated dependencies [f70a52868] -- Updated dependencies [12b5fe940] -- Updated dependencies [368fd8243] -- Updated dependencies [1c60f716e] -- Updated dependencies [144c66d50] -- Updated dependencies [a768a07fb] -- Updated dependencies [b79017fd3] -- Updated dependencies [6d97d2d6f] -- Updated dependencies [5adfc005e] -- Updated dependencies [f0aa01bcc] -- Updated dependencies [0aecfded0] -- Updated dependencies [93a3fa3ae] -- Updated dependencies [782f3b354] -- Updated dependencies [8b9c8196f] -- Updated dependencies [2713f28f4] -- Updated dependencies [406015b0d] -- Updated dependencies [82759d3e4] -- Updated dependencies [60d40892c] -- Updated dependencies [ac8d5d5c7] -- Updated dependencies [2ebcfac8d] -- Updated dependencies [fa56f4615] -- Updated dependencies [ebca83d48] -- Updated dependencies [aca79334f] -- Updated dependencies [c0d5242a0] -- Updated dependencies [b3d57961c] -- Updated dependencies [0b956f21b] -- Updated dependencies [97c2cb19b] -- Updated dependencies [3beb5c9fc] -- Updated dependencies [754e31db5] -- Updated dependencies [1611c6dbc] - - @backstage/plugin-catalog@0.2.0 - - @backstage/core@0.2.0 - - @backstage/catalog-model@0.2.0 - - @backstage/theme@0.2.0 diff --git a/plugins/register-component/README.md b/plugins/register-component/README.md deleted file mode 100644 index 47db1a7a55..0000000000 --- a/plugins/register-component/README.md +++ /dev/null @@ -1,50 +0,0 @@ -# Register component plugin - -> This plugin is deprecated in favor of [`@backstage/catalog-import`](https://github.com/backstage/backstage/tree/master/plugins/catalog-import), and will be soon removed from the project. - -Welcome to the register-component plugin! - -This plugin allows you to submit your Backstage component using your software's YAML config. - -When installed it is accessible on [localhost:3000/register-component](localhost:3000/register-component). - - - - - - - -## Standalone setup - -1. Install plugin and its dependency `plugin-catalog` - -```bash -# From your Backstage root directory -cd packages/app -yarn add @backstage/plugin-register-component -``` - -2. Add the `RegisterComponentPage` extension to your `App.tsx`: - -```tsx -// packages/app/src/App.tsx -import { RegisterComponentPage } from '@backstage/plugin-cost-insights'; - - - ... - } /> - ... -; -``` - -## Running - -Just run the backstage. - -``` -yarn start && yarn --cwd packages/backend start -``` - -## Usage - -Pretty straightforward, navigate to [localhost:3000/register-component](localhost:3000/register-component) and enter your component's YAML config URL. diff --git a/plugins/register-component/api-report.md b/plugins/register-component/api-report.md deleted file mode 100644 index 39aeb39505..0000000000 --- a/plugins/register-component/api-report.md +++ /dev/null @@ -1,42 +0,0 @@ -## API Report File for "@backstage/plugin-register-component" - -> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). - -```ts -/// - -import { BackstagePlugin } from '@backstage/core-plugin-api'; -import { RouteRef } from '@backstage/core-plugin-api'; - -// Warning: (ae-missing-release-tag) "RegisterComponentPage" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// -// @public (undocumented) -export const RegisterComponentPage: ({ - catalogRouteRef, -}: { - catalogRouteRef: RouteRef; -}) => JSX.Element; - -// Warning: (ae-missing-release-tag) "registerComponentPlugin" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// -// @public (undocumented) -const registerComponentPlugin: BackstagePlugin< - { - root: RouteRef; - }, - {} ->; -export { registerComponentPlugin as plugin }; -export { registerComponentPlugin }; - -// Warning: (ae-missing-release-tag) "Router" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) -// -// @public @deprecated -export const Router: ({ - catalogRouteRef, -}: { - catalogRouteRef: RouteRef; -}) => JSX.Element; - -// (No @packageDocumentation comment for this package) -``` diff --git a/plugins/register-component/dev/index.tsx b/plugins/register-component/dev/index.tsx deleted file mode 100644 index e93e4f1ed7..0000000000 --- a/plugins/register-component/dev/index.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { createDevApp } from '@backstage/dev-utils'; -import { registerComponentPlugin } from '../src/plugin'; - -createDevApp().registerPlugin(registerComponentPlugin).render(); diff --git a/plugins/register-component/package.json b/plugins/register-component/package.json deleted file mode 100644 index bfc765944d..0000000000 --- a/plugins/register-component/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "@backstage/plugin-register-component", - "version": "0.2.22", - "main": "src/index.ts", - "types": "src/index.ts", - "license": "Apache-2.0", - "private": false, - "publishConfig": { - "access": "public", - "main": "dist/index.esm.js", - "types": "dist/index.d.ts" - }, - "homepage": "https://backstage.io", - "repository": { - "type": "git", - "url": "https://github.com/backstage/backstage", - "directory": "plugins/register-component" - }, - "keywords": [ - "backstage" - ], - "scripts": { - "build": "backstage-cli plugin:build", - "start": "backstage-cli plugin:serve", - "lint": "backstage-cli lint", - "test": "backstage-cli test", - "diff": "backstage-cli plugin:diff", - "prepack": "backstage-cli prepack", - "postpack": "backstage-cli postpack", - "clean": "backstage-cli clean" - }, - "dependencies": { - "@backstage/catalog-model": "^0.9.0", - "@backstage/core-components": "^0.3.0", - "@backstage/core-plugin-api": "^0.1.5", - "@backstage/plugin-catalog-react": "^0.4.1", - "@backstage/theme": "^0.2.9", - "@material-ui/core": "^4.12.2", - "@material-ui/icons": "^4.9.1", - "@material-ui/lab": "4.0.0-alpha.45", - "react": "^16.13.1", - "react-dom": "^16.13.1", - "react-hook-form": "^6.15.4", - "react-router": "6.0.0-beta.0", - "react-router-dom": "6.0.0-beta.0", - "react-use": "^17.2.4" - }, - "devDependencies": { - "@backstage/cli": "^0.7.7", - "@backstage/core-app-api": "^0.1.7", - "@backstage/dev-utils": "^0.2.5", - "@backstage/test-utils": "^0.1.16", - "@testing-library/jest-dom": "^5.10.1", - "@testing-library/react": "^11.2.5", - "@testing-library/user-event": "^13.1.8", - "@types/jest": "^26.0.7", - "@types/node": "^14.14.32", - "cross-fetch": "^3.0.6", - "msw": "^0.29.0" - }, - "files": [ - "dist" - ] -} diff --git a/plugins/register-component/src/assets/screenshot-1.png b/plugins/register-component/src/assets/screenshot-1.png deleted file mode 100644 index ffaebbb2f5e6d8f888139bed1325772f4dadd4a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 465911 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

^yc$~9!6xjI6iSVXZAWs_-8<|zZ#V=N)#venS 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

1P!PEYg=S#xdx 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 z z-)EflI5BiPsp>WoK#yotVT4mM5ixoh1l+iMOe|B`VJ%5n1rdaN(iAlP3eYK01JqDs zvJFcCbohijp@ke>ed%3%@$Q z?`VA^n}4`9;Z=a=x48-qxE3phrbHQgm7zcXR>?cKGT?ZMM=1)5l>)t^IyXtpiORhd zmY=K{ESPafcrZ&a;ABm1fqQ+modgKb#eYuf^j5xOfM5pUn81J=>Av-yJAX4k<*oBk z{Rs|@WDYc0L{6wWxKWGu!vcLS>^sse(_o2)p4kyST7Sx_baW^c1~@7zPziG|71zpA zfrJvh%xGow!LUqW09>LBc_y#u)$$ozU!Qx65Z5d>xf6+`pM&nIanSs3ricm?cc$_< zl0|S$nDDY*J#rkiPY4O;im9R2g$mA%VrXhqXwV#j5_s$q`3XXUV}0u1@m6=__$1XR zxa7j{Ss^nnCYX9WH{PT$p;xGk#!Y?lWMXs5$;Ng&(_z;tW!5d;j|K$2_anUJR!t$K zoh8tFocALH*>Hm9C5c|Vnx`rHI;AB1c#+?&itOYFtT)Eotvray;ko>ClUxt*|+H*Q+#mM_ag&23QwW{?gUR9(6|6zf=lES zIa~^_hlG|g7hetc7gQ!l2u($YqqBd?ILi%fPaGh;RMSujeWgtGPd)js%70(Ko_GLx zff+42UWl&dWx~K&978TkMTDUQZWdiTttvt@9O&)T%OEH+rvwW;l1|RiMQDu!7}egP zo>eMVz>W?_ShtIJ=?E9@9WL__h7h>n+uLmm6ArX(pV*S4Z|luQr34Jz2>e-j>ZGSz z1KHKz8Sms9@V*I;V~SBcjTMw|_bKJS)5fRF{xih@eQAX2dp=crD63r6%XjHm4Lj$?m!5-YWSxlHWt`dF(dg0CEGYFLx7)n17P)aG&+f7GE5(ZHO zOyNcY8bdJ14<>+g!+ z9P;v+Yv}PV50NKwUXmOyMxSd}%+MB1cmb0R14$mDA3j7)5+WRz$%JT)8yKKCoE;_A zbd9NOHC%O^s)0q~3d|}!aD*E-@OU`JKy(dSHP=)QtyC??EZ#W+lQ_U)#n$1hcsA0v zEMM*wCJ-M~iPmIm{A@C>7#1vd0mC#Ygx%I>h6%6P0y(qqH^(?U-I$%DCj0t;gUIpDIK#h{@o zmC^YHg!R?L2*>9RhWLrWW7Y30>HxTKdnHD2(plBYsNom&w0Z-iRU#8b7%<>PT*4(6 zm2^^ei_t6Je}(>Hzu_^boMQC+S6c=Fu}GO>VEYfEs0{!oQv_S@e*nwEW00M)Ru)-7q&2EjH6AN&6IDN?Q)gpS{of|g{MI0KYCwx!n_2`_0(C9t#-`TKKrQbimZ8Dk)KOs=*^m#3`i zOQ2xZp5Owf4H{;hhqhp98oSYwh=^+)z08?9iep%-p!n%us(01_*DF_b4QGO5g|Eps z*X3%Ej+<5Yc-56w`#=Jr`(Jhw&SJR&d=viCEkEXm83bJk1i~|wH-!h~<|_W9uJk~! zGgAkWQQ$7#q@GfM#Z@BFiqD;~nnjsw!4|{e9Dhmi$glvq=F)m;1+T0X9S8>n3UkIu z<@JH8#(gu2qp#==*O=R$6jw?cW?p7TaXr<;Eli2Or1;$yMAwo?fXh`wO;E^tcxF<+ z0zw(KZ!SwaVFMF73#*(NlMrIKJITj-ha43j)+m=_2oe}5-%*R6wRo)J#0}ql^Z!!5 zto)Bui?t+c{t~h~D^Q+nW48AbVZdag-d}im@nGlu1)P#w?K-EaOwigZ4z8xJxJrcs z;gw_^))VN=D7&~rpyFLbRW^DDPYqVMwj2{Z*;5TBG(b2SSBYxr!Zo!D3HruLB7OFazM6=j6-DD%-N&_m zh$&yP)j|skmQT3Uqf9oQz}fH=Xv%!>!`{l@nW%_op}fLo#f-`l&k zmu?C!2YmknEnT>@x2T)wfZzaVl7aj3wRTLB+)YN2OZ?1m!I0ou^;s^_AAW7|((Qx? za#IOr5N3OgKA!FbO;EW@)XVWM%9Nk#6Yt_i18yU7Vg#x&+uR^g08fRdin*&uASPf& zg`+SKZTcY0`lP*L4FUlIebQe1>hoXy@|S6YKqG{wTbs0pNFbzB8VQ77{ZQHe7RVtG9FUecMfo%NgL9r@ zWMQ-c0-cl*!vkv&IOcS=#prpY1qgOZYlj#iC-0>ER?3sFpdMU%>u0fkF@ttf)?WU% z3lM&9?);)J{13x7Vh$*9EvC1t!&4qZkD#dTq;B|>l^lF*Nq8Lpa9qS4DB z45gxg;WFgU_P8rUZ#hyLfoQt>h{9?{mv)d(RLo4+Z-HPzj!dvDaoEX*q#e&%#fdgy zmYaM)HRX_O0>Cqtm=R{Y(bbNvla?PR@@a(!stFUKxiwdH*IRSy1$V~PIMD#m47|Yr z_wEL|#SvZcp4EQ4#jzQ=)9bk}dV9-&m-_@V>aP_B|L z2(@9T*nGG!;3(={NkMV$D6P#xMHfjfM9Yb)P`#=MP)GG{Lx+|MkD|9ZXT=5@#tF@< zl~GqS5&bD)J|?-);(+i$3x?{KR(A&ONX*yUaZpI~KQHghsEAe;544U5BJziq3=VO8b9RnU0qv8T)WIkl@j#<)$2e@3TeX~+# z<~fd~U1uN3^Q5NtpoaPDgP@>{TBC4fs!{a`2urv#u2dzUvtr8i=u^4%#`k_`fBXqs zE|L5#!}k~Ot8EPTU_Q$$Xkul8Y&?eN{k1(Ngs}So+`X4Z7gKrOUj`6zX82Wjzr!+G z47u-zVP;{YUNv%tinGHBURLoqisNSq7c1gXI9FWtdmJvsXCja3C`owW^Rbg2P>#Gc zVNykvM41%YOUM_$4gN#oL$VWDUG7%URToDlXx9 zjQqmm)zZvEjiNDoY37d1_*3;ng%`EzFRlCr1;Z^!j}iuM#0Nu?FG(v-jVB_6()O zc0yQa0m3~WFi7|SbMO0qSfkvUBUq-8*-b|L>R!(<;*3-G7cI0JWzR5TixEZ21_&Qa zC*=q1gYaSFgNH~UJo7~(gy)k%FoEz*69}(xiqVfxdd%t7e@X=KxW>`J>c`C(==kYd zul?e!Y&xQq@`?H&3=0kJLi`Rd`Sc(3BY@xOp-=u*KZ5{N%C0D(I9Id^3KA_axaF+< zltC>KcrSx65cvBdJ40ixpByVzf{1b^+tAeQG?gIVK!G%0{g~a!Os*CxAlun`1ZQXy zg`n5wBNsrT27iRw4+-RbkrsbG*y%omA)BJ5!?T=q+7k6CiZ(8AZ|{a` zsv080Kf^gn1}6s&QVE#{NY{YZ+UF|8N2NA**Py5#hQ|o^fe7whtCfGqHLO7p++D%) z*S}sFg??h8xF##EIxE!}pxcJT%)l((+%dHhI^YV7${bZEl7$Bq`7I$*O9{jng3&oN zl4lUsT}zY%4~j~Q2((oruD#=u%JF(=wOm%}x%s|o6*t7ls!uK9fNoSS6h`xQSEOe$ zN4XhQ(U3G5@PSmIaJM;wW1@6lQbqpUl`D_Gx_C6+ZN2lEeCbW5toFmlW?Lrm ztPNtw;Tk;bCPwi6g$dul9>YnErYS<>?fs>143}Dg0E07tG>5^~$g!vPwl4{12gbAxKmi?uDTd%=ZYU|-0OT7Gnz31`z)m6~hvh@~5|Eog0Dvz%r>3&sNF~TV3o71@0OUX$zsKZzxDbmR zDyxvwl86Bom*I;TP2fW18Vd#@*WqkvkmXu-8Nv2gyC!P+=w~HTV8rNkPSc^cr3td) z$K|A|Ysh8%gLTBI{>=EYL`RGOP-am>WfR)K-6{~|0&@#2)*w`XK#j6njJ`$@0y~Vp zOag(w&b!5k1Ofqqjg;-A>{g!-(w2a~>z}><0?o|MkU*fQm|n_uLtfyh(o^@524ga{uvW1Mj6EdMqo(C5#YtuQ_?gU})bx;k5={E&Up=!5X3 zq!1{bpu(C6ff@vh5dPuBTZ|GP{QT8&tpCEIgOYSdcCgn&QxNBO!)qX z!M%6v`5exWOvpf_dmCwk)HUczw1ADz1cH?d;jPm%D$ceiDfJB-6Bhq7l=)ws0mMYE zX4&(2Zs!os=;bnEFaj8FPkWqOK83r=(`?8vAq5NJyAvqag#QOOkm;oHsoDILLmLA4 z1jd-jYCvbLgb1$mYK})oKxCa8)BodQa3O`mtB3QbQ{o%c;`lR z6%X0^u7SXy2H|c(1U}fm{`r6Y=l_TN^XI?bWdUw|Ucv6Z-FZyLP<4t?yh;(`uJl0f z_bQPAk6unjkV{mdd?@mqtJ>%Kl&W`*7PWXK7zB#T@m-10r$McB3J$5Ft@O7Y1-Em;y8goS|U2 zFv(Sv{64aErIS}LAFT5RoNVyI-0*bj4f3+Plj-&b_hfhSEViBS;k=rfe|LMAM1oPk zWZXFKFUGWSa|kU=7`OdLIPiNe!>%u`iE7I>$Te{CI)mX`pIS+^Yt&%v6*Hd3M+~g7 ze765F91oE~wMGkfz?pM*xdN6sjxWvzvLJF-rFbo=E0~ufof(M$juI9$C3?5Nh}mIS zV8L=Y4{%oqpynfSlnhMdC;5i2Fkrd5F7N9S&U3C#!t3$k?ck#d7Lr%c#h7u@0!#ac z{N@0K8vv*7K+eMVKII8Z1O~tZIQx-^3rro@dF{Zi36WGeBe*mfeZEI4XYR$uZMc?0 zlG=%?Oqf`3U2q(J_KOgv%RrUOT;Ze_gvjm7a-K(p<4Ha9H6FQr>GEYV4IfVvWhHIV z(kHoF8LlwYaDCiqix!T+o^YVJb*S}D7RXy}07jkw-g+B6irS>(5cx$WIm1K&gP0*z z%UrL`!i2`VMrj^%`icR9$DC4wU6!U3s4uE#Z?Tn)O{%2;H6GI1FJi)@qK}M%OaOz&u5N=u`fk0w{5aIlp^Ql4j zVB2BT0)z)iAP^utH0y)#41Ex2gg|_dPRbukpEM$blLQERv-qG_bFj93z&@iA=~I_} zexf2}YmeWx{82A|@W?x}3m5+|MER_qp_mVte*C$a#?5Hjl}iZ}oRn~t+(A2!e!R*G z2qSQoHOwHqP=_CtTzR!z_37W^@fBy)QYMc+u21Y;yn85$NX}^9Drva#czy+8i8St_ zf%@pHgbe-Iz|_N3J2D~O*hZ{+mgCtbt*+WOEFny=N&Dtc74#HEjc{R?X=4^2Ok41< zeDULa%lk___|3p?ux>QIyS;@1U*|DAq!Dn8ou^|I!v{DQ%UCSGawWVa={-!`FyYb1 z#w=|I(#BQ71-S8ojN#Szc=h7y`0D(w-QL#TxJNv7g}JM{OJsmwmx{L{XL;gEGaT~K zh!Ia7)4G^v%2Vn1vWj1PRJFMB?3)AvgA4+`E)FPrzV?9VfZ(9y^E~Jm_vbqk;k!FK zj2K1_a(vu?e8M}0YZnj5@=KOmrFb*ds3{9qCM8HmjG&_W$|#$L41<`VtZMnD^tUpF z1cf3UFPY~z2dA!9VRDyxNFB3oVcguE=qy8(xzD5451}-=?N2xzx-{xrpb*cnB|dZ-%fl$D4-UHl0-qrlOSMGMexJ5 z1+xWDq~e1|XY1pame;ptCrPxLukIiTUWe{OO6yDgD6S6p79qs0ykvJPZR&k&I+^<3 zn_Qh5JD_sI$0)uq@fjA3yL7<@LirUhJPhb`eJfQ~m9pf?(e9|uN2(Kt!d+7z#f&<~ z(Q&ilh*DB%hK@(^F3CTvn@Ns@uW=h9jFkSyB9&wde8fmVkKGW^j?jauy`+&sg#f6~ zP1uaDs>(~k5x^n5Bqhk){S<+`bW4yE5R@F~&#(NvKk&iBR*Jwt#cVFD1HSw*3b(BTCk3|}H(Lk+=XT>N$Pha3|O%+1a$|#ia_?21LWW=v}t;#7>Nbr>W zDXwsbyxIJWC&7Z^&c+dS?r9k=*694+av+OZ$v<-AhH!g>!+sT$wuje@B=$3 zzcM@K)FNee7||(>tvk=OJ_x^VC*_Ykz#gO4N%@2Am{Tec&awOF%(+v3%CjqIftyas z_CmJQ_}>2a|F8%Fob5+k_c9g;Bo=@)IOcRiTa4Zf2C!!pZFnn_ z2!HtC!=dfJ|KA_|*;|aRk}TZQBoH3z!uKWmSfmLqK3rvcWDWKnd;Gw`|LgEKwd?Mp z>AySj)Zv399S%Hpoqfx2ggJ>jn zAB}#!`EE%F81avW+_&T8Nh3iZN(6a$=hTUK6f!VL$SBy9wGQMICT$sQhQVz|*boZ1 zf^6ZwV~_c*_*#!0zjasHDO3c!*MNZq|HF?wULHGo_^Bhe?uK{3BN$PsFh6?Vidcs{ zvH#YmA3f?n#WQzY1fQNS4}R?#gNL7Z@%a4{5&};Y5ggxlUzLZ)JxBGP<4+xyc0Tp= zolE23b};2Xu7`N*{gyY6dMNA4_c`eIxi|_6HZRV9&BjLaEej#oeaABg4#uDUn|nt0 zA8M27RrY-Ch5Dy|;>bNo2ja<{&D$Z(+x^{OzQuO%?K^r2tfM+m$r@jx|4lwxl3%Jbab07%4avSDgMUC5ss14l^vJ;vp69NQTnsGK3@u zA(>RDhF0T5PNCu{>6l5V5=O9q2FFRZkS7~eOR0g7?9P@F@&ErxmqWBOw<_^GbycTJ zC@QWFArhW&Aq==A8-5t|3sK~ZWl$XXd7%YAf2}y!;t-C?Arx>40kAe62oPF?$oRgs z!(-n_ zG;N#=sgaBm%DD?EG+m~w5)_!xUqk&_4gA2$Q3}Abvw45Lkp*jEz zr@B9~Ac|T5t?86!!zErHeJ%s`kx>$t0`LTrflGl~Vc-U)ieHKyMl@))Xcw9GBftmvs6~S%UC#Y%%%{r<{I?Ek-xrd@~!2K3j{FODp9Y*kZ&fL)S?XC_vb)x z(6|04i_kg5=vq+OgD?bw`~lSB6Pw&zw1tvq-g2uY(3ClRirq{w1a>xkF8Uzcd^1G| zR4LP=fn$v779$%eM;io+l&wMF6r&9kDK7;-cz1Ahd}*Hy;e!v~|8V=Bp?x3y;eY@B zrHv5;S;6U9bcn{BWA^my%;_3%PI)mIz%#fVJj)P{#;&3}R{R5Q9Qwxbqv72dNdb$S zUm%q7=&_+V$y7W`4el>b9n2bsgHIgWA?_Odg|(Y82#GswU;QZqMgyNJx-R+am~!Tx z`bxeqKR9qugxALbss=Tt@*f#=wEPo4xe~b*yeHM{e7C{UH2Q>i9vSsi9EnuAI&aTX z53>jpvHK|5*<+KvDu$2=%?X3P{>0$1O!X*7k38I-mujzu6F5V+AILvC#=)oW69%m{ z&HDmC_7S}O@c;GXlPk|2b3YLe-SKGqk9LO}mi9ZK1o?O3zpD52_?=Ab$iDiY%<0&2 zH0Jq7^Naa?RDPeRbT(yQG7Q^#Z^?hh7W~sA(c$>OoxP1hF)PiV-iIDNb`dNY!Ztf2 zdmq5twfgN=MB=X7?p!sAkww@toLcJ)Wu6STQT(kx<&wvS~z=}v(K@Cc3q3P+MrCD(}1WSISs}D-5@*4P0 zq!)p&$q!QQy?f8#XrvEL)PH|6_y7A*Q=B08yxT4v>`A0(g-ci8;rzLf(<@Wo~QY|ePMh`aAg0`bHOJH?lOM_ zoSeY8J?vTGgCpXXo~yWv{*qrnEMa~QQ<8v^5Ii>k&Ql-^7U!5l?)R@Jm<|)dxIA>p z$^eGT{E9D$JH*-l10MT~7F7h62Ux~4u$L1r7_Z|Oe+;$=5%6}6Z@ICXjCfd_<_Va- z*aJ|J#D@jy04Jvqcwq!^i6!#~0}h!1e&GO1;8rG^DGp{{nnBckDab{Sr_)-e`BhiNFzp6XZ%C(x9Cp%*a@tSQHro zHS@DhiUr34%uewnCX+)P&&@=P(jXbsOR|6|&ItTLar|--=xs6j8Nv_mlpy^0l~>6i zP=nwpM$`avj1gOmtO~yAb2ohsu}In9^KZOShF~`{cNcA8pV75jtU|CIGO2@2x&B9c z_eu0mCdVLZ_5cz=7iF8QF<)2SZwrSQNkL=?D;WeS!sj^Uls*WwLAV8a@EwZ~B7^YC zt3O5{2tWI>eGvYABN>F?2Y>jm16*4AFwQpJ{^3U-{J}@|4sAeAUpPH``t*g_v$L~j zFPuJmVdnJQg}Do7PoJH|oH?sEGdnjotI%>8CNOs@*GLDq6IR+b33ImxsBB+F5G-Rp ztQ7>I$f=9D>gqjsSLG>Zz!|994zMKa$kE&BiXfS|5Kz^wBDT8J{`a z+Qs=wA3Sk#s+JSP%*Zu={v)59x^Hz;xu-{a4HaU(ca87%P(aAeT%PZo#1Gk)j~4$# zITh(xFZxJ5UA30$Wl{4~nYSJ2{;`hS+o@w->#?V|2Nu#2gq_bgr#!ZU2NquF4?g+y z-Z(MIwxtb07(aGUBjxa|Ry(-u$lbk%Ok1q|eIDk&w};3w@FaJ><@o$Poj?6jZPmQL zZtUH6y#G^W0uRO3p-9>%-xwY3zTK{dAav#6Z&ph`V>ncKKuIqM8hMkc<`sSj0OXz4 zit+Y3B@TuHZ%bB;IIImBkGZ= zaR?GIcOuo(8c<C%s%dAuNxAGjk6Vd`U`Rs$ppnDnMst@B!k>1L(k|4doCbhlzlJWpGhm z8#pusj2Rq%d64P@9t1aFTzqK&d;xx8&t-5!3<3jTFcw(#3kFW@0bxa4aZk`956Kz| z9k41vZx17gMD%Bl3S>|O+sB-Bs)(yHl>L|OouK2Thr@^-YPtIFQiH4OxtvZXC<8D+ z#JeU9qD0x*a%60cdcdhO&oC7Syy>KD9|RWDWDve=5yFpNdDT8?6d_Q8!0MZGPDvoJ z$>`>rZ;~N=R(9}N*XuXXMVYacV~jSVHu1y%wOgn%=GsC&;M!*WkK1XK7D2)`On@EW zQGvkDq^%`?zd!b&;vyU%tpp$~>Ws1#!9-JuQ01?BA73l~nuJg1(8Da=9_ zU?x2{bPwy$2jKl#M?#J>3Utvo(j+qAU= zVd8lAgN}GE62*U(Mq4L+#qU#UphLzQf^gTt&i`GW87QTHFo}|RzsIlKk>f)($=**8 z)_S`=l8JQ)!aJ)e!f(6$pyn2eeqQ(2HL-w?BtuYpDWR*IqMLK(9+FPzfS}+45o0PT z2emGc7I+CE70+W)D`SXBt1<@zDOtDNYs3~_I9ZYqbH>6!w_Kn=fn{j5)OchJS_wDs ztZQzdNG(KMTnSV%P$u!Ffm+)(ftfqv<`61Z2onnp#y~SM19Bt%2cfRp4Z%oSjxbfB zg;_G<75r(&|pm=hBMpN790*Tfi!w5T1%b1j%fIA@?2) z?z>vKd(Xh=y#GG*-;a`j+F!;=&A%VH4Wq=>NN67ALa5rZGjj?l@nj`RZH(CBa^ zBt!rUgF`Ty*)<5i>~8KLxaE(L*1ODW{G;9Ka=W$IbfXCw90BRT<0bkTb#GOn#fFn#qe2HT6!B@n=rh;1HOj)@c ze4xD5f^+~|d=FD8GQg4q_#E^ATv8y8m=pk01a@V)LDVi6Joo^B=>jaW4Dg3vfPXa( zK#c=Y?V+|I$-W2Osf+KZMaer*<^#0q1|lN`XAnieD?xAyF&0~l$RI=wf?JG!{39|5 z5QLYhQZ9!WkwEwo%W-QEKKJ?0Py$fSICYEBjn~;H?Yga7uHUqEi!}&#GuYx`My3tg z^}o82XrU%>4bPNnW**)23CkC(ROTEb-j$1UR3#yN6z80N1}UxDXzBcgFOWd6NZDgf z|B>(dT^YiwW)R$BL;|5?5dO!XoAQy8I2GS1liL*0v7)=J@o6Q>QPG2(j_eZt6 za)ejT$q#(9c~_Zh%aitFyD~u_zaaeeD}9Q%Pt-1KSh=-{66n$V;O=XEvXzrTGL-yB z-bu!!BgcHs`y{%4x9&ffxb)+ZUhIWaHd81EBQ-1AZ5)9bIfTL9TRp`q9sSBg(}ivOQ{5-(=Aq0qBth8zX!oDtk)g-d`peZ0M)M6p*tX_M9dh7a zCZC-jU+4S8`5`>rW)OC)`KPayf#v?%mHzZ4$>2Tu$KH-duAD(=*nsj*EcjRRgLf(o zP_en_ZB!se46FMS31M`|K@x&yPg0s;znx&>l?`aX3<59^3M{OY2qZPgtb(eFPQ|l$ z8ReXo@vy_<)>Eh92py7h>s=L|P6v}Ybn_3%A;3`??V}US;7rE69T5*I!BMR(uP~q? z$|Zkj%ACQSFe0S&^Oyr?q$f!Lk69Jcw|*C|W`q+D5l=6nZs_Wz)5=+uVHW&h)|3DS zICofq2iT?zEP_@ulwa)olf?SvAr|kk=Q6eyxzfjDpw!A#Rf>37`Oh=zzrUtX<2=ix znjEkAeBfB^zrV)uz>H4A2nZB>zL?{IGohk50laM-3BG3INFNOjkn}*@NxYc#ks6HW zoK)5AUD>N%Or5xq#GPdfNc9+~sBMS{yOeZ`M;gIA!zB+nDluk{Pr9ths}{vEp$gpA zI1Gu8Tpk%6mK-eFi_)15Kr$eIkPw7xegNUnB8dUEeBdSV zIMxW9X;;BF#1S4`Wu*O96E;OqqofC<2N=;tO>6}>RiGP(n?~FqBN`#N#pve0wgUkRbol`-2`E9Ze%PZ(ue**dMqG3-aGQ|* z4A^DVuKzn*j12S|CHNru1NJ8ILQXs745Lk(wxB6*pivroj3`njfq;}w%Ae=klupXg zD2)_C@B=akKPm*_ZxK5wZ=g}y(tGbOJqrcM&S(j}^@lne$Tv>r5EmchF zP~NQm@gC3h&%U#BCK^sN08WFSJv(<6ia^ex@B}niW)Q{?ppzgVU#pCvE5~`YHzZ=V zyZ%Z!_%M%jp9n0rDb3!x&Zj^HW*w*I)TSfiWTc|k|KMH+=XhKL(djKK4?ni%Li`&^ zE7tjLwNN_C4Gu^dj7{xma~TBU(QmdCghmU5Bh3-D)Rr_LySpp-Ebg|VFSa)AJ3gk;{^;A413<2Ji&4^p-@*?vO~6obeGFrGJ|Nt@Y7SvFF^F(V@_|k?EvK~A zl@Zj`LY{Q0SF0Yfs6nhJU=a?yCJj=II3jNlc$mouI;F{BcI}L{;SJ$kNg}X5-iF~&>hX1g%>?;vsq?k+OSY%J0OV$RhQ zudXucd?-o6yqc&IxF-{-u^sJ+&rS+>CIG4*vKsI2tn52gY4Hs5*)1M&nX!&s5)Tr= z7-GV^L|ofSW^krb-)yqsGFy?DbeM-sG8mQ{WS4_M)iPsgbeI4PVOZR<0}Y4*;YE3a z+l?$pU?UMk0){{`!VClWAUGzi5x^xBOHRF9!B7+^lZIF{##kyk1Y}na-(_?m@rA&5 zVR#2!!0Q>(0@y)0m54wsTo5N#su%F~1pX2+nk^Gy%7zG#2xqB)eGq6v(n*;^jBJ#4%NN;WWDNq15GVm)l}-jB`Y5w@x8w2kEau%AM2YbyAPAc`nK)?I z|D6ni7zqR84t653C&>zBI0B^%TM)JwQGV(p*gpiau^ z@Lc=L6Ha4Xn9G&iVX_TU0rAtb=y(uPz^$s11mT!E3Bt_m_I$UF+%dPZ!|3mt=u=0I zZF}VSQ|CnVk$4>j zoxHSTGtvmGz}-j$jX))aBny|2ruD()5kuO;gsTK@{$Sb7Mwgd|#V_-ehUfszlEIgj z2gxna8*Na00LnmdGazlzs4zx(v?+Kw$OuJXm^nJ5fic95C5zCMd!t(gn0iqpv}`{?}W*#YpZD z%@Rrl0#9$+jJ@gFEmk|*d5z)*`=rq*?FRA{pZ*jj2<|bmqci*2h-^o85+ zy7kzL`N-itvB&6a(|F;)w{TAry)XBB94&{d-l{y>i{U7RVvP2G%0vC1GFYCO&0cR# zb7xSe&NLtVO=yF7`@yH8f*Q@V(v^YhWIsVLk8tGaM-R4aqjp+8In;i)7av*m-FBDE zz;si3TstrHr#7|+6-Xvw;W8ob*vy2*G)c6dTRi&6t#{pd?D2*n9CK5Wa;$yq*qwL% z-L@Bx=3|F<@Ut8DiIyPv2iGha3Osc#}a$Ir#YPU+3$zuYZh(LRNpD zzu%UBDZkH3Rbb~&|H7(2{aCFo+|&Q3zyHp@KRs<9N-^OdeY=vmxaUr#`M=-S|JVQe z`@jEY;RnBEaD}{M#QWpk2BSXwch7UCQKb&Xfxy9pP&^T666ZmYMDDGrL~=^j=PAq*xHc3I0{G!h8jie5e1RNQz~tqg%PEo*96qg?X~%AO(16MUICD0s9+p!6B{ ztN4-xRN#BW$s!P30QxEl6UBRcl^6bkJi;%)Yc2C`OP6=;-nC%oH67Y4huB_uXJ2Zd ztyh*bB(B=Ig7;1`HGj1X!NzQ_(Ew-}K^ zc-aiX4l zCW56?aUiCLn=@QI}?cJ;ULvntN=?G)vomKO&Q;oOgN2J^E8E}}+>E|YDYEKQjMxUkNpX^ev>zM* z(tPkm*#HtcsvV-!bKkP^iS6R2zWPiP+h?AFReST@9x`&~F8mg@N z(@*%Gcej7~Z%mX#f5SKq-ygs9P2AJ`>8GQO!|J#5Ki(Jn-frB2!}7~tHu4^yxbW+y z_MoofnPN6k5CT*m2^`>Kuq;td3A`&w71D7e(uR7ZKpQ7?4-g44@U~n5^X+66QNs}0 zbVE{!5NSfufDGq&s&a{}WdM%~g%V^gI3Z#|A;b-b4oS`+?qn>2Du2euj61|gKb}(Y z*3`*BmM?ekl)y8Wpqb1-?HqXaUg$}bBJ`h@q}Hg~p%%g7Zi}D8t$2?nh=lWV@i4nd z0<|Lpsarhk%q6T$Jx41hk2np9=(#l4BnIM+T8j{~SK?{*hiCS>*7s7JHZCL+JP;wu zlA~f7ZDm48w56Yqe}91B&V%F24%C=|(;)%ef&(uek5=-N{`+H0oD2e8oSDch)PH|e z+$~4q(JVok812s_c-W~BDiC#3pbQ=%WAzXsM=elB&<3g#cs2h5vi_S4S*Y9z1$zLh z_@zYD4z*L?!KI6H;0gf26=zXA%yRZAtN-ERF5}dW%YzaIrohcJP}vN=43+S4 z%aX;Hm&g;?JZ&lVAH_nS*=A|OnC>J3N68$r_MpgeUH|%T!9{kosvrcukD(N*=Bi#wYLW6Q z@Pllnyn!u7OS^ZM@O8MAVxHD6_}oLy znoQi7JB`k=xW}ILWzqtmIaQY+Ja*d-m-9O>&JG^#t-Ky2gg_EzdW*D!J2-unP}Z*= z1E&)Df~O_r;_$vXeOW?wQr4d#&eeR%H|B`X`S?`xDJ9@g1zgNC%?C&6HL ze|l$I6C`41|Bf9O{*3(8had$r@&l_{RrC_1&Pd_wai19)O@4@9i-xu>wzr&+O%4ZMdpB^sYks|$XM{eI=1xMSr ztJ{N7`F}s$iPwH}Mft5s0_FL&kdG_00r~YhUL^zR=|n7TN8$xZiO72LMxRr?;04Z1 ziDpc8kT^qMT+yzEj36b;owXf?60LaKp4l$UI>He!)TIh}9;#CYVhX5ZC!VB$E1aB# ztE_}#=g^7+j+=s4@W>ccJPMm@OfR?tw$CGlHV{{;hv6MDt;z{fG9v!->Qycv=oFIF zASId~TuGv~pyzNanw1qObrK{d&cuzqf@4KM;MB$#!MaTob`3qpzs8~(A!-xMm4+Cc zoS60mBdzYvE=SUdm|0EYrhYK$53d2u4dxJ%Cjlv|Ic$M@q;`;rO5 zCOn1gF3OOYb#eA^4;i21=;{LLg*lIol~m4uR=%In-#Nc3HF0 z0yr*p{EDI;`BbBoc9WDq{-79+L+ZRMa-w-;@;g+c9yY=$7$|JSZjr0lt- zrWiDNA>$feyyaRdowsZ@AwiEcw-|AM3PPg55BLr@eeUL)>FoT)FMa8M)(pbS(Mj1F z1pW~?<`jNljq*k^2qX`-m*l~_dxI*p^4^ELKN$Lm`J>&t-`!Y|vRi_p)?hC31{iY& zWd&$WEQX@KHJ3(@)W^k18(fG@Mg|BGDfes=gnHtPjoDxlJo-qkHhCXnbILsjn`OC+ z^&|PiGcLljGqV|eXpYYz+Vp5UTv7lRiq22@#*7kdpzl)*7_W0ot3Q~hlqUL61bZ)l zLuj1JlUpS%7;-#6k|YBpBHurX5K7u2_Z=Oc^070J z3#MpBJ;nQ;E}xkLi={^8;;Gw?c3q{C`fivo-Z%{`4v|2 znLzkm2ZSJmbYD~r&GiI4wUZ+y2!T@v&;3ST71wo23EX}PRkS+1;0k!uKPQf>SyBxm z%E}?E-Vp##c~b`@ZUd@>dki2XU2nxuK33-S3LHB5gp779Ze=xBaIR3`Ne;rRrjn0l z(5b^40t^8Yk094ah@RlzACuFi=L0VvBpHL%1!B5d&`M&RWrBzh+-gHx8UJWSof0QkW2FhT*s zvfYuP3QH?^X{A67L$is<06235f<2_9qqzZDsLHvOT{WW+$pi3($V6xcPN4K;MpL99 z9=ntPfNLu@jy^RxAT6lGAZ}ucnhwm21blwAyj6*T2;?CPnpx{tJR*v@gdhchzlC5L zF#vhUJ_ww13PE7=J}HD(e)NMMScCB0@4ozUY%wy0@I?*|q6Ptu@R`qjx}0-r4#6!( zu!HL;R3?2u=D__$n_1_Z3TW2vBnB0vvl zNfgX4pf7-)VRzLj9zVT1-poh^Y`nSy}QM-YyF z&4*@Z3K=-iTip4xds%Foad@$}wmfU>!m+1UiSqSL;UVJQ_SgCH(d_-6JD4jek*CZyhLpE7vz z&P@3DSR^7)_vDF6(O#}02-|!PnLOprsVtk2F{qm83qHk>tNC|gfp3PxLY6k_Ks;tCfOvRJasUI)HQ+Nr1@d53@t9H~@MhSR1f;GK z@gxBnp~W-;>UL|ccy<2o^(qv^E27Uxm%Gk!B_{||aqh}GcsF$Qcv6KtD=8=EaD)R_ zWg4Qy%49G(1j?Zf8ydlerj^`7%&m^#PpkRU+`U9NwD&o+bl_jliMKnAqE$i!E>U}M zFYJJ!t}_#N78@8*dxa#vrU(?AbB>0_ODCDqf__57ru8@y2OPLV;L?D=ZLsEkMQ}ts zx-m;94Ea9pH#)(r@NY5xEmdopeGb+zK5wM{YiZi2%_orOgg$_ekJ?UoLdQKx`@xi2 zy8zL!5&^)0R5Fkp#>XdP)maDjM8oEVe7 zaXgeWI0iU6vInD;30wkqq8FRR#u2;3sYomKU_7`uB)+ta$31MXWsRjva0LsM(Zk|w zB!Vq?xM?}%&26pos@s|ZxRGj2tTIL*biQP_4^V8PcdSL(RZjp_@V?s zitt&g5bRe*K>#HPq!2#2m5c0wvUMv*5M9F{lVFu{uK$A$v=UftmWE+}HP1TTq_AV@ zT24CUbfhiRA8?lx0u&+oAW$uR(@hjbP=jy_2?S3uYWg6!#puhm5yF4Blkx_Nlt0?N z_uZ9!Mj8s$il0VpYmXU% z2Lyf^27!l*U_ud;Sp#QVg79}Uz6cz>eIXeiZutX-#9u+1PS zhVxVQ;-@s95>Ik?< z??k03!@0%i;Kkl^C+}~_OGF&WbDoYO?aUysr3atK1o&c)WZA{Zsgoy8HQ(o?ogF47 z>>SP2e4o8o&d;U)FiJs)2{=RAb_U(ADknxG;?aI%A zV~nN-p=>Xhb|3OTQ-oZu-!k4oVe}FRKm0A{8TFV0I-x^^jHFZs5IUUnuxiLDd?gu1 zDs)`p`Fy_Ka115AbiLQ^zkrDnbk33a19h})E^}?>EP|t8dV{@LLvQ+Y;D*H2;pD6& zHCVmzs1kwj`>8-$O2t=gI7$;G*z7w>ymA0D$Nt7rw&b<78r#_V2GEqk<23CF%DsiN6+O^k`epGM!BIE;K3Ur zh2V_GtPpx`;?Ssov>_^pbpzKMnNBh=qzXwqti)A~T*}whk&jp0+GHFCvBWQF6LYGm z1My2m$q1MPxp4+-Mq!XBf*JU*mCW`{i@s{i%OWU~2g}RwgJBvel$irh7sV-EE(rsA zBuD`aTZ6zLso-g;2-YBoI2s&8W*}7YFn#(jAiH|=LK}*R96$?5j~k`Cupm1qZJR+b z;0slmK~RZb+*eyHJ4qKbJI5Bq2vqz*1}YG*Qe9ASE06W12(0}vtUrbX_%u+Z1Kftd z2pQoSp|5@23<5>UKQn`Xu*K*V`XGFdQ;c4w4FV~Ia*B~P$~Tifum-_i$~St7(I;=b z4vyd{MpPkKf52sx@wF`axpV#R-K{|&&2SBIfasiX4KLiZ8G~E|8HvqoU9t}X+l(kd zxRJtW_`zpMV3^4GYcdG8d@1@M&?)WZIOUY;2?)-=kO=u1!p5l$^g%E+V1?E z#RC?%u9>0K6vWJhh9Eoz2$^7j_mU9@%H||nIM2#4Mi1t%?`$UGVI(-hEbW@PPM`ip z^Bej@V6#NeHZ=&5R8ZaC`;`85|4@EP3*^+YgT!~VA1r>#=v*9e#E3}#BR{@^yU*wT zY{hkEmd*?L-N3mWbEv`QyA|X}!*bXVbZ^D)tn-W1GfbV#{Ys<335qV61Ct0RPkBAj z);9>cQpeiy(29&t5k8OvM_id=YFF;Jm*~COHo4#kYDaE=;$@2Qj6PF2!yV1vNxpKz z7f%56YLcJi4fsO&eTJvN2|1t>?e{ssHsFRJJO-0E!MoWUZt7e4r=OQe+@4=hS2 z0AeEMgsv@|89o`s%i@I|1cG7E=t}2ho>Y=8If0zi&fYPF8Ax1u{mq6DoUsY1o6Yyj9VPK5(ZfT)bX2^>>n)LLka!V!8?B@dT+UD5=qCN9B1#)ovp?PV~M z#m^W@#T9TJRZAme74imd9as6{KBDKQAygf{i?}lmL!6s&iN*YLq!L*9KL>vhiKC4$ zaEBvd;8fEGAW($iWtjpc1uy}qLd6M*v!G{3QA`vWz#i;~05Skhuxus*ty_wm6dr|8 z4C4`sW@;PD87K>Bb2b{Lf!gdb3Y@I6m4Vu#V+unPau z7f2ykqkPk6Y=po{-QV+Xv=74dTeeb2yqPKlWecnP&Gtj4an>pbYNwIMce%NaG`qGhMjI*`|MhF>K!*1mQi3l;0cLfSiB*_49=aIC-7B z@cQfc#$5UfNE|{8-PP1=Hs#IhNJ|j5aR{oSKKpc!Hf-yYI}T(SbmTDL9ka~jGEvm(-rwd71p6RSTsuozXV+6=;rarS9B zHMKd9>FJUgxQg#qXv4{D$Z+Q=q_VVw!%wX63m;O4Yo;=ZX zVc5y{|3-cvhz|Hkf>bq3o@~C)1TQlwkza6f+T)izXJo$l(^E@$V)Bpw>0cCkB?(ZTFQJ-WK<4@l~Y92vc!z<_kI8%zS z==zn*i6@k&p@xA*0!gWO8>>KP`io1jhiaylPH4*;BngJAE7|7gvRE_ z#KFMlqtaR2+`}ko1Svu(afU>|3qlAVLXTqXXMRo(+M(y_Kk(+YSGEALiRFq%%u8Cn7dgz9sOS*gLl$MqT>F#dn5Rh(=Qb9r* zh7M^#8U`e#LmD~r`=52<>%40gd|>lFd++EJcvnFj&jc(b9&I4{$2gflUr;B$QQQ#5Sie1b*kbzhqTidpAZ#MoHCW^ICRU z-FunFDSHf%8QlND2gvn^gB|C^mXjE{mPnk+=E2Aro+I#8R%{3z*ccyaLq|XH^|tTZ zLf$q+{X9J32jpD9Ag(_$ef_bFBH*=(nO5Pjx`b+$HgPsHS<>k^AM$!Xvg`oKyn5uD z=D_5+|H=fOqI=g_w2;iF71op8vr(|?{WfRVYs@XIPhg21fxEtBeIP=e-0>y9es#w& zG|^@5tDsB6*t2ZN(Tm^%WRymWgyXzI<-L=T+rPTk#Sl^%xxFKyZ|}x5Kn3oB4A&)@ zY+*NE^AMOW>-z@Pdy?@?$-z4>s=oZr$|@W%SgxmiKmmcmFnB`51X977Wv2LXV<#%Y(*MTXr}3- zbMH6!{o0yXMIy^-dW8I2}Rz{I4Zyiwf zv=}s!38R|H2TqVE6AWemyh&d;^di_I3OrrADDHeH{(J;@*F@?X5Zq0d0FO}Od*4c) zE1w#~zM1AEU14@o$0|A2D-cG2gF^w))il;FQ1pL_~;TUoYaG&6WU z@^K@aZa>*O{`>}C;fv1RjZor?kCDvO7X#GCIjvSn!VbhQx|i6=kl)Z#U|3AgSj0!m zU^C$uMUbg{F*JEX9D1n)bSX#WwRZOQ@U|uq zJPS#dIvxVb48`H%pcHa~aBIdN`L_(^@mNWpwLhM(Ri>L2(Xq;^riHIfWww1{a90^r z-gaa|LBmLd&q8Gi8h3y2V4$MPkPU8O{$d*t0>a|^5hzI}j8D`bbNpLvk21HgzpHV; zE#O>Nyn~_uAJ#z1!7;^xuyLrr1(>Q4i45g5xtHY-B|@KG=K@V>4n>jD{=)Ev8(?Ox z30Sq?hM@V$npCM5$z0$EG5KFQ82oZBEhzGac(g;|9?rA49p(3IS^WNU%#O?e)9L zu+`j+!!`qy7WL&9PQ%P*SNytcSPO>Y%;%TG-0#C|irBwzRA+uuF_`1@hI{%a%#sAM z4M9Rm!;q zD5JC+D_|K`&!R^vOoqE~{iG6Lx}8W}d(|>G07`~|Q#6M(8Ja(sjvD(bYv6U{_SfI3 zv@O5CCSK#pAhll8@q-9}Bg;(&7i>+Q@wwzIKdRn2+}MR@Nv7xCSyWv0;oYA*XEQXD zM=PzI*Th0t4KCIjD>{~0|IVx0UOglB!Rx)=?x`4w_S?gH;%!;BJ|PjF>d@u{f6ade zp)W{!5wvD9G=jgt(WHZQ*t^oz+VA7z89{wyc~M4Zq8L)P-Z~Y_C-V5@FJ@8M$yTS0=RTZ=u4De`| z98GOPR>!wNUA~Xe^j#G0vdyXiyvEt>#+<@w95%&!MK#+(UNc^NEHVX)yhP=H2LEEh z3kkwS2)G^2Z%Uo}fBC`)X2#5?I0Y%&{ykg3*@gr>jL{iNqLn~ao&9ci zqowx_O%sXN7sP$h(as9fUVm;mCszd{hZG-V3NDhMbIv6Av&=2U`^j^q`G17s1&Al& z#V?Kn-F{cLkrUs6nMKk2Y*`!$B!=P|Q6}*5l-`tCSRU{}ULggy&qT=F(0FXj+Om_c z8Ajt3g55h2rCv5opn>Dr?prmqMRslX{o^cnCmPy;vedrJCtf;Z%$_rD5(fDn!gZ@D zZ8gTf`UJZgO5QxJb5PH(QO;MQQb>w5Fcf1;z?7+Y)PdLMR$1=H+_D^iZySG@2n7@n zS;Vk%?K~Gm@;HsQ3qg6k_#r_II^}twPo7(|9K9w-dH z{OPvm<@8Jqzdsh#-+oo!{p%8WKTj-9D;JKQlGEIGu%;pYBPy+S27Qf?(v2pRS9}_bNmqFZ3X2i}49MNqO_UBQ5Pi92Ph_Wb<;H6K<50+-~ha zzsdChkb)Rn>B;~J1&@>5KXA*<_sA7pMIVy;z-)t*$kfJc4#4-&60!-73HYKd3h$>} z(P-i|pB^)%K$nj#yEt?d_(v+)3`w<@5vmi5&6bET_uBC!9(t zs$_#sJcBuM#wGJ+E}TWcv|z|n4uz7QFuJPnYGBp7@g(c4f0~)kNt> zvWkOPTBlo>fiD9Z4AtOtmP#c)Q~oNKtEWdGK0$vEOB!m`Q=NiDm?G?2vh5hv|J+ul zf1+F7Kdbe@5bzc%PS-&i#r$N;)X~VQVUOO|u+KZ9I!Y83Z7Jc-jt3ae{ecqAs+>k- z_yLN&X4D0gyZKE^U|tI71IQCBB5^x~t*`(LneQUxSTvPl^`0GZlGCz*Tf zmSoFt0O>fnL{Jq1aC>R2TxJo}%!nP*)<=R4S8QJ$HFO7L$-EQ$a?;buoqVnzhS9I# z)A?nTAj(lJp0b2*SyY4jlJ3_tS>+6bJtLWow{n!kDsi?~4Q!~LtubETHWIfk)`#~> zXYYNWCU2Q~`!P?MZeBlbIi*|MsUj|)r`PN+&hLWO5xs|blljMv@MVSef2p59U%(M^ z^Kx3eZ8fqbs=3S)r@WU1x;f~aBqbo>;nLc4nY)R7w=&?C9qSLyu&c@}DF<%E%k~~w zVO%>3NqPyIeyMdBl7^U7aZVo3pZy%NZnjL+Nc%RLfHLW9&hilSeY2qF7O#D?eY>t3 z3jK3H841&Y7#v@H-(39G>gUOk?6!0|4Ubu;`ziEa^{ZujP`?LTG+oV*`rt1X5Zx`6 zA*vIGtjkLQIUqpcaN7M(t<+HepSi^^L<(}mOAR)&h)Cs5mh@ezv4G?c{ZA#tHni9R zN9W=@XmC|EaFWK`A-{YKqXSNRxBT4uz#+wVb~Mvn{e;~tjeTAPmYLl}(>rV}=IDm_ z=lqt1(YieAMX3rBxr5e{p>aR6Wxzu6!42#FM0DAIRluq>a%y1aPqlXf4<@g1tsNI` zMKR1=Kkq#b9#Oi+l5U57`jmj|cFg|oI)l)3a@8o;@H;ua8>qj+>gNLD3{CGvGXhQe zcGaA|_u2N0@uz#cwWowRAqYR3&*II*6AHgXRJGr+rj89k1*8Cn!gdaWq|}HlRz^NG zU13_@`pFpQH4KY@E}8ZIJs+Hgomhw=9{8fZRq06Mk44qRi?^sQ z0_k&sF91z`vP`(`<)b0;B?{Z^#{KGD5})-7$kE3>%W%M{tr|S;?<-AD>jtoT1C_Uv zU;{sunela#+5%M_n7@QS*cNX|s>vNaT^CcE{TenvAI=*QRHtH0^Uq|6ikL1R8EHn` z@ii#+4P(xl$P{>@mE0fCeV#+7tqZnL4=YlsR<%|-1AJvpFCiqLOeIj7C)SF#`a^jB z587sw>CQxcNn-x~On8LRS^QO%IGa)g4FDF-kM93e4}BXNQQ z94Agexq|-sEw0E-EBBnXXeqkMdOf-7bmt#}(l|gh75L&XCiJ54TH=ucS@6F}MF%^u zS*h|eMfBM++axw3j^RifJqO%s+5;QbGYGH22+Wo{Y&nR>^SeZLGHrXvBYdCh7fzxe zD(-&i9~0roAGTG7d?!NymY7?I%u!kl390+$=QlNP?xRD;&KL*}7(o7# zlw*erwiYWf)+7><~Nx#O#sVX(zlB8Yu z5MbgyC+!_7<4>nCC{%HVostMDr9jFpZ!S^e-@V_{P^Ghmy^wpl8oX^WpE!{xTe!e| zBS$>Z9>qXydI+~{^-uUWv>v2rRBk|?8a1KA{J0K088_VCIzr1GMb#c**KTmhV=1!I z(4-t}kwQMfP#zV*O(pXnB@p4GW~dwv>GE~J<(0FLFDoHrp94{hw+XSIn=zq$B~S}> zSD+=ws8_@C6xU{Xn`Y(B>QVf9*2Uw=Q4K_(#4uqt{6(IO0GBGmEdraZf<_Oud?M|= z44wutPJyz7P_?vsfc;{nt%PkZc4T^lEUqsxkhiNV5r`QnmzY@T9`WH|i-|}i0L9%O zsv?!Su7ulJFDlt!8hS-*mSzdjHcPwvYWT$chP?s4Q94Rn!e9yM`CtZqk3xo~L}&!+ zl0Y|e%t1d(IRz!zAW!S7F~x4de!CuJ3I>}NL?f4%SS8S55yc%r;5^Z=NxCH!(F8;KWZa?Z2nLmN^X z85Uo{7VyiMhQg7tv)vO3u1gI6pVsvkr5hquA;wVeKSNd>GNZ~fvGnS zeblHOZZUyOECE(iE*dGirPKbNwR;ZJ(&Myy24dVZjVFvv+5O&^`7Sm6Dk#Vz@040H zbl*MjgZRJBsC~7l7F7kM3yUzx@chb_X~XKuQhFdj4qNnfJIKCy^yUY>FK2=1HrmIIds5X??M)ai!}>ajIs@dE|Nd$C++lmL!@8)+~rJHx7d zg*?6%1)i8q?vWP!avlQey`ikm8tq7F__0Fsg|HHMVQ69xNim9oVe?$XY6GY~*j0jd zLwv4>TH*x#g#x~^b1|xt^}i~b+cxq$2kHlwS_3T4eXE^H6dURL#uDu063hh0FBI0q zUfs^-3h~&yxHx@gA<=;Up!ZM|z70}=C@7*77R6+-8bl70 zOJbK&wC~sfp^WG$vx!&$@jW-BzmSW#@sH=wEEwEmXu~EZpz5#o8HS1cDo_fB{su0L z7_-UwucajT-Qr1-+Ck*rN=(j__TymA^dZ+CeaS6q`lhBQ#GlJV#>NeyLdGse>IEbt z%_3$$u4GwYn;g)VFmYRkiVMdO*xeRg^D5EY3?48g#omIG7_kbm4A1N@VPVC=1t;Jr z^=!?}ajEm8N5_h~`dFs>kIsB$BEZp!mT?yX-cN89wR~wbLPfcZmQlBoZ`6sX{;n$F zm_@#X?fwnqA9U#;pdOT_{TZEn!>3OB5@7JytR6J8Z$Xl)%PP_L-5%2^tm|DdF}pe) zAMQ5x1@-g?2c#!41R5fW-d6vokZc1YKV1I=f5Q*r?i?D`aA)G8e1F z^d0!am&L1J*DAk>7=+1|LCB$ShdOYy39C+u#(1UniYnq~{!f1$qhC>s4e#4sZ=3iH zxyu<5o7eZlv-cY>2LnN0`ZjX_bRZRRPjq$1(-I63v-*ACVwTo!#NQTy%&hYbl=rqgVt7u9;?YcLb!%-TvwwiV$M8FX5;dQ_ z>KA0RkX(t3&$J*pAodGl2ledR-CVy1s}PYWajP+c9h3t&a9e#?VO7VT$P9;V+kk0| zs97&w&#a-$Q49Y_ANn~gPMfqQ3#c%{&@Nr`ryp4>2hPi}t-S4{r^0_IGv!c6{U@br zxi6U!vBwl#>lIg#&Px9(UnNYei=H$pz0dZ!_RoC6yDp(st&>+uT07YB=-^fn3t}z$ z*l*&D&_l@VZAl1ML2e=^PF#9f#$H&NGH`z32=-Y0nvASvH^I6xL{%+}hQB8JIQp({Nib2JElL2s#kd3 zDlxLvtEY)Dc92D!0(_R4Ep78c*M?8=u2^d@6lwUO&$7#h)C@UIexr*`ymJ(8!^abu z<7_J@!1TcS*mtyC)6?5VsDd_;sW$340~m|`a2KBNT9y~5F3Xl`);0pRtRo2P%kH?&WjPBXg<*u)--Z{7 zwa2LG8_?yYN-U8E(A}eC{1nfw7rZOG2{gqRB^?NVt&&y>85vnp#FfYpZu>|n$od+JcZc8x2#w5 zIn{(*>pVX*fug(fv1K(cb+3PsY&LV8pl5$|TgTH-S*w|ZKygs$Gtz#jMtM#8<)bq3 zjj+1>Ci=A8RF(W)k|rgjuE(x_Qcd%{m&MnS)$glsG~zRI3Vx0~P5&0$iCGJAR`7*! z-0TL(5f^7ELixYHbA?Y}d+%B0%ZSKbwUU3zoegG>L({Xm*-U#Kl@XnfA=$fCfhQ$w3O&#b5y=So3DLDUfKnWP@~6`c z6Q)|^KrYG@#|crFirO`*iqG(FIPrHJpA_{I2nWTNFEG`AgE^D4 z%vB?fSTPqKP^8p{aeEj!!UIztg4P-Pmy8Zrxbw^YT0il<0&4iRs4^s z=Te}lf4uU;NM>poA&gYwHOQ1W1_TyFuCuFVJD^(dYMlE@xn|w$cqN5O?{^K0goiCw zYGo?C+YfDPP{tMNdGrM8>>rPV+{t?49!l|VHgD_il>bI}T}bPcSz+(!EX7Sh4cSm- z(D~|1@WkEitfFQc?_g!${^Lc_L<9E7sI1ITQcovLh0GJ_?dDL`6X64S^t`23jbfI& zqd!H^*#_rOSOzRlJxFJ1tQj!^-xmN`z$2AVWN);NpiSZ^ z>h9qABnTMa?RPd)%)*Rr`kNzfzgaF4$Iu)q@+T*N=!vvFx}4 zf1z;!oo=w{()%4%gK>u_7Mh6#*(lmQ{yLV$_=R1e#$eDSwrnWo*n4S(y%jtSf|*eF z=s0`>jm35*(5tTodFsWk37H|+-l47NwjkdO-wzA`ZXTEz4Nq~%v47#v^d`wvM)zwG zO>$h-5`f9*Qp6{grZ^F-7dzegZk8;rg)xIa#-u>Ue{5!U10{408d}`lF|M+ZyZ0#HoC;ypwG|jCps-KT zUPl(L*39kDI~L2*uwRb*ojuQkkA zvGan3H~ptu9)3d>c{Pgx*P4U7NDhBmN@U)IBZ_OwYAO=>T+Kc+IW54BzAR<-l3j4l zMg-*`F|#63vS5F@d=UPpPQf!p@v76&ZUfAkLaM)iMyyq_Pck*iR{nraepC@9Nd|E# zZSe%*tBubYGYcj@FSU&_7Kz3Z8r2~AvEE6D2shy|S%R|L?$JiWmyuB~0e%!?%n&qU zzl0E_pOV2zNc{q_bhw2)3l?83#N1syI02~3VIX!``FlnbW}1SediW zsq-+l6yL+z(?Oi}$KUaU2BvX@$bL+x|B7LpAh22T;`blhayf7r3|PE_zUj|+QU?X> z!>yjMUE~PHujfW_ZE;N=Q^HKtS_%X6uyfY+rSp&3C?h+uG^2#-gxC>y+&G*vI3EWk z#j}`Q<$)x9*=zptfk?rmn%rafuu0nRvk&6O1j2p|kRVpa88%}^ylmCIp~h_%I~`=g zwb(HkoN+sbx71O8VBa{t4tA|3?CzkkKD8Ez6O4tAaxfN^ycrcQK@#tx^`>u>8*P>u z!eW)V!>jPt`Delp^41BBX}P)Wd3+9&??II*pDKPX zC|$e$4O71UPoRsvwU=MYVg5v)pY(5k6K2V(6MDaU#?Y-e&KHePMr^(ysBZsGm;%mc zPnQrS{Z3k3oab#)B-&6LKIF4$!VDAw)OaMqSYiCaB@qDbuWh9~X6q4@GnIUE5&yG$ z0!NHUH_sl4uu>JA;O=u|x2>x+0-!b0y~(Ao1Wyi)9Z zYMR*teu>*ZLjYi?8hU%T-*_2G1>bsdEh>q=yZoTSiYtiYs=z)KWyC^##k=@e)w*a8 zz?q&R@Dt=t;aNz*)!=3f$xl>P@4iEpTdq1DTMZy|FP5>x+v)E({^oc)4Qm3O8q*4V-_@$s!1zXWim$chnt zRQmZ#n3QohZSl?K#+fr;!NEPf}$#nh!cY!d;s*ns)xizN({dZm?C3{#-3j)tl~ly`4YEs% z*C47x6QL>qrDlsJ)I<1n+gj^rPF}?z2B#%!P=dyMx%z97SO7N?%PDc2?x}oUrdQJI z+uw|ApWbMXXn7(%#31X43|=it6ucD+UfH;R zbce|PKrBivB}YpHra7!yUhvk7EsvqHZ-r?Rg8k}IEpbPcT(O~V3llB}mjhX5@%#jf z`S)Sc;4@8j^eLOFbScVrRO5M{?@}P@i`Cf*nF5{hAyce&JWDA-M3l*4^4hqeA8`mUi3hj#s-@ym@lN=6CdqlfvuX8DBEX0TF*6s$OaD_56Ey zZE|b^|Gx&^lZTgjz2|LQ1`fgHhlo1aG$^oK?T-!{^Vt zb2$A72`?7(rYK*w(kqhO3>NliME^F%+Pk{8+_7B!li=a2GA@-NaZi1;c2@(DNj1(G zejch}aWINjuwwA^mYpW}vc>s53r*B*hjblZ*{(OO3{Tm$8}GP(7%*ZM9L>;2|7Te( z_3!ow6ZZ4w2s^s#aLwK$ocxplR9R#_ekb2Kqzrc_p|dHHQG{=2;)BW}j<25BFCiCWCyk2xslcFmP`2#aNEcKh53f8>%4*SY&v{Yp~p^6jbD&@ZDcgCwlvh8Tp}d^E;Yf zdZHe9WM9f!264E<`Ls-UUU3*wSx^jD9- z0kmsqcHR+Ai_oSl(6?cuPjJ`LNNzp|QbgwgDF+o28gtx1{LMMo%$}lDCyL$J&4Xbn zofZj?CfxEH@-N)u1Zl%5Zb50Vh=xlYHe%ohTP>Y<{NQ4MN`!$gViM-6|czqN&{DDTbMz2U@}$b(6P zeTuU9grEHnJ}b_czf{lHm4O_5+fa1#CNNL{zgRlLYpGOF_%zQyd9}@s=hh6(PDDEf zH15CvDE$?k8dKqqWnMtBHosK@I&AN4)xr*fi@(Jxrt5dTOZ)<^e0`Je2@_uR`Mk_y zph<nbdkw2v-enzVw_?%$yqjbTs_bU*>gM3 zs6ahJW++)#oJW9Fo{UPeZ7w2NP8$O+k~_nsK}Gg(4qKdz+3y@l8xtFr?H7^wii^9X z>A@err47Ni&W(8s9JnunxM(DFmXKPWH&pU%zW=Frr$hhpKO{a2r;6?pm7l%njzJ(KY`WOTcsGbr zyWQ>W4C_f#F?%xj$>jx@LSaST8}QS|L^#BXv=M)B|a0{`ETTp4H%B=j)4Kd z_CxU972bkuwc|?KV# zTK8_h9evIN*gSg=GGQ8a$ttHJ9Zw_+--!pirl0N9)U-whEjpfvjMr{j2}UoMHf;0r z)4vzFRK5iQ?r&P_uaHH4*OEN6t7^V_U7sb+kuwm-x&=&Sgvw*1(TMpY_en_<;bGw6 zkEp6hOxCf+;jYep2v6Am$5<)0fYp$7ok9Kil7raYhHMWBO_=};K>BPvhJm7an&v+f zN%Wl4IJ0b2Wvu!RD??v-Sh#1oS|_ro(rS=OBXGr_pW(N~Ug?b+p?hu78Z-eZDvr?L zFYfxJ9X$c6pdXSFtPh079AICmo0;Y>WT?SavJ(qo`pk$?s1UkBDJAT1TV(qaV~3Dz z;)}YSP13_&rUU_TU%y+5G-hv974Js`QB3s@6l#sgDVDLyH3A&MaWi4_kvL?GNFu?s zpT0f+1ndjO$s+%WS9ZLR%Y*chq0}FTr`>r)G7`s=6paD8*i@i{b?3ME(W!h?z3e*QIEUay29N9>^SM~`3&Kr)mvd z8Vwl^sFoy#<$IP&ozD`7=ZVs$O(S7SI)zW9J5!NB41jZ}RqE>n&L-~Ck5#=&ET9mb} z#wi0WD=H-$@mlbE;?w?Gvx+BtW|4cH*bYEb+5x!`{0?14Zl=SNS1?<<`O?|r8?@{{ zA3UC3iKVcjx!m24t>HztB*S?bWp3lcJ*C?H61C4RI&)5?J5*&H2~j*2*!qqDsw+U1 z^3J}$4@B+%J?YoEO0D>}g#@?CFj9*hbhAq<)gk`Qr%{ARhL+I0d*3~D$E6SGOFecg z;)((ZYfMe0U<#LbvM0>HPekay52&kD-H+3wIOB6gf8I;Ud2s1$-eQc;m`7P4_Squj z={K5TytPHyv}4lG-GH_SCopKxeiL^JeCglw`{!y;=*yQ>khksSDFoED-o61fT^cxJFR8iUlj_E`<7fQnC?d=sYMVv0oRRvdue@MCzHN96F3eOoA|4JMa zXKh!~_t%8&tQGekE-Ag<^H=%$n7@pM&<=7{v62)Kef#b|zK76QdX^a`G^cGzK8SQ& z!&ppPaui^r9JKA`s|>wFL#39GO?u@yWAvJwudl%@xyk8orgul1T?NVt3raK<%dxkJ?bBnG8$$NT?Nd0l{iBl@ z6vUrQ?CJJ_y#Uj*HDg-8%CN9dCE|UI)#@y~TA)urR)x}H6uife6JAf6pOEwi?KF8V zf02w^yM+K>vK8IZ{RlvV@1ZHuZ!Hujmqxx8wDvCN?&%(avmIz1VIYR&1ry4JXsp4n zz421jW!H|?RKKayP3tb~_W#6_z|&q>NRrFwx0E0~hPh|*9qsZ~pI}r^J1BO@U|E4j zwe&==coVJXucJZ{3ICEv1NRbVS4%D4Sy(LWadT|q~$y>5;6 z4K@P;z*_N2=FZz&r)NwG6vipt76U*rCyYIR9);vU???$j(!YuRgRk;d(LK5Sn`=5# zT(J=Uhhj~84Wo~i)}8X0Z~k2+ZQE}lt0nz}fr&lq_oUaW6LZ{3e7TcRDAjzM{SdAycSi2IsFQ4pLeAg2 z`~IByc0Iec%Hhb`aZeOvExg5(Q@Xqc_ZnEllbNB+Vzhl+Ktm`(unl4NO`qk z93v1TBhREME}hT*`NCoiRZ_mU<|z;fqn@d64Da)o2&?`KmrFl{NIb^9e+;|Co0>t? z^dBEyu1EBr56fSbhIB$mSg2hloAOh(MHVbF+0gkzX2@9Zs1u0#*MVXGez=7_uBN=~ zUuoySt}iHi1+F_&UwUbO5QQ4J%Zae9^!n)V3>D&ty*aV}t^DRJnnk5LWHC6-$fGxP zNgO{;#epr#c%)QYNmXq7Eq$8LSlM=OveqXg*(3vtknbhFgJ0~Kiee@;jK6$K=~_>& z$a0o>8xZjs%JC?@Z&yCS2>P`Wn_|Pt3S9}aO@P%ABm-^oYto4CP1p zhI@GRYm#i=`SR3Q#dt0=8o+yAi$J2e%H4<`65kIlK1s+&A{TI~6!?x%@CfOaOS`OBqSVGIt%Z-rh3zHPsoU}@>klq zgrm4Y3jtPUu%Y>^+XGB+KhY29-#hYmQ!R08+i;F~f?>;Ag1mjcE9WXY1WO8$DPTs- zVX%L;1kFPXqtDMMH>@gNadIvQIn1+W$oXsX3zNAR?f|8grg$x3gzVZN6VhodOAP7f z8UdLn+{M77G3stAL_C3y%v1A9DDN`KnMR)`B;;M^PT=v-Z>6FDfnwe7g;BHx!r$E0 zTSK1KoTLMu*ATbAAEs<3kB;;NbNEDpiY6k^S!%d=Xq-0>F{JNcwRl1TxP}$lQ5sJEdOk}ZCRSt{rns;=^${4!p-9X z-(z68mw8Q{`CC=Hijv}Qg&#+&U3Xu4lJCyJ0Dssawyf$^GVTVc!Vj~fuwq%%Dfe3! zUV4i1lPC*lyAuMd985%YjSsjb4ZvlG*{Ff_zmp*VFn)aCHw-MA66U%fg@1puZBJeX z;OLuDjF(57A&;xQyxHe2uo5IgpGe+{dXs%uh>4(IVNT;sdrCsKJ-rK?Y?V{fV;q%W z2?i_t#NLDzD&hTG@s}onO_ry@pU4+#pQb9-Zv>jg@T`gQ3?=1N_k<}*Ty-U-xZ$BG zdZIb{Xis5nk@j^~Ib%VR)bBR1$mj;1!mOOet44-Tai2Ov+r7R%x6H-Y7^Eic9*j6O zXK9oqnsXN1)u^KWVV6oWgd4m@Vz_XZ_igpxu!z{CZj-CA;E9p{mF{z4eD--4#G-wU zh#YVOg9I$49ve~*^`4oF~ZUNUiG>uVA`q zuu6=z6sF);&dU+b+jUq$zOCK(`Uz;%nBKzmtMj~t|)ws3W5ZTOFg=E!{A zyFi!BJ;d_OfcQ_a34%UCf?E+XVkRrw|7$fyu(CQ7-*qW)faQo6!Inh4rR@k1 zQDhTD-Z`uU4?$6fqtB|`yOnEFU|S9VWXMH#RH~AnEPvleF@k*SGMPrf37^j+@^sVa z8EMjP+aK3$=hI(>OOp0unM8u?HOH=@O1NRxF|R)x&q&p{?xw>jD=5Dsq8qf&nT3C= znN$)9pEsQG4ea}|!Wh*qL1WlAJRWMS!7<{6Qw%OZnK>lLhLCC$6{z6te&-4J)?e>I zvNQ1ziYgV_F@w4hQ+t?MKbiJ9To20nS?}gpudV+u_vbkf=L+LW)AWKNHL+Oe1=c9x z#3SapKS2SoywRisz0=2!9;i*B`pxUA_F-E6%WViu)5j6)9^lccyzJ||X7p}0ePDG9 zg^8n~7T7nVf;i+R@(fp(TAPG`nmubJM98tXBH|{WoGwwTWz*j8OZz?~*F+g!l-pvh zOsGbC>pWZt)x9)0b=qnAyExQMq4<%$ab28`^ zf8wXB02`IqDj=#_Usoq^Z9+RxkR6^SGEfus{veR$Yu9?Ok_z{Iq{d)7>N_Do9S@lp zCTUxgq1I2Z#uuZn`eH@t6}lG?AjS5O%-}-2QnM{8#RhwAa(T)cnPXF47EI>ks7rb)&2h?@fAz@j12X^ZVAy8JFMDQg2EV7?4F{2(|j) z%t1HU$r>~D-zKTlCpCxTKe4P${4CHPOn&40GN}3Q?&mqODeCq)idl5RDvKonYj?O+ zRoWV&)oTjHEhCcnEM^eA!gh}Nxj(26cB^EGLcfu4ZvXbhi5l~x`)Cewy_T{>O&|4P zRDuD91Y#+_eN@BeVK|PI4iXMx%Z>v|f~VgqcreK0=yRW|A!F-FFu&>fx_xM7+^75J zh|v5rz%x#QM`bXla#AAFN_=j&6kP&M#U6H#Y?b&!s!0GK9xm-3H@n?%GEXwecTCVa zj2w(i<=PN_O;O*D6Mv$Nb#0tx45LtI>$34h##_@(9xqjNW0KbL9S8JdshA2uQmFll zQXC&j;CQFO?p2RTAiYQ^N}tBKblpgSam55KgIMJ^pM6?Y+Gy?-m3u7VZzI)+k=R>w zFB3ERX!*J6@53b5?lN(6{Qr>#=lMQwa>^p5Af&;IJVG*zLZaI5q2HQTRNz*3Y7;{{gNi&S2LiA*4>5yxaclOzObY6L+@??o^K5iJE*_e5>J=x*BX>}&Y? zJHnL)B2Ugll&uk>@Dpx9FD)o)eo9nr&%NF%;p+pnA&UPn+kgK z^=Vz+M0D;$h8geQyS_a^!q~=nW2)33{Yhv0MSg>AbSWV$y4;rhtMi`*PsM)vG#+_- z@2Va_DB96)H6HV&KnB?e#SV#+C{1UgBW+B*+5ICR2HJrD(6azUWYoae9IbB;HN&#) zS)xktBzY2Nie*IJu=Vq=W6NeW$ol`i9*IGts*T7E`}&w@dXCD55B+mm2L8MmlTntB z*oypm%_@L~o0MRnR1=XoY+1U=zgk0^`XQRtNx!aNhn$P?5Z&lq z7`+ps_Yx(7kBA;dFChd$)X`fodgteR-G9XW^jznhXZyU*UVH8JV(VQPc*lh8`~~=L z->Cz#5EbYZLfPd&%A4>82Tr-{tu}$m7NJ225>umv4|}PdWRUViY`Bz@PM~<{6E!HS zch@GWq({(yo{A;na2BkNz{txt#VWHF#jV(&|Lx;eVNEHN)Ar*R=#?x$$nckvmW2b@ z9*aRY0sf^jPUI_TlHnJ1*eE(t!^~aN@UT2bF|D1xMO5zmS;{}V#8o_DQf6LqSVvHkb zoiD7BFw#fYDKugXf-E;xM?$iPQ4l!9m3HCuHHfxb^qWqgrL*fxRygAwM6tY?O+O3L zMQxtc-OpZS^|ClOA+k1(Q9e1xusyAQi_t>vIX30{5r_?Las4d)mtosw9OL5a^C*K4 zK3@l!;S~fo0`dXn`^^B0$Sb$ft=!gSXDmT`{9;>?7dJD@^?7NC|hK zW&>@OJC#l*pz@JoY0&E4DJ{Z1-Afn1auPeIsU+F)0~#5?GKElKvpwiDQ}7-J@@}hk}eEgBAVZIe~{c1h-Mi~o&D_Y{mLO=@ZaB=VSJVXFT{E~ z1wRSG)yCNwY)$6>E_S$YYf{=c~ z{L1z-;h6_8o9$?3ukGp+=fnOs8mmzuC2$0FT3B5m0s`-P2&lr4tHCV&tf`%%jK7|? z8c$3hi@mH<@gRe56B9zcC3{N~k2;Re{$_%#2||C4@m6D-hWMK?M98{sqwI$)FUnYP zuCK%qVcE0Xw;v#$6yZLSVYJBu^sjk})ecvN0(IJIT`PKqRn5RAT2nPL-TxB406Z!; zsM5X!|D`(QL-TYvz6z)qKxYC*l>cysZ$&yJg;8rR-)iwPKkOk8bw;23HOI{&X2btW zNW4N*pTZt?9wkmb3!g>l`_g9F2-uzf@SnbK080r2D} zX=``(zC`PfsJzKZ4nYvu<89=?Hy5*NxKQpDU-ag`E!{p`3r=kbN?Mx2Vi`VV!t)Cz znX?%M`o&k8+UCTvROp&>XEP4y@W9U-PfO!p2I+fMZplCtkiW zaxRFs!FX-w2 z&otQ|qYzh%D*_sEMS<-~bTvdV&wu}PemgO>$%6qEt%It7$A5_~_4Dre5wtgoBRZWz zAi{?8K}JjokJAxR*)b^{X5-1i+))87f)UZOWOLrAkk>&XaVKxj4LDvQ`B;E5B!G^_ zAvHFuKh?`PTz#qhXiqaL(@twU_UX^a+m%Q0 zR5uR_CF-@s7wEEBh%4w#$S+JD7CCq^<5z2i*i(l@!r1@v-ax+@5CIeFxzgLdnNFNo zuKZrlr=6=EuWi=(dK-Eb$3X*|8mVc)ptoP6{1CLN>p)npr8?^j+9l>%lhqxwetv#r zs4f`C-gTZ8kJ>H%u$rOuUzja>6D}%KBVAa&eiTQzxEUWY?-ni<^6BkYtvG9gSqm|Y z7^MlqB$a$h2Srvu`z~7s)=8AnW`YHMUA2$)sf}m-f@7w65;aE7_m3>IrXfE<M%79O z`KA~)EHS2X;>HXz6eZNKOe5OFsXF))+TTx}?OhD0nbm3*H4+Q#qqv57T2n?!kE=vR z@eN^B4`9vRvhJ+oVI#;}g5xC}Mzlvo5lpDqDJ@BFg6LD$?M0c$<-T%O#{?wYbeyRm zesfEYZExYFPz_@GB2sFvM0{kA@S>{olKKv&($w24h`FgtQyfdf_4Z-e--z87z)(d- zrF$8rn9kDef&mF+S(ltT-}n|;88Zbse*dyOyZ`6!u)^HzUNNgrRhYS|%#8r7dK6*Z zRw}N2RT|zb+(6}N25ZDSaF9aq=@1%k3yE4Sbo=`R03r}8t-;qSV|yQ{*K$7{CA+@Pc$KOmv?wRdJeAJPaT-*ALNC+jp ze=k{izQ>&;7O<6E?roi%b?R?_tCn>B?LRVM+r$5O86sbxRv)fO7zIGjDx)02$cA*q zoB0JJCb5wYpaJ%P-ZBx&ZQqrhFM8o%mwy2!@rSRv@qZ|QGuZUw(tQH=DHq=XVH)*V7!^?=%jj+mE=(1JYNc%;XA3rcJ^okKSBX^_&B9(ZQMJft{36 zfK}QA#WX6Tq0pn}M_gtu=-8ZF2BREMUOMcBE+F86p>%UJOc=z-Cac1~e3>Cej%6^R zO6)w<82~onR5Te?4G`)g3XM&-U^vG|I3i0hFTq9%;|ZP~ZNTitF1bt!jec{(>YO(N zK?A5BM`-Wq`2NwD@JAiYstzjrsWJG^H5p#~lVaxy=Ey3a&(6m2M;96lela?_#IBIoWpZkjB5@v$I$aq>pS4Wrh~ZC6 zJIw(=7dx@7#88D!Ez9UnaVdI7lav@FN4ebp`h+>k(2mO{QyB+{s&5=;sq>XIM^7mF zpV&T1oRn6B%u_z^R1G07s)n>Rb@sHtocSLS=$YJ5YNrb$@^dJoQXI5 z6N>bHcNwka+#_NpOF}Rgwk(w&nLO#5S*R-)GsD$*iN78_N zN{0v9g5QfRm=*uphQRvF!cfqBvrCiU{nCGU2Rz(1FUO|&9E6OnGYYm{TU!H{B6M+mYx^;atSWadP0n5=o&n*xSJN<%Ex4e?)k2;w z7f1P0JC8Ri?_MNR9)n5?d_INnfk%g+^o6e%Id8ij(y@Ro;Nk)V#-~duXd}|Eaq)2}77D7jII42J zwui^}#3(@4{_~2tie#*|O(6KB10}6WG%tqJbf*4#3%{UHQ5CZ$edvo`^_TG5?I!{Z zKy&DK$!Q||s^`<;g+Fv+`z0?wZ9eGuBWi|=r2U?&H3B?$0&>KXa)VQT+}s#o(uV%q zXY~IEkST0)MYwkLN6JlBD7I;!d@<{|!wn-huFYM=fNcM>YWtP_-|3@Ww zjZ2`+=?F|6F}x2|uh@7$kZWLel6k`+Mm%z*GFJTL`FtTcj{u`72ZGqMTtaqfIiP5G2${bTdvM31R2L!W#A#>Dp9aG;yg9|3+K7@#p95(cGwg*v3oh zXJP2vU72N!-KjQEvS>m>1X^r2LeufSa?!6epRPK9-8QA2?u3F%YAQ+1q`hPFqv6Vf z9J!5vSgfym_HE?KN@j#Y;k2)}$n;_W_qw@AHJY=B4DIo1LT5sQ-ikBD7Jk>q$b{Ak zhz2VMx8u7XM6u%>70-Xx2Oo)lmxU5JBleZ;X&Kw$Td1mOn4Yy{$RWMBn~)P%Ca0+6 zkAw6;I}#c5it%sHGG|XigOlg#=L2@;9xa~+;tLnF&&4CwhabrNT(b>VaA{)H6F5-i zUd!`JG`|6#fGy`xXE1_iD&{v6%(Qi(Y(Fd044F_9lHci?-hTc`TGhEY-SfS8vb{k} z@^_?0c}nn9({B68xu4XUSCBQL-RIbw4xcg5I6eqg(PyXHi#lvmv4m*t{qf5&s8Q8| z-C{Egs<(cDt0^O(O9{>#l~P{h@6G)X&cm1U8vx~DP5w|@FyECp@@_&YK&zli{1p^d z+z0SgMLT}-dAAt0&ICTK8NbIF=m9w(EcMtq)!1-Wehi(GaVp`y1AS54=rn_BZU#4^ zV>WnV*X%UPQTe^fB&vHgOa2}h@;*Xtod@-(Zk-DY!)p4qiASH+GlUtfBPlk(&WT$l z)M?pHQ4o57(d+r66BLFbAVFOopJm!^IPdw)!v0=&F|~b=jWo)NRPIK2gK3*K^9rQ4 zhe|E`woHicL82|$3g2$(azIbbT}-^aFvfwbNDz&6u~jH)e&8hB#0{n0lhp78a7P5E z2h2+&e^Q5NYK-JZarCr!+}PJM)~2GYBZ039U$Da0)FPfJ$Ir_Yv}Pzx(UdoSsJ*S+ zE=mJjn69Ti-if7n7Jf|c!L)N^`Ujv0e>*3-tY&X*x@W7|Aad-TX@CoO0XV2I*=5DIvNa-Ke95OL=6- z1O7v`Rie?MqWL_vU@`DM!g&$7Trb|;F&J%Sb6?e`I#8rnY>P5}J#s!6^ z>BTZRPO6g50YR!r@w?0$O0c2qGP(dHb)&bu4&37^<`un_NyttVFGVAuh-nc13DB9@ zOMFF8g5g|<_*~efjM9WMJTEXg-?RURR0A8QX$}++{{)yV>mbNE=rU`i{Ov32nk-w^ z*en}}a4emiQ0COQ3AlieSYn6V@;oQ#Jn6{<@)|L$W zm>Q^q@!R%66u6G0$HAOAc{W9tOM*oN3UkwdteO-kQe-*%38NU5FCdWeC|xa(AVgO& zfGh@4A-Gtz&ePycHinJ%^^b-3-C@Tdn@ZB2TmTRY26LC@?Q;^piwSOwAL=K-=3aJF z#^x(52L}UmEq?cU-s8E-NlMsE9n9SSKZa*nsowclP#6y&;CB zna(~?F4xS7cNYbJ8gc6b!+A(fAiHUCocibMDhz*7Z25tZm*L24}TJWna2;}TF4syO;<6iCL2Ck;_T zhkXJk=BD@Q&A9DTDS)5lAh3>3=3GnvB5;a=uKebtIYEXe4% zV#!4B^h1d`r3JCQA4A|F{dRxLw+p&YrxV3I_wMEnHhkFDP)5(LQ|C=HezTG;e>!~r zk|8V)d=!l-Xrd_R+^~>mGqe48=*L;sU2Rp+GMjN!8k<-s`qJl5hoo5?Vc#M|t4#(> z>CwU-^M&<@hC|{ainJ9U;Hl3az8t1!)^ilRu@qz0LFD&fW3z21$CKE=VI@_4SmjNv z=t+UXV-i0Zg;272N65m3Wj!+Z+36OlZ!yI!BQxFimMU0Q#$1tJ4qo>*l%${KFc_Fv zcji>FW^J8x@hxlS2dZ9C*VM?sao{g1c$+$o?_a_M$Xgs^FnsElH7$v(g;k)|_YZ5A zm7FzvH&>4)#H97{b!6RNBu0h0@w*)@{t{a$Vea1dB;sCC#WmEG1hU^82YE(DGe-{g zEk=MPt=$Ny59t}9Jx{kgudY`ase`jdIW#uY2m=T)1lUElDhNYlH+Opmf&Nw=nW)Z5 z5^&t*G^Uo>YP#@EuYovPAO^-lxrG$ye4 z!lIR23Qqg1wR{{nHwpKwVn+k1wKuZqXRiWskCy)$R6Vi zH2*oD>%j6M(&XAx*Tx_QM_|svP-0ViCP&6bc*09xJGsi zCF%!uk%BVYsS6nEChEh1IJelTr$;TlZ69VurRSNsn4+R{LcS1|5Xf>sws)yxjEwrG zCGMsLxyKG~;6RJf%EB#T=ysa>zJFDz^?|rx*68C_J*LX-mt$iT)^}FFk;J@ctLJOT z(S00?ztnA;#fjhrD{B7mT?`fY#Du2_e=?ix%$ucChmf8}R-g?c^m)3n&sT3}kV_^m zqeGEsE!>{v!4yI5R&cUIQtzY_m_5Fy#igS-k<&2&kG706nI zHv%{9RUOdZ;xz{4V>&rKIMkW7|Lwv2%@)c@)Q-429-8o%?B|lnloQ+zYYf^*OuMg+ z?&YK_42WjEke84QCnuZa?B)Ct_x`NuAwqXuNoo`@iipF~lX-}qC<`F5Q1oHwr7TYL zpdKgIuK!xN`Hm28+!$ZIpKPov!V#4IjfC=_Mw(I%Smf>EFLaVl0R*k^8NG;dvz{rE z8EvWjv4s`Wq?!XJS$cu-SK8Z0xt#7lgAPv=Bw6J7DAjlU4oBYj3ZNGCn+?f>A>Rq( zpQwK$zEul!`B4@yz@`?(#G(sO9x^rih?UK}vuFn9^^>7HsBN0Pt>HEV!Bry~GD+HB z73c;`;6F)Qt*L-?1x3HCQ5ydN z2W|9f7`-Wh%2uQW-d5V2#~f=I+3}__x@R=ClJjA%Ul)wo;P!b)+5u&50`b)E`Iv#2 zl|SA@PIucpqC`MK{!*fOPdh>!bQjZEQ;|kGulk6!^`v1fe*^9wQ$>o)Uwc{y&&4q- z$R2Q%+X=IuUyF7RWD074E?(wdh!1Ow${;Dwq<7y4qjDyAwFQPeu7*4eF)FXxUc?qv zJb>c2WS!XSr&7Mm{0GYW)7Fj^mb<6CE`BLYxye8uMlod%cGLf42Drz!)9 zZ-`rzi2`!|$+aHfU=KC;uN-L0o)R^NQ+OxO$I9Fe$qghc6ZIh7a)yO@UUAD~)5&|j zRYKt&(T5qZk|*`*_>sli#K|@G^5lURru8b&%$~lrA@cKwT+z@Aw9abjh64bY|H5pq zNU=d1Vg4G#Ehxic5HPe33tFJHR=0y%M={WR6GZ}QTV^36?a8uM2Y>7kd^+hj z0%hW$tb<JpXe28sLYXYGSk|0Tlo#Xs@v?tMl>h7849nU3K;kjyVLR?l1rrdhdJ z_wOL#>@Q8@@f1Tws*Muh)Gy;6@_8KxrX$8K7K=If*g6@oc(STWC76F7eClf!F5Kh1Fn4)bQGAC52kD_%xR*J9d?Eca*gq@lOYsG?)H8EqQ2B2^n<1vCsB!YZz-C;4Pf)l z@A?~Bdz5IM`?ob{;NiF{Y^#@iSD{z)Mxhrf18!aO|DRJwj8N)$Z@c!yn`{|c44w$*WW_y^xJyx(I~F5*3qbHdek0K>{N zZ;@e-5@6sj^1zAx`C{+Pv-z9%4-IkzHzJR$HlSfP`Wvyy?-e@Kz0x)SG+$s4Hp|*` zoHIv-4G7&_T{NmmEms>@uW%NZ{;F{L>4B*#r%m^g)A;|vVxb?sX!x2mZVLt3dst=m z^u|)R2+Je4A|t&E^DxVK`TFxcsw?qmP}->c6Avq&bWi#z8`Uh7goa1(jTKhep7jz4YvE3CvUDo%IMyl;7LQx<){Efn%WZ~5qCK7agco1p#h z7q2Rrm3Tq*u-qeI#k9<^5@MtQ2owraD0KOAG+A6ACHDBwqt#wa?T?{Oe~N^gdR64> zKY~K`*!9K@nj0qK4dlhDdcEP%QIvc6W61YL0~YZfq}s>53I&yD0$p0oet{mBK0-7} z31~;70aNHi*iSyX0_ZS)NkcH`4PwCY!Mk_g=+}1jGzy#p=vZ3;(P-Pq(2d;!(FnAOUISVMoU@B!RS))^tBPK+ zG|d00HU!}^;gW&j**PO!%?uj6^eJ^gRlkQzfwP3O9D|O|g&D|5?e7<_qfb8c>_7qr z_LcqEk~Fzu7sz>Bu^QL z*TNoEe^6F>cDeM^vFekl!#&nAu}07;fO&6-r9n48Z2oi*mJ`NMXhLN!e&#rLEz)#U z!-+$p@>Dmy&C;s-#oSTc<^Pl_S1Pe?8^d&RH^y`4%Dj6|=Bd=)2|0Hh{{0kLx1@wW$bNtTK5`(_t z`jqn;bxyh6cM0wcA>Wma!C$bZzfL6+?~qTIU`jg6)zzWpUQ09+)X&F@6+K0*2z9Ug z_zU_k36UAKL_#ji@sJ*95q+qqr)}E#)!t=razhOb#kAFQj$nl7)P-gAZ!P~WF{A`>mry>XD59$K z9t#oe5@bZZLIRfUYx?V>qiM7$e-wOEPVkE=1;Dh(VE**IvT$seH@It;1O{IZeaYy1 zJXrBRlDmoh5O9CwIWR)hcWyzgNPtGY{>AECyp+cT??q~DjI|+fMrfmY z=%he`x>Jz|LPjik9sRJ13YlYb9f1?OOO_7Ld0_9Jzom$(@kYG83!s)Y(8QIR%=}ZC z{O+uXxJWP0p{9y#Cpa|oea^rX!VwpHScoX5E#|H_A03ykOL%kwsh8x)EBg1HS!E-pP zh?MOFo;a(8C_&z>zbU9N4pBtzHQKC3^!@vR@035$HZEQT=r})C@%)yD{AzvDf&baa z!Zm#NrmNIN0rkYLVega!e|oNxGUBEZfF!g0AvV%$4ftIhERNkmI6WFaOdv3&xQo!c z6&6TiZvG*cEcdD0m_qyV2UDj~DYM-D#!5bK&uQ}!^y0V*ZG*f(8nW@Clhea0g z@lsT`waj-5kyOx1paV`k#vh{)CzdUEu=GVE@k-$LmU|l9e5Gc?o8hTwCh3RfT>%2B zuUcoHwF%>8oFUj1-`vYQvL-7P72nCzH8UN(c`C<3N=q||C*|sBCg>=IjQCySYEGiu zT5mAk*_TO_$}i?j@-TRZwB_W+?SAXYg=?Oz&{@zqX)U*F`Uvyogtwsse1k}J&9Z|T zE}icQSbymtzGaxf`u<}WMWt$`B+~45I{OzRXO&p{9~mzPHq{mV;c^&pJw!m(BTj<` zsumCqO0YRW^#wK42do6Yi@U0fFL=-DKR4<1$bvdT;a#u#3b5P-syD9riH#w{_zQbg z&?ZJiVoDB{L1dydB4|GK4=287ho+_!o9lu%R_5R42;soIp|l~%Y!^#We#-cE4R_RD zXAJWpL-2iP75@svbQC=*T&t>gwZ8twR_R;IOUpqZ>fFr9jR&pgPx*m?IMh~9xKd4E zL=ks}LDARVm~wcCwS6PbDn%b8pGwkrV{X|(L2r**c+-e-=3rJz^`1yx$FP5tX?yKi z4kn8gAvV?%cAeexPy_5WPZG7c5PxawG{6<0$*E{W7e6JMqg+W8a#oMF7IW-(xrN*X zdA>UA?bzcZoj7m0HAPm;W{A*+J z8d%Z)`Kn;dhmxS_@0ZhVk^>P0Of7)@Z}mY~hb&WB_8=U>MWW;;EK3WUMWWIig;K3U zt7hz8^N$!(S#5+bKR%Q^maoYoXh|_?7zc8Qw_bM?^*v{*>rW##K8 z#&ZbaJxnyhOk(mHPwhXonlr|us=BV-{5#j0@UWH+=9{{_sd{VJYO+a^-j^n$&%~3} z^1*E)e>Emr}Tbg4!1;GU#JqS zPh#fR3n@UQ`t$3#*Ep`YwFs>$AwSd7aoN=-*&NiH_5|ew)A1M6s@_k;dl5-dK_ngy z#+|D(5VA?{7vMdQH8Ao}D9v*k% z<{cz`-;5eGspK3Q@r{*c!MuS{9;D#XiW59N8ynv}17$ij3gRHLA% zVi8i+G{~E^g`41p!>Q5mMsSaCthR|Rp9a*O_nK==N*r$-t~R#T3X{z^^Y{vZQ1b<) zih)j`iNBYUUW!DwmHcn{1NAl__(hEjSvF595)Z>oL2xPi&@X&|D`fM@+nsG@oP3z? z!i?bWx7$J;+KL*!SugDuon@$2rQX^5=nWQiP{ir;q%2>@oYaLkrk&z(fOxw0sH5^S zuddp*Gml>Yq#kTh4`l0zSw=C;^~9^|tiq;Rxzq8q^-Y3ws{0PqO zOR>w@cxAf=#kEo<}Gy-YZwuEE&LriYC3Z1{^ss5g3JHiN~vaNvBx7rr`j_UIPE@7TBF z$>Y^1?hm#GO5b77}Rf}?z5r#PAM8dpkUbQ{JZyVynZ!~;}wIZ%d(18 zC0afNR-OO7v9y%#wdGms+f2tRP^52N1}PI7s66Uq9tXLv;P$VuYlTavZIy>I7ct~5 zr7^7FCHHe!xLf~I2FdUzlGAVeWfaUg#}OMnJF|VZNB}(_wTy8l-z?BEe)^J1QO@gf z`|rcj&F{ZU9{eJBwU99308+v_o~T#4ED-q{Jdm1SjYV7#{_@EQWhPXaK~E5Y=jV;0 zNhhRFOh#v2jJ2wYzLC(ufksXbICZqYt86$F2c7&IkN_8F5oqVuZ@?*pTTmw0kK*9h z0`-40lm`$m!>lX#r%>sg>+~`-ss7x_JJM5UmAF&%aw+zKyW^bLAy0-|S?G(5){n0% zd5GgK$!und9>Mxr^(V!@H^!VUeEa6BZ?QPz28gq}e69wpLR0g?iS*O@6`4LjURBfo zl#!*+p?e6|Y=u~N?aT@&_gs^ei`y8!3>>B-k@&6Tfqi@CA<;cITI!%HHko@POnPMH zanCNDKYm|^O3JiqNDen}8)S7GTNtbP^Yr4rSn4IUT6$Z-_pcNB1ub>0Fi@B@zF&nV z^Qt*=8oW1R(tS4Gwv(x#JQhTE3})rk8UJ*vv>u!UJwzS-^WZ1% zI+J1jm_7+;j+dHFY9;ly&E1RqPFi3UR)2S@7W$QiW6gvb&b(mJTFbp}r`m>K$j4wd zfHiXUv`I_vFymaw+$hNJ(D>{sjHdSsKF%3X$JcrB5e(2sel6Yep?^<#m)^ z-!nD`vnUuH+x7as^OU1+9|%JOe!$WDI~^mkHFtDNoGHw6ee0`vxg!)ujDiSyRv{)B zu_bFUqtBB-_xgIBZX)t(X&mr9m_@+iC=waH1}ZCx3pkItho(7AM#i&c-}7w7xv0M) z09pP+<&uvp2@da@UUcfda+8L3=lz3gI|Pya+6Y)32~OM7_}q-5giO-AWP%RG6(}OK z_(P6*u+Z3{3@_qk1!@-lswAsbV;eMU1Sfd_{RK1Oi9ziLiH88j0~yiub7PFRfu3P< zzuvuxC_r7#hMutjME1BNh8(7E0Z71>q3b&tWm&4oA*Iq@kfvvvs(3i1=o=$|Y`Q@t z5VV1;O+p-7uKQO-&V+ap6f`__f>Et(jQP8IySLEOcazz;s^_lB4soV_y!G;bOl$D! zhaH3$jvpSj;T&M4$XT;D3zYYA5_$06G$v0D%J;?hoaGm@egdlX4)c7_bUbEmF3*S@ zw&OrMlN$PbSt1DP^LQ?+7YjXk8*M}C~?B}iGKK$JAw zsSwafY|TFq4p*4+2W+J6Mt@#=uKP<3{0kU!KwoX%LoTfMTZvzYeg|Rj(@6~EGPBY{ z`}aNfwo$B`!q-pD)) zxw5RX1r8XQ*)bS%5XSJw2lo_H8Y`(FDGsbV3+`!?9wbY<{=4Z%RMf zfT8lIkvgFesRBbh-bLdPtu^f^Dpkl0li>%i#j}XrL~VI&cccHT1KR`8{u*=9<(^8} z=TNK~OJzVPLo`_dK&Q~+bFl!6B+DLV+Y*T`$e1fzbLY8P&mDlFB-%euRmGfF92AA( zA%50Q>@d_`{++b@S38bT1ToutF7`~9qQ{-ocZ5V}gE-oQHUR5J%={uTcf})=&=w>f zwC7H2;N24cJ9_`pG7)W)a-TAF%n~&se#zbFtlBckAUf~n zdv5!|PdyJbY znUJ^{c`I=s?Wr{WWN|G_gvgIzj*BbDR)LMCB454@y z+}BFf*D#bSVrSh+81LF z-Dr^VtUY#i7fN45j$ng3YBuM1e!0+H-cW-1Lw@rQwHzC{!1ElebSo!LKJbYF$oSr@36Vu*Xl$Wn%sOr@ zx+%>v$t+Y7H^A~2Ue`SJCLm%=WSR1{Y1T$-kLYI?oS>aN-iJEZNk@122$41vDI8H= zG`_DcIh_7^AW2mR9$`e@<~oRNK$k|AO@CGD;zYcAzO6nHFGah_G^)hvX`?cqD@{e$ z4DzW$uE9>Ji$X!eYlF=V`h$ExcF6|7q13?ES4Hz-?tjnJ8{2ZBx9Pvv#jLisg!(x- zUnq>o{1W&}cbSeT^tU!^6QY}$6SLWt-Jd&*v36N%}Wtz+N6_O<}*6~KZI3P*Tog$9L z!I2`P?}{jy;A*n}w?vJJG?!q&);`F!wfvK~84&CZCNK6(VZ zoMZSe`#srp41)swaIUe2KeACXek}QP=68)TC6@hl4XT6*f=FSaLX!a-w9wq&>H=8Y zLfb86oesuWn(_C;)Hz*mvT+c+UhN5(hk}&4mTv;O;sk4<_bH6H>I*dsf@t;sFx+Ks zNKD6&&90r`EtKkGDY#x#B4x>-_rM+juDUlaniS|IzA42#=_Wf+0{kLmNJdUe+6>^8 zr|9ogr@rkMBoJUpwnQ}trz~2GODXFh+dq&epzyuaRk;IeQi7Z;9jyQ|Yo_0qfBz-5 z$@Eeu7j8oQ5i zq2e_jQezD>c4hjVoVln?Ssd23cM20JEQID#$6l|UBZ>bE7(0y;hk8uwrO7(D5MqJTrR-=b+_iV6UREDSalY66+6q(Q- zKOAerM7a;kla+@c8-P^Pge+q$Sb>*CIZB9Lx(d~sPzHffdF%t9C-*-tG2ZyEkBHMRYxq##*|DIj2n=kf@~q&Vvr@3lneNG{n)#^9U)I| zrhGY)Auj^z8K+hR{HI@sex9XzU0|ptW3tY7{$V?+N!Fe+z1Aw4@;u+&fbPf0CDdeh z7Tp`vev+I0DAu~d&xwIhU|nk&ktwgPs;*k23o3@^-0~5fC!1OoxAe*lp$8Oy^zD2} zAJ{eKYKYO(48L~2z2v<58)A;}ms?tAsB%H1>idDoqT%l!Q1$60tbduUFMsyAlT^u9 zmBo>K&lGliacheqmNW4ALbp@AL|{tO$fXN4rGU(X5U1XU!j`3Q=1^buO}MGh{r7iW zg{qQK>$AB+A*YY?&Fs|wHVxFsuc^{E-@h9k?)h&cTRJYtUMH_)%DJ&ezs47e)oY75 z+{7qfi5^5T==5QLV<0dOzcc}m2O6}4D3;T&b%$1+Ic#*}Vqg1qO}T`qNf9EivaC+~ z*IbgFKl6u?Vq4C=sP)DtUf zsvC&f_&n^}4Y!Ys^ed^Piq0hwJSe2nNN*VePPh+Fo^h3O5-1wvxSqoM%WxvN?PGX@ zhem?6ZD^C;gfmb#Xe8;&-Ee4)O@?iXvHiqZ3*z&BfyxVE%7s~HcwIt92xxm*w(F@C zvrR@{+ow#*W-&)mE9kGz+qZKrwONM?^1&exaz=o*Hasa{mAy9Yvr`n?Qk8L^wq_@l zU_y@ghy^}8lZuaE=)S3<=ABRe7)bB1BZ*JXU_F+YC7iDS>z13vr!}%{iFj4>uJ`yS zx!vj04xL(dnl*#sy96sE9Z&kELiQEC_brC%iIVaV2g;Taq8B^;Mx$Q6GmMww51M1Y z51Mf4J6n$4s_Rx3ZzbmliuKANF5R@@DHS|OH&&S5_^tO;!(vsC)O=CBtGG)<@_G)R@arvFNcc+JjnZ=(Y~pV8ThA|1dn|YL|o) zraQWc2rUf54Qwsn)lI?}d;im-iqSKJv;M{{p72bu7qTW(i#wUl4Ic}qBB*w=aFg`# zGiDK;zUgf)C8qhc{cC?)MuCk3QkxT3w~=L>U}J=qyiLPTgo%rWzm~@LI#v^`7_z(d zwU<^KHYpl?dzBaI<5?l@KWlY*TR zJs}@k-@?hAyirMa#Xn`dnWQ7u0r0f}u4P^7cA90sow$=i8pt6v@8MM{$Qm1o@_MLI z`<0kaGMUpJ90Mze^Z^g0Yu#eqRV*4i0yBqGRm>w2c6A{;8E*IM)#@i8s?BKyUqZkT zQwHiBN)4F58lhMvn9yb^!a#r^(SuQb*JL8)-M3Pck&mW;g~PZ;C@lrZVllxnj5$ob zOhEfV+#&7VM=3PZ-n@mo)wfhc$m_1C5!^yhrynJp>Iz=NsEU0xM6x|tR2Baka?@vv z?vC;@ebzpa_lzlBsAspz8RItx|J~n;rwm1&Ue_i;G8mubuB2(dEQM`|S3)FYZfX~+peoYS{<9X2#FaLS_DDkpSXe3$gvSrQ}Ojkav zcJ|!;@lYmsIm#fQRBQBg>2@(3S~3~gRZJ5Nv`jJqBQ@Q4Dwj&kK5TK0o4VZ6LbY&5 zs0D|Bbgd%l=H%8nl8TsGUAJ^!v|UV%mG~9Nh$Y@0waqD`UL8ipr#<}5{Qm&aKrX*A z1{f}H-q-i+CwcjOdr@#US{y^z7UAuL;);2VaYs{`W&YLpmMfCD-Nv_)b*3Ak9%&t7 zd^K+&cz*Vq;aXPgCZQ>}l8S=@ZX9X6GI}~HwSd~wOZrz#YDbJA#slEd0FlVdhI(nV zO^B<|+RUQkrO9orm;43(z||!Z24DK*cj-mo8P+|MS*{s@o_p4LfEefpM~v_yo$1^Z z>x?vDHs4uNP~odpBQT|PG+S_&K;sBLn@CWZnwDk)@v>2!?czZ4oyv}MAl%`cDD)Yk z9+sx0e1OU{HGN+IQPk#R6kz4xPUZgIkC&~AzVAytxL(pN{c4+*S<2|axckEcJD%rw zV!i0pEC z=3~bn(>tXa9n9iv>A`FHjorzzg@NyD*H%1sgtsrJKvoKuIAD!o1N(^B-h%1?H=mx) z^+l)P2rKL&4J#xTh)xSZ0?Fl0Z0$s`$5IAJ?&AR5476h(2g(A?S zEJ2`#z_&Z!@W&2$g%RhAj?kk_0Rj1vd-DDNrJ0be5(5q}T%wLB!7lW;<&=9)J!0gr z=A*}-reGmEs0sr7fJ=h?%pzaMJ+4LV6-BC9uhns9%YbQUJuYg?r1AezAoXBYwgo z?lN=Vm_4mL$lIcU6i0!Cjkm8f%#D;Ejn z2~(Ub=FUGgE%4G)UBz%#H&D%aLPPP??){)Yo($e??Wl9<5X`N;gQ>X(X{bCKV zjcbFa#hLf9-S!;b;BWly|J#3pb|j}Vr@BYTqiXixWAK^ph8tLD&{v2m_gOj@(!l%~ z(sc$o0!F&fgn*py{3EzwfLWmcyd##5k5<(_qK8rp+#-`yyDc^l94O-I$R8hww_~#L zc0@YUc#mIuLwcaRHO%U=@zM#DUQ6RADjVEHvjdV*>LLW<_&i>cBt%gFlUq`Cmhf^+ ziCws;0R@A%xeZlGhaKxq=tBCg4YK0BADs`M0ZOA@pw5JF&f3|H{` z-*?4pzydrW_*qg_Ke!DJdLB1-sIoWCm{+i8Y=;&%vh^8#y1xBYEW>mAWPI9w@H09!K24nZ!5)zu0pX>EQ5{y= zKXXdju(!K^_Y}CT1p_}NzH%2UZ5SidR_?BY^P|P7-5R^RdUscN9bB5QxJx(k`YyK{ zc>pPRU01pQx7%QM$Erf%78zFW(uyEGAYJ(C&Jy;nKJ^3kkd>Wb*GXDT;7X$+2B?=^ zQ^^gd9S+|n<$s|`nXhRFAvj3+z4zYzr4@v?J!0gfv=_eh!i(QTpa@@o))r+Z8Z#*E zcpWifOo8Lf4)d@5R1ppxsgpv7os{<2^!uMS<@*T&qYvZ{z-YF!(rOIzkwY9Yk{mpF z^hy3SbJDoQ$OA?WLVzE5+bRU%1)7w{B;~&^f{-TV_oyIv#K;zeM{<(#C;ztMS9@9$ zT81wmuGe^weD{}rf8ZopZgo#SlACy2(fB4!c| z+_+z9oaMd|r|HGzIBYBNO_wmP{3KaK#7_8 z;F}t?j;DqUeEeFsli_0UD=wLVf}2nLT+@nUAnq1zF+UUEI7mK#A~Y*dxgVlsxyP;z z%}z3T5x0=4ZHf5*M6rA@=M{>8cy~ufL{foJOBBR0l zzkx|tE-k|E91>p#+&%;2II2H3C5RXbUFGwBX{R{C4!b_@S5LCLK%l%OuK3me7Bzvq z=~iw{@e|2G{W1_y{IjP85wtV$A4W@A!H(5C{> zxOW|GKn3Ipa)`7ppR?*hvzHa!gYQ7ypLaI*YX{*rFl)q3LJ5jeh@%@PrQS1p%HS?3sm02g_@1SPeG)5R z;CF+25Q!8H?a7`;Vo=(?)6_hD#4)558j`&=X%|fbTCj(^yR%F4LS2UnZVGqLd27}r zz?T@Kyt4xgX;>`rGjWN-n6!M0TThj_e6LMQPg4G8Cn?jU{2S&V(4}10oK_P8{NOv@ zVpR0NCT0H#AF0pv<1mD$JYz%?0>YHD$B#T_8Ni`uhaR7P|Ia5W19|Z1i2_kj2}=kx zIivVPN1vdp;mIT1kwl&1%QY%ZX5thCN2S%IG^oq#%t`xk^&l`R%`phM=Jeaur0gW+ z|4$JFpU42Cay@erZKXDZW7(}dWLbvo7r$77-JSa~KgN*W!^Wl9|g&>adk-X#aqYS)LPJ_HO$0RNmB z%*p6?9u-{uf3GffR&K2>eHXj5y0ipMSlW4OX?5oW{{*?Td~#`L$+@g=orEBLEi!D{gW-sQpN3m4f?%pjBvqyun>>+SbexzePfx(Bl@siyjaU z+{%NzA-I|i0#tZdfLRlX&BU3SkOZv?&lP9R0NQ&nfaMCR0$!aePMzVq3-I+-xdC+o@+(CKmey#2URhe<|9^jXX-|eAzWmo+JE)-t z>WLWspxy6F5dOs;gl{8%VFiIBMl}YZS`av5#H2Kvl%J&u!9fUVLHNqkoH06n42s}Q zq(}UoNAZQvMW=r3v!>twteG5wA^=JiBokB}4$+1HyP!q+2$L0@zV;-~)5o56>H_l@ zSYC2k{NOpxJ&kKlfBd?Wls#g^00*0tL-jrg6f zS7Q`d!A%kh4El_)*6apTqgnUFLUD&zja@~ z&RgKJh)VFPxS^DR(1Jv!yczl9!WA<{;$m*XNZf0|S>pd1*>=xUU5p5GXvDDThC|)3 z;`&(zr2L&V1X9Sw>zo@h7m;^}Uz8(=+o(Xvfbfb$LLz|1fa3v3ArSG4vk}kk_Ggm( zCGF);Gbk8j03U@VIka7iHME zp|-08Mt$(eL?1jFcoaChaoqTGS|AceFau4R)n+L;Y9B-!@U!LsW-3PpP1ci2jkow| zkI7I5*1$<3BoGkr0!O51%qhBRWzG=*+clbkCRN(TNe%0xOz@WW+qDoe6S=~j)0}SR zlEoc+9qE!>+u2*&rDbxNZ;++cTZ?7BE8bd#JNV7vwT#QW&Bw;_`YMSNtKdt8??5Y7 zmv?rS`8yUMfcd;9Tn694hcsYzcqmw$JgJcZ2$0a++QCBz3lNuOm^Hu~RR?@|ND%^Y zLO^kJ^*WG%l0X2!$ciIq&~iWqd$2RQdzc3i09S(}%VrBVn)faX{y9Wp#syl^g&?lm zSyN_gZZ^yR8|jFC7F7+sP&b{)IN7S{n^$)!l-RtC*-@Us63*dax`2XLWE2`s5JCqv0ch`597TkLJ@st)AxI!2-AHR%p zk}^FA|AN#cMv&StTI4+Hk|HISoe`lseB4EWEs?b1K)0PkM@av;61ey?z9X>`0;rLTe zAAj=raZ487aweFldefQDQ~YvyDou@m#<~!2iG#Q$guX?UobG6crY1p+0Q_2yQ>Yh7@!@|R zUpipvfmg0>Riyy*+SME2e)NMwB6zMBp2lY&mEkpU=*Kp{-STB$@`tF1Bw~D!gA20o zur0wK%n|$}ol-R|a1)Aa+>L8MHw!lsi_6wr5r-M%Z5H^1OI+z=OP+M{&GMrOk!eN3 z=wfhzi>hjGa4F#O3X-InPLN;?itxiBum0T+|1K^mvr%fP0dHuOBy>>`6E0bTA(r*S zE+7c#8$_$RCHZsO6GTc&AN)d}HVyQ5zHERh0I;0N5Ss#a;6IA}~L(OQ-gxA3{7t)Z_?(rKgzE_f12S06QundSw-4;aWM-n^h? zn(5YuMBU;LK#A6}rYX%_nk;;HWodbBX@?2{-x6zl(=V+rEkPDw0e4bkAEv|?ox8w-m zn3)8ZaO_OGq~ivcM|f1JD;fn^=Rn``?~A7bkvmzfalj6A!U*^r+~E8<?zwCFNfu5P7M$tMpTac+VC^6vx$`;?t|HvRtp66!wjgpr*IatIuL;2dV;5CS=Hkn*vo zjvVEXkyjXb$tm&-`~dNU5d{PY!nc@%;1MHw5SXOQ9ZXaZoP#iKG5SxB;5DanksieM zxU`N(3emPoPJG4@-anW$G~Q0rgbEA?Q84cgN5GTBMpLv@!E6p6xs@9t;HLESwSm(k?NK5f zX$0>ox%`ME2gqQ5maq=kmGm}%tDp+f13VL2 zg%t0TpNQEiG`Ns)WJ#+g=}ZPf!1^IR$Y^7bPKaOGCMdpe@$!eE1=54|CV~E|9Y#n^ zXoP{Gp1#@?V%Xj^*AoApYF?CR3yz1;F{ho3UXwofnstL7nP3zmA?|Ag(+WV3Qo~UN zpM19muaxgZl4{kqof$sM#`36K$@fmS@RSJjUHGT~dQpPigFvD>oP`YayARp~PO1uc zxiQJ0??3`)CloamEclET%%(M`Hc-*Dkf1MQVAx8lG%%MxvXDA#WLLtSb1;I{9qGYR zbs^yH=#Y~Y_^EDNBN~ighm656;v#Se{2epMEsrA6$4qomTpS0Zh`)7W0e&Jl8H{e% z2`CG!N*qXnrafUtJvMkDw|rwNjn`kS4|*bA@C8FY;27|&i~euxiU9)Xxg%f4$OSZc!BaT)yE>k)J9U$t5kO_}yKeqkuMu=0c z{z$pi?&&?MqDlGjKf%Hi+zG*(M&$4jDTJ``<^?n9dy+c356nVgusWS+T#0E(*7f-! zN1%^kb7>XXLBkAiWC=Wc(vyJ;RN-I;jahz+^b%PFe5bj>j>gaLB~1Ji81vwzOx$vb z@|?g!2j_EMJk85CA%LsNDi|Tb;g+v=E66QeY)@h^67p3fxZnJZs~cBUuY(DUvlqnu zW#a--nq|M`3)c;f4o(JKR~zSKWv95NM=_|Ai?2*@b)$_djkga`SYG0~p8MHA?m<1P z?&f4l1mbz)th1Fv8mu3@2_qPU!EwyN9jzu~kV8~Q0{T2zhc!bA&Vci>dq5+Txvvv}kHYAhZ$4!mHBE2jG*(~&ak`a&gDftGd^c|hZ+wOXazG6L~xI`EMd zpiwwpq$-Xl?gn2$E1o$jSuYaMvLawke4TPZ;Wj|?>~gROu7Dy-{a}4ne9s}xJdg!& z+L);)?Cwz){L7b%1h6b1@E~{;4m2-G7GC0-Q}_W#jDGw3-!fn9-+9d`w;28O=T$*K zY*MBf*nhBp_G{01zK20+&wRNCA^30mPjl4}pYewe9XopH@uRSV!+hu;{?Z{z0@Lq* zyjcYS?f{pNKoDS|6_ya#M_osx2XsJt(dkoFLa6(bY*MBdf*u5#l;tn4e}~&x-*yfH zJqV+M;24B&|Ni$hDL;Ze2p>A%9>s&i^9dIytLJh@qyTEzf{szrxV3a1bUI0Ij?cq~ zrV*{%+-WSQmh{ZJ%7hg(E$AwQ8{PR9@y}%ov$#$1gZnQuDnM`Ew9vs9A~#%vJfLQv z{Gsn$)yqbM1W#l0wGZfO9+X14<`qg6pk3hjtbDP1P^qZ`TU;CQt6gJC;nRP6;3!c4 zM9)am;8)6b2kv_~{zTlACL#lw;+u|o=#qgoi^8{yLa;XB2>9EZqQ36-@>FR73m5v~ z@gS4p77hIJXX%mE&pZU?q={bvM3W*Btnmw$2QFsZ^M#9Y0XH-OoWBIVZI=V!=9LTE zH}lbt$Q4+hC%!m~)h>6^J}zYhZguA)jVtp8=;)5ybUU=xKu>hb zvQS3ias+D&!A?1Dy8t2*9JN-7)C z13#d9!QdfqA(iKjSj%g7clnYIPlz}jjRjp$pL7klCY=JGb$A6&7InOwS*eM7=<^&*)q zU<(Rh;+r+hplSr-WF!S!mt+PERpwoJg-JgBv0j#R0nV^FaDK~6^>f(41#$l1Cx1IR zR5W7+Jkv0`WAP-K445^Qu*INt%iqoebtgK|HHhx9&AqbKO2X+ir;S8p0gX!v3`h~B zq)<4TjQMUzz%R$$BA(Q&K#;KY9M|nn`S}?noW`>%_*9c{B8{t5?3RW!v2(nc0-~Oa zj9}X6U=TgWb6`nJ#0E8VO~iO!mFU1woA|@+)ktJV)!vd8qm?Wy8|fR#BP0bLvsTxpW@GqQyLuVXNf=Gy;C9!cHvH=b$*r+2% z3I@E23mY^tn*=Y^+JTWI;%p`(-!@0A$NnxmA+&xJ_ zSyBse$_0QBf^}E`O$gjBfbWf|j%_Aycf$JmF8D_;_uZx+>r6@s?(flqkXwvG5NeY0 z&yngu_^~|*%q!+N&o{pDY!QU7!VpUAL3rxeQ%@Z`N-MFG5DpbV_|g-SgeTC`@Bdkk zat%kYO<`yc8S$&fyu*k)PCZ|AsCtyW!-ykBG$~6EzA`2$KkFQXZ^#c`pn$;tOc=sX zQ$e7B@EZ#VzvULAe|Z$IIsK3;su8cXh6S|XvvkB2aZ^nlT#D(KWTx_oKwJZiR-5H+ zd{%?FGfeG>DNTR#PxEc(l9p$!+sK^&!z13sf^n}>n1iUv-ZMF%4Z5j8#|EX{jr+9d zw|R(0g&Y4yUAnjlMX2h*t7xq%(r)21sxS#Oak^N*QUqdj9%AG|XPO#B?&AfTG_XD+72cXaTu#Uc2GOTMvO_>yp%99S8=CT^0nw(1f+u?N#nkdwqLD22+>0@g>XaXMR=hq%VH5za?igkUD7#1ASqgiVAO80)yzaSoD3)3SV^ zhu+P zlm~zDD(gcFS zz#cT=?%F!>-4!bbP=&!0@WAO%cGv>+fc}HU3haQ3jhvgdSYP3WqdoAIT`7W`K>4_w zmwup+OIL!o7&SqlN7*Ar@6v?838Qx?An>pA9xhl%G67cW($DTUQ zFtei+5NIl9ma@~34{=rL;m0WiOuzqO19N%YMujm)8KLrEpYmf+geQ*56AmBaZ_@(( z^pjRA2L53lYo(e;fZ@!y~wPYEfOk%FiAPC~b9 za`7t4M-dix2^Jsdr}E;u!Sn0p1!N!(+77{H3?b6}&U$f!xTmE9Btf!`rR(4zs^B-e z+SOua7PX`4jDLS7nfe?CV65n{CQZ>jtqs8mE{zBh?JMmnjrbYgiN>!9G!1a+TsLE= z@t9D5|HA-S;)Yi>hMCBGAQcerFaMSf^*WlM$@D}9MQZ}vI4N#GGX^>vOU25^-Jd?N5FuLx34HMM$7QsRyo}1m#F9rtBej83hOxe$Zhejk;-s zwnbOttw>XTFvXi2_!y{^177Z#F>yfH^@L5n4}262dj*}?#6c3gNx>3N2RQns*kS{(E@-Jl`Gvy;NTlnz zn1OhXIAKKCEsC$UoSfsgWDgTLG4W1{yAHy2rnq?#{l?KJae&6Xs(L3~G6o$$)<;r} zkLL9XvWk%E6&`s*ax5c_TGVTd1R{jx|D{GEAkJ!>AF2LQH+Tqx0sz8VUS6l2`AsB~ zlO+HVgON4Wc%ugPFZ<~)6+n@yC2rdOWsf6Ko`|J9Ab;@HGaJrdrl0vd5MTf2wc-Gj z4KTRkXR3n%{PcNTli<(@TNnJDuAljA7F6MOH6-w^ILra_+G}ELIK`=Rr|lfZ(4pbC zKl#@zB;XOAL!Yv}xXS~+?8m(+GlV@FEx0*-#5lEr{owoN#AOh{0W|W3^eHQ7vIVq} z0azG_;Mja%ij6EVch^n(tnaO`0Kj)wEiJ5KR-pkf1Lmp)=T9#7YP9kqH~|NZ=8{^% z_cJKXYfgVFLGYSWdJt?u_=j9``XUUW1}Q&l0f93{^dKO7v>$((0>YC=pW-l3^%V1I zZw-KP$aP0ifB&N~EsE5E6mMYI<07NOPaJ;CGK7bgC?HUnfFeA7^y#N^jgcpeiXc2k z0Re*WLgpa+m^laxLVzEPNy^_IbJAc4k0e1*G%cN(MeW}FkN?~M^8f#jS03(%otY2^ zosKjKjDzio=#R+ll6r`>Z&Jqvtq6y}3 z)Zl1vKpfrv>~BJmjLsDA@eFRY*=#k+C1R{n4r*`i4&_-&+q6N`c7n6YnKn94aa9ti zZ~=cs7KI6}Z$2{cP6(+Sy~a|c5EBsx5@+Z3Rn7G>VFwz8V6-@}UH(W1G$O8TDg0`O z?aoU9red2mXnHrkJ;8hG^Vay6)=7Bo`QXi>~7r0!>fHce4HSFLH5)apmDs<49Dc&8(NIZ>sRl+nSNA!%lI3PJtaFWB|=;zD4 z2PI_nC%+~o038)F!*yr)L>iAb$7ffjCed-|K*#YvIk(Hl!vgVZf8kd`^Mz8JPM*~f z+${~Yh=&;1(V&ZHtr1|nk`yILz>_TarU`Knar`=(gd&haOr&rj@mrYbm%X?u8F3x0 zI3|EDwmdBXqO16)f~#YZa&)U*!Z2dLgE#;=Jwq*Th7s76EpT6>gvl21>0L=v8qp4` zpN2{Waz(miq3B9QCb)47C51IUjp;r9*U9bnM%7`0wAP3Np2zh)%L%9|BjBm{qTldb z5tb4Je878C#q~2&K^(w$OA&&(^-tT*pjb~Js%B?4I7(V@?mSxxft-G=a11#VcrGMj zYxd6>iN7}ZME=Pi99v95_TV=@S^0*UoJzuyNFgCIJTP#rS|>mYBn8cUH4OrudVyKw32~a6mH@m>DfO{qCD)<7N6Ge;N1+0Jzjxg(sT_VmTt?uotf0TCR zxkwNwAUH|+x4GujCS^_-F)59sJ3p>D2+uo7`J2yj#;7JKf2FQDr32wfPX8Qz^01%s zoC-R`Vv@46kZm=7Z2J8_Z$bbb$B%d(V;_P@9MaH-K(n)FjJW2MBStj{;VV4{;hAbu z_7%aWh|MI`;PLeL9Y^UlOo{$pTo@Ud0gLI_c?o7ng6gOnTC7>poF3EpBblTOWoW(l#b1YMM9 zM{gPwQ3&4BLGD|PtLoB3;|5imz~gN|mSK5{T9v>T=d}r)>}eH(4}21R5z?nxL}o#< znFAKF;h0|#kaiU=)Kq{N!%8WjQ@H3>5ngdkCHOy1PH_Cf>$amQl?b$?Dr_mZnRSgxaYS+e-ghVMV#a4b zX%gZHS(wAbd_?W&9 z^`wFND1~ciDOks&H+iqt*fD9Zc zGpf*zL?9V1N+m6DTZi`@-+Wfw9QZlNgS5ap0R#bjL)>ds1^DLISa|433g7@hqU3Iy z<;(xPxO4$W(U&}+_Wkz9Q9>mIyR#X5za|;T6V}X}!eL>|ky;bC$JjzdaK7#N84n3@ zzxMs!H^kOP0}y9u8e7{!0#s}znZ0Ha_9KG>>^ttDGE@!nd)kx1HG8}J3!9efh!Nz0 z+&c41_TUC}x=4JNlEON@35)fe6Myw5wS#s%VpO*nF$ZA`N=uV61mW#*#OQTyIen2M zM$bL>90!b^Nt1GoQhu5vM%*%VOp-tY!jZ%DC)=d_nALzk`TnPhFuTO)2~gRCFa(17 z0o3C0LmnHmkhckzw;y6$~XYFTy~<>5Nd7Vis?(v<{}G9^YR z-6PYXNJ_G4$MJ6&cB6R+TP%&nCLMBjTSH6N|-B-P|~_y2kybz$*YihMzC?v zlBWtl)~X88EP1Nlh&aRnT~ZCz{$kD14rxm7qYno9nTZijnne{;@{ME_smhj{LG>fA zd2drDs#7_a7#ZrX6v*=~nIH(J#dUJgeg&(nahWlgRG-470h3lXa z_x**vgp?XwBKASyxI9)Ke*7={-~9w~u(xC=_5S?+X63{UaC}spP$_eT$E7K6{~H#T zR~yvKzD>1Kbp$VsUi;EI`8mB}0hueT@Rk(xni%8`nW|btVtANpa_}Mw2{%WIO9m3J zWlJVXewDcCRtnFj*Pwofsy2x0Wzf0<@Zu7=y^*A$Qt}A34`Q(75vHQmAR`qcizB2> zX#+8@zGJG?Wu;(h50?OJHqM6Ze zg55f6IF-Aq+6c|-z+#$C2Aui%m=0~v_p>3PaLIzZn36=LoVisSnlc6~FNT^EFEIgF z!G5{lrVLCL)JmIf@dtT}Hc?(GpJ}jo=~kj?bx<-?QsSQE)EY zI8cE)0oWUF$_HvO5~v{c0<)}Ck`HjrLIiTz5e}ZXz+7J9AsR1O!K{P;<0X!%o(0^u z=VqDqOBS-Sb<1&5Ak_74q56;y=%8ITAf{;s$eva^m_n-ZY z3c`=6Akc&0E=KeKvyBl;jO+@2{<-I$Lu^v^@A*fL$Phfu%+*DQS!eXrVY?7K4w=%y zq5k|I?X!_QKbabXsMP~V1g9u_$Qt(9c)!DJVk8BTAyfrHitrq}oPOnNbWT%2;3Q?6 z5VC^s;g5fcKoEZZN1lW5FQ3*5LL;Bd5-wh0ntgTY#L4XLJEIx$_PRxuSp*h`2h`sK92e%yPvyB$?fA`eKDM8avmp;zH6 zg;$bXjwIY`U&wno$e6UduWAxU(ial{m;^znDn#m!dPF4C)**^sJd zv2q8zU1UTG6>-)8^vj~a$)~RcQB3HX&`B;JaliP($)w*ruw( zpsYr}@k+`!d+=1h!OK(rtibkt3MsrKp~1LO3;AfogbK+ZtfsOb?|5#gK_9E25{a9{ zBuA)il5|M4M?IG`i9z**Hf6GcHqsPMMixv(M)m8cX3$slZYDGw?- zRCKUBe18tfjTo!p67>WdVHayRrAr%Fs4zQ2%wmQaAWv#SW|?a2#GgXNB^b^=vNaNK zXO@;onkJon?6|@KtP25|L~m_vxmH?y(`m`p*v=MHl9yc#4L-ws1#H@~#D3fbNe0<6kL1VW7ix7#u;Krn@T)K2n(siobCtiu1EXZnIQ&62bkwGgjd_sU|K+>;3=lc zZ)C1=eXvei;3-a+ZZH$yfoBtC+2U^J_X%9?*9T3rhz{;d&qJF@7B^s0| zAb1SI=f3c{FCf$|SYq_$=l_5Lf=i5`F7_a>#^`U}^&n;1tAG08Pg!9^1%V|-|Kcu2 zpUNJDMof4eNEkXd{4;#GBUf=peiwqU(b9x=aZx`iE>Kw{bpa)nFS}h?JqjPk$R|N) zI->iFiF6xw(3l#dq;6ZKD^XIw!BY4qraNV7g;JFva59N@;v8-uh06x?QW&0Mro?e; zfBXKOeztm~742G??F{ZEUeYOouwv1nAqj>R8{I2B2||?^EF~bAd*UY0i8`{sR_UGu z;W(jwrcx4Z2|=NXu4od3tUZ|0TNUy?_oCTZW+2X0I0PWG;P`l4rpy!$#D#$UC=H@l zaGPMRZ&mOrNGqhO^}@CJghJ$#4E3@e$y$7jYiYunbzTbo-( zn>$bk;%uDuKsa&8#jSDZ1GS1RYZtfTP`LZx1RVDu)eygR%d?!RJGep8CZyul8G>9?k>8w{ca4Zg36V4!M^y1Y6wAp^XU%9|}flikg5 ztLa@jgJZ^DTtP3*FF?$QBu!B1X=Bf#KF*oUiBm3!;zUgA!7Uzu#|di`6Tn3niFig~fTzjqT;HpQ2RkPL$bFE6Fsj6nTyvx(FiUKpykR81 zi=D>d5#B5h$_U_A6!QBe3CFE9M(y`6WETlUZB9@rJh(w4ljZD`^{TY^Oqv}XE^&Jl zw2AxunS>(94SceP5t2>H|BDJj_8_>#=%+uSf&f8ymoDYl#E1gIH<*swgYeuRe32G_ z*yGeCMn|6YoU~`3IsDl}&m6V~!P5*5yP1(?gJ%A(ZiHhH1U|!<=w@c6*W7$^1$`=g?EVRENH|@`t2Mej@#m5UV0^l zC6#TYNCM7neQf3`ZIlEdppXE{6hXKLjzuH^Iqgp@9^h%~{AM!Q#q7w)^>7J7y-wWs zE*#Nsq&;?_2!fK!lghmm_gU>lX>uWxS!n=n6cCI}Bu*j(T%!~{NGbeIaex$q8k!Jp zwLF(6ey4o7KrTH}WtyuVq;CJ&U+$Nn2IcxxHJJ=`($^%=Rw5d&pJ@9S29_)`i}aT+ zsksVw9-nxcl=6x){c++7LG~0 zJy;E|TA~v_c)Oy43TJuI#(UFq&hDuTFf)jK94DRL5OjB$9PDm^Gv61VE_@n4aVPAv zEK1m6KA&P{Mh)Jb()tXwLyn@sSP!2n-23~gZsE!%7KSiA&TNG-QA0>_5IFfM@Tr;c zARXOFQ0&xX7i319pE}knS$>$Yp@Q>aXDCf1zBNuX?trZs^PACd0WMA0A|E*Ki3>^a z7zdbz?$(&ToexuIvh|^dZ|0$K81Ovz*~~3SLf~e^WfX7;@o^-mLhiI0Z4jH$?~G(W zGY_n;19TG-OWZ&)O1H(&?!!&>qg;~Y{V^Z!Z5B`0r+(4|3{svhlxc?l6-fk~^A}B^ zM_AXVbO1E3@>~jpu|7aR^rmDWPE5cQ&J&znkqVc5#Aq&*nkN7_h+yDKP5Q-k5)8a* z1%+E0h!%yS0k~B_NDrK$f{Dl8NL<%uQFBc+AOx2fefcY%K)?iDe!!6gv>@0&>{g`DKFbm#9-Ls{G9k`0aFx;i z`M=eKMojD-l;A+>2dquvh3t099!7@_9Y)jMz(HxOF``MC0s;~zDgOaKO`N2h2c=O$ zfFEQ9;U_^5{tv{Hls}CJrLEU?rMb)L<6;W~B%ya$V6;@3N31fsvA+JN!^0QW-#fN^ z<3)0#Czft54xOtZBbQk)zA$_S_r>91UpzcKC9rn<^78W0iB7dBt4K^oFe&ObicS3MO!Tc=%K}Cx?fBsgtsOesTHw&81gXd7aPBOUD*?s}Z3W>gKPO z!;dq3+LxWdc}HhtczDQNkp9Qe((;YvrBfZ}{J-Rv+y0AVH*cIH;+MO=G<2FVMFwl2!bTwTHgA?2Mik;UV7`TE5pOD3EcJHbm`=)j^cXZ!~)|MN7zrP ziUi3FAPVW@nodc_E{Cci6qfX$@XX|;a&x0B67;$pYUZD~*=k16=#|sAonQTBD=jG~ z6RLDEf-vC@&?UwL{e~Vinc@hA>lQoEAG|+m>$lwr1G43*HR|?cHe*d9h-m6c6kc$s z+61Yj8k|cf9$caDq!d9YG=O-9KC3%HuLp#YTks?(VPLU_WEpAAsq>+y6WN9sh*k%4 zCLa|-I;C(g@C=J8sLdurNRuvku<{RHV$>q5`De%-43mIK|D@lYiGx^o^Y8fGIl38V zx4O&_*!(0``^;=%U98aEBI5x|vr|mnZAu7yD~?=xg0|gY8a2B~V#>+;=9aT@vfOTy z6dsw$ac~23+<(eh|Fr!FV&miBT_f;uX7tlz<6VA==viQ=mBfj_yU|iThBw0~C;j4G zuyHREm}y=PZvXXISA?WPFkZLh2OKvWIKLCoruf!ow{UZE4+wy{tVWoO4kr^-RGMQXx=)Jg)(qoXFYxW8!j#I;{cxtRvApp#*62;C&V#h7^tz zUXplv2cI4{ApgLtoRUg#H)gX^0T%Ei6e)msjO4n9m;S7S{V)_EHR=70m%|VG$GJ{KoQ}2 z7=kCI(LN1-`E%AnSwWz+nr%*h8oLVu*nl(3HT2m<3tCuPgTf& z&Q(R^eZ2bGx4*r%eu4Sgt5*R=DKN~xrOdw`uUK7(D0>wq${&#}+)RJ@oqoH4Z?tgk zYUHn;j?}pt_6w%`FY&&2J zcNj9u{M;smMG~j{6_o4K%)9%)-1c_;axmXg#D$C`$8L}7ZW+Q zecPtsn%^9zi4Z*R5T>3_W2o!9GESX`?E zp&jo}(2=F^hNRxv`@lxXI%(#|ZQqoi^UbAZQ ztoMtG!|2V77M%8zSnGe@<7Lo7Ut^m8qb0)*clh7$^yrlXLufW;Wh|Y1jKoikH`urO_;7D z-*iX2B2_#{N<5?{tunK4^T9mt*?xbzYU3(Y_XH3_wr_(sm1kjyA zM;07daq`W4I`GNFQKY*}sFC0Ub|6pb0O2r#Ol?`pe1DwPKH$?1L}PS9Fs2Ll?Ns3A zbWG@jWWqQ09eCFJ>wuF=|CY9JbTmVs<@dW^`2ED4>U$6yxE6iO9HY!5H`0el`O}nvR7T}B*Gl#t6dh<}wu%XbzpZbQCu|^a34v4qd|GE0 zm2>=Ep7tDoli;OhJ|+&#y!w-5=i{lZ7XL)jU=@M-0Wu0lpn^aT0tW`zqZ~a5AAZO# zMidZ!kV}lBg1|{>oJ;lxtn7IndO#C`P0F#0(dXa?OylW5c;=bkI|M~IM7e;Y(m2rv4HU5U3!03JHR;9{O>)c?y~j{7RCG6-URITVi;c;0fwP_QqSt zFV`2**B7qV{zeNp^9u`CFca$+ubRJd^(q8m^a{Z8@;r0lbN!V@7kKg2x30$=Z`qBA z_7B@we;+%+$kXEAXDa{gAPTj{$d@fI-S8gcWJczlX~(^9b~g5IK2grdF>k`aCFiai zc)aw~_V)RB-O^3pZ9V7r01|{nf&ArapChk@z585!K-}CHzHov3{QPnxmfyOv;BVt3 z{vtocJaNoRPi}M&eiDA&>n12ibY9y3ajb#!*7b3m24~;`Z*Wz7qI3R=cerxp%E-2C z=xW~RSe^^rCkRFo1oH8LEyM@*Aby^Cu;xt}eCN7vX3W6Ly;C4i`|rWM!Q+5f?t>ybIgY)T9d3axMet|S2uJc>f=N+FHG00^HFa4{LKyf&mzbAR_wRUg+2SO?0 zI+h>mx^Fe#`+vB=vZnL-QRgRn0-hm3U}@4s{!_)R*H#u7<1ewa_R-3|e`=~06Z?Kw zs~mSdpW&mmYIDY}-do9LX4f&T1rMOFxw;v63M(r=TDiL>58#q7w5yMt;`0LhXg?;A z&CFOKgpjKdaPuYlZfSG?IWX^q!qlkBAp+&12{K#q?_&+kIwSq&-~&}jd2K@Vi9A80 z^(uC-Kd4PjO@*7fl=#8Y;x*GZRe{GPgqPZrcHH@hYC{*=up{1uAy9CTHEi-XdT{nY%{@)K@&RxO!6qQjF`5tD%?M60 z?vPFJn&~@gT!2>vJ;0d74_uuVXR~m;!b`-vO*ZuXaL*e0JewDpDX2%{MhR>-_|_S5 z!svRwZ>It-WFRU9Q#>%eX+F3>HaAD!5h=HFMjpBSms+{s$1#yHEF8D+${5}!s^QJ+ zm3qC71F-iKFA;y>jpPE1dyvcl*97|hgYgGi8K$_-_xXFj41t}8{({-Or3B{Y zB(ZOb>tD;30&%qBi_G{0$2YQ0P|_m?B>oE~@sd1i*$amYFEfSmAmU0K5l>ct5aCC` zzyv|6VgtwRpF)*D3fYBYYKUS0?sUkth#Cp(;=XN$1wFtWC4|A@m@8jTJ^NF`|UgO5|2}3xT3yLyaBVsoHFYQfREz{X6N-xzfN2n`3GlW6C9d+X`Tu7#`>Q! zqZ(#)&~09|xYvUq7g#3o{`%u7?2>><--y?<&Cs<)92mhy4qG3~VNS)5ksXT3E3e>f zhxc|hz2>|dbOL)~d;RuJCUv7gjy_qf2N(+wIJY-O0Nw{6lxJ+8b8DN8?Im9K;&u{@ z@r~`hU+%s5<)8#Z03&&FvvQmP&bu#?Uc|(T-%<%mfzTfFQ(8h!x`(B4BGq!pV zw2WU^?Q~WccLl2yL5LtL2vdGwMEQZ`HmBS9rhm28sW%XwPnj|i{@NJCT#T5l{AmUnGU0c0F6@sMv0%#Qj4u@b1r4fh1ky2GqxRSPloc&h<$wWC- zE@&H`8z&#>Dw$}5bgTQgr2?65yOYg{7<#ES`D~h#8Hy7)g02UWcw-wJo%trw9H&tE zM3j~^{7Ty%xKKfpDpR_})f%7JG8G_Mg$PHzulIrU+O?W!{D-ed=E6du4Y)505H~!Vf9nU&2|s`naRb8#;^_|F$*A&UxC8NgHN#rG74gA4Ar)Ey zS0QzOr~tSopM+sD5KwCrET0i<&$HM5;#!=}>_N-ldsAcMfP?|#zC>@Lob#ip4WNP+ zxHw2WnSrJ=*K{#*D~ zgPVWwYRaWpViYTk>Yy|ZQsy88k5Xph{pWuIL12xM+noNvmpw}PIsT0Q9Q1&{>3Yf}DDez13x@~3f$(Z_b6YXT#!kB3+cv+TvnuA9Jd zVteHUS12+6I`v30ag-U`!}X#0`Rm)ViwUOS;y1vBFA#4(+*p5j?Fv)h>V^)2Fa$B# z_=mR~xDmso4sYbJA>#GN@PZrjG6i?-8I4|MAN~dWn*Pbf#UZK-gf9d#%uh$XAvZ7b z?TRT}b!n0H2!8DUu_5nRVu=uc?tf(i=_~_F5L~B1p`hb0ciTqhV+_1qT?i|@+p$=1 zbTs}h{|fhgF^(?qzHe^F8yvT9cmd~h2LNaBcKn%tDgGGmhj5g+v!87=47`_#mui{L z_v5ec9palS9q=jnSIoVy-VwhHPy|7o8(cO%y|}n|PDd$%uw4Yf4{XZ(iN(c}og@g& zn>v60tNCCL$R#J)Yw>zzA)~m*i@jZp2-i;XZyuz?e{#wfZjjsw4s|@xQ+Zb|;UN{(E9xpG*Q1J12dFb0^M@#*;u$ zl_1PLkhcHq?;80_o?I0fWUl;56`n}bCKtbBHzWB(>2q>mAB8of#D9~9#)^~o9Jv@ zAR&AW0k>N@J#Y&LE#8+b3}`dm%3r?$%vIw2-nhTQ$W$LKJX;NPc+P5!xI%#6NH*a3 z+1WRAcHiE`&Q=uxF0iY$NFXjd0JP7*9QZ75;=9C&r;w@=AE3|V=s>ZlaN#=xN(EDs z<_!s^%SRVJMb2d5Sv4rCFeTpIlC{71r*)FD6@-7G1%W1IdJsG*%_T-w5IAC>cMgJG z$~Gw@oRsDgqa#!he%~cVECYImjZR%&^t4A91}=w7ejbs*mALV!?SNjtPQr@*#4L$sh)7&P70YDeF!Sb)1^R1*}6{q5^>| zGWU9jw{GAYt$;sXzadj_*ekM!$2sibIQV<(>sQ~py!_VkrC@}@q+c9<1pVeSjS7TbcwsY23}`3Gl7*qIKMwZV%uLXw?;if>Wz)t_zWBM zXNvUSzH;f(9TzMuW_R*?-gi6RAes?|eFJwM;?r27qdF=cu^W+#ooFzyY?9}m9gT#q ze7~dkarn1(wc=0iTwaYphOX|fAaH~EW2bQ%*={Qc+wb{@`BQm=Iw-B)blW#A7V*xS ziPbA2$XbMT4+5|4x_8dww>$Te5XAefF@Eh8-fykrl>M9FYyJ`vgx-k?Ndqnr$SB@t zHBpRQ>$oebBN>Gk5*37d%(4AIm^AYq{%Z#rITmNF%>#h1z2j$`1mPliUVBVVkpv;< z@V@71Zw+n*f!xZg{0O{1&lh>+_?o}#<(dxtr%=*+-3fCKmOAPP}_W@Jr;qrym z^c}UT<3-ZZI)x*;<<*uyxnN`sW3S&Nj)OA)WIHb#X;6kRAv zVXVq_f%>DrI38E!4xZ5~pNyOQ-{pvVwYbj)SNDPhD_0eP7S{~GApx3(4~Pn6((BP3 zCK6A2`zF?;BE#|u-%fKP%?T2b(< zrY&0+pbA@sNB8iKXSOL}Hg~1~HyKAlMlhb7!39a`v0w*I$z=!04+O+Fqmt0a3F}auwT=!Ruh>#FLRo0mRQlXut&u&O6kK zByp1&5*0ltTzgO{q2#y5lQ@*qqzPYm;mmy}opu>G%eR3!PEpPS5@ZbcG1Uk6;4@E6 zhEO;fAx~Bj^jXZ|O?8L~f_xJ88A0Ji5^_j`n@f^VIHR+ZIeCG)+4~ej)?}?f@{5RA2t5c;1n2?BIDa8`F?t??z~Kyk=o%w?5dK^CAkaWT4}wdKBnY3* zla%{)gVL30xI$_}ml)~zEakj@N)PA8(G;d!-x6ONJw69ak^+k8O~JxFY@X#NCJM8xDQ#aRR*fWUX&f z%9&t3xDGG4d1s!MiOxKnCh(2%iIbNX2q6ej)i`4nqy6PZO|h-2>8rsMl)UeM29RTT zUm1o2kdwXE>Zm~E94Pq0boaQUb#Yd2}efJ>Z;k|qH zh4)8ZKbrsMYisd-K?CBZYsZ5X#7zIBZpe!hCl_Od|Ap*9SiHx?{dM7$z)#@bGbc+x zk|5k$i4P=XA^y_uy<$eq&vwdl5>_P$xy0y4xv0m*LrD;bIx8zLPMql78h9vgx#969)U!L~F1#!p;pq*Yg_Up5^*b-F3yX-X>b-Soek zc2Ad>uQEhAsl{{>Ql(Q;c(b%gQ@S#V7otV)h52k&FQo50l{SYl}h5UwNpu_9Fq+4@a8RIrzd&NfgECL5`2d0fj!dD z2`&l@V=vR)Kyn5>J(h%Eh6@~80PeisSQ%rsPI?Be0ESPTxQQ|GaS~}w=6v)8>%_N@3Bw!hcHyik_Zz4}XyWXgH!Q1#r7JR0nP+$fZroa^q z3B+6;$~--j@sr)=`<16A%y3ObZg-~ZVFyz1{C>?yFXZu4#1`u01L9MY;#<5-${sIx z0>YP*h%prS#?CG|13eEgupq5`TqX-zjUA#u{tab$Me

-3PqilwL6>6G1( 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